镜像下载地址:magnet:?xt=urn:btih:3DFDE4154ABF32558A1F1FC994E73CE2C8F78CDA
找不到有用信息的时候,别忘了看看页面的源码
首先,先简单nmap一下:
ssh在23端口开放了,然后是80和8080,应该是web应用之类的。对应的web server搜了一下,没找到可用的exploit,这样目测就是一个web应用方面的问题了。
打开页面没发现什么特别的:
于是用dirb看看有没有什么特殊的路径,就发现了和
打开/dev/能发现CEO给新员工写的信,以及为啥这个网站要重做之类的故事,可以看到一个写着web-shell的链接,不过点开之后提示需要认证过才能用。
所以应该是用户需要在/admin/登录过之后才能用这个webshell,然而看请求和响应里也没有什么敏感信息,cookie里也只有一个csrftoken。但是,如果查看/dev/页面的源码,就能发现一些东西:
注释里提到了密码,拿这些用户后面的hash出来鉴别一下,可以发现是SHA1:
既然是练习,SHA1的实际值应该就比较简单,找了个SHA1的网站,把那些hash挨个试了一下,发现nick这个有结果:
接下来就容易多了,先是到/admin/登录:
虽然在这里没什么权限,登录的主要目的是webshell,所以来到/dev/shell再看,已经可以用了,不过能用的命令有限:
但是我发现用就行了,也就是,就能执行了:
而且还发现django这个用户在sudo group内,不过我不知道django的密码,于是还是先搞个reverse shell再说,发现wget是有的:
先用msfvenom生成个reverse shell的payload:
然后用web shell吧它传过去:
然而现实很骨感,wget用不了:
接着,就试了试一句话reverse shell,结果也是跑偏的,于是只能老老实实接着找信息。
先是在bulldog/settings.py里找到了个secret key,不知道什么用:
接着发现了一个note:
好像都没什么用……看了一眼站点的webshell的python代码:
这么看来,好像是会check命令的输出,可能有连续输出的命令就会执行不了,就像wget。因此,这次试试wget后台执行呢?
值得庆幸,没报错,东西也传过去了,接下来就是执行了:
这就搞到reverse shell了,然后就是提权了。
祭出linuxprivchecker.py,这个在GitHub上能找到,能输出很多必要的信息,比如装了什么软件,有什么进程,哪些文件夹是可写的,有哪些定时任务,等等,真的是成吨的信息……这次比较特别的是runAV这个定时任务:
看一下内容发现是每分钟执行一次,而且还是以root的身份。
这意思是每分钟执行一次这个python脚本,后来看到这个脚本是可写的,这么一来提权就简单多了。
因为本来也是空的,所以直接加东西也可以了:
这个one-word reverse shell比较方便,pentestmonkey都有总结。
等了一分钟之后,root的reverse shell就出现了,此VM也就告一段落了:
还有一种方法?
领取专属 10元无门槛券
私享最新 技术干货