声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。
0x00 前言
本项目已经可以长期正常使用,较之前bug比较多的时候好多了,适用于各类SRC挖掘,CNVD证书挖掘,也可以用于HVV,红蓝对抗快速打点扫描使用,考虑到有的师傅可能刚接触自动化,今天给大家详细讲一下如何搭建laoyue这套自动化。
0x01目前支持的功能
-
定期进行fofa,hunter,subfinder等子域名资产监控收集(hunter可以设置多个账号无限白嫖积分),保证每天都有新资产可以
-
快速的漏洞,敏感目录,中间件弱口令扫描
-
去重机制保证无重复扫描浪费时间
-
cnd判断,bypass403,host碰撞等扩展配置
-
后续添加更多绕waf POC精准打击,如log4j,fastjson等rce
-
后续添加添加JS爬虫功能获取敏感api目录再进行目录扫描,提取JS文件敏感AK密钥,请持续关注项目更新
0x02 项目搭建流程
1.vps(centos7或者ubutu20环境都行),我推荐我使用的vps链接,购买下图的配置就够了,购买后过几分钟就会在注册的邮箱内受到vps的服务器IP和控制台账号密码,可以在控制台进行系统安装
https://my.racknerd.com/index.php?rp=/store/black-friday-2023
控制台地址:https://nerdvm.racknerd.com/login.php
2.安装docker环境(以centos7环境为例子,ubutu的自行上网搜索哈)
#docker安装
yum update
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce
sudo systemctl start docker
sudo systemctl enable docker
#docker-compose
yum install wegt
sudo wget -P /usr/local/bin https://github.com/docker/compose/releases/download/1.27.4/docker-compose-Linux-x86_64
cd /usr/local/bin/
sudo mv docker-compose-Linux-x86_64 docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose -v
3.安装python3环境(centos7为例,ubutu请自行上网搜索安装)
cd /usr/local
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel
wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz
tar -zxvf Python-3.9.0.tgz
cd Python-3.9.0
./configure prefix=/usr/local/python3
make && make install
ln -s /usr/local/python3/bin/python3.9 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.9 /usr/bin/pip3
python3 -V
#注意:更改yum配置(非必须)
#因为其要用到python2才能执行,否则会导致yum不能正常使用(不管安装 python3的哪个版本,都必须要做的)
vi /usr/bin/yum
把 #! /usr/bin/python 修改为 #! /usr/bin/python2
vi /usr/libexec/urlgrabber-ext-down
把 #! /usr/bin/python 修改为 #! /usr/bin/python2
vi /usr/bin/yum-config-manager
#!/usr/bin/python 改为 #!/usr/bin/python2
4.安装laoyue(记得点个小星星哦感谢)
git clone https://github.com/Soufaker/laoyue.git
cd laoyue
chmod 777 ./build_centos7.sh #如果是ubutu环境就chmod 777 ./build_ubutu.sh
./build_centos7.sh
5.安装awvs
sudo systemctl start docker.service
docker pull dockermi3aka/awvs:latest
docker run -it -d -p 3443:3443 --name my-awvs dockermi3aka/awvs:latest
6.安装好后访问https://vps:3443端口即可,记得修改密码和将语言调整为简体,漏洞播报的话看起来更明显,然后生成新的api复制到config.ini配置文件即可
[awvs]
awvs_url = https://X.X.X.X:3443
awvs_key = 1986ad8c0a5b3df4d7028d5f3c06e936c5d133333333434a0883d4da84b006fca5
7.配置./config/config.ini文件,默认会提供一些配置样式,按照配置样式配置即可
[fofa]
fofa_key = 23e24abc1866a533121c369b66b5280c
fofa_email = [email protected]
# 是否开启fofa扫描,默认开启为0,关闭输入1
is_fofa = 0
#目前fofa一次最多2000条,默认100,提取最新的100条数据
size=100
#自定义附加语法,系统默认跑domian=xxx,这里可以设置&&对搜索的域名进行筛选
# keyword = &&body='login' 如这种就是添加一个搜索系统的附属查询条件,总的查询语句就变为domian=xxxx.com &&body='login',具体其他查询语法可以看fofa查询文档
keyword =
#fofa查询支持域名一起查询,这里可以设置一次查询多少域名,默认1
count = 1
[hunter]
hunter_api_1 = b101fc70cac489509392cf16736e35513739431252955dd8620a7c422e6a4f522
hunter_api_2 = 49bf0e30a462ff8d74f80e6ddfebbeefa5a64302a2cac49131a72ef52fb71fafd93
hunter_api_3 = 4ab44d2b27e1b618bdba3b412ba1b955d912b50f1d3d48f12532151ee090003
hunter_api_4 = c5af70ca2d2d5dc06a566def1069b542ad84fa3ef788b151111cfbf0ea6122246e
hunter_api_5 = 6e74c5a2bde8ae575057befad48c727923c472d5333333333333666a370f16c3
#是否开启鹰图扫描默认开启为0,不开启为1
is_hunter = 1
#查询页面合法设置数量(10,20,50),默认10
size= 10
#查询语法自定义
# keyword = && web.body=login 如这种就是添加一个搜索系统的附属查询条件,总的查询语句就变为domian=xxxx.com && web.body=login,具体其他查询语法可以看yt查询文档
#keyword = && web.body="admin"
keyword =
#鹰图查询支持域名一起查询,这里可以设置一次查询多少域名,默认1,最多设置为5
count = 1
[subfinder]
#是否开启subfinder默认开启为0,不开启为1
is_subfinder = 0
[black_domain]
domain=gov.cn,edu.com,taobao.com,tall.com,<,weibo.com
[dingding]
access_token = d6fe340ac0e0f4f4c5e1fa74837e28bb41111111eaa1a318f3dcc9b4f9324b0
dsecret = SEC808449753d4b6e45da8c4263afc5a3333333333aaa0c2b6a0e750e70a10fb16
[awvs]
awvs_url = https://X.X.X.X:3443
awvs_key = 1986ad8c0a5b3df4d7028d5f3c06e936c5d133333333434a0883d4da84b006fca5
#扫描类型,全部扫描
profile_id= 11111111-1111-1111-1111-111111111111
#高风险漏洞,全部扫描
#profile_id='11111111-1111-1111-1111-111111111112'
#设置扫描最大超时时间,已分钟为单位,默认设置15分钟
scan_time = 20
#设置最大线程数,默认设置2,可根据自己服务器设置
scan_count = 3
[webhook]
webhook_key = 2a3798d4-6111111111-99b0-8c59c0b6e223
#添加标签,服务器多的话可以靠这个识别服务器
[tag]
dingding_tag = xxx
weixin_tag = xxx
8.说下微信机器人和钉钉机器人的key如何配置,因为有一些师傅可能刚接触不懂(至于为什么要分开通知,是考虑到每天通知的信息较多,awvs通知就分开写了,后续看看师傅们的意见,再考虑换成一个通知系统)
企业微信机器人配置如下(通知AWVS信息):
1.打开企业微信点击权限创建企业
2.选择其他
3.这里随意填写信息就行
4.填写后就可以看到一个你自己命名的企业微信群
5.打开点击设置找到群机器人
6.添加一个自定义机器人,名字随意输入
7.然后就有一个webhook地址,复制后面的key参数的值复制到配置文件
[webhook]下即可如:
[webhook]
webhook_key = 2a3798d4-6111111111-99b0-8c59c0b6e223
钉钉通知配置如下(通知新资产,fscan,nuclei,ffuf,hostscan等扫描结果):
1.需要使用PC端钉钉,点击右上角+号创建一个群聊:
2.随意拉几个人然后名字随意写
3.然后点击右上角群设置
4.找到机器人设置,添加机器人
5.添加自定义机器人
6.加签
7.复制webhook后的access_token的值和上面的加签的值配置到配置文件即可
[dingding]
access_token = d6fe340ac0e0f4f4c5e1fa74837e28bb41111111eaa1a318f3dcc9b4f9324b0
dsecret = SEC808449753d4b6e45da8c4263afc5a3333333333aaa0c2b6a0e750e70a10fb16
8.有的师傅钉钉收不到消息,可以看看用下面的脚本在vps运行调试一下看看能收到不123消息不,dingding_hook和Desecret记得换自己的
from dingtalkchatbot.chatbot import DingtalkChatbot
def dingtalk(c):
dingding_hook = '6468cb8da42de8fa6a60d5a00xxxxxxxxxxxxxxxx1c23936d95bbbbb1'
Dsecret = 'SEC558210df194b1dc02f62c66a5xxxxxxxxxxxxxxxcd468b080f709a0f2bc' # 可选:创建机器人勾选“加签”选项时使用
# 钉钉WebHook地址
DWebHook = 'https://oapi.dingtalk.com/robot/send?access_token=' + str(dingding_hook)
# 初始化机器人小丁
# xiaoding = DingtalkChatbot(webhook) # 方式一:通常初始化方式
xiaoding = DingtalkChatbot(DWebHook, secret=Dsecret) # 方式二:勾选“加签”选项时使用(v1.5以上新功能)
# xiaoding = DingtalkChatbot(webhook, pc_slide=True) # 方式三:设置消息链接在PC端侧边栏打开(v1.5以上新功能)
# Text消息@所有人
xiaoding.send_text(msg=c, is_at_all=True)
dingtalk('123')
0x02 laoyue使用方法
1.环境按照上面的搭建,配置文件配置好后,就可以开始运行脚本了,首先运行-h查看帮助:
python3 laoyue.py -h
2.使用调试命令看看能否跑完一边基本流程,测试的时候config.ini文件中的fofa size和hunter size可以调小一点,反正只是测试个流程而已
python3 laoyue.py -d "SRC.txt" -m -f -n -z -a
subfinder因为第一次就会跑大量的子域名,所以测试的时候当用naabu跑端口的时候过2分钟可以直接ctrl+c跳过一部分端口扫描(当然你也可以找一个子域名比较少的主域名去测试),防止扫半天都还没跑完
ffuf的目录文件默认使用./inifile/dict/file_top_200.txt,可以自行代码里更改或者改变这个文件的内容
3.nuclei跑完基本一次流程就结束了,这个时候检查一下钉钉是否收到消息
4.看看awvs是否有在跑,显示正在运行就是对了,后续看看企业微信有没有通知,这个可能有一点延时,只要安装上方的配置来,肯定就没问题。
5.以上流程都没问题就可以开始愉快的自动化监控了,目前测试只要你服务器多,监控域名多,一周收获一个中危以上的SRC没有问题,其他的就靠自己手动挖掘了,这里我讲一个小技巧,因为基本每次钉钉收集的URL都是挺新的资产,我们可以借用burp一个插件TsojanScan扫描插件,我们打开浏览器代理burp,然后疯狂的点击收集到的新资产,就靠这个插件扫就完事了,遇到登录口可以爆破的直接梭哈爆破,相信你会有不少收获。
插件地址:
https://github.com/Tsojan/TsojanScan
最后我们使用监控命令放在后台跑就行了:
单域名扫描: nohup python3 laoyue.py -d example.com -m -f -n -z -a > laoyue.out 2>&1 &
多域名扫描: nohup python3 laoyue.py -d "SRC.txt" -m -f -n -z -a > laoyue.out 2>&1 &
6.单独讲一下被动扫描功能 -N,这个功能方便我们在一些比如众测给了固定资产的情况下,或者hvv红蓝对抗需要快速收集全资产扫描,靠自己收集了很多url,或者ip资产的情况下,将搜集的文件放到./result/notautolist/notautolist.txt里然后运行命令
nohup python3 laoyue.py -m -n -f -a -N &
0x03 总结
感谢各位师傅们的支持,后续会逐步将更多手动挖掘技术同步到自动化中,希望各位师傅在2024年能挖到更多的漏洞,谢谢师傅们点的小星星。
原文始发于微信公众号(夜安团队SEC):laoyue-小白也能看懂的SRC自动化搭建
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论