「功能全」自动化渗透工具箱-Ary(附下载 )
bigegpt 2024-10-23 08:49 2 浏览
欢迎搜索我的公众号:小道黑客
每天分享更多黑客技能,工具及体系化视频教程
这里最近参与CIS大会,看到一款自动化渗透工具 Ary,特点是汇聚了各种可以调用的工具。
介绍
工具地址 https://github.com/TeraSecTeam/ary
POC收集 https://github.com/TeraSecTeam/poc-collection
Ary是一个集各种渗透工具于一体的工具,不过看起来还是一个开发中的版本,试用了一遍,感觉还不错。
注意需要使用centos,好像ubuntu会报一些错误。
文件结构介绍
├── ary #二进制文件
├── configs #配置文件夹
├── input
├── log #日志记录
├── output #输出目录
├── pocs #poc文件夹,可以用自己的POC或者网上的poc
├── README.md 使用说明
└── streams #执行流所在文件夹,自己定义组合
核心功能介绍
信息收集
- 空间搜索引擎收集
- 爬虫类工具收集
- 爬虫类+存储类收集
工具联动
- 爬虫类+扫描类工具(Poc验证)
- 存储类+扫描类(Poc验证)
- 工具联动自定义+自动化
安装
1.安装所有的工具引擎,执行命令后,将会自动下载第三方的渗透工具,如xray。也可以预先不下载,在执行命令的时候如果缺少某个第三方工具会自动下载。
./ary --vulnscan --engine all --update -v
./ary --assertscan --engine all --update -v
2.chrome 的安装(爬虫需要)
配置yum谷歌的源:
vi /etc/yum.repos.d/google.repo
将下面这段粘贴进文件
[google]
name=Google-x86_64
baseurl=http://dl.google.com/linux/rpm/stable/x86_64
enabled=1
gpgcheck=0
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
配置完之后,执行以下bash命令,安装google-chrome
yum update
yum install google-chrome-stable
google-chrome --version
配置文件
默认加载配置为带有settings.ini的文件configs/example.settings.ini文件为配置示例,可以修改其内容,如加入网络搜索引擎的token
1.目录设置
可以设置各输入和输出目录
2.第三方工具来源
xray下载地址及下载输出位置
3.信息收集来源
包含rad,crawlergo,gospider等信息收集工具
4.空间搜索引擎配置
主要是配置fofa,shodan,censys的token或API key
使用体验
1.网络空间搜索
支持shodan、fofa、censys等空间搜索引擎,使用相关搜索需要在配置文件configs/example.settings.ini中配置相应的token。
相关命令
./ary --netsearch --engine shodan --keyword dedecms -v --limit 10
./ary --netsearch --engine shodan --keyword "tomcat country:"US"" -v --limit 10
./ary --netsearch --engine fofa --keyword redis -v --limit 10
./ary --netsearch --engine fofa --keyword "protocol=socks4 && banner="0x5a"" -v --limit 10
./ary --netsearch --engine censys --keyword redis -v --limit 1000
如使用shodan进行搜索
配置token(需要自己注册shodan的账号,获取token)
cd configs[root@centos configs]# vim example.settings.ini
搜索dedecms框架, 限制10条
[root@centos kk]# ./ary --netsearch --engine shodan --keyword dedecms -v --limit 10
结果如下
搜索结果默认保存在sqlite中,在配置文件中配置,公开版默认配置sqlite
使用sqlite3工具 SQLiteStudio查看,可看到结果已保存到本地data.db中
采用shodan语法搜索, 搜索国家为美国的tomcat
[root@centos kk]# ./ary --netsearch --engine shodan --keyword "tomcat country:"US"" -v --limit 10
使用fofa基本语法搜索
[root@centos kk]# ./ary --netsearch --engine fofa --keyword redis -v --limit 10
根据特征搜索sock4代理,关键词为
protocol=socks4 && banner="0x5a"
./ary --netsearch --engine fofa --keyword "protocol=socks4 && banner="0x5a"" -v --limit 10
结果
评论
censys的结果不精确,没有相应的端口
推荐shodan和fofa
2.资产扫描
基于在线靶场测试http://testhtml5.vulnweb.com
基于ARL资产扫描
ARL是freebuf能力中心开源的一套资产扫描系统(https://github.com/TophantTechnology/ARL),提供docker版,有前端界面,基于ARL可以方便进行资产扫描和可视化
这里采用ARL 资产侦查灯塔系统
(https://hub.docker.com/r/tophant/arl/tags?page=1&ordering=last_updated)
直接使用docker版本的ARL,登录进去后改密码
在配置文件里配置ARL
ARL token在登录后可以从cookie获取
打开F12查看cookie
PS: 在启动docker的时候可以配置固定token,
如果需要一直使用建议进行配置 之后在配置文件的[assertscan]中进行相应配置
通过ary调用ARL进行资产扫描
ARL:
./ary --assertscan --engine arl --input指定文件
./ary --assertscan --engine arl --url指定url,可指定多个url,url之间用逗号隔开
资产扫描相关命令
# 启动一个任务
# 查找子域名
./ary --assertscan --engine arl --url www.aaa.com -v --condition subdomain
./ary --assertscan --engine arl --url www.aaa.com,www.bbb.com -v --condition subdomain
# 查找子域名 指定文件
./ary --assertscan --engine arl --input targets.txt -v --condition subdomain
# 查找子域名 指定输出文件名
./ary --assertscan --engine arl --url www.aaa.com -v --condition subdomain --output arl.csv
# 查找端口
./ary --assertscan --engine arl --input targets.txt -v --condition portscan
# 获取任务结果
./ary --assertscan --engine arl -v --fetch-result --keyword 5fd321f0a4a557000fb2a574
# 获取任务结果 - 加载文件
./ary --assertscan --engine arl -v --fetch-result --input arl.csv
扫描测试
./ary --assertscan --engine arl --url http://testhtml5.vulnweb.com -v --condition subdomain
登录ARL后台,x.x.x.x:5003, 输入账号密码,可以看到在ARL中已经启动了任务
获取扫描完毕的结果
[root@centos kk]# ./ary --assertscan --engine arl -v --fetch-result --keyword 5ff67b77ac258f000ccf4de2
或者直接把文件作为输入
[root@centos kk]# ./ary --assertscan --engine arl -v --fetch-result --input output/arl_1_2021-01-07T03\:09\:43Z.txt.csv
端口扫描
./ary --assertscan --engine arl --input vulnweb.com -v --condition portscan
端口扫描仅限于top100,不太好用,不能指定端口
3.爬虫类
./ary --assertscan --engine rad --url http://testphp.vulnweb.com/ -v
./ary --assertscan --engine gospider --url http://testphp.vulnweb.com/ -v
./ary --assertscan --engine crawlergo --url http://testphp.vulnweb.com/ -v
使用rad进行爬取
[root@centos kk]# ./ary --assertscan --engine rad --url http://testphp.vulnweb.com/ -v
如果没有rad,会自动下载并开始爬取
rad配置文件rad_config.yml在当前目录生成爬取过程
保存结果在
output/rad_1_2021-01-07T06:47:23Z.txt
使用gospider进行爬取
./ary --assertscan --engine gospider --url http://testphp.vulnweb.com/ -v
如果没有gospider,会自动下载并开始爬取
结果保存在output/gospider文件夹下
2021-01-07 06:50:00,846 - [assertscan#143] - HIGHLIGHT - saved to output/gospider
gospider比rad在参数上更加详细
使用crawlgo进行爬取
如果没有crawlgo,会自动下载并开始爬取
[root@centos kk]# ./ary --assertscan --engine crawlergo --url http://testphp.vulnweb.com/ -vCrawlgo的也比较详细,但是速度较gospider和rad慢
结果保存在output文件夹下
2021-01-07 06:57:40,600 - [assertscan#165] - HIGHLIGHT - saved to output/crawlergo_1_2021-01-07T06:56:05Z.txt
4.漏洞扫描
# 对目标进行扫描
./ary --vulnscan --url http://testphp.vulnweb.com/ --engine xray -v
# 对目标进行被动扫描(rad+xray)
./ary --vulnscan --engine xray --url http://testphp.vulnweb.com/ -v --passive
# 对文件中的目标进行被动扫描
./ary --vulnscan --engine xray --input target.txt -v --passive
# 读取数据库中的数据进扫描
./ary --vulnscan --engine xray --keyword tomcat -v
./ary --vulnscan --engine xray --keyword tomcat -v --crawl
直接调用xray进行扫描
./ary --vulnscan --url http://testphp.vulnweb.com/ --engine xray -v
如果没有xray,会自动下载并开始爬取
xray的配置文件config.yaml默认在当前文件夹生成
下载完后保存在在thirdpartys文件夹下
xray结果以json格式保存在output目录下
调用xray进行被动扫描
./ary --vulnscan --engine xray --url http://testphp.vulnweb.com/ -v --passive
效果不好,可能是使用姿势不对,待进一步探索
xray+gospider分开跑
效果不错
在两个终端中运行程序:
运行xray, xray在7778端口监听,被动扫描模式
./ary --vulnscan --engine xray --port 7778 --background -v
运行gospider,将流量转发到7778端口给xray进行扫描,使用xray对go spider的内容进行扫描
./ary --assertscan --engine gospider --url http://testphp.vulnweb.com/ -v --passive --port 7778
效果如下
xray+rad分开跑
运行rad,将流量转发到7778给xray扫描,效果不错
xray+crawelgo分开跑
运行crawelgo,扫描的数量多一点,但是相对来说慢一点
5.POC使用
PoC 漏洞验证
POC可自行在POC收集 https://github.com/TeraSecTeam/poc-collection项目中寻找
./ary --pocscan --input redis.txt --poc redis -v
./ary --pocscan --url xx.xx.xx.xx --poc ./pocs/redis -v
./ary --pocscan --poc tomcat --keyword tomcat -v
./ary --pocscan --keyword redis --poc redis -v
./ary --pocscan --keyword redis --poc redis -v --limit 1 --dumppcap redis
./ary --pocscan --keyword thinkphp --poc thinkphp_rce2 -v --limit 20 --dumppcap thinkphp
# 写到数据库
./ary --pocscan --url xx.xx.xx.xx --poc redis -v --limit 2 --upload
redis POC 效果
针对单个网站打poc
[root@centos kk]# ./ary --pocscan --url 122.xx.xx.xx --poc redis -v
针对数据库中的关键词打POC
[root@centos kk]# ./ary --pocscan --keyword redis --poc redis -v
对数据包详细分析
执行流尝试使用录包功能,录包之后为pcap格式,可以用wireshark打开
6.Stream模块使用
使用这个模块可以自定义过程。
使用steam进行POC验证
自定义过程的配置在./streams/streams.yaml
./ary -v --stream --input streams.yaml --keyword "redis 未授权访问漏洞"
可以看到名称为redis 未授权访问漏洞,故在命令行中输入该关键词`--keyword "redis 未授权访问漏洞"`
将会使用shodan进行redis搜集,并且使用pocs目录下的redis.py POC进行利用尝试
效果如下
使用stream进行漏洞挖掘
也可以进行漏洞扫描,指定xray引擎,非passive方式扫描,
关键词为test testphp.vulnweb.com
./ary -v --stream --input streams.yaml --keyword "test testphp.vulnweb.com"
即可进行xray扫描
效果 如下
Trouble shooting
1、API报错
2021-01-07 02:28:23,382 - [netsearch#217] - DEBUG - fofa mail : hxxxxxl@163.com, secret : 238ebxxxxxxxxxxxxxxxxxx2440
2021-01-07 02:28:23,387 - [database#28] - DEBUG - using database : sqlite
2021-01-07 02:28:23,396 - [netsearch#249] - DEBUG - https://fofa.so/api/v1/search/all?email=hxxxxxl@163.com&key=238ebxxxxxxxxxxxxxxxxxx2440&qbase64=aXA9IjguOC144Ljgi&size=1
2021-01-07 02:28:24,597 - [netsearch#253] - ERROR - 401 Unauthorized, make sure 1.email and apikey is correct 2.FOFA coin is enough.
解决方法: 注册账号,获取token,并在配置文件中填入相应的token
2、端口被占用
解决方法
[root@centos kk]# ./ary --kill --engine xray --port 7777 -v
总结
- 快速的资产收集和工具联动操作
- 在获取某个POC和框架信息的情况下,可以快速聚合所需要的网站并且调用需要的工具进行扫描
- 适用于平时进行漏洞挖掘
- 数据库的使用可以发挥更多的想象力,其他版本在数据方面应该会更友好
- 体验下来,公开版适用于渗透测试前中期的自动化工作,辅助在测试中更快地寻找到突破点
作者:挣扎的小小
来源:https://www.freebuf.com/sectool/260698.html
相关推荐
- Docker篇(二):Docker实战,命令解析
-
大家好,我是杰哥上周我们通过几个问题,让大家对于Docker有了一个全局的认识。然而,说跟练往往是两个概念。从学习的角度来说,理论知识的学习,往往只是第一步,只有经过实战,才能真正掌握一门技术所以,本...
- docker学习笔记——安装和基本操作
-
今天学习了docker的基本知识,记录一下docker的安装步骤和基本命令(以CentOS7.x为例)一、安装docker的步骤:1.yuminstall-yyum-utils2.yum-con...
- 不可错过的Docker完整笔记(dockerhib)
-
简介一、Docker简介Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,...
- 扔掉运营商的 IPTV 机顶盒,全屋全设备畅看 IPTV!
-
其实现在看电视节目的需求确实大大降低了,折腾也只是为了单纯的让它实现,享受这个过程带来的快乐而已,哈哈!预期构想家里所有设备直接接入网络随时接收并播放IPTV直播(电信点播的节目不是太多,但好在非常稳...
- 第五节 Docker 入门实践:从 Hello World 到容器操作
-
一、Docker容器基础运行(一)单次命令执行通过dockerrun命令可以直接在容器中执行指定命令,这是体验Docker最快捷的方式:#在ubuntu:15.10容器中执行ech...
- 替代Docker build的Buildah简单介绍
-
Buildah是用于通过较低级别的coreutils接口构建OCI兼容镜像的工具。与Podman相似,Buildah不依赖于Docker或CRI-O之类的守护程序,并且不需要root特权。Builda...
- Docker 命令大全(docker命令大全记录表)
-
容器生命周期管理run-创建并启动一个新的容器。start/stop/restart-这些命令主要用于启动、停止和重启容器。kill-立即终止一个或多个正在运行的容器rm-于删除一个或...
- docker常用指令及安装rabbitMQ(docker安装rabbitmq配置环境)
-
一、docker常用指令启动docker:systemctlstartdocker停止docker:systemctlstopdocker重启docker:systemctlrestart...
- 使用Docker快速部署Storm环境(docker部署confluence)
-
Storm的部署虽然不是特别麻烦,但是在生产环境中,为了提高部署效率,方便管理维护,使用Docker来统一管理部署是一个不错的选择。下面是我开源的一个新的项目,一个配置好了storm与mono环境的D...
- Docker Desktop安装使用指南:零基础教程
-
在之前的文章中,我多次提到使用Docker来安装各类软件,尤其是开源软件应用。鉴于不少读者对此有需求,我决定专门制作一期关于Docker安装与使用的详细教程。我主要以Macbook(Mac平台)为例进...
- Linux如何成功地离线安装docker(linux离线安装httpd)
-
系统环境:Redhat7.2和Centos7.4实测成功近期因项目需要用docker,所以记录一些相关知识,由于生产环境是不能直接连接互联网,尝试在linux中离线安装docker。步骤1.下载...
- Docker 类面试题(常见问题)(docker面试题目)
-
Docker常见问题汇总镜像相关1、如何批量清理临时镜像文件?可以使用sudodockerrmi$(sudodockerimages-q-fdanging=true)命令2、如何查看...
- 面试官:你知道Dubbo怎么优雅上下线的吗?你:优雅上下线是啥?
-
最近无论是校招还是社招,都进行的如火如荼,我也承担了很多的面试工作,在一次面试过程中,和候选人聊了一些关于Dubbo的知识。Dubbo是一个比较著名的RPC框架,很多人对于他的一些网络通信、通信协议、...
- 【Docker 新手入门指南】第五章:Hello Word
-
适合人群:完全零基础新手|学习目标:30分钟掌握Docker核心操作一、准备工作:先确认是否安装成功打开终端(Windows用户用PowerShell或GitBash),输入:docker--...
- 松勤软件测试:详解Docker,如何用portainer管理Docker容器
-
镜像管理搜索镜像dockersearch镜像名称拉取镜像dockerpullname[:tag]列出镜像dockerimages删除镜像dockerrmiimage名称或id删除...
- 一周热门
- 最近发表
-
- Docker篇(二):Docker实战,命令解析
- docker学习笔记——安装和基本操作
- 不可错过的Docker完整笔记(dockerhib)
- 扔掉运营商的 IPTV 机顶盒,全屋全设备畅看 IPTV!
- 第五节 Docker 入门实践:从 Hello World 到容器操作
- 替代Docker build的Buildah简单介绍
- Docker 命令大全(docker命令大全记录表)
- docker常用指令及安装rabbitMQ(docker安装rabbitmq配置环境)
- 使用Docker快速部署Storm环境(docker部署confluence)
- Docker Desktop安装使用指南:零基础教程
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- resize函数 (64)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- mybatis大于等于 (64)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- logstashinput (65)
- hadoop端口 (65)
- vue阻止冒泡 (67)
- oracle时间戳转换日期 (64)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)