0x01? 前言
很多場景下需要大范圍的掃描漏洞和快速排查互聯網暴露面的漏洞,需要使用這種自動化的手段,常規滲透測試的找互聯網暴露面是,域名>子域名>IP>C段>端口,可以手動收集,也可以借助一些網絡搜索引擎(fofa、zoomeye、hunter等)然后進行指紋識別、存活探測等等,再用xray或者nuclei、afrog之類的工具過一遍,手工滲透一下。
大概就是這樣一個流程。
后面逐漸的出現了很多自動化的工具,直接從網絡搜索引擎拉資產,然后子域、端口、指紋、各種掃描器、弱口令,一條龍過一遍。
像這種自動化的方案有很多套,比如:Goby+xray或者Goby+AWVS、ARL+XRAY、ARL+AWVS,還有Rengine這種賞金自動化工具,主要的流程還是各種自動化信息收集最后漏洞掃描,通過工作流把不同的工具組合起來,使這個流程自動化。
這里我們主要實踐一下ARL和AWVS聯動去進行漏洞掃描,為什么要用這一套方案呢,主要還是用過很多后發現這這一套算是比較好用的一個方案,ARL可以做這些信息收集的工作,同時在新一點的版本都內置了Nuclei,可以對一些通用漏洞做快速掃描,然后配合AWVS掃一些WEB應用的漏洞。后面也可以根據自己的需要加入XRAY、Aforg,再或者一些爬蟲,配合自己的POC進行掃描。都很自由可以通過小腳本互相聯動起來。
0x02? 準備工作
兩臺linux服務器:(AWVS比較占配置)
兩臺:64位+2H4G(最低配置要求)
使用的兩臺vps,一臺國內搭建燈塔系統,一臺國外vps作為漏掃服務器
ARL使用Ubuntu,AWVS能跑docker就行
燈塔ARL【資產收集】:https://github.com/adysec/ARL
AWVS【漏洞掃描】
這里我用了兩臺國外的VPS,國外找github學生包白嫖的各種廠家賬號,十幾塊錢可以買一二百刀的余額,用完連賬號一起丟了。
0x03? 工具安裝配置
Docker 內源碼安裝(最新版)
docker run --privileged -it -d -p 5003:5003 --name=arl --restart=always centos/usr/sbin/init
docker exec -it arl bash
# docker內運行,通過源碼安裝ARL
curl https://raw.githubusercontent.com/adysec/ARL/master/misc/setup-arl.sh >install.sh
bash install.sh
exit
docker內執行后直接exit退出即可。
Ubuntu 下可以直接執行 apt-get install docker.iodocker-compose -y 安裝相關依賴。
DNS爆破優化
本機安裝smartdns,以ubuntu為例。
apt install smartdns -y
curl https://github.com/adysec/ARL/raw/master/tools/smartdns.conf >/etc/smartdns/smartdns.conf
systemctl restart smartdns
docker exec -it arl bash
#docker內運行
tee /etc/resolv.conf <<"EOF"
nameserver 本機ip
nameserver 180.76.76.76
nameserver 1.2.4.8
nameserver 1.1.1.1
EOF
查看服務運行狀態
systemctl status arl-web
systemctl status arl-worker
systemctl status arl-worker-github
systemctl status arl-scheduler
登錄并修改密碼
url:http://127.0.0.1:5003
登錄憑證:admin/arlpass
多用戶登錄
由于燈塔本身沒有設計用戶管理的功能,而且是單點登錄,如果有多用戶登錄需求的需要到數據庫中添加用戶。
這里我們添加一個用戶方便后續其他工具調用使用。
docker exec -ti arl mongo
use arl
db.user.insert({ username: '用戶名', password: hex_md5('arlsalt!@#'+'密碼')})
優化字典
ARL的app/dicts目錄下放著子域名字典和一些文件掃描,可以自己對這些字典文件進行修改擴充,這里我們加強一下子域名字典。
默認只有2W,加強到八萬多,然后放到容器里面。
???????
進入容器修改第三方網絡搜索引擎接口
docker exec -it arl bash
cd /opt/ARL/app
vi config.yaml
Esc+: wq 保存退出
docker restart arl
#重啟容器
修改API接口
配置完要注意開啟這些插件。
ARL安裝完成
指紋已經添加。
nuclei使用最新版本(通過github action每日更新)。
安裝AWVS(很坑,docker拉取方便一點)
docker pull 0xgkd/awvs
docker run -it -d -p 13443:3443 0xgkd/awvs
登錄信息:
https://ip:13443/
用戶名:admin@gkd.com
密碼:Oxgkd123
記得修復改密碼!!!
登錄后可以修改個人信息,將界面改為中文,保存的時候隨便改一下名字 就可以保存了。
然后獲取API密鑰。
AWVS誤報太多
可以先掃描,然后自己創建掃描策略,將一些誤報多的漏洞排除,比如一些TLS之類的漏洞、HTTP不安全之類,直接就不選了。
0x04? 聯動腳本
先創建一個要掃描的資產分組。
創建一個掃描策略,全都選擇了,這里域名爆破和端口選大字典和全端口,這里測試我就選了測試小字典。
然后下發任務,根據情況來選擇,可以設置風險巡航任務還是資產偵察,巡航的話會持續進行掃描。我這里使用的是監控任務,持續對這個域名進行掃描。
這套掃描方法主要找的是一些高端口資產和比較偏的關聯資產,主要還是信息收集,收集的信息越多,發現的問題越多。
運行腳本,開始循環監測,ARL新增資產后會進行掃描。
?
作者:馬云卓
2024年7月8日
洞源實驗室