# Wireshark黑客发现之旅（4）——暴力破解

Author: 乌云历史资料库 (@wooyun_archive)
Published: 2015-08-10T02:33:00Z
Canonical: https://wepostx.com/topics/957

> 乌云历史资料归档
>
> **原始作者：** 聚锋实验室
> **原始编号：** superkieran-wooyundrops:691
> **原始发布时间：** 2015-08-10 10:33
> **声明：内容仅用于技术研究和个人使用，版权归 wooyun.org。**

---

作者：Mr.Right、K0r4dji
申明：文中提到的攻击方式仅为曝光、打击恶意网络攻击行为，切勿模仿，否则后果自负。

# 一、个人观点

暴力破解，即用暴力穷举的方式大量尝试性地猜破密码。猜破密码一般有3种方式：
1、排列组合式：首先列出密码组合的可能性，如数字、大写字母、小写字母、特殊字符等；按密码长度从1位、2位……逐渐猜试。当然这种方法需要高性能的破解算法和CPU/GPU做支持。
2、字典破解：大多攻击者并没有高性能的破解算法和CPU/GPU，为节省时间和提高效率，利用社会工程学或其它方式建立破译字典，用字典中存在的用户名、密码进行猜破。
3、排列组合+字典破解相结合。 理论上，只要拥有性能足够强的计算机和足够长的时间，大多密码均可以破解出来。
暴力破解一般有两种应用场景：
1、攻击之前，尝试破解一下用户是否存在弱口令或有规律的口令；如果有，那么对整个攻击将起到事半功倍的作用。
2、大量攻击之后，实在找不出用户网络系统中的漏洞或薄弱环节，那么只有上暴力破解，期待得到弱口令或有规律的口令。 所以，用户特别是管理员设置弱密码或有规律的密码是非常危险的，有可能成为黑客攻击的“敲门砖”或“最后一根救命稻草”。
暴力破解应用范围非常广，可以说只要需要登录的入口均可以采用暴力破解进行攻击。应用层面如：网页、邮件、FTP服务、Telnet服务等，协议层面如：HTTP、HTTPS、POP3、POP3S、IMAP、IMAPS、SMTP、SMTPS、FTP、TELNET、RDP、QQ、MSN等等。本文仅列举部分常见协议，其它协议情况类似。

# 二、正常登录状态

要从通信数据层面识别暴力破解攻击，首先我们得清楚各种协议正常登录的数据格式。下面我们来认识一下POP3/SMTP/IMAP/HTTP/HTTPS/RDP协议认证过程的常见数据格式，根据服务器类型的不同格式略微不同。（说明：本章使用服务器环境为Exchange2003和WampServer）

### 1、POP3协议

![原文图片](/media/2016/06/acc6a1d6fdd12eee0521dba32368c185)

```text
+OK Microsoft Exchange Server 2003 POP3 .......... 6.5.6944.0 (a-ba21a05129e24.test.org) ........ //服务器准备就绪 CAPA //用于取得此服务器的功能选项清单 +OK Capability list follows TOP USER PIPELINING EXPIRE NEVER UIDL . USER [email protected] //与 POP3 Server 送出帐户名 +OK PASS [email protected] //与 POP3 Server 送出密码 +OK User successfully logged on. //认证成功 STAT +OK 14 21568 QUIT +OK Microsoft Exchange Server 2003 POP3 .......... 6.5.6944.0 ..........
```

### 2、SMTP协议

![原文图片](/media/2016/06/49be828c4e09fd3dafd9ef8bb081cd9f)

```text
220 a-ba21a05129e24.test.org Microsoft ESMTP MAIL Service, Version: 6.0.3790.3959 ready at Thu, 6 Aug 2015 11:10:17 +0800 //服务就绪 EHLO Mr.RightPC //主机名 250-a-ba21a05129e24.test.org Hello [192.1.14.228] …… 250 OK AUTH LOGIN //认证开始 334 VXNlcm5hbWU6 // Username: anVmZW5nMDAxQHRlc3Qub3Jn //输入用户名的base64编码 334 UGFzc3dvcmQ6 // Password: MXFhekBXU1g= //输入密码的base64编码 235 2.7.0 Authentication successful. //认证成功
```

### 3、IMAP协议

![原文图片](/media/2016/06/ff456cd6894f821d58ec31b07eb4d55b)

```text
* OK Microsoft Exchange Server 2003 IMAP4rev1 .......... 6.5.6944.0 (a-ba21a05129e24.test.org) ........ //IMAP服务就绪 bf8p CAPABILITY * CAPABILITY IMAP4 IMAP4rev1 IDLE LOGIN-REFERRALS MAILBOX-REFERRALS NAMESPACE LITERAL+ UIDPLUS CHILDREN bf8p OK CAPABILITY completed. s3yg LOGIN "jufeng002" " [email protected] " //输入用户名:jufeng002，密码: [email protected] s3yg OK LOGIN completed. //认证成功
```

### 4、HTTP协议
HTTP协议认证格式较多，这里仅列一种作为参考。

![原文图片](/media/2016/06/b3569a1bb183ba52449bbf16030bab96)

```text
Referer: http://192.1.14.199:8080/login.html //登录地址 uname=jufeng001&upass=1qaz%40WSXHTTP/1.1 200 OK … <script>alert('OK')</script> //输入用户名jufeng001，密码1qaz%40WSX，Web服务器返回HTTP/1.1 200和弹出对话框“OK”表示认证成功。
```

### 5、HTTPS协议
HTTPS协议为加密协议，从数据很难判断认证是否成功，只能根据数据头部结合社会工程学才能判断。如认证后有无查看网页、邮件的步骤，如有，就会产生加密数据。

![原文图片](/media/2016/06/5442340e22f0727114dffcfa766e0b84)

从数据中可看出HTTPS头部有认证协商的过程，认证后有大量加密数据，基本可判断认证成功。SSL认证过程见下图：

![原文图片](/media/2016/06/b273656d551f36ec0150d4122978212f)

### 6、RDP协议
RDP为Windows远程控制协议,采用TCP3389端口。本版本采用的加密算法为：128-bit RC4；红线内为登陆认证过程，后为登陆成功的操作数据。

![原文图片](/media/2016/06/9d2788fd988b844450e32172b4bb76b6)

# 三、识别暴力破解

从暴力破解的原理可知，攻击中会产生大量猜试错误的口令。一般攻击者在爆破前会通过其他途径搜集或猜测用户的一些用户名，相关的字典和爆破算法，以提高效率。

### 1、POP3爆破

![原文图片](/media/2016/06/f591ca5a31ebe3487433dc116a14cca9)

从图中可发现，攻击者不断输入用户名jufeng001，不同的密码进行尝试，服务器也大量报错：-ERR Logon failure: unknown user name or bad password。Follow TCPStream可以看得更清楚。

![原文图片](/media/2016/06/8d872e835d38a408a135746c9dfaaaa2)

提取所有信息，就可以知道攻击者猜破了哪些用户名、哪些口令。

### 2、SMTP爆破
SMTP协议往往是用户邮件安全管理的一个缺口，所以多被黑客利用。

![原文图片](/media/2016/06/894dd587105f07478d89e430fefa50c5)

从图中可发现，攻击者不断输入用户名jufeng001，不同的密码进行尝试，服务器也大量报错：535 5.7.3 Authentication unsuccessful。Follow TCPStream：

![原文图片](/media/2016/06/34f62a5a97356da627ceabd9141ad7bb)

### 3、IMAP爆破
从下面两张图可以看出，IMAP爆破会不断重复LOGIN "用户名" "密码"，以及登录失败的报错：NO Logon failure: unknown user name or bad password。

![原文图片](/media/2016/06/ac71856e3c008e392759dbf761844690)

![原文图片](/media/2016/06/b1d2043e1682656a07d485b5e2aa0a16)

### 4.HTTP爆破
由于大量Web服务器的存在，针对HTTP的爆破行为也可以说是最多的，研究爆破方法和绕过机制的人也比较多。这里仅用最简单的Web实验环境做介绍。
首先打开数据可以看到，短时间内出现大量登录页面的请求包。

![原文图片](/media/2016/06/3cbc8972fe52b8bd6192fb32bb34427d)

提取Follow TCPStream可以看见输入用户名、密码情况，服务器返回值不再是登录成功的“OK”，而是登录错误的“…………”。

![原文图片](/media/2016/06/47102e28ff78b74426ff46c5ebedf0cb)

以上的“…………”并不是返回无内容，这是由于Wireshark无法识别该中文的编码的原因，我们可以点击Hex Dump看一下十六进制编码的内容。

![原文图片](/media/2016/06/45ffea9bec620769f6fbc340bbfcd4ea)

将提取Follow TCPStream的信息另存为1.html，用浏览器打开。

![原文图片](/media/2016/06/b45b0b8a3af68138cd891d8d24e5a18d)

### 5.HTTPS爆破
HTTPS包括其它SSL协议的爆破从通信层面监控有一定的难度，因为认证过程加密了，无法知道攻击者使用的用户名、密码以及是否认证成功。但从爆破的原理可知，爆破会出现大量的登录过程，且基本没有认证成功，更不会有登录成功的操作过程。
如图：爆破过程中，不断出现认证过程：“Client Hello”、“Server Hello”等，并未出现登录成功后操作的大量加密数据。

![原文图片](/media/2016/06/820664265ff7923a97a1b83c8c6cfc38)

点击Info可发现，在不到2秒的时间就出现16次认证，基本可以判断为暴力破解。

![原文图片](/media/2016/06/9743aafabf680a5d128337bf8c0642bb)

### 6.RDP爆破
RDP爆破在黑客攻击中应用非常多，一旦破解出登录密码，基本可以控制这台机器。由于RDP协议数据也加密了，对于爆破的识别也有一定的困难，下面介绍另外一种方法快速识别，这种方法同样适用其它协议的爆破。
首先我们统计一下正常登录RDP协议的TCP端口等信息，可以看出正常登录的话，在一定时间内是一组“源端口和目的端口”。

![原文图片](/media/2016/06/4e18c3c39b2c0aa44e83ed273299a262)

再来看一下爆破RDP协议的TCP端口等信息，可以看出短时间内出现大量不同的“源端口和目的端口”，且包数和字节长度基本相同。这就表明出现大量动作基本相同的“短通信”，再结合数据格式就可以确定为暴力破解行为。

![原文图片](/media/2016/06/ce0eb37a0c152f430f23c27f75c71a93)

### 7.多用户同时爆破
为提供命中率，攻击者往往会搜集大量的用户名作为字典同时开展爆破，希望达到“东方不亮西方亮”的效果。这种爆破方法同样很好识别，它的通信原理为：同一个攻击IP同时登录大量不同的用户名、尝试不同的口令、大量的登录失败的报错。
下图为同时对jufeng001、jufeng002、jufeng003、jufeng004等用户开展爆破的截图。

![原文图片](/media/2016/06/b841c6fd19a29d648bbefd0f6567952b)

![原文图片](/media/2016/06/4601e674023b1f189d7c0300e51ff49e)

### 8、如何识别爆破成功
当然，发现爆破攻击行为仅仅是工作的一部分，更重要的是要清楚攻击者到底爆破是否成功，如果成功了会对我们造成什么影响。下面就基于Wireshark来介绍如何发现爆破成功。
（1）首先我们要清楚攻击者爆破的协议，以及该协议登录成功服务器返回值。如下图，为POP3的爆破，从前面的介绍我们知道如果登录成功服务器返回：“+OK User successfully logged on”。

![原文图片](/media/2016/06/da9c1dfe6fa1b89dc59b0cb3bd51e943)

2）在数据中搜索“+OK User successfully logged on”。

![原文图片](/media/2016/06/26a4dbf575236cbd14ed9a14d421dc03)

（3）通过搜索发现确实存在服务器返回的成功登录信息。

![原文图片](/media/2016/06/2b20d8f55c4c7d47755e07c6689b1472)

（4）Follow TCPStream发现攻击者在尝试了大量错误口令后，终于爆破成功：用户名jufeng001，[email protected]

![原文图片](/media/2016/06/02d30106234d3f87a16e53568538f081)

# 四、总结
1、无论是用户还是管理员，我们都要重视弱口令或有规律的口令这个安全问题，不要让安全防范输于细节。
2、验证码机制防范暴力破解仅适用于HTTP/HTTPS协议，无法防范其它协议。
3、理解了暴力破解的通信原理，从通信层面进行监控和阻止就可以实现。
4、重要管理系统的登录权限受到爆破攻击行为较多，登录权限最好绑定管理员常用的IP地址或增加认证机制，不给黑客爆破的机会。

## Replies
