D011.密码攻击-在线暴力破解

密码攻击

密码攻击(Password Attack)是攻击者试图通过多种手段获取、破解或绕过身份认证系统中的密码保护机制,进而非法访问系统、账户或敏感数据的一类网络攻击行为。

按攻击实施环境分类

(一)、在线攻击 (Online Attack)

在线攻击是指攻击者必须通过目标系统的身份认证接口,对用户名和密码进行实时提交与验证的一类攻击方式。在这种攻击中,每一次密码尝试都需要由目标系统的认证机制进行判断,因此攻击过程需要持续与目标系统保持网络交互。其特点是:

  • 依赖认证系统验证: 每次密码尝试都必须提交给目标系统进行验证。
  • 需要实时连接:攻击者必须保持与目标系统的网络连接才能执行攻击。
  • 容易被检测:大量的异常连接活动容易引起网络安全设备或者管理员的注意,触发警报或防御响应。

generated_image_bd4e84d4-4634-4a67-bff9-c8c62741141c

(二)、离线攻击 (Offline Attack)

离线攻击是指攻击者在获取到与密码相关的数据(如密码哈希、加密凭证等)后,通过自行计算和比对的方式破解密码,而无需通过目标系统的认证机制进行验证的一类攻击方式。在破解过程中,攻击者可以独立进行密码尝试,不需要与目标系统保持实时交互。

特点:

  • 需要获取敏感数据:需要已经获得系统中的密码哈希或其他敏感数据(如通过管理权限获取到密码哈希文件)。
  • 不依赖认证系统:密码验证过程由攻击者自行计算完成。
  • 无需实时网络连接:获取数据后即可在任意环境中进行破解。
  • 计算资源密集型:可以利用强大的计算设备或分布式计算能力来加速破解过程。
  • 不受速率限制:不像在线攻击那样受到目标系统登录尝试次数或频率的限制。破解速度主要取决于攻击者的计算能力。

C:\Users\amtf\Downloads\generated_image_0701e859-52ea-4d60-a922-5aada2bec453.png

按攻击方法分类

(一)、暴力破解(Brute Force Attack)

原理:攻击者尝试所有可能的密码组合,直到找到正确的密码。

特点:适用于短密码或简单密码。

计算量大,耗时长,尤其是面对复杂密码时。

(二)、字典攻击(Dictionary Attack)

原理:攻击者使用预先编制的密码字典(包含常见密码、短语和词汇)进行尝试。

特点:比暴力破解更高效,因为许多用户倾向于使用简单、常见的密码。

依赖于密码字典的质量。

(三)、彩虹表攻击(Rainbow Table Attack)

原理:攻击者使用预先计算的哈希表(彩虹表)来快速破解密码哈希值。

特点:适用于破解使用弱哈希算法(如MD5、SHA-1)存储的密码。

需要大量存储空间来存储彩虹表。

(四)、中间人攻击 (Man-in-the-Middle Attack, MITM)

原理:攻击者秘密地插入到两个通信方之间的对话或事务中。攻击者可以监听、拦截并可能篡改双方之间的通信,而通信的双方通常并不知晓第三方的存在。

特点:影响广泛,不仅限于窃取密码,还可以涉及会话劫持、数据篡改等多种恶意行为。

需要特定条件:通常需要攻击者位于同一网络段或能够控制路由路径。

(五)、社会工程学攻击(Social Engineering Attack)

原理:攻击者通过欺骗手段(如钓鱼邮件、电话诈骗)获取用户的密码。

特点:依赖于人的心理弱点,而不是技术漏洞。

通常需要精心设计的欺骗手段。

(六)、侧信道攻击(Channel Attack)

原理:通过分析系统在运行过程中泄露的额外信息来进行的攻击。这些信息不是通信内容本身,而是由计算过程产生的副产品,如功耗模式、电磁发射、运行时间等。通过这些额外信息,推断出密钥或其他敏感数据。

特点:

复杂性高:高度专业化,需要对目标系统有深入了解和技术专长。

难以检测:因为这些攻击利用的是系统设计中不可避免的物理特性。受害者往往难以察觉此类攻击的发生。

密码攻击1.drawio

密码破解工具

在 Kali Linux 中,在线密码破解工具有很多,其中最常用的两款分别是 Hydra 和 Medusa。

Hydra(九头蛇) 与 Medusa(美杜莎) 都是密码破解领域中非常知名的工具,它们可以针对多种网络服务的账号和密码进行字典攻击或暴力破解。

Medusa 的最新稳定版本为 v2.2,发布于 2015 年 11 月 24 日。在此之后,该项目长期没有新的稳定版本发布,直到 2024 年 4 月 才推出 2.3_rc1 版本。其中 RC 是 Release Candidate(发行候选版)的缩写,表示接近正式发布、用于测试的版本。

相比之下,Hydra 的更新频率更高。目前 Hydra 的最新版本为 v9.6,发布于 2025 年 9 月,该工具被广泛集成在 Kali Linux、Parrot OS 等渗透测试发行版中。

Hydra目前支持破解的服务:

  • Asterisk, AFP, Cisco AAA, Cisco auth, Cisco enable, CVS, Firebird, FTP,
  • HTTP-FORM-GET, HTTP-FORM-POST, HTTP-GET, HTTP-HEAD, HTTP-POST, HTTP-PROXY,
  • HTTPS-FORM-GET, HTTPS-FORM-POST, HTTPS-GET, HTTPS-HEAD, HTTPS-POST,
  • HTTP-Proxy, ICQ, IMAP, IRC, LDAP, MEMCACHED, MONGODB, MS-SQL, MYSQL, NCP, NNTP, Oracle Listener,
  • Oracle SID, Oracle, PC-Anywhere, PCNFS, POP3, POSTGRES, Radmin, RDP, Rexec, Rlogin,
  • Rsh, RTSP, SAP/R3, SIP, SMB, SMTP, SMTP Enum, SNMP v1+v2+v3, SOCKS5,
  • SSH (v1 and v2), SSHKEY, Subversion, Teamspeak (TS2), Telnet, VMware-Auth,
  • VNC and XMPP.

Hydra的基本命令结构:

hydra [选项] [目标主机] [服务] [账户/密码选项]

常用参数说明:

|
参数
|
说明
|
| — | — |
|
-R
|
从上一次中断的位置继续破解
|
|
-s PORT
|
指定目标服务端口(当服务使用非默认端口时)
|
|
-l LOGIN
|
指定单个用户名进行破解
|
|
-L FILE
|
指定用户名列表文件(用户名词典)
|
|
-p PASS
|
指定单个密码进行尝试(较少使用)
|
|
-P FILE
|
指定密码字典文件
|
|
-e ns
|
额外尝试选项:n 表示尝试空密码,s 表示尝试用户名作为密码
|
|
-f
|
当找到第一组有效用户名和密码时停止破解
|
|
-t TASKS
|
指定并发线程数,默认值为 16
|
|
-w TIME
|
设置连接超时时间(单位:秒),默认 30 秒
|
|
-v / -V
|
显示详细输出信息
|
|
-o FILE
|
将破解结果保存到指定文件
|
|
server
|
目标主机 IP 地址或域名
|
|
service
|
指定需要攻击的服务名称
|

使用示例:

1. SSH 服务密码破解

hydra -l 用户名 -P 密码字典 -t 线程数 -vV -e ns 目标IP ssh

2、ftp服务密码破解
hydra 目标IP ftp -l 用户名 -P 密码字典 -t 线程数(默认16) -vV

使用Hydra对windows 2012文件共享进行弱口令破解

实验环境:Windows 2012,Kali Linux

windows 2012环境配置:

  1. 在“网络和共享中心”里,“启用文件和打印机共享”(启用后防火墙会放行访问文件共享的端口的流量)。
  2. 启用后,在另一台电脑上通过\\192.168.2.193进行访问测试,能出现要求输入账户验证的窗口即为启用成功。
  3. 安全策略里,禁用账户锁定。
案例任务1:
  1. 了解 Hydra的用法(搜索资料,或者使用AI,或者查看Hydra的帮助信息)。
  2. 使用Hydra,通过文件共享服务,对windows 2012的administrator用户弱口令情况进行破解。

提示:

  • windows文件共享服务对应的协议是smb。
  • 通常暴力破解耗费的时间太长,不适合课堂练习,因此使用密码字典文件进行破解。kali linux上的默认字典文件在/usr/share/wordlists/目录下,其中metasploit/common_roots.txt这个字典有4000多条,包含了实验环境的p@ssw0rd这个密码,适合课堂使用。
  • 使用AI时,注意构造好提示词(背景,任务,输出结果)
AI解决实验中的错误

遇到错误后,个人努力以后,解决不了的,可以截图发给AI进行解决。

AI第一次分析后,认为是服务原因。但服务是正常的,没有问题。

让AI把图片中的命令提取出来。单独对命令分析,这样更聚焦。

此时,AI就检查到一个错误,文件名写错了,多了空格。(正确的应该是下划线)。改正这个错误后,再次把命令发给AI检测,会检测到第2个错误,应该使用大写的P。

python编程对windows 2012进行弱口令破解

Python 语言因其丰富的库支持和简洁的语法,使得编程工作更加高效便捷。编写程序利用SMB服务对密码进行破解时,需要注意目标系统上的SMB协议版本。

Windows 2012上默认启用了SMBv1协议, 但SMBv1存在严重的安全漏洞(如 EternalBlue)。因此,在较新的 Windows Server 版本中,SMBv1 协议通常默认不再安装或被禁用。

查阅相关资料,impacket 库提供了对 SMB(Server Message Block)协议各版本的全面支持,包括 SMBv1、SMBv2 和 SMBv3,这使得它成为完成诸如验证弱口令等任务的理想选择。

impacket 是一个用于处理各种网络协议的 Python 库,特别适用于执行网络安全测试和渗透测试。它由 Core Security 开发,并被广泛应用于安全研究和评估。impacket 提供了一组强大的工具和模块,可以用来模拟客户端和服务端的行为,进行身份验证、数据传输等操作。

  1. SMB 协议支持:

impacket 提供了全面的 SMBv1、SMBv2 和 SMBv3 支持,这对于与 Windows 文件共享、打印服务等交互至关重要。

  1. NTLM 和 Kerberos 认证:

它实现了 NTLM (NT LAN Manager) 和 Kerberos 身份验证机制,这两种认证方式广泛应用于 Windows 网络环境中。

  1. PSEXEC 和 WMI:

psexec.py 工具允许通过 SMB 协议远程执行命令,类似于微软的 PsExec 工具。

wmiexec.py 则是通过 Windows Management Instrumentation (WMI) 进行远程命令执行的工具。

  1. LDAP 和 Active Directory:

impacket 包含了处理 LDAP 查询的功能,这对于操作和测试 Active Directory 环境非常重要。

值得一提的是,尽管impacket是一个通用的网络协议库,支持多种操作系统和服务。然而,由于其强大的 SMB(Server Message Block)协议支持和其他与 Microsoft 技术相关的功能,impacket 在对 Windows 环境的安全评估和渗透测试中显得尤为有用。在对内网域服务器的渗透测试过程中,也会经常出现impacket的身影。

案例任务2

实验环境:Windows 2012,Kali Linux

  1. 在windows 2012上禁用smb v1协议,启用smb v2协议。(模拟新版本的windows smb场景)
  2. 使用AI(推荐通义千问,DeepSeek),编写python程序,利用impacket库 ,通过smb协议对windows 2012的administrator用户弱口令情况进行破解。

提示:

  • 需要事先准备一个弱口令字典文件,可以下载Kali Linux上的字典文件。
  • 可以要求在程序代码里指定需要的参数,也可以在程序运行时,在命令行指定需要的参数。
  • 需要安装impacket库,安装时,windows defender杀毒软件可能会报警,阻止impacket库的安装。需要把python所在的目录排除。
  • AI给的程序可能会出错,这时要详细描述背景信息,并将程序运行的错误发给AI,让其修改程序。

例如,程序运行后,提示未找到正确的密码。而经过人工检查,字典文件里有正确的密码。 这说明程序代码有问题,需要让AI修改代码。

这时可以这样对话,要指导AI从哪个角度去解决问题,否则AI会从其他角度去分析,偏离正确的方向。

核心代码示例:

效果示例:

WP:

案例任务1

hydra -l administrator -P /usr/share/wordlists/metasploit/common_roots.txt 192.168.2.140 smb

案例任务2

REF:

GitHub - vanhauser-thc/thc-hydra: hydra

GitHub - jmk-foofus/medusa: Medusa is a speedy, parallel, and modular, login brute-forcer.

Foofus Networking Services - Medusa::SMBNT

crackmapexec终极指南 | 0xfd’s blog

验证windows server 2022上的用户弱口令破解(不做)

实验环境:Windows 2022

  1. 在“网络和共享中心”里,“启用文件和打印机共享”(启用后防火墙会放行访问文件共享的端口的流量)。启用后,在另一台电脑上通过\\192.168.2.134访问测试,能出现要求输入账户验证的窗口即为启用成功。
  2. 安全策略里,禁用账户锁定。

使用hydra工具进行弱口令验证,会发现失败。

经过查询资料,得知hydra只支持SMBv1,默认不支持新的SMBv2协议。而在较新的Windows Server版本中,默认情况下不再安装SMBv1协议。(尽管网上有第三方资料,重新编译hydra使其支持SMBv2,https://github.com/vanhauser-thc/thc-hydra/issues/197,但hydra官方的版本至今不支持SMBv2及以后的协议)。

使用 PowerShell 查询支持的 SMB 版本情况

可以看到,在windows 2022上,默认并不支持SMBv1协议。因此,为了验证新版本windows server上的口令,需要重要另找方法。

使用CrackMapExec实现

CrackMapExec(CME)是一款后渗透利用工具,旨在帮助自动化大型活动目录(AD)网络的安全评估任务。其创建者@byt3bl33d3r指出,该工具的设计理念是“利用AD内置的功能和协议来实现其目的,并能够绕过大多数终端防护、入侵检测系统(IDS)和入侵防御系统(IPS)”。

尽管CME主要用于进攻性安全测试,例如红队演练中模拟攻击者的行为,但蓝队也可以利用CME来进行防御性的安全审查。通过它,可以评估账户权限、识别潜在的配置错误,并模拟攻击场景以加强组织的安全态势。

CrackMapExec支持的协议有:rdp,mssql,ssh,winrm,ftp,ldap,smb。

当身份验证成功时,CrackMapExec(CME)会在输出中添加‘(Pwn3d!)’标识,明确指出所使用的凭据集对目标主机拥有访问权限。

案例任务:
  1. 了解 crackmapexec的用法。
  • 查看CrackMapExec对smb协议的帮助信息。 crackmapexec smb -h
  • 搜索资料,或者使用AI。
  1. 使用CrackMapExec,通过smb协议对windows 2022的administrator用户弱口令情况进行验证。

posted @   putiji  阅读(0)  评论(0)  编辑  [收藏](javascript:void(0))  举报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值