DC-1渗透笔记
DC-1渗透笔记
信息搜集
探测IP
nmap扫一下:
nmap -sP 192.168.111.0/24
发现IP为192.168.111.143

端口探测
nmap扫描所有端口的信息:
nmap -sV -p- 192.168.111.143
可以看见开放了:
22端口
80端口
111端口
49525端口

这里80端口和22端口可能比较重要,我先从80端口的web服务入手
网页信息搜集
浏览器访问80端口:
需要登录,没什么头绪,再看看有没有其他利用点
用wappalyzer可以看见cms、语言、中间件、操作系统等基本信息:
- Drupal 7
- PHP 5.4.45
- Apache 2.2.22
- debian

跑一下目录看看:
dirsearch -u 192.168.111.143
扫到很多目录但是作用不是很大
漏洞利用
首先从cms入手看看有没有历史漏洞,搜索一下还真有个18年的CVE
直接上msf看看有没有现成的脚本:
search Drupal

应该就是18年那个了,use一下,填好参数直接开打:

这就拿shell了,好快
后渗透
获取交互式shell(flag1、flag2)
输入shell即可进入linux的shell,就是有点丑
老规矩,试试用python获取一个pty
python -c 'import pty; pty.spawn("/bin/bash")'
OK了,看来是装了python的:

这里有个flag1.txt,cat一下:

翻译一下:每个好的CMS都需要一个配置文件,你也一样
那这里就是告诉我下一步得去看这个drupal cms的配置文件了

看看有没有settings.php:

还真是,直接cat看看:

这里获得了flag2:暴力破解和字典攻击并不是获取访问权限(而你肯定需要访问权限)的唯一方式。有了这些凭证,你能做什么?
而下面还给出了mysql数据库的账密,很明显下一步要进数据库了
数据库的利用(flag3、flag4)
直接登录mysql:

切换数据库到drupaldb,并看看有哪些表:

有个表叫user很可疑,看看:

这里发现两个账密,但密码不是明文,加密也很奇怪不是常规加密,应该是drupal自己定义的,上网搜一下:

上图的方法二很不错,试试:
先找到脚本路径:

我们将密码改为admin:
php /var/www/scripts/password-hash.sh admin

即可得到加密后的密码hash:
$S$DBPc9i1Q6Cny/HTW4zhwWrwSTaRNndxlAQeqSZAlyebP9MAHBSuu
接下来回到mysql修改admin和fred的密码
update users set pass = "$S$DBPc9i1Q6Cny/HTW4zhwWrwSTaRNndxlAQeqSZAlyebP9MAHBSuu" where name = 'admin' or name = 'Fred';

接下来有了账户密码,我们登录后台看看:

在后台找到了flag3:特殊的权限设置将帮助找到passwd - 但你需要使用-exec命令来破解如何获取shadow文件中的内容
试试,可以查看/etc/passwd,但没有权限查看/etc/shadow:

/etc/passwd中有flag4这个用户,还有个路径/home/flag4,去看看有什么

找到flag4:您能使用相同的方法找到或访问根目录中的flag吗?也许可以。但或许并不那么容易。或许也可能是这样?
按照描述,去/root看看:

权限不够,接下来应该就是提权了
权限提升(flag5)
看看有哪些suid权限的文件:
find / -perm -u=s -type f 2>/dev/null

还挺多,其中的find非常醒目啊,直接find提权一手:
find / -name flag4.txt -exec "/bin/sh" \;

ok已经拿下root权限了,接下来去/root看看:

拿到了最终的flag5:
做得好!!!!
希望你享受了这个过程,并学到了一些新技能。
你可以通过Twitter联系我,告诉我你对这次小旅程的想法 - @DCAU7
总结
在渗透过程中,我们进行了如下漏洞利用:
- drupal cms的一个RCE
- 配置文件泄露mysql账号密码
- 利用cms的加密脚本和mysql重置cms的管理员密码
- find提权