别出心裁的SSH暴力破解工具PuTTY

  • A+

译文声明
本文是翻译文章,文章原作者InfosecMatter ,文章来源:https://www.infosecmatter.com
原文地址:https://www.infosecmatter.com/ssh-login-bruteforcer-using-putty-plink/

前言

这篇博客文章介绍了我们最新研究成果ssh-putty-brute.ps1。该工具可以把著名的用于连接SSH客户端的PuTTY(putty.exe或plink.exe),转变为一个可靠的SSH暴力破解工具。该工具还可以规避任何防病毒或端点防护解决方案。

为什么使用PuTTY进行SSH暴力破解?

事实上,有很多成熟的工具可以进行SSH登录暴力破解工作,如Nmap的ssh-brute NSE脚本,Metasploit的ssh_login scannerTHC Hydra, RedLogin 等等。

但是这些工具存在一个通病,它们早已成为防病毒或端点防护解决方案防控的重点对象。

所以在某些情况下,我们无法使用经典的渗透测试工具或Linux的黑客发行版来进行进行暴力破解攻击,我们需要一个新面孔。

工具适用场景

最近,我们以员工的角度为客户进行了攻击模拟。

测试环境是一个典型的Windows 10环境,但在多个级别上都进行了严格的安全控制。

例如,不能下载或运行任何可疑的文件,甚至连shell都无法生成。

我们设法绕过来一些限制,成功生成了一个shell。但是我们仍然无法使用任何有价值的PowerShell模块。

我们对目标进行了常规的端口扫描,意外在网络上发现了大量的SSH服务器。

我们很自然的产生了破解SSH服务器登录密码的想法,但苦于没有一款合适的工具。我们手上唯一的工具只有PuTTY SSH客户端。但是如果依靠PuTTY来达到目的,显然是不切实际的。

于是,我们有了一个新奇的想法,能不能以某种方式实现PuTTY自动化,并将其用作SSH暴力破解工具呢?

最终我们通过PowsShell脚本达到了目的。

SSH PuTTY bruteforcer

ssh-putty-brute.ps1是对PuTTY SSH客户端的包装。

就地取材,它可以使用图形化的putty.exe客户端或命令行形式的plink.exe

下面,介绍一下该工具的功能:
•使用putty.exe或plink.exe进行攻击
•使用PowerShell编写,不需要额外的模块
•Payload本身无恶意,未被防病毒或端点防护解决方案检测到
•实用而智能的设计:
    •支持单一密码攻击或字典攻击
    •允许跨多个SSH服务器进行密码喷洒
    •如果发生中断,支持恢复
    •攻击时可避免尝试相同的凭据
    •跳过已攻陷的SSH帐户

您可以在我们的InfosecMatter Github存储库中找到该工具。

工具使用

以下是工具使用的详细介绍:
```
import-module .ssh-putty-brute.ps1

Usage:

ssh-putty-brute [-h ip|ips.txt] [-p port] [-u user|users.txt] [-pw pass|pwdlist.txt]

Examples:

ssh-putty-brute -h 10.10.5.11 -p 22 -u root -pw [email protected]
ssh-putty-brute -h 10.10.5.11 -p 22 -u root -pw (Get-Content .pwdlist.txt)
```
让我们看一些实际攻击的例子。

我们使用字典对SSH服务器上的root用户进行暴力攻击,如下图所示:
::: hljs-center

2.png

:::

我们还可以同时对多个SSH服务器执行密码喷洒:
ssh-putty-brute -h (gc .ips.txt) -p 22 -u root -pw [email protected]
::: hljs-center

3.png
:::

我们还可以通过使用字典同时对多个SSH服务器上多个用户进行暴力破解:
ssh-putty-brute -h (gc .ips.txt) -p 22 -u (gc .users.txt) -pw (gc .pwdlist.txt)
::: hljs-center

4.png

:::

工作原理

该工具通过利用PuTTY客户机的各种命令行参数来自动化SSH登录过程。

在默认情况下,工具使用plink.exe。如果找不到它,会使用putty.exe。我们还可以使用命令行参数(-client)来进行指定。

该工具一次执行一次登录尝试,通过观察客户端的回显,尽可能准确判断出此次登录尝试是否成功。

另外,该工具还会将攻击记录保存在当前工作目录中的日志文件中,方便后续的攻击复现,跟踪攻击流程。

在进行攻击之前,该工具会先比对现存的信息。因此,在攻击中该工具不会重复相同的账户密码组合,也不会再攻击已失陷的账户。

这也允许我们在攻击中断时轻松地重新运行攻击。工具将在被中断的地方自动恢复。

结果获取

如果想要查看攻击成功,只需要转到运行攻击的同一目录下,然后键入以下命令:
Get-Content ssh-putty-brute.log | Select-String True
这是一个简单的示例:
::: hljs-center

5.png

:::

我们甚至可以在进行攻击时,随时查看结果。

运行环境和指标

工具需要把putty.exe或plink.exe路径添加进PATH或者放在当前工作目录中。

运行该工具时还需要注意以下几点:

桌面体验感

如果将该工具与图形化的putty.exe一起使用。可能会造成桌面卡顿,影响体验感。

尽管该工具通过隐藏或最小化PuTTY窗口的方式, 但在进行登录时,SSH服务器密钥指纹窗口必须短暂显示,才能被工具接收。不可避免的会影响用户体验。

速度

该工具采用单线程循环的模式进行工作,因此它的速度并不算快。它会逐个地遍历每个账户,2~3秒完成一次工作尝试。

如果您想提高速度,可以运行多个工具实例,测试表明这样做确实可以提高速度。但是不要期望提高很多。

兼容性

该工具已通过以下软件版本的测试:
•Microsoft Windows 10
•PuTTY版本0.68(2017)
•PuTTY版本0.73(2019)
•PowerShell v4
•PowerShell v5

结论

作为一名合格的渗透测试者,我们应该适应各种环境, 利用一切所能利用的。

我们在能力有限且工具集受限的情况下,成功地将PuTTY转变为一种进行暴力登录攻击的工具,为我们所用。

参考文献

https://github.com/InfosecMatter/SSH-PuTTY-login-bruteforcer
https://www.putty.org/

相关推荐: 一把梭哈常见保护机制PIE&&Canary

译文声明 本文是翻译文章,文章原作者Shivam Shrirao ,文章来源:https://www.ret2rop.com 原文地址:https://www.ret2rop.com/2020/05/canary-pie-byte-bruteforce.htm…