爆破小文


title: 爆破小文
date: 2020-03-30 15:05:03
tags:

  • 爆破
  • 密码生成
    categories: 工具使用

toc: true

爆破不能说是最好的,但是,确实是很快乐的。。。

暴力破解

  • 岁月安好,但是总有些不太对的地方,改好密码,常改密码,健康你我他~

https://monitor.firefox.com/

https://haveibeenpwned.com/

无数的工具总有一种自己喜欢的。对的时间、对的地点。哈哈哈。。。

字典生成工具

pydictor

git clone --depth=1 --branch=master https://www.github.com/landgrey/pydictor.git
cd pydictor/
chmod +x pydictor.py
python pydictor.py
# https://github.com/LandGrey/pydictor.git
  • 核心参数(省略了正则,...)
    # 指定长度
    --len minlen maxlen   Default: min=0  max=4
    # 根据指定的字符串进行排列组合
    -chunk arg [arg ...]  Use the multi-chunk build the dictionary
    # 指定字符类型。d表示数字,L表示小写字母,,,,
    -base Type            Choose from  (d, L, c, dL, dc, Lc, dLc)
                            d     digital             [0 - 9]
                            L     lowercase letters   [a - z]
                            c     capital letters     [A - Z]
                            dL    Mix d and L         [0-9 a-z]
                            dc    Mix d and c         [0-9 A-Z]
                            Lc    Mix L and c         [a-z A-Z]
                            dLc   Mix d, L and dL     [0-9 a-z A-Z]
  # 指定输出字典路径                            
    -o path, --output path
    # 指定字符集
    -char character       Use Custom Character build the dictionary
    # 社会工程学字典
    --sedb                Enter the Social Engineering Dictionary Builder
    # 前缀 [xxxx]pass
  --head prefix         Add string head for the items
  # 后缀 pass[xxxx]
  --tail suffix         Add string tail for the items
  # 生成的字符进行编码
  --encode encode       b16       base16 encode
                        b32       base32 encode
                        b64       base64 encode

核心功能字典

  • 基础字典
python pydictor.py -base L --len 2 3 --encode b64 # 长度2-3且经过base64编码的大写字符
python pydictor.py -base dLc --len 1 3 -o /awesome/pwd
python pydictor.py -base d --len 4 4 --head Pa5sw0rd --output D:\exists\or\not\dict.txt
  • 自定义字符集字典
python pydictor.py -char "asdf123._@ " --len 1 3 --tail @site.com
  • 排列组合字典
python pydictor.py -chunk abc 123 "!@#" @ . _ " " --head a --tail @pass --encode md5
  • 语法引擎解析字典
python pydictor.py --conf                                  用默认的"/funcfg/build.conf"文件建立字典
python pydictor.py --conf /my/other/awesome.conf
python pydictor.py --conf "[0-9]{6,6}<none>[a-f,abc,123,!@#]{1,1}<none>" --encode md5 --output parsing.txt
  • 规则扩展字典
python pydictor.py -extend bob --level 4 --len 4 12
python pydictor.py -extend liwei zwell.com --leet 0 1 2 11 21 --level 2 --len 6 16 --occur "<=10" ">0" "<=2" -o /possbile/wordlist.lst

指定插件

  • 网页原始关键词字典
python pydictor.py -plug scratch     # 用/funcfg/scratch.sites 文件中的多行 url 作为输入
python pydictor.py -plug scratch http://www.example.com
  • 一段时间内生日字典
python pydictor.py -plug birthday 19800101 20001231 --len 6 8
  • 身份证后4/6/8位字典
python pydictor.py -plug pid4
python pydictor.py -plug pid6 --encode b64
python pydictor.py -plug pid8 --encode sha1 -o pid8.txt

内置工具(可自己根据API文档开发)

  • 字典合并工具
python pydictor.py -tool combiner /my/mess/dir
  • 字典比较工具
python pydictor.py -tool comparer big.txt small.txt
  • 词频统计工具
python pydictor.py -tool counter s huge.txt 1000
python pydictor.py -tool counter v /tmp/mess.txt 100
python pydictor.py -tool counter vs huge.txt 100 --encode url -o fre.txt
  • 字典处理工具
python pydictor.py -tool handler raw.txt --tail @awesome.com --encode md5
python pydictor.py -tool handler raw.txt --len 6 16 --occur "" "=6" "<0" --encode b64 -o ok.txt
  • 安全擦除字典工具
python pydictor.py -tool shredder                    擦除当前输出目录下所有字典文件
python pydictor.py -tool shredder base                  擦除当前输出目录下所有以"base"开头的字典文件
python pydictor.py -tool shredder /data/mess
python pydictor.py -tool shredder D:\mess\1.zip
  • 合并去重工具
python pydictor.py -tool uniqbiner /my/all/dict/
  • 字典去重工具
python pydictor.py -tool uniqifer /tmp/dicts.txt --output /tmp/uniq.txt
  • 多字典文件组合工具
python pydictor.py -tool hybrider heads.txt some_others.txt tails.txt

社会工程学字典

# 。。。
python pydictor.py --sedb
set cname liwei
set sname lw Lwei
set ename zwell
set birth 19880916
set usedpwd liwei123456. liwei@19880916 lw19880916_123
set phone 18852006666
set uphone 15500998080
set hphone 76500100 61599000 01061599000
set email 33125500@qq.com
set email 13561207878@163.com
set email weiweili@gmail.com
set email wei010wei@hotmail.com
set postcode 663321 962210
set nickname zlili
set idcard 152726198809160571
set jobnum 20051230 100563
set otherdate 19591004 19621012
set otherdate 19870906 19880208
set usedchar tiger gof gamesthrones 176003 m0n5ter ppdog
show
run

Crunch

https://github.com/crunchsec/crunch
# 编译安装,下载 make
# 可以直接安装 apt-get install crunch
# brew install crunch

常用参数:

-c 数字 指定写入输出文件的行数,也即包含密码的个数
-e 字符串,定义停止生成密码 ,比如-e 222222:到222222停止生成密码
-p 字符串 或者-p 单词1 单词2 ...以排列组合的方式来生成字典。
-f /path/to/charset.lst charset-name,从charset.lst指定字符集,也即调用密码库文件
-t 命令如下:
  -t @,%^,指定模式,@,%^分别代表意义如下:
  @ 插入小写字母
  , 插入大写字母
  % 插入数字
  ^ 插入特殊符号  
-d 数字符号,限制出现相同元素的个数(至少出现元素个数),“-d 2@”限制小写字母输出像aab和aac,aaa不会产生,因为这是连续3个字母,格式是数字+符号,数字是连续字母出现的次数,符号是限制字符串的字符,例如@,%^(“@”代表小写字母,“,”代表大写字符,“%”代表数字,“^”代表特殊字符)(限制每个密码至少出现几种字符)
  • 普通生成
crunch 1 6
crunch 1 6 asdqwe\@!
  • 生成passXX-passXX所有组合
crunch 6 6 -t pass%%  >>newpwd.txt  # pass%%数字组合;pass@@小写字母; pass,,大写字母;pass^^后两位特殊字符
  • 制作8为数字字典
crunch 8 8 charset.lst numeric -o num8.dic 
  • 制作6为数字字典
crunch 6 6  0123456789 –o num6.dic 
  • 制作139开头的手机密码字典
crunch 11 11  +0123456789 -t 139%%%%%%%% -o num13.dic 
crunch 11 11  +0123456789 -t 139%%%%%%%% -b 20mib -o START  # 指定文件大小20M
  • 使用密码库
-f /path/to/charset.lst charset-name,从charset.lst指定字符集,也即调用密码库文件

crunch 1 8 -f charset.lst mixalpha-numeric-all-space -o wordlist.txt 
# 调用密码库charset.lst,生成最小为1,最大为8,元素为密码库charset.lst中 mixalpha-numeric-all-space的项目,并保存为 wordlist.txt;其中 charset.lst在kali_linux的目录为 /usr/share/crunch/charset.lst, charset.lst中mixalpha-numeric-all-space项目包含最常见的元素组合(即大小写字母+数字+常见符号);使用cat /usr/share/crunch/charset.lst 查看所有密码库

GenpAss

一款针对Chinese的字典生成器

git clone https://github.com/RicterZ/genpAss
cd genpAss
git checkout master
python setup.py install (建议python2,本地用pyhton3有问题)
-n       #名字
-u       #用户名
-q       #QQ号
-e       #邮箱
-m       #手机号
-b       #生日:格式:2000-01-01
-c       #公司名
-o       #导出文件

使用方式

  • 假定一个人的信息如下:
字段信息
姓名王大锤
用户名dachui,dac
QQ818271273
手机13928182828
邮箱wangdac@gmail.com
生日1993-12-21
公司baidu

语句如下:

genpass -n 王大锤 -u dachui dac -b 1993-12-21 -c baidu -m 13928182828 -q 818271273 -e wangdac@gmail.com

同时可以添加--with-dict来根据常见弱口令组合密码。

另外可以通过--csv指定 csv 文件批量生成密码,csv 文件格式为:

name,email,birthday,username,mobile_phone,qq_number,company,
测试,ceshi@x.com,1995-01-03,test cece,18883866666,23591712,google,
大头,datou@x.com,1996-03-03,bighead,18883877777 18883899999,392912031,baidu,

常用暴力破解工具

Hydra

hydra是黑客组织thc的一款开源密码攻击工具,功能十分强大,支持多种协议的破解。(支持的协议包括: adam6500 asterisk cisco cisco-enable cvs ftp[s] http[s]-{head|get|post} http[s]-{get|post}-form http-proxy http-proxy-urlenum icq imap[s] irc ldap2[s] ldap3[-{cram|digest}md5][s] mssql mysql(v4) nntp oracle-listener oracle-sid pcanywhere pcnfs pop3[s] redis rexec rlogin rpcap rsh rtsp s7-300 sip smb smtp[s] smtp-enum snmp socks5 ssh sshkey teamspeak telnet[s] vmauthd vnc xmpp)

参数参数详解
-l指定单个用户名,适合在知道用户名爆破用户名密码时使用
-L指定多个用户名,参数值为存储用户名的文件的路径(建议为绝对路径)
-p指定单个密码,适合在知道密码爆破用户名时使用
-P指定多个密码,参数值为存贮密码的文件(通常称为字典)的路径(建议为绝对路径)
-C当用户名和密码存储到一个文件时使用此参数。字典存储的格式必须为 "用户名:密码" 的格式。
-M指定多个攻击目标,建议为绝对路径。注意:列表文件存储格式必须为 "地址:端口"
-t指定爆破时的任务数量(可以理解为线程数),默认为16
-s指定端口,适用于攻击目标端口非默认的情况。例如:http服务使用非80端口
-S指定爆破时使用 SSL 链接
-R继续从上一次爆破进度上继续爆破
-v/-V显示爆破的详细信息
-f一但爆破成功一个就停止爆破
server代表要攻击的目标(单个),多个目标时请使用 -M 参数
service攻击目标的服务类型(可以理解为爆破时使用的协议),例如 http ,在hydra中,不同协议会使用不同的模块来爆破,hydra 的 http-get 和 http-post 模块就用来爆破基于 get 和 post 请求的页面
OPT爆破模块的额外参数,可以使用 -U 参数来查看模块支持那些参数,例如命令:hydra -U http-get

使用方法

常用方式:

hydra -l user -P passlist.txt ftp://192.168.0.1
hydra -L userlist.txt -p defaultpw imap://192.168.0.1/PLAIN
hydra -C defaults.txt -6 pop3s://[2001:db8::1]:143/TLS:DIGEST-MD5
hydra -l admin -p password ftp://[192.168.0.0/24]/
hydra -L logins.txt -P pws.txt -M targets.txt ssh

Medusa

Medusa是支持AFP, CVS, FTP, HTTP, IMAP, MS-SQL, MySQL, NCP (NetWare),NNTP, PcAnywhere, POP3, PostgreSQL, rexec, rlogin, rsh, SMB, SMTP(AUTH/VRFY), SNMP, SSHv2, SVN, Telnet, VmAuthd, VNC的密码爆破工具。

参数详解
-h指定目标IP
-H指定目标主机文件
-u指定单个用户名
-U指定用户名文件
-p指定单个密码
-P指定密码文件
-C组合条目文件 账号:密码
-e [n/s/ns]N意为空密码,S意为密码 ,NS判断密码是否是空密码,还是账号密码相同。
-M模块执行名称
-O保存成功的文件
-n使用非默认端口
-s启用SSL
-t设定线程数量
-r设置重试时间间隔 秒。
-L并行化,每个用户使用一个线程
-f在任何主机上找到第一个账号/密码后,停止破解
-z继续扫描上一次
-v详细级别(0-6)

使用方法

  • 指定目标地址文件,用户名postgres, 端口5432, 密码字典,判断密码是否是空密码或者账号密码相同,爆破postgres,线程255,一次成功则停止,保存为good.txt,重试时间间隔为0秒。
medusa -H /tmp/ip.txt -u postgres -n 5432 -P /tmp/pass.txt -e ns -M postgres -T 255 -f -O /tmp/good.txt -r 0

Metaspolit

。。。

search type:auxiliary login
(ssh_login,mysql_login,telnet_login,smb_login,ftp_login,tomcat_mgr_login。。。)
use auxiliary/scanner/ssh/ssh_login  
(show options)
set rhosts 192.168.92.132
set username test
set pass_file
set threads 5
run

Patator

Patator是出于使用Hydra,Medusa,Ncrack,Metasploit模块和Nmap NSE脚本进行密码猜测攻击而感到沮丧的。我选择了一种不同的方法,以便不创建另一个暴力破解工具,并避免重复相同的缺点。Patator是一个用Python编写的多线程工具,它比同辈人更加可靠和灵活。

  git clone https://github.com/lanjelot/patator.git
  cd patator
  # python3 setup.py install
    python3 patator.py
  # python3 patator.py ftp_login –help查看帮助信息
    包含的模块:
    + ftp_login     : Brute-force FTP
  + ssh_login     : Brute-force SSH
  + telnet_login  : Brute-force Telnet
  + smtp_login    : Brute-force SMTP
  + smtp_vrfy     : Enumerate valid users using SMTP VRFY
  + smtp_rcpt     : Enumerate valid users using SMTP RCPT TO
  + finger_lookup : Enumerate valid users using Finger
  + http_fuzz     : Brute-force HTTP
  + rdp_gateway   : Brute-force RDP Gateway
  + ajp_fuzz      : Brute-force AJP
  + pop_login     : Brute-force POP3
  + pop_passd     : Brute-force poppassd (http://netwinsite.com/poppassd/)
  + imap_login    : Brute-force IMAP4
  + ldap_login    : Brute-force LDAP
  + smb_login     : Brute-force SMB
  + smb_lookupsid : Brute-force SMB SID-lookup
  + rlogin_login  : Brute-force rlogin
  + vmauthd_login : Brute-force VMware Authentication Daemon
  + mssql_login   : Brute-force MSSQL
  + oracle_login  : Brute-force Oracle
  + mysql_login   : Brute-force MySQL
  + mysql_query   : Brute-force MySQL queries
  + rdp_login     : Brute-force RDP (NLA)
  + pgsql_login   : Brute-force PostgreSQL
  + vnc_login     : Brute-force VNC
  + dns_forward   : Forward DNS lookup
  + dns_reverse   : Reverse DNS lookup
  + snmp_login    : Brute-force SNMP v1/2/3
  + ike_enum      : Enumerate IKE transforms
  + unzip_pass    : Brute-force the password of encrypted ZIP files
  + keystore_pass : Brute-force the password of Java keystore files
  + sqlcipher_pass : Brute-force the password of SQLCipher-encrypted databases
  + umbraco_crack : Crack Umbraco HMAC-SHA1 password hashes
  + tcp_fuzz      : Fuzz TCP services
  + dummy_test    : Testing module

使用方式

ftp_login host=10.0.0.1 user=FILE0 0=logins.txt password=asdf -x ignore:mesg='Login incorrect.' -x ignore,reset,retry:code=500
http_fuzz url=http://10.0.0.1/pma/index.php method=POST body='pma_username=COMBO00&pma_password=COMBO01&server=1&target=index.php&lang=en&token=' 0=combos.txt before_urls=http://10.0.0.1/pma/index.php accept_cookie=1 follow=1 -x ignore:fgrep='Cannot log in to the MySQL server' -l /tmp/qsdf
 ssh_login host=192.168.92.132 user=test password=FILE0 0=/home/test/桌面/TOP1000.txt
dns_forward name=FILE0.hsc.fr 0=names.txt -x ignore:code=3
unzip_pass zipfile=challenge1.zip password=FILE0 0=rockyou.dic -x ignore:code!=0

BruteSpray

BruteSpray是一款基于nmap扫描输出的gnmap/XML文件,自动调用Medusa对服务进行爆破,声称速度比hydra快。BruteSpray调用medusa,其说明中声称支持ssh、ftp、telnet、vnc、mssql、mysql、postgresql、rsh、imap、nntp、pcanywhere、pop3、rexec、rlogin、smbnt、smtp、svn和vmauthd协议账号暴力破解。

官方项目地址:https://github.com/x90skysn3k/brutespray

git clone https://github.com/x90skysn3k/brutespray.git
  • 支持的服务
ssh
ftp
telnet
vnc
mssql
mysql
postgresql
rsh
imap
nntp
pcanywhere
pop3
rexec
rlogin
smbnt
smtp
svn
vmauthd
snmp

使用方式

  • 首先需要Nmap的扫描结果-oG nmap.gnmap or -oX nmap.xml
nmap -v 192.168.92.0/24 -oX nmap.xml
  • 几种扫描模式
# xml,json,gnmap
# 交互式
brutespray --file nmap.xml –i

# 指定服务
brutespray -f /home/jhc/nmap.xml -u test --service ssh
python brutespray.py --file nmap.gnmap --service ftp,ssh,telnet --threads 5 --hosts 5

# 指定用户名密码
python brutespray.py --file nmap.gnmap -u admin -p password --threads 5 --hosts 5
python brutespray.py --file nmap.gnmap -U /usr/share/wordlist/user.txt -P /usr/share/wordlist/pass.txt --threads 5 --hosts 5

# 爆破成功后继续
python brutespray.py --file nmap.gnmap --threads 5 --hosts 5 -c

所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
本站部分内容收集于互联网,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!

  Previous post Xposed_Hook教程
Next post   ThinkPHP 5.x 远程代码执行

评论已关闭

很多东西宁缺毋滥,流星的光芒短暂而灼热闪耀。

让你变得更好的那个人,往往是你觉得很难与之相处的那个人。—— by 小宇

觉得自己做的到和不做的到,其实只在一念之间。

路在自己脚下,没有人可以决定我的方向。

你的选择是做或不做,但不做就永远不会有机会。

凡事顺其自然,遇事处于泰然,得意之时淡然,失意之时坦然,艰辛曲折必然,历尽沧桑悟然。