穷举就是枚举的意思,在互联网的今天,需要使用某种的服务,大多数都需要口令登录,这个口令就是密码,密码的强度分为,弱口令 、中度口令、强度口令。如果登录的服务为弱口令,那会存在很大的安全隐患,黑客通过穷举弱口令对服务进行攻击,很容易就得到登录密码。得到密码之后就能登录服务,进行其他危害较大得操作。黑客也能通过对用户得信息整理,组合密码进行穷举攻击。例如根据用户的生日号码,出身年月日和姓名进行口令组合,再对其服务进行穷举。
服务 | 端口 |
---|---|
web | 80 |
mysql | 3306 |
Microsoft SQL Server | 1433 |
https | 443 |
ftp | 21 |
ssh | 22 |
dns | 53 |
tomcat | 8080 |
redis | 6379 |
rsync | 873 |
PostgreSQL | 5432 |
cobaltstrike teamserver | 50050 |
smtp | 25 |
pop3 | 110 |
远程终端 rdp | 3389 |
smb | 445 |
rpc | 135 |
imap | 143 |
NetBIOS | 139 |
SMTPS | 465 |
POP3S | 995 |
mogodb | 27018 |
memcached | 11211 |
telnet | 23 |
oracle | 1521 |
brupsuite 是一个安全测试套件, 提供了众多的测试功能。在火狐安装插件
FoxyProxy 填写 127.0.0.1 8080 保存为 burp 开启代理。
截取包之后发送到 intruder 在密码设置变量
选择 payloads 选择要穷举的字典
设置攻击后 根据返回的状态码 status 或者 length 网页长度对其进行判断。这里得到正确得密码是 123456
根据状态码 一般测试正确的是现实 302 状态码 另外就是响应网页的长度
灰帽子对网站攻破后,一般会留后门方便对其网站进行非法管理。后门的程序语音包括 asp php .net 这些脚本文件放在网站目录, 一般都采用单密码进行登录。通过扫描获取 webshell 的后门的网址。得到网址后可以对其进行密码穷举。
有的网站后台存在 token 值,这个 token 通俗的名字叫令牌,每次刷新页面都会随机变化。提交请求时必须携带这个 token 值,可以利用这点避免后台进行直接穷举和防止 csrf 攻击。
打开 burpsuite 刷新页面 接着 forward 放行这个数据包
来到 Project options --> Session-- >add 添加宏
点击之后选择网页历史选择提交之后有 token 的页面。
添加宏
选择 value 的值 Parameter name 填写 user_token 这个值一定要相同
这样宏就设置成功了。接着穷举测试 抓包 设置变量 添加密码字典。
开始攻击 可以看到每次的 token 值都不一样
、
密码是 password
每次访问页面这个 user_token 都会变化导致不能重复提交。
验证原理每次页面生成user_token 存在seesion 里面每次登录用session 里取出来然后验证如果验证成功 就进行密码匹配。如果验证不成功就输出 csrf 错误。
脚本源码
#coding:utf-8
import requests
import re
url = "http://www.c3moon.com/login.php"
def login(password):
session = requests.session()
req=session.get(url)
user_token=re.search("[a-z0-9]{32}",req.text).group(0) #32md5
data={"username":"admin","password":password,"Login":"Login",'user_token':user_token}
req=session.post(url=url,data=data,allow_redirects=True)
html = req.text
return html
with open('top1000.txt') as p:
passlist =p.readlines()
p.close()
for line in passlist:
line = line.strip("\n")
print(line)
if 'File Upload' in login(line):
print( "[* 密码 is %s *]" % line )
break
网站后台或者有登录的地方都可能存在验证码验证,验证码的作用 不少网站为了防止用户利用机器人自动注册、登录、灌水,都会采用验证码技术,所谓的验证码,就是将一串随机产生的数字和符号,生成一幅图片,在图像上加上干扰像素(防止 orc),要用户用肉眼识别其中的验证码信息,输入表单提交网站验证。验证后使用网站某个功能.但是如果验证码逻辑编写不好会存在被绕过的风险。
有些网站如果网站不存在 cookie 就不会验证 验证码
这里cookie即与这里相对应:
这里即可以看到发下的验证码:GUTF。
这里先对比验证码,再对比账号密码,我们这里再次发送:
这里我们回到虚拟机查看验证码:
可以看到这里验证码没有,肯定验证不成功。
这里我们将验证码删掉,可以看到依然是验证码失效的状态。
下面我们进行删除 PHPSESSION 信息 验证码就不进行验证了。
接着对密码进行穷举
破解密码成功,登录后台。
在登录提交的时候进行验证码验证 不管密码是否正确,都要销毁验证码。不然验证码可复用确定的验证码
验证码干扰像素太少很容易就会被一些工具识别出来。如图片提取文字工具。
登录框存在验证码 这个验证码可被识别的情况下 就会被穷举密码。
将 burpsuite 的包放进验证码识别工具 设置字典和验证码参数
接着选择爆破栏 选择错误的验证码关键词 设置线程 点击 start 即可 可以选择再次爆破 验证准确率会提高。
最后查看响应长度 获取正确的密码。
phpmyadmin 是 mysql 的一个 web 管理工具,可以通过这个工具穷举 mysql 用户的账号和密码。
一句话后门可以使用 burpsuite 通用穷举方法穷举密码。
抓包 将 cmd 设置成变量 添加字典即可
关键字
asp
qweasd123=execute("response.clear:response.write(""passwordright""):response.end")
php
echo "password right";
aspx qweasd123=Response.Write("moonsec"); 密码是 qweasd123
cheetah 是针对一句话后门的穷举工具
python cheetah.py -u http://orz/orz.php
python cheetah.py -u http://orz/orz.jsp -r post -n 1000 -v
python cheetah.py -u http://orz/orz.asp -r get -c -p data/pwd.list
python cheetah.py -u http://orz/orz -w aspx -s iis -n 1000
python cheetah.py -b url.list -c -p pwd1.list pwd2.list -v
cheetah.py -u http://www.c1moon.com/a.php -n 1000 -v -p data/pwd.list
cheetah.py -u http://www.c1moon.com/a.asp -n 1000 -v -p data/pwd.list
cheetah.py -u http://www.c1moon.com/a.aspx -n 1000 -v -p data/pwd.list
-u 后门地址
-r 提交的方法 一般是 post
-n 一次提交密码的数量
-v 详细信息
-p 字典位置例子
python cheetah.py -u http://www.c1moon.com/cmd.php -r post -n 1000 -v
wordpress 是知名的博客系统,在互联网上的占有量很大,所以一定要知道这套系统的弱口令穷举的方法。
https://wpscan.com
首先到这个网站注册账号和密码注册后获取 token
自动找账号信息 然后登录穷举
wpscan --url http://www.redteam.com/ -e u -P /home/kali/top100password.txt --api-token QYbHH6fbNDIi6Op3MQuvg85fD4fhNiB4RKJsVOMVp6w
手动收集 wordpress 用户信息 访问连接获取用户信息
http://www.vtmoon1.com/wp-json/wp/v2/users
wpscan --url http://www.vtmoon1.com -U moonsec -P /home/kali/top1000.txt