freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

VnlnHub doubletrouble
xiaopanghacker 2022-10-13 18:31:17 113659
所属地 北京

靶场搭建

靶场下载地址:https://download.vulnhub.com/doubletrouble/doubletrouble.ova

下载下来是zip压缩文件,解压后是.ova虚拟机压缩文件直接用Vmvare导出就行


打开后把网络模式设置为NAT模式(桥接模式也可以,和kali攻击机保持一致就可以)

打开后靶机没有自动获取ip,解决办法看我这篇文章:https://www.freebuf.com/articles/network/343723.html

重启虚拟机

1665625838_63476eee8d5cac98db970.png!small?1665625839746


靶场搭建完毕





渗透测试

由于不知道靶机ip,所以需要扫描NAT的网段

1665625856_63476f00a9eb002619e84.png!small?1665625858178


128为kali攻击机的ip,所以144为靶机ip


扫描靶机端口服务开放情况

1665625872_63476f106789f68ef4711.png!small?1665625873954


开放了22端口,存在ssh服务

开放了80端口,存在http服务,且中间件为Apache2.4.38


先访问一下WEB

发现是一个登录页面,先测试一下是否存在sql注入

1665625886_63476f1ea6e1c0e2c2ed8.png!small?1665625887905



经过测试发现不存在sql注入

1665625901_63476f2d8019574d19092.png!small?1665625902730



搜索一下敏感目录

1665625912_63476f3839fdceb990a12.png!small?1665625913995



发现可以访问/core这个目录

1665625924_63476f4448f043c0a9369.png!small?1665625925638



在/core/config目录下发现databases.yml配置文件,在其中发现了数据库账号和密码,还有数据库名

1665625939_63476f531621cac2c46ad.png!small?1665625940253



发现/install页面

1665625952_63476f60ef79dba0a00f5.png!small?1665625954208



这里似乎可以配置数据库

1665625965_63476f6d4b70f2241f127.png!small?1665625966599


在这里输入我们之前在配置文件中读到的账号密码,发现报错不能使用

1665625976_63476f78e3fa89039b30a.png!small?1665625978068




还发现一个readme.txt文档

文档中介绍qdPM一个开源的网站管理软件,证明这个网站使用了qdPM这个开源框架软件

1665625989_63476f85614013fa2d2ea.png!small?1665625990607



并且能从install页面和首页中看出版本为9.1

1665626000_63476f90c65ad196d3aca.png!small?1665626002096


1665626009_63476f993cb4ebbee69a1.png!small?1665626010695



搜索相应版本是否存在漏洞,发现确实存在漏洞

1665626020_63476fa4164486c44f4a6.png!small?1665626021365

1665626028_63476face7e0fcad92ff2.png!small?1665626030355



将利用代码复制到当前目录下

1665626038_63476fb6ba47a175adf2e.png!small?1665626039883



查看一下代码

1665626050_63476fc290c7baa0e0d64.png!small?1665626051902



这个漏洞利用需要登录才能利用,所以我们尝试去破解登录账号密码


搜索默认的账号密码

1665626071_63476fd775600299383fc.png!small?1665626072648



尝试登录发现都不正确

在尝试用前面获得的数据库密码登录,发现也不正确


在搜索敏感目录时还搜索到一个/secret目录

在目录下发现一个图片文件

1665626082_63476fe2715801dc1d215.png!small?1665626083682

1665626090_63476fea97364666369bc.png!small?1665626092242



在/secret目录下看起来,是个图片文件,这让我们怀疑这个图片文件可能隐写了东西

将文件保存下来

使用steghide工具查看是否存在隐写内容,发现需要密码,看来确实存在隐写了内容

1665626105_63476ff9803395775fe20.png!small?1665626106693



kali中又专门的破解隐写密码的工具stagecracker

输入命令下载并且查看使用方式

1665626116_6347700496395952c9bf6.png!small?1665626117949


1665626125_6347700d316f088f7c4a1.png!small?1665626126547



发现上面提示stegcracker已经被stegseek这个工具替代,且stegseek的效率更高

kali中没有stegseek,所以我们需要去下载

根据他给的地址去下载

下载一个deb的软件包

1665626137_634770191d585bf930647.png!small?1665626138264



安装软件

1665626147_63477023919de9e331fee.png!small?1665626148822



查看使用方式

1665626158_6347702e632e95f2bc7dd.png!small?1665626159781



成功破解出密码

1665626168_63477038044f3c4aa065f.png!small?1665626169226



使用密码提取出文件

1665626180_63477044d363930f8d38e.png!small?1665626182148



查看文件,发现一组账号和密码

1665626193_63477051bf7ac27ec66a7.png!small?1665626194957



尝试登录,登录成功

1665626203_6347705b3ebbd6d6d24e2.png!small?1665626204548



登录成功后执行之前找到的漏洞的exp

发现代码报错

1665626215_63477067daeb608bf5d32.png!small?1665626217050



使用另外一个python3的exp

1665626227_6347707339fff58caed5e.png!small?1665626228392



发现也报错

1665626237_6347707deda6400ee7af6.png!small?1665626239156



查看一下代码

发现代码中很多地方缩进存在问题

1665626248_6347708810009a8676714.png!small?1665626249304



修改一下

1665626257_634770912988ab9114f0f.png!small?1665626258546



再次执行发现成功执行

1665626271_6347709f48ee682ae1354.png!small?1665626272670



执行成功

1665626280_634770a85a1407fe81c9e.png!small?1665626281566



上传了一个后门,访问一下

1665626293_634770b5c741a37bd821b.png!small?1665626295013



用后门反弹shell

先看有没有nc和python

1665626306_634770c2458d34899efcc.png!small?1665626307454

1665626312_634770c878df1b765a778.png!small?1665626313650


成功反弹shell

1665626317_634770cd987339ce33ad8.png!small?1665626318786



1665626325_634770d57bfb33f8180f3.png!small?1665626326710



利用python升级shell

1665626404_634771247f062372d5078.png!small?1665626405707


升级完shell之后浏览了一下每个目录没有发现什么线索



只能进行提权

sudo提权

sudo -l 查看特权命令

1665626420_63477134a5985b4713fd6.png!small?1665626421833



发现存在awk特权命令,输入命令提权


sudo awk 'BEGIN {system("/bin/bash")}'


提权成功

1665626443_6347714b5561371233c0b.png!small?1665626444541


进入到/root页面下发现又出现一个ova虚拟机压缩文件,存在第二台机器

1665656716_6347e78c640ebe90124f2.png!small?1665656718529


将文件保存到本地电脑上

直接在靶机上通过python搭建临时网站,因为80端口已经在占用所以要用其他端口

1665656732_6347e79ca77f9189b510e.png!small?1665656734664


在本地Windows点脑上安装wget

下载地址:https://eternallybored.org/misc/wget/

将下载好的wget.exe放在C:/Windows/System32目录下,即安装完成

打开命令窗输入wget,安装成功

1665656749_6347e7ad2f503da9b5c1e.png!small?1665656751166


将靶机文件下载下来

1665656761_6347e7b962986d695173e.png!small?1665656763361


用VM打开

开启虚拟机

由于不知道靶机ip,所以需要扫描NAT的网段

1665656772_6347e7c4ca6ad3ddc1522.png!small?1665656775080

144为第一台靶机,128为kali攻击机,所以145为新的靶机

扫描端口服务开放情况

1665656786_6347e7d205477168c4569.png!small?1665656788468

开放了22端口,存在ssh服务

开放了80端口,存在http服务,且中间件为2.22


先访问一下WEB

又发现一个登录页面

1665656797_6347e7dd1a43868220053.png!small?1665656799101


先尝试看是否存在admin/admin/admin123这样的经典弱口令

发现不存在


搜索一下敏感目录

1665656809_6347e7e9df8fc24b84c12.png!small?1665656812076

发现不存在其它铭感目录


但是发现存在/cgi-bin目录,看是否存在破壳漏洞

发现也不存在

1665656821_6347e7f5b63d85f5016f1.png!small?1665656823948


看是否存在sql注入,经过抓包简单的sql注入测试发现不存在

用sqlmap测试,发现uname参数存在时间注入

sqlmap -u "http://192.168.52.145/index.php" --batch --forms

1665656841_6347e809f2ac7bc71d50b.png!small?1665656844329


利用sqlmap爆出数据库名--current-db

1665656852_6347e814bb4350bc464a1.png!small?1665656854796


爆出当前数据库的表名-D doubletrouble --tables

1665656863_6347e81fbf9cb102bcaf6.png!small?1665656865865


爆出users表的列名-D doubletrouble -T users --columns

1665656875_6347e82b9914987aab836.png!small?1665656877924


爆出users表里的数据-D doubletrouble -T users --dump

1665656887_6347e837752f7e2635593.png!small?1665656889700


得到两组账号密码,尝试登陆

发现两组账号密码都不能用于登录网站

前面端口探测发现存在ssh

尝试登录ssh

成功用其中一组账号密码登录成功

1665656898_6347e842d4099e0efed33.png!small?1665656900828


进行提权

sudo提权

1665656916_6347e854e3c5b9df86163.png!small?1665656918862

不具有sudo命令


SUID提权

SUID可以让程序调用者以文件拥有者的身份运行该文件,当我们以一个普通用户去运行一个root用户所有的SUID文件,那么运行该文件我们就可以获取到root权限

通过命令

find / -perm -4000 2>/dev/null查看是否具有root权限的命令

常见可用于提权root权限文件

nmap

vim

find

bash

more

less

nano

cp

awk

也不能利用

1665656932_6347e864a683cbefe2aae.png!small?1665656934746


内核提权

1665656944_6347e870305473abf3ee1.png!small?1665656946128


搜索相应提权漏洞

1665656954_6347e87ae37ef59ae3e1a.png!small?1665656957031


发现可以用dirtycow漏洞提权

将提权代码复制到/root

1665656966_6347e88651a1cd0348acf.png!small?1665656968321


再利用python上传文件

1665656977_6347e89169999ae783fa5.png!small?1665656979581


编译运行,运行成功后,就会新建一个firefart账号密码为执行时自己输入的密码,权限为root权限

1665656988_6347e89c505efe8a58ae7.png!small?1665656990316


使用firefart账号登录

1665657000_6347e8a8168e055f35564.png!small?1665657002148


如果是真实环境下,后续应该还要把原来的备份/tmp/passwd.bak文件复制回/etc/passwd,还原操作系统原来的用户账号

然后重新设置root账号密码

1665657010_6347e8b24a5a1296b832d.png!small?1665657012269


使用root账号登录

1665657021_6347e8bd4b35565220c8e.png!small?1665657023614





# 渗透测试 # 网络安全 # web安全 # 系统安全 # 网络安全技术
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 xiaopanghacker 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
xiaopanghacker LV.6
这家伙太懒了,还未填写个人描述!
  • 36 文章数
  • 46 关注者
ATT&CK红队评估(红日靶场一)
2022-10-28
VnlnHub GeminiInc-Pentest-v2
2022-10-26
VnlnHub GeminiInc-Pentest
2022-10-22
文章目录