歡迎搜索我的公眾號:小道黑客
每天分享更多黑客技能,工具及體系化視頻教程
這里最近參與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 #執行流所在文件夾,自己定義組合
核心功能介紹
├── 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 的安裝(爬蟲需要)
配置yumGoogle的源:
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 : [email protected], secret :
238ebxxxxxxxxxxxxxxxxxx24402021-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/[email protected]&key=238ebxxxxxxxxxxxxxxxxxx2440&qbase64=aXA9IjguOC144Ljgi&size=12021-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
來源:kknews「功能全」自動化滲透工具箱-Ary(附下載 )