以下文档会融合kali官方文档和原作者官方文档
官网:https://github.com/x90skysn3k/brutespray
简介:
brutespray--基于nmap扫描结果的端口爆破工具
该Python脚本BruteSpray基于nmap扫描输出的gnmap/XML文件,使用Medusa(译者注:Medusa美杜莎 是一款端口爆破工具,速度比Hydra九头蛇快)的默认凭据(译者注:即用户名和密码)自动对服务进行暴力破解。 通过在Nmap中使用-sV,BruteSpray甚至可以找到非标准端口。
译者注:可能遇到很多时候需要对大批的主机进行暴力破解,这时候BruteSpray就派上用场了。该软件也会提供一个非常简单的字典文件,总之该工具比较简单鸡肋并不直接包含在默认的kali安装系统中,要从kali源中指定下载安装
安装:
pip install -r requirements.txt
在kali上:
apt-get install brutespray
命令:
root@kali:~# brutespray -h
brutespray.py v1.5.2
作者: Shane Young/@x90skysn3k && Jacob Robles/@shellfail
灵感: Leon Johnson/@sho-luv
Credit to Medusa: JoMo-Kun / Foofus Networks <jmk@foofus.net>
usage: brutespray [-h] -f FILE [-o OUTPUT] [-s SERVICE] [-t THREADS]
[-T HOSTS] [-U USERLIST] [-P PASSLIST] [-u USERNAME]
[-p PASSWORD] [-c] [-i]
Usage: python brutespray.py <OPTIONS>
可选参数:
-h, --help 显示帮助信息并退出
选项目录:
核心命令:
-f FILE, --file FILE 解析nmap输出的GNMAP或XML文件(译者注:这里是用nmap软件输出的结果文件,是包含服务号的待破解文件)
-U USERLIST, --userlist USERLIST 引用自定义用户名文件(译者注:用户字典)
-P PASSLIST, --passlist PASSLIST 引用自定义密码文件(译者注:密码字典)
-u USERNAME, --username USERNAME 指定一个用户名
-p PASSWORD, --password PASSWORD 指定一个密码
-s SERVICE, --service SERVICE 指定要攻击的服务
附加命令:
-t THREADS, --threads THREADS 开启medusa线程数
-T HOSTS, --hosts HOSTS 要同时测试的主机数
-i, --interactive 交互模式
-c, --continuous 成功后保持暴力破解(译者注:一般如果是为了破解就一次成功停止,如果是测试弱点就要持续破解)
输出命令:
-o OUTPUT, --output OUTPUT 包含成功尝试密码的输出目录
-m ,--modules 查看暴力破解支持模块列表
用法示例:
首先进行 带有选项-oG nmap.gnmap或-oX nmap.xml的nmap 去扫描。
nmap -v 192.168.23.0/24 -oX nmap.xml
1.使用指定的用户列表(unix_users.txt)和密码列表(password.lst)来攻击nas.gnmap文件中的所有服务。(译者注:我们也可以不指定字典,则会使用软件默认的小字典, 爆破成功的结果也会自动保存在程序目录下的output文件夹内.)
root@kali:~# brutespray --file nas.gnmap -U /usr/share/wordlists/metasploit/unix_users.txt -P /usr/share/wordlists/metasploit/password.lst --threads 3 --hosts 1
Starting to brute, please make sure to use the right amount of threads(-t) and parallel hosts(-T)... \
Brute-Forcing...
Medusa v2.2 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <jmk@foofus.net>
ACCOUNT CHECK: [mysql] Host: 192.168.86.4 (1 of 1, 0 complete) User: 4Dgifts (1 of 111, 0 complete) Password: !@#$%^& (1 of 88396 complete)(译者注:这里显示的是对破解的主机和服务尝试的用户名密码)
ACCOUNT CHECK: [mysql] Host: 192.168.86.4 (1 of 1, 0 complete) User: 4Dgifts (1 of 111, 0 complete) Password: !@#$% (2 of 88396 complete)
ACCOUNT CHECK: [mysql] Host: 192.168.86.4 (1 of 1, 0 complete) User: 4Dgifts (1 of 111, 0 complete) Password: !@#$%^ (3 of 88396 complete)
...
2.指定凭证
brutespray --file nmap.gnmap -u admin -p password --threads 5 --hosts 5
3.暴力破解指定服务
brutespray --file nmap.gnmap --service ftp,ssh,telnet --threads 5 --hosts 5
4. 交互模式,仅暴力破解FTP服务。
root@kali:~# brutespray -i -f nas.gnmap
Loading File: /
Welcome to interactive mode!
WARNING: Leaving an option blank will leave it empty and refer to default
Available services to brute-force:(译者注:这里是对导入文件的带破解服务汇总)
Service: ftp on port 21 with 1 hosts
Service: ssh on port 22 with 1 hosts
Service: mysql on port 3306 with 1 hosts
Enter services you want to brute - default all (ssh,ftp,etc): ftp
Enter the number of parallel threads (default is 2): 4
Enter the number of parallel hosts to scan per service (default is 1): 1
Would you like to specify a wordlist? (y/n): y
Enter a userlist you would like to use: /usr/share/wordlists/metasploit/unix_users.txt
Enter a passlist you would like to use: /usr/share/wordlists/metasploit/password.lst
Would to specify a single username or password (y/n): n
Starting to brute, please make sure to use the right amount of threads(-t) and parallel hosts(-T)... \
Brute-Forcing...
5.成功后继续:
brutespray.py --file nmap.gnmap --threads 5 --hosts 5 -c
支持服务:
ssh
ftp
telnet
vnc
mssql
mysql
postgresql
rsh
imap
nntp
pcanywhere
pop3
rexec
rlogin
smbnt
smtp
svn
vmauthd
snmp
数据指定:
译者注:在新版上可以自定义破解文件,不用依赖于nmap输出
定义JSON格式文件:
{"host":"127.0.0.1","port":"3306","service":"mysql"}
{"host":"127.0.0.10","port":"3306","service":"mysql"}
...