freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

穷举篇——常用的穷举方式
2021-03-08 19:09:03

一、hydra详解和利用

hydra是著名黑客组织thc的一款开源的暴力密码破解工具,可以在线破解多种密码。该工具是kali自带的,无需下载,常用参数如下

1.1 hydra参数详解

hydra [[[-l LOGIN|-L FILE] [-p PASS|-PFILE]] | [-C FILE]] [-e ns]

  • [-o FILE] [-t TASKS] [-M FILE [-T TASKS]][-w TIME] [-f] [-s PORT] [-S] [-vV] server service [OPT]

  • -R 继续从上一次进度接着破解。

  • -S 采用SSL链接。

  • -s PORT 可通过这个参数指定非默认端口。

  • -l LOGIN 指定破解的用户,对特定用户破解。

  • -L FILE 指定用户名字典。

  • -p PASS 小写,指定密码破解,少用,一般是采用密码字典。

  • -P FILE 大写,指定密码字典。

  • -e ns 可选选项,n:空密码试探,s:使用指定用户和密码试探。

  • -C FILE 使用冒号分割格式,例如“登录名:密码”来代替-L/-P参数。

  • -M FILE 指定目标列表文件一行一条。

  • -o FILE 指定结果输出文件。

  • -f 在使用-M参数以后,找到第一对登录名或者密码的时候中止破解。

  • -t TASKS 同时运行的线程数,默认为16。

  • -w TIME 设置最大超时的时间,单位秒,默认是30s。

  • -v / -V 显示详细过程。

  • service 指定服务名,支持的服务和协议:telnetftp pop3[-ntlm] imap[-ntlm] smb smbnt
    http-{head|get} http-{get|post}-formhttp-proxy cisco cisco-enable vnc
    ldap2 ldap3 mssql mysql oracle-listenerpostgres nntp socks5 rexec
    rlogin pcnfs snmp rsh cvs svn icq sapr3 sshsmtp-auth[-ntlm] pcanywhere
    teamspeak sip vmauthd firebird ncp afp等等。

1.2 具体使用

1)爆破ssh服务

1、通过nmap检测目标是否开放了ssh服务

image

2、通过hydra进行爆破

hydra -L /root/pentest/user.txt -P /root/pentest/passwd.txt ssh://192.168.0.122 -f -o 
/root/pentest/ssh.txt -V
参数解释:
-L:指定用户名文件夹
-P:指定密码文件夹
-f:找到一对登录成功的用户名密码就停止
-o:输出到指定文件
-V:显示详细信息

爆破结果如下:

image

image

2)爆破ftp服务

1、通过nmap检测目标是否开放ftp服务

image

2、通过hydra进行爆破

hydra -L /root/pentest/user.txt -P /root/pentest/passwd.txt ftp://192.168.0.100 -f 
-o /root/pentest/ftp.txt -V

爆破结果如下:

image
image

3)爆破mssql服务

1、通过nmap检测目标是否开放mssql服务

image

2、通过hydra进行爆破

hydra -L /root/pentest/user.txt -P /root/pentest/passwd.txt mssql://192.168.0.100 -f
-o /root/pentest/mssql.txt -V

爆破结果如下:

image

image

4)爆破mysql服务

1、通过nmap检测目标是否开放mysql服务

image

2、通过hydra进行爆破

hydra -l root -P /root/pentest/passwd.txt mysql://192.168.0.100 -f 
-o /root/pentest/mysql.txt -V

image

image
注意:若爆破次数过多可以会出现拒绝连接的情况,这时候要在靶机的mysql命令行中输入flush hosts即可。

3、也可以同时指定多个ip进行爆破

hydra -l root -P /root/pentest/passwd.txt -M /root/pentest/file.txt -f -V -t 4 mysql
参数解释:
M:用来指定一个文件夹
-t:指定并发数

5)爆破rdp服务

hydra -l administrator -P /root/pentest/passwd.txt -t 4 -V 192.168.0.115 rdp

查看爆破结果,发现破解的密码并不正确。可能是因为kali的hydra现在已经不支持rdp这个服务了,因此产生了误报。

image

如果想要爆破rdp服务,可以使用御剑RDP爆破工具爆破即可。

image

6)爆破其他服务

oracle
hydra -P /root/passwd oracle://192.168.0.100 -f -o /root/oracle.txt –v
redis
hydra -P /root/passlist.txt -e nsr -t 16 192.168.0.101 redis
postgresql 
hydra -P /root/passlist.txt -e nsr -t 16 192.168.0.101 postgresql

1.3 xhydra使用

1、xhydra是hydra的可视化工具,在kali命令行中输入xhydra即可开启

以爆破mssql为例。

target页面选项解释如下:

image

password页面选项解释如下:

image

Tuning页面选项解释如下:

image

start页面选项解释如下:

image

二、msf穷举模块使用

2.1 auxiliary模块介绍

msf是一个漏洞利用框架,里面包含了许多模块,这里我们将用到其中的auxiliary模块。

auxiliary常用于漏洞验证,端口嗅探,暴力枚举,反弹shell监听,是一个偏向辅助的模块。

常用的模块如下:

auxiliary/scanner/ftp/ftp_login              	                  ftp爆破
auxiliary/scanner/ssh/ssh_login				 	  ssh爆破
auxiliary/scanner/telnet/telnet_login		 	          telnet爆破 
auxiliary/scanner/smb/smb_login				 	  smb爆破
auxiliary/scanner/mssql/mssql_login			 	  mssql爆破
auxiliary/scanner/mysql/mysql_login				  mysql爆破
auxiliary/scanner/oracle/oracle_login		 	          oracle爆破
auxiliary/scanner/postgres/postgres_login		          postgresql爆破
auxiliary/scanner/vnc/vnc_login				 	  vnc爆破
auxiliary/scanner/pcanywhere/pcanywhere_login                     pcanywhere爆破
auxiliary/scanner/snmp/snmp_login				  snmp爆破

2.2 具体使用方法

这里以爆破mssql为例

1、输入msfconsole进入msf命令行

image

2、查看可以利用的模块

命令如下:

search scanner

image

3、使用需要利用的模块

命令如下:

use auxiliary/scanner/mssql/mssql_login

image

4、查看需要配置哪些参数

命令如下:

show options

image

5、配置参数

命令如下:

set  设置需要配置的参数

image

6、执行攻击

命令如下:

exploit或者run均可

image

成功攻击获取到了密码。其他服务的爆破与mssql相类似。

三、邮箱破解

3.1 检测邮箱是否开放

1、通过nmap进行端口扫描

nmap -O -sV -Pn 192.168.0.100
参数解释:
-O:查看操作系统信息
-sV:查看版本信息
-Pn:不通过ping的方式访问

image

可以看到目标系统开放了25,110端口。这两个端口都是属于邮件协议。并且是通过WinWebMail搭建而成。

访问一下目标系统,发现确实存在邮箱系统。因此可以尝试利用进行邮箱破解

image

3.2 通过MailCracker进行邮箱破解

1、通过邮箱收集得到一个邮箱名为c1ay@moonteam.com

2、将该邮箱通过MailCracker进行破解

工具各个选项的解释如下:

image

具体流程如下:

1、导入获取到的邮箱名称

image

image

2、导入密码字典

image)

3、设置smtp服务器

image

4、尝试连接smtp服务器

image

5、开始破解即可

image

6、通过获取的用户名密码进行登录邮箱

image

四、指定后台密码穷举

4.1 Burpsuite基本介绍

Burp Suite 是用于攻击web 应用程序的集成平台。它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程。所有的工具都共享一个能处理并显示HTTP 消息,持久性,认证,代理,日志,警报的一个强大的可扩展的框架。

Burpsuite比较常用的是proxy,Repeater,Intruder,Decoder模块。

  • proxy:利用Burp开展测试流程的核心,通过代理模式,可以让我们拦截、查看、修改所有在客户端与服务端之间传输的数据

  • Repeater:Burp Repeater是一个手动修改、 补发个别HTTP请求,并分析它们的响应的工具

  • Intruder:Intruder是一个定制的高度可配置的工具,可以对Web应用程序进行自动化攻击,如通过标识符枚举用户名、ID和账户号码,模糊测试,SQL注入,跨站,目录遍历等

  • Decoder:Decoder的功能比较简单,它是Burp中自带的编码解码及散列转换的工具,能对原始数据进行各种编码格式和散列的转换。

burpsuite模块具体使用方法可参考:后面更新。。

4.2 通过Burpsuite的Intruder进行单一用户枚举

1、为浏览器设置代理,以火狐浏览器为例:

点击选项——>高级——>网络,如下设置代理,端口应该与burpsuite设置的一致,默认是8080

image

若使用谷歌浏览器,则需要下载一个插件名为SwitchyOmega,在插件中设置代理即可。

image

2、访问网站,抓取登录时的数据包

image

3、将数据包发送到intruder模块中。

image

4、为需要爆破的字段打上标记

image

5、添加上需要使用的字典

image

6、开始攻击即可。

image

可以通过length的值以及status的值来筛选出正确的密码。通过length判断的原因是登录成功与登录失败返回的字段长度不同,通过Status的值判断的原因是在登录成功后常常会进行302重定向,跳转到登录成功的页面

这里我们可以得到密码为123456,

4.3 通过Burpsuite的Intruder进行批量用户枚举

方式与枚举单一用户类似。具体如下:

1、抓取数据包,并发送到Intruder模块
image

2、为需要爆破的字段打上标记,并设置爆破模式

image

3、载入对应字典

image

image

4、开始攻击

攻击前为了避免速度太慢,可以适当增加线程数。

image

结果如下:

image

4.4 有验证码的后台穷举

1)验证码是否是cookie验证

1、先看看一下登录页面,发现存在验证码

image

2、抓包发送到repeater模块。

image

3、测试一下登录成功和登录失败数据包返回结果

登录成功:会进行302跳转

image

登录失败:会进行弹框

image

4、测试网站验证码登录校验是否是通过cookie

删除cookie信息,输入正常的用户名密码验证码,测试是否可以成功登录

image

到此可以判断出是基于cookie验证的了,这时候就可以发送到intruder模块进行爆破即可。

image

2)验证码是否是前端验证

1、抓包发送到repeater模块

image

2)尝试删除vcode字段进行绕过验证码检测

image

3)绕过token验证

以pikachu-master靶场为例子

1、通过F12打开开发者选项,发现token隐藏在源代码中

image

2、抓包发送到Intruder模块中

image

3、设置攻击模式和参数

image

4、设置payload

第一个参数password正常载入字典

image

第二个参数token则选择为正则匹配

image

匹配方式如下:

image

注意:若采用上述方法,应该将线程调为1.不然无法正常执行

image

攻击结果如下:

image

4)验证码识别

若上述方法均无效,则可以采用此方法。

可以通过验证码识别工具对验证码进行识别,识别工具为burpsuite的reCAPTCHA,以及Pkav HTTP Fuzzer。具体用法可自行百度。。

七、wordpress后台破解

7.1 wordscan简介

WordPress是全球流行的博客网站,全球有上百万人使用它来搭建博客。他使用PHP脚本和Mysql数据库来搭建网站。

WPScan是一个扫描 WordPress 漏洞的黑盒子扫描器,它可以为所有 Web 开发人员扫描 WordPress 漏洞并在他们开发前找到并解决问题。我们还使用了 Nikto ,它是一款非常棒的Web 服务器评估工具,我们认为这个工具应该成为所有针对 WordPress网站进行的渗透测试的一部分。

常用参数如下:

  • u 枚举用户名,默认从1-10

  • u[10-20] 枚举用户名,配置从10-20

  • p 枚举插件

  • vp 只枚举有漏洞的插件

  • t 枚举主题信息

  • vt 只枚举存在漏洞的主题

  • --wordlist | -w <wordlist指定密码字典

  • --usernames <path-to-file指定爆破用户名字典

  • --threads | -t <number of threads指定多线程

  • --cookie <String指定cookie

  • -proxy <[protocol://]host:port设置一个代理,可以使用HTTP、SOCKS4、SOCKS4A、SOCKS5,如果未设置默认是HTTP协议

  • --passwords | -P <path-to-file指定爆破密码字典

  • --enumerate | -e [option(s)] 枚举

  • --url | -u 要扫描的WordPress站点.

  • --update 更新到最新版本

  • --force | -f 不检查网站运行的是不是WordPress

7.2 wpscan的基本用法

简单使用如下(扫描IP以靶机为例),靶机为midnight

下载地址

1)对数据库进行更新:Wpscan --update

2)扫描指定站点:wpscan --url http://sunset-midnight/

image

3)扫描指定用户:wpscan --url http://sunset-midnight/ -e u

image

4)扫描一下插件:wpscan --url http://sunset-midnight/ -e p

若扫描出的插件存在漏洞,即存在利用点

image

5)扫描一下存在漏洞主题:wpscan --url http://sunset-midnight/ -e vt

若扫描出的主题存在漏洞,即存在利用点。

image

6)通过wpscan进行爆破后台登录页面:

wpscan --url http://sunset-midnight/ -P /root/pentest/passwd.txt u admin threads 20

image

八、一句话密码破解

8.1 cheetah工具介绍

Cheetah是一款基于字典的webshell密码爆破工具,Cheetah的工作原理是能根据自动探测出的web服务设置相关参数一次性提交大量的探测密码进行爆破,爆破效率是其他普通webshell密码暴力破解工具上千倍。

项目地址:[https://github.com/sunnyelf/cheetah](

特点如下:

  • 速度极快

  • 支持批量爆破

  • 自动伪造请求

  • 自动探测web服务设置相关参数

  • 支持读取和去重超大密码字典文件

  • 支持python 2.x和3.x

  • 目前支持php、jsp、asp、aspx webshell

参数说明:

  • -h, --help 显示帮助信息并退出

  • -i, --info 显示程序信息并退出

  • -v, --verbose 启用详细输出模式(默认禁用)

  • -c, --clear 去重字典文件(默认禁用)

  • -up, --update 更新cheetah

  • -r , --request 指定请求方式(默认POST方式)

  • -t , --time 指定请求间隔时间(默认0秒)

  • -w , --webshell 指定webshell类型(默认自动探测)

  • -s , --server 指定web服务器名称(默认自动探测)

  • -n , --number 指定一次请求参数数量(默认自动设置)

  • -u , --url 指定webshell url地址

  • -b , --url-file 指定批量webshell urls文件

  • -p file [file ...] 指定多个字典文件(默认使用data/pwd.list)

使用实例:

  • python cheetah.py -u http://orz/orz.php

  • python cheetah.py -u http://orz/orz.jsp -r post -n 1000 -v

  • python cheetah.py -u http://orz/orz.asp -r get -c -p pwd.list

  • python cheetah.py -u http://orz/orz -w aspx -s apache -n 1000

  • python cheetah.py -b url.list -c -p pwd1.list pwd2.list -v

8.2 通过cheetah爆破一句话密码

1、爆破php一句话

python3 cheetah.py -u http://www.yijuhua.com/a.php -n 1000 -v -p data/pwd.list

image

2、爆破asp一句话

python3 cheetah.py -u http://www.yijuhua.com/a.asp -n 1000 -v -p data/pwd.list

image

3、爆破aspx一句话

python3 cheetah.py -u http://www.yijuhua.com/a.asp -n 1000 -v -p data/pwd.list

image

在成功获取到一句话密码后,即可通过蚁剑或菜刀连接即可。

九、webshell密码破解

webshell的爆破思路和上面的指定后台密码枚举一致,只需要通过burpsuite中的intruder模块爆破即可。成功与否均取决于字典。

9.1 爆破phpwebshell

1、通过目录扫描工具扫描时,发现了一个webshell

image

2、通过burp进行抓包,并发送到intruder模块进行爆破

image

3、设置攻击模式和参数,并载入字典

image

image

4、开始攻击

image

成功爆破出密码为admin,尝试进行连接,连接成功。

image

9.2 爆破aspwebshell

步骤和上面相类似,只看看结果即可

爆破成功,密码为F4ck

image

尝试进行登录

image

aspx,和jsp的与前面两者相类似,不再赘述。

十、phpmyadmin登录破解

10.1 phpMyAdmin暴力破解v1.3(单线程)

image

10.2 phpmyadmin 多线程密码枚举工具

image

十一、wfuzz多线程百万密码测试后台

11.1 wfuzz简介

Wfuzz是一款为了评估WEB应用而生的Fuzz(Fuzz是爆破的一种手段)工具,它基于一个简单的理念,即用给定的Payload去fuzz。它允许在HTTP请求里注入任何输入的值,针对不同的WEB应用组件进行多种复杂的爆破攻击。比如:参数、认证、表单、目录/文件、头部等等,这款工具在kali里面自带。

wfuzz可以容纳百万条字典,而burpsuite却无法容纳这么多条。

参数:

Usage:  wfuzz [options] -z payload,params <url>
        FUZZ, ..., FUZnZ  wherever you put these keywords wfuzz will replace them with the values of the specified payload.
        FUZZ{baseline_value} FUZZ will be replaced by baseline_value. It will be the first request performed and could be used as a base for filtering.

Options:
        -h                        : This help
        --help                    : Advanced help
        --version                 : Wfuzz version details
        -e <type>                 : List of available encoders/payloads/iterators/printers/scripts
        -c                        : Output with colors
        -v                        : Verbose information.
        --interact                : (beta) If selected,all key presses are captured. This allows you to interact with the program.
        -p addr                   : Use Proxy in format ip:port:type. Repeat option for using various proxies.
                                    Where type could be SOCKS4,SOCKS5 or HTTP if omitted.
        -t N                      : Specify the number of concurrent connections (10 default)
        -s N                      : Specify time delay between requests (0 default)
        -R depth                  : Recursive path discovery being depth the maximum recursion level (0 default)
        -D depth                  : Maximum link depth level (4 default)
        -L, --follow              : Follow HTTP redirections
        -u url                    : Specify a URL for the request.
        -z payload                : Specify a payload for each FUZZ keyword used in the form of type,parameters,encoder.
                                    A list of encoders can be used, ie. md5-sha1. Encoders can be chained, ie. md5@sha1.
                                    Encoders category can be used. ie. url
                                    Use help as a payload to show payload plugin's details (you can filter using --slice)
        -w wordlist               : Specify a wordlist file (alias for -z file,wordlist).
        -V alltype                : All parameters bruteforcing (allvars and allpost). No need for FUZZ keyword.
        -X method                 : Specify an HTTP method for the request, ie. HEAD or FUZZ
        -b cookie                 : Specify a cookie for the requests
        -d postdata               : Use post data (ex: "id=FUZZ&catalogue=1")
        -H header                 : Use header (ex:"Cookie:id=1312321&user=FUZZ")
        --basic/ntlm/digest auth  : in format "user:pass" or "FUZZ:FUZZ" or "domain\FUZ2Z:FUZZ"
        --hc/hl/hw/hh N[,N]+      : Hide responses with the specified code/lines/words/chars (Use BBB for taking values from baseline)
        --sc/sl/sw/sh N[,N]+      : Show responses with the specified code/lines/words/chars (Use BBB for taking values from baseline)
        --ss/hs regex             : Show/Hide responses with the specified regex within the content

基本用法:

Examples:

wfuzz -c -z file,users.txt -z file,pass.txt --sc 200 http://www.site.com/log.asp?user=FUZZ&pass=FUZ2Z

wfuzz -c -z range,1-10 --hc=BBB http://www.site.com/FUZZ{something not there}

wfuzz --script=robots -z list,robots.txt http://www.webscantest.com/FUZZ

11.2 通过wfuzz穷举后台密码

wfuzz -c -z file,pentest/csdnpass.txt --hc 200 -u http://www.blogs.com/admin/index.php?action=login -d "user=admin&pw=FUZZ"
参数解释:
-c:破解成功的密码有颜色输出
-z:载入一下文件
--hc:线程
-u:目标后台地址
-d:发送请求的数据包
需要爆破的内容用FUZZ代替即可

image

爆破出密码为123456。尝试进行登录

image

# web安全 # 爆破 # 工具使用
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录