渗透测试必备环境与热门工具使用

基本介绍

我们在学习web安全的过程中需要用到一些软件和工具,今天我们就来学习一下这些工具的安装与使用。
操作系统推荐
windows系统建议大家都是用windows10专业版,家庭版有很多功能都无法使用。 也可以使用linux操作系统和Mac OS系统。

cmder

cmder是一款windows环境下非常简洁美观易用的cmd替代软件,它支持了大部分的Linux命令。
下载

cmder官网下载|http://cmder.net/
下拉至download区域,可以看到两种安装模式:
(选择full版本(右侧版本)进行下载)

安装
下载完成之后进行解压,解压之后双击应用程序就可以使用啦
基本使用

常用快捷键|功能 Ctrl+t|建立新页签 Ctrl+W|关闭页签 Ctrl+Tab|切换页签 Alt+Shift+1|开启cmd.exe Alt+Shift+2|开启powershell.exe Alt+Shift+3|开启powershell.exe (系统管理员权限) Ctrl+1|快速切换到第1个页签 Ctrl+n|快速切换到第n个页签( n值无上限) Alt + enter|切换到全屏状态 Ctr+r|历史命令搜索 2|可在视窗内搜寻画面上出现过的任意关键字 3|新增页签按钮 4|切换页签按钮 5|锁定视窗,让视窗无法再输入 6|切换视窗是否提供卷轴功能,启动时可查询之前显示过的内容 7|按下滑鼠左键可开启系统选单,滑鼠右键可开启工具选项视窗 Win+Alt+P|开启工具选项视窗

进阶使用

- Alias功能:可以用短短的指令执行一些常见但指令超长又难以记忆的语法,我们在控制台输入alias可以查看 文字缩放:按下ctrl+鼠标滚轮可以放大主控台文字。按Up键,可以向上翻历史命令。 复制粘贴:用鼠标选中自己想拷贝的内容,可自动复制到剪切板,ctrl+v直接粘贴 自定义aliases:在cmder目录下有一个config文件夹,其中的aliases文件是我们可以自行配置的别名文件,将里面ls命令的别名自定义修改就可以在ls命令下显示中文了。

基本介绍

Node.js是基于Chrome JavaScript运行时建立的一个平台,通过事件驱动I/O服务端的JavaScript环境。简单来说呢,Node.js就是运行在服务端的JavaScript。因为基于Google的V8引擎,能够快速执行JavaScript的同时,性能也非常优秀。 跟大火的python一样,Node.js也是一种服务端编程语言。在渗透测试过程中,有很多渗透工具可能都是基于node.js的npm编写的,我们要使用这类工具,就需要为电脑配置node.js环境,我们今天的任务也就是这样。

安装下载


下载

官网下载|https://nodejs.org/en/download/
根据本机版本,选择对应的安装包进行下载
安装流程

以windows为例

1 双击运行下载好的安装包 选择安装路径 选择你需要的安装模式
安装成功之后,可以在cmd中输入命令行
node --version
以查看安装的node.js版本
配置Npm国内镜像
由于新版的Node.JS已经集成了npm,所以之前npm也一并安装好了。我们可以使用cmd命令行输入
"npm -v"
来测试是否成功安装。如果出现版本提示便OK了。
(显示npm版本信息)

http://npm.taobao.org/

持久使用

https://registry.npm.taobao.org
配置后可通过下面方式来验证是否成功
npm config get registry

npm info express

完成安装
常规Node.JS的搭建到现在为止就已经完成了,你可以尝试在cmd命令行中输入”node“进入node开发模式下,输入:
console.log('hello world')
。便可以出现你的第一句Node.JS语句。
(测试)

基本介绍

Python是一种解释型的高级程序设计语言,同时也是面向对象的语言。Python是纯粹的自由软件,它的源代码和解释器CPython遵循 GPL(GNU General Public License)协议。语法非常简洁清晰,强制用空白符(white space)作为语句缩进是Python语言的特色。它还具有非常丰富、强大的库。最重要的是,能够把其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起,被大家称为胶水语言。

下载安装


http://www.python.org/download/

(官方下载)

安装流程
下载所需要的下载包,然后进入安装步骤。双击运行下载好的MSI安装包,在选择安装组件的一步时,勾选上所有的组件,特别要注意选上pip和Add python.exe to Path,然后一路点“Next”即可完成安装。
测试是否安装成功
如果出现这样的画面,就说明我们已经成功的安装好Python了。当看到提示符>>>就表示我们已经在Python的交互式环境中了,可以输入任何Python代码,回车后会立刻得到执行结果。输入exit()并回车,就能够退出Python,或者直接关掉窗口也行。

备注:安装错误提示 如果页面爆出"'python'不是内部或外部命令,也不是可运行的程序或批处理文件。"这样的错误,是因为Windows会根据一个Path的环境变量设定的路径去查找python.exe,如果没找到,就会报错。如果在安装时漏掉了勾选Add python.exe to Path,那就要手动把python.exe所在的路径C:\Python27添加到Path中。


pip配置国内镜像
我们在使用python过程中,pip安装软件包非常频繁,我们需要将pip源使用国内的镜像,以提升下载速度以及提高安装的成功率。 有这样一些国内的镜像:
- http://pypi.douban.com/simple/ 豆瓣 http://mirrors.aliyun.com/pypi/simple/ 阿里

配置的流程
1.临时使用 添加"-i"或"--index"参数。比如:
pip install -i http://pypi.douban.com/simple/
2.配置为默认 在你的"C:\Users\你的用户名\"目录下创建 pip 目录,并 pip 目录下创建
pip.ini
文件,需要注意的是,文件要以
UTF-8、无BOM
格式编码。

pip.ini 文件内容
index-url=http://mirrors.aliyun.com/pypi/simple/
trusted-host=mirrors.aliyun.com


注意: 这里有一些需要我们注意的地方。trusted-host 选项为了避免麻烦是必须的,否则使用的时候会提示不受信任,或者添加--trusted-host=mirrors.aliyun.com选项。还有就是有网页提示需要创建或修改配置文件(Linux的文件在~/.pip/pip.conf,windows在%HOMEPATH%\pip\pip.ini),至少Windows7下%HOMEPATH%\pip\pip.ini这个目录是不起作用的。

基本介绍

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

下载安装


安装Docker(win10 专业版)|https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe

安装失败可以尝试 安装Windows新鲜版:https://download.docker.com/win/edge/Docker%20for%20Windows%20Installer.exe

安装Docker(虚拟机版本)|https://download.docker.com/win/stable/DockerToolbox.exe

其它 Windows 版本(包含 win10 家庭版)只能安装虚拟机版本。如果以上都安装失败则建议升级至 Windows10 专业版。

安装Docker(MacOS yosemite)|https://download.docker.com/mac/stable/Docker.dmg

如果安装失败可以尝试 安装MacOS新鲜版:https://download.docker.com/mac/edge/Docker.dmg

Ubuntu

https://store.docker.com/editions/community/docker-ce-server-ubuntu?tab=description

检测是否安装
安装完成后在命令行中输入:
docker version
检测是否完成安装。
(安装检测)

设置国内加速器
由于国内访问直接访问Docker hub网速比较慢,拉取镜像的时间就会比较长。一般我们会使用镜像加速或者直接从国内的一些平台镜像仓库上拉取。我们接下来为大家介绍怎样去设置国内镜像加速器。右键 Docker 选择 Setting:
(docker设置)

加速器地址

我们进行如下配置后,其中加速器的地址为:
http://208b5756.m.daocloud.io
点击 Apply 进行保存。


基本介绍

首先介绍WAMP,即Windows下的Apache+Mysql+PHP。 它是一组常用来搭建动态网站或者服务器的开源软件,拥有很高的兼容度,组成了一个强大的Web应用程序平台。

下载安装


安装WAMP|http://www.wampserver.com/en/#download-wrapper
首先要下载 WAMP ,下载前可查看电脑是否安装过老版本,若已安装可继续使用,或卸载后再安装新版本。现大部分电脑都已经支持64bit版,如果无法正常运行则尝试32位版。 安装WAMP的过程也很简单,选择安装目录后,其它都点 next 就行 ,但如果安装过程中出现的提示是否指定某些软件为默认的时点击No。 在 WAMP 安装目录下,我们可以看到一个叫
www
的文件夹,这是我们的默认工作空间,也就是说我们可以在这个文件夹下面编写 PHP 代码。 本地: http://127.0.0.1/ 安装好后,点击桌面的 WAMP 图标运行本地服务器: 现在我们打开浏览器访问
http://127.0.0.1/
这个网址,如果看到这样的界面就表示安装成功了
Hello Twosecurity'; ?>
接下来我们就在之前提到的 www 目录下编写一个 php 测试文件:
twosecurity.php
现在再访问 http://127.0.0.1/twosecurity.php 就可以看到这样的结果: 配置好如上环境之后,推荐大家可以使用VisualStudioCode 编辑 PHP 代码:
https://code.visualstudio.com/

0x01 介绍

Sublist3r 是一个通过搜索引擎列举子域名的工具,使用的搜索引擎有百度、Google、Yahoo、Bing以及Ask。同时它还可以通过Netcraft以及DNSdumpster获取域名。使用Python编写,推荐使用Python2.7 + 、 Python3.4 + 在Windows、Mac、Linux上运行。

0x02 下载、安装


git clone https://github.com/aboul3la/Sublist3r.git

安装依赖
进入Sublist3r文件夹后执行下面的语句(根据环境不同可能有所不同)
pip install -r requirements.txt

0x03 使用方法

-d 指定一个目标域名 -b 启用subbrute bruteforce模块,用于暴力破解 -p 针对特定的TCP端口扫描子域名 -v 显示详细的枚举过程日志 -t 执行枚举线程 -e 指定枚举使用引擎,用逗号隔开

-e参数能指定的引擎有:baidu,yahoo,google,bing,ask,netcraft,dnsdumpster,virustotal,threatcrowd,ssl,passivedns

-o 指定结果输出文件 -h 获取帮助

0x04 例子

使用Sublist3r枚举baidu.com主域下的子域名,并且将结果输出到result.txt中
python sublist3r.py -d baidu.com -o result.txt
使用Sublist3r枚举baidu.com主域下的子域名,使用5个线程
python sublist3r.py -d baidu.com -t 5
使用Sublist3r枚举baidu.com主域下的子域名,仅使用Google和Bing搜索引擎
python sublist3r.py -d baidu.com -e google,bing

0x05 测试


在线检测|使用Sublist3r枚举exeye.run主域下的子域名,并且把所有子域名截图粘贴到编辑框|题目链接|%mev.exeye.run

0x06 扩展

通过上面的参数我们可以了解到,Sublist3r 一次只能枚举一个域名,但在渗透测试中(比如挖掘SRC)我们经常会有多个域名需要枚举。这时候我们可以使用网上其他人在Sublist3r基础上增加了批量枚举功能的项目:
git clone https://github.com/PickledFish/Sublist3r
用法和原版Sublist3r一样,只多了一个参数 -r 指定一个含有域名集合的文件 比如我们有10个域名写入domains.txt,一行一个域名,那么我们枚举的语句:
python sublist3r.py -r domains.txt -o result.txt

0x01 介绍

DirCrack 是一个基于Python协程的目录扫描工具,可以控制速率,多站点均分站点流量防Ban,自动探测Not Found格式,可以指定目录不存在时的响应格式。

0x02 下载、安装


git clone https://github.com/clowndmn/DirCrack cd DirCrack pip install -r requirements.txt

0x03 举例讲使用方法

扫描https://www.baidu.com下的目录,使用dict.txt字典,将结果输出到result.txt文件
python dircrack.py -u https://www.baidu.com -d dict.txt -o result.txt
扫描https://www.baidu.com下的目录,每分钟发1000个请求,指定user-agent为"Me Spider"
python dircrack.py -u https://www.baidu.com -r 1000 -A "Me Spider"
DirCrack 参数列表
-u,--url 指定目标Base URL -fu,--file-url 指定一个待扫描文件,url以换行分隔 -d,--dic 指定目录字典 -X,--ext 指定要使用的后缀,例-X "php",将会由Base Url + 目录 + ".php" 为路径扫描 -A,--agent 指定请求User-Agent -H,--Head 指定Headers头,可指定多个。-H 'content-type:application/json' -H 'cc:1' -p,--proxy 设置代理 -r,--rate 设置速率,每分钟发送的请求数量,默认每分钟900次请求 --allow-redirect 是否进行重定向,默认False -o,--output-file 设置输出文件 --invalid-page 设置无效页面,可设置多个,格式:status_code: include_content,例如:--invalid-page "404:Not Found" --invalid-page "200:页面不存在"

0x04 测试


DirCrack 测试|使用DirCrack默认字典扫描目标网站,对扫描结果访问获取flag填入|https://bumec.exeye.run|{flag-280sk.as92}

0x01 介绍

Goby 是基于网络空间映射技术的下一代网络安全工具,通过为目标网络建立全面的资产知识库来生成对网络安全事件和漏洞的紧急响应。 常用于资产收集、漏洞发现、漏洞利用及生成报告。它能够针对一个目标企业梳理最全的攻击面信息,同时能进行高效、实战化漏洞扫描,并快速的从一个验证入口点,切换到横向。我们希望能够输出更具生命力的工具,能够对标黑客的实际能力,帮助企业来有效地理解和应对网络攻击。 Goby 预置了100,000多个规则识别引擎,可自动识别和分类硬件设备和软件业务系统,并全面分析网络中存在的业务系统。Goby 提供了最快的扫描体验,对目标的影响最小,并通过非常轻的传输快速分析了与端口相对应的协议信息。

0x02 下载、安装

Goby采用Electron+VUE前端框架的绿色版本,支持跨平台运行,无需安装。下载后解压运行Goby.exe
Goby 下载|https://gobies.org/#dl
因为Goby基于网络扫描,所以我们要让Goby能识别到我们的网卡。
Windwos 用户需要下载 Npcap 数据捕获包安装

Npcap下载|https://nmap.org/npcap/dist/npcap-0.9983.exe

0x03 Goby 使用

打开软件,点击Scan按钮,在弹出的窗口中指定ip(目标,以换行分割多个目标),port中有定义好的分类,可以选择分类,也可以选择扫描所有端口。在高级设置中,我们可以选择是否进行漏洞扫描,以及是资产优先还是漏洞扫描优先。如上图

0x04 查看结果


报告摘要

资产分布

资产分析

资产

0x01 BBScan介绍

BBScan 是一个高并发漏洞扫描工具,可用于:①高危漏洞爆发后,编写简单插件或规则,进行全网扫描;②作为巡检组件,集成到已有漏洞扫描系统。BBScan作为高并发工具,能在1分钟内对2W个IP地址进行指定端口发现及漏洞验证,对超过1000个网站进行HTTP服务发现,并完成漏洞检测。

0x02 BBScan安装

值得注意:BBScan 只在Python2.x中稳定运行


shell|git clone https://github.com/lijiejie/BBScan cd BBScan pip install -r requirements.txt

0x03 使用方法

扫描完成后,会通过默认浏览器打开扫描报告

使用一个或多个插件,扫描某个C段
shell|python BBScan.py --scripts-only --script redis_unauthorized_access --host www.site.com --network 24
上述为扫描www.site.com主机的C段并用redis_unauthorized_access插件发现风险,--scripts-only 表示只使用脚本模式。 是有一个或多个规则扫描文件中的所有目标
shell|python BBScan.py --no-scripts --rule phpinfo_or_apc --no-check404 --no-crawl -f targets.txt
使用 phpinfo_or_apc 规则,扫描 targets.txt 文件中的所有目标,每行一个目标,我们使用--no-check404(不检查404状态码),--no-crawl(不抓取子目录)两个参数可以明显减少HTTP请求数量。 扫描单个Web服务
shell|python BBScan.py --host www.baidu.com
参数列表:
#指定目标 --host
] 指定一个或多个目标 -f TargetFile 从文件导入目标,目标以换行符分割 -d TargetDirectory 从文件夹中导入所有*.txt目标文件 --network MASK 设置子网掩码,配合上面三个参数中的任意一个,实现网段扫描 #HTTP 扫描 --rule
] 指定扫描规则,一个或多个 -n,--no-crawl 禁用页面抓取,不处理页面中的其他链接 -nn,--no-check404 禁用404状态码检查 --full 处理所有子目录 #插件扫描 --scripts-only 只启用插件扫描,禁用HTTP规则扫描 --script
]指定使用的插件,一个或多个 --no-scripts 禁用插件扫描 #并发 -p PROCESS 扫描进程数,默认30,建议值:10-50之间 -t THREADS 单个目标扫描线程数(默认3),建议值:3-10之间 #其他参数 --timeout TIMEOUT 单个目标最大扫描时间,单位分钟,默认10分钟 --md 输出markdown格式报告 --save-ports PortsDataFile 保存端口开放信息,可以再次导入使用 --debug 打印调试信息 -nnn,--no-browser 不使用默认浏览器打开报告 -v 显示程序版本信息

0x04 扩展编写

使用BBScan最大的好处是我们可以将自己了解的通用漏洞写成script或者rule,以便在后面的扫描任务使用,所以我们来了解一下如何通过简单的Python脚本实现script吧。
python|from lib.common import save_script_result def do_check(self, url): if url == '/': if self.conn_pool and self.index_status in (301, 302): for keyword in
: if self.index_headers.get('location', '').find(keyword) >= 0: save_script_result(self, self.index_status, self.base_url + '/', 'Admin Site') break
在上面的代码中,我们可以看到,script的结构是编写一个do_check函数,包含self和url两个参数,其中self为Scanner对象,关于Scanner对象,在BBScan.py文件中有声明,我们可以使用Scanner对象的任意方法,属性。比如:
self.host 目标主机 self.port 目标端口 self.ports_open 目标开放端口列表 self.conn_pool HTTP连接池 self.http_request 可发起HTTP GET请求 self.index_headers,self.index_status,self.index_html_doc 是请求页面之后返回的 等等...除了上面列举的还有很多属性及方法,需要自行查看Scanner类的实现
如果检测到当前请求目标符合poc规则,可以通过lib.common库中的save_script_result方法将目标保存到报告中。

0x01 介绍

Whatweb是一个基于Ruby语言的开源网站指纹识别软件,正如它的名字一样,whatweb能够识别各种关于网站的详细信息包括:CMS类型、博客平台、中间件、web框架模块、网站服务器、脚本类型、JavaScript库、IP、cookie等。

0x02 安装


RedHat/CentOS 系统:

shell|sudo yum update -y yum install ruby ruby-devel rubygems -y wget https://github.com/urbanadventurer/WhatWeb/archive/v0.5.1.tar.gz tar zxvf v0.5.1.tar.gz cd WhatWeb-0.5.1 ./whatweb target
这里我们可能会遇到一个错误(缺少引用) 我们需要安装一下引用
shell|bundle install

Debian/Ubuntu 系统:

shell|sudo apt-get install whatweb whatweb target

0x03 使用

可以看到百度域名下的相关信息

0x01 xray介绍

xray 是一款漏洞扫描神器,支持主动、被动多种扫描方式,自备盲打平台、可以灵活定义 POC,功能丰富,调用简单,支持 Windows / macOS / Linux 多种操作系统,不开源,目前社区版免费。 使用Go语言开发,跨平台,纯异步,无阻塞,发包速度快。全程使用无害POC进行检测,不会对系统造成严重影响。自带盲打平台,比如存储XSS,无回显SSRF,XXE,命令注入等。 xray扫描模块使用插件式管理,目前提供以下插件:
SQL 注入检测 (key: sqldet):支持报错注入、布尔注入和时间盲注等 XSS 检测(key: xss):支持扫描反射型、存储型 XSS 命令/代码注入检测 (key: cmd_injection):支持 shell 命令注入、PHP 代码执行、模板注入等 目录枚举 (key: dirscan):检测备份文件、临时文件、debug 页面、配置文件等10余类敏感路径和文件 路径穿越检测 (key: path_traversal):支持常见平台和编码 XML 实体注入检测 (key: xxe):支持有回显和反连平台检测 POC 管理 (key: phantasm):默认内置部分常用的 POC,用户可以根据需要自行构建 POC 并运行。可参考:POC 编写文档(https://chaitin.github.io/xray/#/guide/poc) 文件上传检测 (key: upload):支持检测常见的后端服务器语言的上传漏洞 弱口令检测 (key: brute_force):支持检测 HTTP 基础认证和简易表单弱口令,内置常见用户名和密码字典 JSONP 检测 (key: jsonp):检测包含敏感信息可以被跨域读取的 jsonp 接口 SSRF 检测 (key: ssrf):ssrf 检测模块,支持常见的绕过技术和反连平台检测 基线检查 (key: baseline):检测低 SSL 版本、缺失的或错误添加的 http 头等 任意跳转检测 (key: redirect):支持 HTML meta 跳转、30x 跳转等 CRLF 注入 (key: crlf_injection):检测 HTTP 头注入,支持 query、body 等位置的参数

0x02 xray安装

Github: https://github.com/chaitin/xray/releases (国外速度快) 网盘: https://yunpan.360.cn/surl_y3Gu6cugi8u (国内速度快) 请根据系统需要选择下载。

0x03 xray使用

扫描一个站点
shell|./xray webscan --basic-crawler https://www.baidu.com/
扫描一个站点并指定输出
shell|./xray webscan --json-output result.json --basic-crawler https://www.baidu.com/
输出方式有以下几种
--html-output 结果输出为html报告 --webhook-output 将结果发送到一个地址 --json-output 将结果输出到json文件

xray 代理模式扫描
代理模式下的基本架构为,扫描器作为中间人,首先原样转发流量,并返回服务器响应给浏览器等客户端,通讯两端都认为自己直接与对方对话,同时记录该流量,然后修改参数并重新发送请求进行扫描。 在使用代理模式前,我们需要先安装证书,我们先通过以下命令生成证书
./xray genca
上面代码将会在当前目录生成ca.crt及ca.key两个文件,我们要将ca.crt证书安装到客户端机器上。在此不赘述。然后我们使用下面的命令启动代理模式扫描。
./xray webscan --listen 127.0.0.1:7777 --html-output result.html
这里xray将监听本地的7777端口进行扫描,并将扫描结果以html的形式输出到result.html文件中。接下来只需要在浏览器中配置代理为127.0.0.1:7777,并访问目标,xray就会自动根据访问流量去扫描了。 浏览器配置代理 被动扫描报告

0x01 介绍

大家知道Web漏洞扫描的前提就是爬虫,目前静态爬虫在抓取网页的时候有诸多限制,链接抓不全,js无法渲染等等问题,特别是近几年前端框架百花齐放,类似VUE这样的前端框架更是让静态爬虫无从下手,所以动态爬虫就应运而生了。动态爬虫对于Web漏洞发现有着至关重要的作用,先于攻击者发现脆弱业务的接口将让安全人员占领先机。即使你有再好的payload,如果连入口都发现不了,后续的一切都无法进行。 crawlergo是一个使用chrome headless模式进行URL入口收集的动态爬虫。 使用Golang语言开发,基于chromedp 进行一些定制化开发后操纵CDP协议,对整个页面关键点进行HOOK,灵活表单填充提交,完整的事件触发,尽可能的收集网站暴露出的入口。同时,依靠智能URL去重模块,在过滤掉了大多数伪静态URL之后,仍然确保不遗漏关键入口链接,大幅减少重复任务。

0x02 安装

安装工具之前请阅读免责声明:
https://github.com/0Kee-Team/crawlergo/blob/master/Disclaimer.md
crawlergo 依赖chrome运行,所以请下载新版 chromium:
https://www.chromium.org/getting-involved/download-chromium
然后下载最新crawlergo:
https://github.com/0Kee-Team/crawlergo/releases

如果你使用Linux系统,运行时可能提示缺少依赖组件,请参考下面的解决方法


- 'Fetch.enable' wasn't found Fetch是新版chrome支持的功能,如果出现此错误,说明你的版本较低,请升级chrome到最新版即可。 - chrome运行提示缺少 xxx.so 等依赖 - Ubuntu apt-get install -yq --no-install-recommends libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 libnss3 - CentOS 7 sudo yum install pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 \ ipa-gothic-fonts xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-utils xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc -y sudo yum update nss -y

0x03 开始使用

假设你的chromium安装在 /tmp/chromium/ 目录下,开启最大10标签页,爬取AWVS靶场:
shell|./crawlergo -c /tmp/chromium/chrome -t 10 http://testphp.vulnweb.com/
接下来加上代理
shell|./crawlergo -c /tmp/chromium/chrome -t 10 --request-proxy socks5://127.0.0.1:7891 http://testphp.vulnweb.com/
参数列表:
--chromium-path Path, -c Path chrome的可执行程序路径 --custom-headers Headers 自定义HTTP头,使用传入json序列化之后的数据,这个是全局定义,将被用于所有请求 --post-data PostData, -d PostData 提供POST数据,目标使用POST请求方法 --max-crawled-count Number, -m Number 爬虫最大任务数量,避免因伪静态造成长时间无意义抓取。 --filter-mode Mode, -f Mode 过滤模式,简单:只过滤静态资源和完全重复的请求。智能:拥有过滤伪静态的能力。严格:更加严格的伪静态过滤规则。 --output-mode value, -o value 结果输出模式,console:打印当前域名结果。json:打印所有结果的json序列化字符串,可直接被反序列化解析。none:不打印输出。 --output-json filepath 将爬虫结果JSON序列化之后写入到json文件。 --incognito-context, -i 浏览器启动隐身模式 --max-tab-count Number, -t Number 爬虫同时开启最大标签页,即同时爬取的页面数量。 --fuzz-path 使用常见路径Fuzz目标,获取更多入口。 --robots-path 从 /robots.txt 文件中解析路径,获取更多入口。 --request-proxy proxyAddress 支持socks5代理,crawlergo和chrome浏览器的所有网络请求均经过代理发送。 --tab-run-timeout Timeout 单个Tab标签页的最大运行超时。 --wait-dom-content-loaded-timeout Timeout 爬虫等待页面加载完毕的最大超时。 --event-trigger-interval Interval 事件自动触发时的间隔时间,一般用于目标网络缓慢,DOM更新冲突时导致的URL漏抓。 --event-trigger-mode Value 事件自动触发的模式,分为异步和同步,用于DOM更新冲突时导致的URL漏抓。 --before-exit-delay 单个tab标签页任务结束时,延迟退出关闭chrome的时间,用于等待部分DOM更新和XHR请求的发起捕获。 --ignore-url-keywords 不想访问的URL关键字,一般用于在携带Cookie访问时排除注销链接。 --push-to-proxy 拟接收爬虫结果的监听地址,一般为被动扫描器的监听地址。 --push-pool-max 发送爬虫结果到监听地址时的最大并发数。 --log-level 打印日志等级,可选 debug, info, warn, error 和 fatal。
当输出模式为json时,返回的结果反序列化之后包含四个部分
all_req_list: 本次爬取任务过程中发现的所有请求,包含其他域名的任何资源类型。 req_list:本次爬取任务的同域名结果,经过伪静态去重,不包含静态资源链接。理论上是 all_req_list 的子集 all_domain_list:发现的所有域名列表。 sub_domain_list:发现的任务目标的子域名列表。

0x04 使用Python调用

我们可以通过Python调用crawlergo并且解析返回的结果
python|#!/usr/bin/python3 # coding: utf-8 import simplejson import subprocess def main(): target = "http://testphp.vulnweb.com/" cmd =
rsp = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) output, error = rsp.communicate() # "--
--" 是任务结束的分隔字符串 result = simplejson.loads(output.decode().split("--
--")
) req_list = result
print(req_list) if __name__ == '__main__': main()
将上述代码中的target 修改成目标网站(例如:http://testphp.vulnweb.com)后执行: 可以看到扫描的结果是一个列表,列表中的字典包含:url、headers、method、data、source键。
json|{u'url': u'http://testphp.vulnweb.com/', u'headers': {u'Spider-Name': u'crawlergo', u'User-Agent': u'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.0 Safari/537.36'}, u'data': u'', u'method': u'GET', u'source': u'Target'}

cmder,Node.JS ,Python安装,Docker,WAMP,Sublist3r 子域名发现工具,DirCrack 目录扫描工具,Goby 资产扫描管理工具,BBScan 高并发漏洞扫描工具,WhatWeb 网站指纹识别,Xray 综合Web漏洞扫描工具,crawlergo 动态网络爬虫工具,知识盒子,知识付费,在线教育