靶机

https://www.vulnhub.com/entry/sar-1,425/

前期准备

运行环境:VM Workstation,VM Esxi,VirtualBox

将下载的 ova 文件直接导入虚拟机

目标

获取 root 权限并get flag

主机信息

主机信息

在 VM 中打开导入的虚拟机后,需要确定靶机的 IP,运行命令:

1
arp-scan 192.168.32.0/24

ip

当前靶机 IP 为 192.168.32.132

服务发现

使用 nmap 对靶机进行扫描

nmap

可以看到目标开启 80 端口,访问之:

nmap

发现是 Apache 的默认页面,无其他可用信息

目录探测

使用 dirsearch 扫描web 目录:

1
python3 dirsearch.py -u http://192.168.32.132/ -e php,html,js,png,jpg,.txt

dirsearch

发现3个路径可访问

phpinfo.php (由此可知靶机站点为 PHP)

phpinfo

robots.txt

robots

根据 robots.txt 访问 http://192.168.32.132/sar2HTML

sar2html

在“New”按钮中,存在上传点:

upload_point

上传一个php reverse shell 试试,没有被拦截,但 Burpsuite 中没有回显上传路径;随后在 github 中搜索 sar2HTML 得到如下结果(也可以在 Exploit-DB 中搜索 sar2HTML 3.2.1,可以查到一个命令执行的漏洞:https://www.exploit-db.com/exploits/47204 , 进一步获取上传路径):

sar2html_git

构造 url:http://192.168.32.132/sar2HTML/sarDATA/ 并访问,发现“uPLOAD”目录,打开后可看到上传的 shell:

upload_dir

GetShell

在parrot中先 nc 反弹:nc -lvp 4444,接着访问上传的 shell:

http://192.168.32.132/sar2HTML/sarDATA/uPDATA/php-reverse-shell.php

get_reverse_shell

得到反弹 shell 后,使用 python pty 获取交互式 shell:

1
python3 -c 'import pty;pty.spawn("/bin/bash")'

interactive_shell

到此可以得到第一个 flag:

get_user

Get Root

使用命令 cat /etc/crontab 查看靶机的定时任务(即相当于 Windows 的计划任务):

crontab

发现靶机每5分钟会以 root 执行图中标注的命令,进入 /var/www/html 目录:

breakpoint

在 finally.sh 中会调用执行 write.sh;当前用户(www-data)无法修改 finally.sh,但可以读写并执行 write.sh,因此可以在 write.sh 添加执行shell 的语句:

write_shell

在 write.sh 添加执行反弹 shell 的语句后,parrot nc 反弹,5分钟(可能更长)后得到shell:

root_reverse_shell

得到 root 权限的 shell 后,即可get flag:

cat_root