::: {.container}
::: {.post}
::: {.show-content}
靶机下载地址:扫一扫,linux系统,发现只开了80、443,进去看一看,web页面是一个模拟linux终端的页面
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
如果输入指定的命令,则会出现一段视频,或者一些文字,(⊙﹏⊙)这个靶机到底想传达什么。
如果输入以外的命令,显示command not recongnized...
查看主页面的源代码,发现两个注释,什么东东?
1.you are not alone.你并不孤独
2.如果是ie9浏览器,显示,你使用一个过时的浏览器,请到https://browsehappy.com/升级你的浏览器,提升浏览体验。
用paros扫描,没有发现明显的漏洞。
发现目录/audio , /css ,/js ,用浏览器访问,显示403 forbidden
看来,要看看提供的六个命令。依次输入了这些命令,了解到,这个服务器是一个组织fsociety的,这个组织貌似是反||美的一个z-f组织,最后一个命令join会要求你提供一个邮箱,还说会跟你联系。。
然而如何突破防线,没有任何思路。
这时候注意到,浏览器是这样,http://192.168.1.116/wakeup,说明是通过get方式请求页面的。
于是不在终端输入,而直接在url上输入。输入任何东西,都会跳转到下图所示页面,而且显示xx(你输入的字符)404not
found.
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
了解到,该网站是用wordpress搭建的,yoxi~
扫描下后台,用的我写的脚本
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
em?用浏览器打开,然后页面就一直抽搐。。
wget http://192.168.1.116/admin/index.html
firefox index.html
浏览器打开后,发现是白页,查看源代码,和http://192.168.1.116
的源代码并没有什么差别,不过又注意到了原先没注意的一条代码。
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
难道要伪造IP——208.185.115.6,才能访问index.html?
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
然而,并没有什么区别,响应还是那个页面。。
访问/admin页面,显示301 Moved
Permanently永久重定向?页面显示重定向的页面是/admin/,打开一看,又是老页面。
好吧,放弃该死的后台寻找,看看writeup
wpscan --url 192.168.1.116 --enumerate p
wpscan介绍:用wordpress专用扫描器,,
http://192.168.1.116/robots.txt
http://192.168.1.116/wp-content/plugins/google-analytics-for-wordpress/readme.txt
http://192.168.1.116/wp-content/plugins/contact-form-7/
...............
扫描出了很多目录,而且获得了一个key(总共有三个,靶机下载介绍过)。而且扫描器指出,可能有存储型XSS。
终于找到一个突破点了,不容易啊。。。对xss不熟悉的同学,跟我复习一下好了。
xss,cross-site-scipt跨站脚本攻击:web提供了输入输出的地方(这是正常功能对吧?),如果没有过滤,就可以输入脚本。
如果脚本可以永久存储,就叫存储型xss(打击面为所有访问网站的客户端),若不能,就叫反射型xss。
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
并没有弹框
:::
:::
呃。。不会了
nikto扫描器试试,还挺给力的,找到后台。。
nikto -h http://192.168.1.116
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
wget http://192.168.1.116/fsocity.dic > fsociety.txt
这个目录是robots.txt指出来的
用来爆破后台,作为用户名字典。参考文献
burp爆破,扫描一段时间后,通常错误页面Length长度为4073,然后找到一个4124的,虽然没有找到用户名和密码,但是elliot这个用户名是存在的。。
吐血,居然有登陆表单的错误信息不是”无效的用户名或密码”,而是”你输入的xx用户名的密码是错的哦~“
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
然后就换一下payload,用户名设置为elliot,密码设置为一个txt字典。
遗憾的是,并没有爆破出来,没有好的字典吧。。
呃,再试试fsociety.txt 作为密码字典,有近86万条,扫了好久。。
方法二:用wpscan爆破,wpscan --url http://192.168.1.116/ --wordlist
/root/fs.txt --username elliot
爆破结果,密码是ER28-0652
尝试获取webshell
1.直接上传php脚本,有限制。
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
2.用msfvenom生成php载荷,参考这个实验中的方式。
成功上传攻击载荷。
但是访问http://192.168.1.116/wp-content/uploads/2018/02/xxd.gif
本地没有获得metapreter。
(猜测)反弹metapreter失败了。。
这是为什么,,难道因为没有文件包含就执行不了么,不可能吧。
猜测:本地文件包含是在服务端,运行payload。而访问这个链接,服务端直接将gif文件发送过来,浏览器打开失败(本来就不是真的图片)。所以没有达到运行的目的。
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
3.F12-响应头,获得服务器php版本,PHP/5.5.29。这个版本有点高啊,不能截断上传了。
抱着死猫碰上瞎耗子的心情,试了试,果然不能。试了试该文件名后缀为.jpg,无效。
4.下载一个php-reverse-shell,然后修改ip。既然不能上传新的php文件,那么修改现有的php文件。
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
只要运行一下错误页面,就获得了一个shell。
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
总结:
本次突破防线,利用的是后台提示用户名和密码太”贴心”。
如果提示”登陆失败,错误的用户名或密码。”
再加上一个强密码。(本次爆破成功,密码强度还可以,不算弱密码)爆破的成功率可以忽略不计。
学习了wpscan、nikto扫描。
不要依赖单一的工具。。
学习了一种新的获取webshell的思路
前景提要:上次通过爆破后台,修改404.php获得一个webshell。现在学习提权。
id、whoami、hostname
信息:daemon用户,uid=1说明是系统用户,主机名linux
cd home/robot
信息:获得另一个key(2/3),和passwd文件,文件内容:
robot:c3fcd3d76192e4007dfb496cca67e13b
MD5解码:abcdefghijklmnopqrstuvwxyz
(⊙﹏⊙)这个明显是偏CTF,而不是模拟真实渗透环境啊。
su robot/abcdefghijklmnopqrstuvwxyz
寻找有SUID权限的文件。
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
于是通过nmap提权。
查看nmap版本:/usr/local/bin/nmap --version 或者 nmap -V
老版本的nmap(2.02-5.21)有一个交互模式,使得用户可以执行shell。
nmap --interactive
!sh
pwd
cd root
ls
获得第三个key.
:::
:::
:::