注:微信公众号,csdn,freebuf原创以及本博客,都为我本人。 转载请邮件告知!

免责声明:由于传播、利用本文所发布的而造成的任何直接或者间接的后果及损失,均由使用者本人承担

自动化挖漏洞环境搭建

原理

将目标资产让爬虫工具爬取,再把数据通过burp发送给xray进行漏洞扫描

使用到的工具:

  • Fofa采集工具,文章用edu系列举例,大家可以根据自己的目标进行选择。
  • Rad,浏览器爬取工具,github地址: https://github.com/chaitin/rad
  • Chrome浏览器, Rad默认启动的浏览器
  • Burp和Xray就不赘述了

START

资产采集、

​ 由于举例子,就用fofa采集工具去批量采集edu资产来做演示,(感谢团队F_Dao师傅送的fofa超级会员

1

2

好多,fofa超级会员真香

资产处理、

​ 因为要使用Rad爬虫,所以我们要对资产进行整理,要使他符合Rad的规则。我们要把上图红框框里的IP加上http://或者https://

​ 记得之前学校有考过一个题,就是在excel表中批量给单元格加同样的内容,不过我忘了,这里就用python解决好了

1623588398_60c5fe2e0b831a09a7e97.png!small?1623588398757

1
2
3
4
5
6
7
with open("1.txt") as txt:
for line in txt:
line = line.strip()
if "443" in line:
print("https://" + line)
else:
print("http://" + line)

脚本效果

1623588443_60c5fe5b367de0b9c7c22.png!small?1623588443941

上面是资产处理好的效果图,放到Rad目录下,后面的内容会用到。

流量转发、

​ 我们需要给burp添加插件,设置代理

​ 被动扫描插件可以更大几率提高挖到的可能性,说不准捡个shiro fastjson这些组件漏洞什么的,这里方便演示随意加两个,当然插件是多多益善

1623588523_60c5feab8467ab213c71e.png!small?1623588524907

代理设置为8080,为了是和Rad响应,因为流量是从ray过来的

1623588644_60c5ff24d23babd9faaae.png!small?1623588645579

1623588675_60c5ff43bad40ae501211.png!small?1623588676494

流量出口设置为7777,因为们要将数据包发给Xray

漏洞扫描、

​ 开启Xray被动扫描,监听7777,(Xray默认不扫edu,需要在config.yaml修改规则)

1623588798_60c5ffbe9eb943425622f.png!small?1623588799371

开始测试、

​ 资产准备好了,漏洞扫描器也开始监听了,就差爬虫的数据了,

​ 众所周知命令行窗口只能一个一个的输入,步骤一的资产很多,一个一个输入很麻烦也就不是自动化了,这里使用python脚本批量, 脚本内容如下:

1623588963_60c6006313cc81189eae0.png!small?1623588963856

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import os
import threading
import queue

def zid(wenjian):
words = queue.Queue()
with open(wenjian) as txt:
for i in txt:
i = i.strip()
words.put(i)
return words

def zhix(zidian):
while True:
if zidian.empty():
return
else:
i = zidian.get()
i = i.strip()
ml = ".\\rad_windows_amd64.exe -t " + i + " --http-proxy 127.0.0.1:8080"
os.system(ml)

def main():
zd = zid("zc.txt")
threads = []
for i in range(10):
t = threading.Thread(target=zhix, args=(zd,))
threads.append(t)
t.start()
for t in threads:
t.join()
print("扫描结束......")

if __name__ == "__main__":
main()

第28行是步骤一整理好资产1.txt的文件名,第30行可以根据需求来修改线程

1623589257_60c6018962c7ba312d790.png!small?1623589258951

1623589290_60c601aa996afa13af277.png!small?1623589291751

等待产出即可

:)

学校端午节就给放两天假,想打游戏又要学习还想交漏洞冲冲排名,无奈久坐腰疼,受大佬F_Dao师傅点拨,准备搞一个自动化挖漏洞环境。白天挂机挖漏洞,晚上复制粘贴交平台,芜湖~

end