这篇文章主要是实现通过fofa来收集资产信息,将信息传递给rad,xray来进行挖掘src。

fofa信息收集

之前写过一篇利用fofa的api来收集资产信息传送门:Python安全工具编写-网络空间搜索引擎收集信息。
这里我们需要获取到所有信息,域名,IP,开放端口。
将获取到的信息放入到excel表格中,方便我们做后续的信息侦察。
将域名单独存放在txt中
将账号密码存放在config.ini文件中
config.ini文件内容如下

fofa_email = ""
fofa_key = ""
#fofa_scan.py
import requests
import base64
import json
import redef read_target():with open("config.ini", "r") as f:for conf in f.readlines():if "fofa_email = " in conf:fofa_email = re.findall(r"\"(.*?)\"",conf)[0]if "fofa_key = " in conf:fofa_key = re.findall(r"\"(.*?)\"", conf)[0]if (len(fofa_email) < 2) or (len(fofa_key) < 2):print("[-] 请确认是email和key是否配置完整!")exit(0)else:try:scan = input("[*] 请输入fofa语句:")data = fofaAPI(scan, fofa_email, fofa_key)return dataexcept:print("[-] 扫描失败!")exit(0)def fofaAPI(scan,email,key):print("[*] 正在查询:%s..." % scan)bip = str(base64.b64encode(scan.encode("utf-8")),"utf-8")req = requests.get("https://fofa.info/api/v1/search/all?email={}&key={}&qbase64=".format(email,key)+str(bip))json_req = json.loads(req.text)return json_req["results"]if __name__ == '__main__':print("[*] 正在检查config.ini文件中是否有fofa_email和key...")read_target()

将数据导入到excel,以及将数据导出。

import xlwt
import xlrd
import os.path#导入数据
def import_excel(target_dir,target_sheet,target_col,target_data):book = xlwt.Workbook(encoding='utf-8',style_compression=0)sheet = book.add_sheet(target_sheet,cell_overwrite_ok=True)col = target_colfor i in range(len(col)):sheet.col(i).width = 256 * 40for i in range(len(col)):sheet.write(0,i,col[i])for i in range(len(target_data)):data = target_data[i]for j in range(len(target_data[i])):sheet.write(i+1,j,data[j])file = target_dir+'\\'+target_sheet+'.xls'book.save(file)return file#导出域名数据
def export_excel(file_path):wb = xlrd.open_workbook(file_path)sheet = wb.sheet_by_index(0)value = sheet.col_values(colx=0,start_rowx=1,end_rowx=None)return value#将新域名导出放入txt文件中
def export_excel_data_in_txt(file_path):wb = xlrd.open_workbook(file_path)sheet = wb.sheet_by_index(0)value = sheet.col_values(colx=0,start_rowx=1,end_rowx=None)for i in range(len(value)):value[i] = value[i] + '\n'f = open(os.path.splitext(file_path)[0]+'.txt','w')for i in value:f.write(i)f.close()

rad+xray

rad下载地址:https://github.com/chaitin/rad/releases
xray下载地址:https://github.com/chaitin/xray/releases

import os
import threading
import queue
import subprocessdef gain_words(file):words = queue.Queue()with open(file) as txt:for i in txt:i = i.strip()words.put(i)return wordsdef rad_start(radName,xrayProxy,dicts):while True:if dicts.empty():returnelse:i = dicts.get()i = i.strip()cmd = [radName, "-t", i, "-http-proxy", xrayProxy]rsp = subprocess.Popen(cmd, start_new_session=True)rsp.communicate()def rad(file,xc):dicts = gain_words(file)radName = "rad_windows_amd64.exe"xrayProxy = "127.0.0.1:7777"rad_start(radName,xrayProxy,dicts)threads = []for i in range(xc):#数值越大,线程越多t = threading.Thread(target=rad_start,args=(radName,xrayProxy,dicts))threads.append(t)t.start()for t in threads:t.join()def xray(output_file):xrayName = "xray_windows_amd64.exe"#xrayName = "eduScan\\xray_windows_amd64.exe"xrayProxy = "127.0.0.1:7777"xrayShell = "start cmd /k " + xrayName + " webscan" + " --listen " + xrayProxy + " --html-output " + output_fileos.system(xrayShell)

最后就是调用以上python文件
将收集到的主域名放到一个文件夹里,再收集子域名信息,最后将信息全部丢入到rad+xray中。

#main.py
import time
import os
import excel
from fofa_scan import read_target
from ScanTools import xray_start#检测是否存在相同名字的文件夹,没有则创建
def mkdir_dir(add_dir):if os.path.exists(add_dir):returnelse:os.mkdir(add_dir)#输出主域名
def return_domain(uri,target):uri = uri.lstrip("http://")uri = uri.lstrip("https://")if uri[0] != ".":uri = "." + urinum = len(target)tmp_uri = uri[::-1]tmp_uri = tmp_uri[num:]find_spot = tmp_uri.find(".")tmp_uri = uri[:find_spot]domain = tmp_uri[::-1]+targetreturn domain
#如果检测的域名不存在http协议或https协议,则添加def add_protocol(url):if "http://" in url:return urlelif "https://" in url:return urlelse:try:uri,port = url.split(':')if port == "443":tmp_url = "https://"+urielse:tmp_url = "http://" + urlreturn tmp_urlexcept:tmp_url = "http://" + urlreturn tmp_urldef scan_informations():col = ('域名', 'IP', '开放端口')data = read_target()target_dir = time.strftime("%Y_%m_%d",time.localtime())mkdir_dir(target_dir)target_dir = os.path.abspath(target_dir)urlTXT = target_dir + "\\" + "target.txt"with open(urlTXT,'w') as f:for i in range(len(data)):url = data[i][0]url = add_protocol(url)f.writelines(url+'\n')xls = excel.import_excel(target_dir,target_sheet="target", target_col=col, target_data=data)choose = input("[*] 是否要用xray扫描(y/n):")if choose.lower() in "y":xray(target_dir,data=urlTXT)elif choose.lower() in "n":print("[+] 扫描结束!")exit(0)else:print("[-] 错误参数!")def xray(target_dir,data):os.chdir("ScanTools")output_file = target_dir +"/"+ str(time.strftime("%Y_%m_%d",time.localtime())) + ".html"xray_start.xray(output_file)xc = int(input("[*] 输入线程:"))print('[*] 开始调用xray检测...')time.sleep(5)xray_start.rad(data,xc)os.system('explorer '+output_file)print('[+] 扫描结束!')print('[+] 扫描报告路径:%s' % output_file)input('[*] Press Enter to exit...')if __name__ == "__main__":scan_informations()

效果图:


渗透实战-通过fofa+rad+xray批量挖掘src相关推荐

  1. 【src挖掘】fofa联动xray批量刷src

    目录 1.利用fofa API收集目标 2.使用xray批量验证 1.利用fofa API收集目标 需要安装python2 # -*- coding: utf-8 -*- import time im ...

  2. 批量挖掘SRC思路与实践一

    一.SRC挖掘思路 在接触src之前,我和很多师傅都有同一个疑问,就是那些大师傅是怎么挖漏洞的? 与日常靶场训练不同,SRC漏洞挖掘更偏向于对业务资产的熟悉程度,除了需要掌握渗透测试的技术要点以外,可 ...

  3. 批量挖掘SRC思路与实践二

    批量刷SRC实践 1.用友nc的命令执行漏洞案例 Poc: http ://xxx.xxxx.xxxx.xxxx/servlet//~ic/bsh.servlet.BshServlet"&g ...

  4. crawlergo联动xray漏洞挖掘

    SRC漏洞挖掘 简介 SRC漏洞平台:安全应急响应中心(SRC, Security Response Center),是企业用于对外接收来自用户发现并报告的产品安全漏洞的站点.说白了,就是连接白帽子和 ...

  5. 【网络安全】2022年第一次靶场渗透实战学习

    一.介绍 渗透测试是通过模拟黑客或者骇客攻击,以评估计算机系统或者网络环境安全性的技术:主要的目的是进行安全性的评估,而不是摧毁或者破坏目标系统. 渗透测试所需要的基础技能必须有网络基础.编程基础.数 ...

  6. 域渗透基础_域渗透实战下gpo策略利用

    计划任务 每次需要删除计划的配置文件 ,更改任务名 重新下发文件,计划任务的文件路径放在sysvol目录下,域渗透实战下gpo策略利用. startup 重启登录 文件必须放在 gpo配置的指定目录下 ...

  7. Pandas批量删除dataframe列名中的后缀实战:使用rstrip函数批量删除列名中的后缀(suffix)、使用replace函数批量删除列名中的后缀(suffix)

    Pandas批量删除dataframe列名中的后缀实战:使用rstrip函数批量删除列名中的后缀(suffix).使用replace函数批量删除列名中的后缀(suffix) 目录

  8. Pandas批量删除dataframe列名中的前缀实战:使用lstrip函数批量删除列名中的前缀(prefix)、使用replace函数批量删除列名中的前缀(prefix)

    Pandas批量删除dataframe列名中的前缀实战:使用lstrip函数批量删除列名中的前缀(prefix).使用replace函数批量删除列名中的前缀(prefix) 目录

  9. 暗月渗透实战靶场-项目六(上)

    暗月渗透实战靶场-项目六 环境搭建 使用的是暗月提供的环境 直接虚拟机运行即可 设置网络环境 网卡配置的时候为了方便直接使用的是暗月的vm19的网卡配置的内网环境 00x1-信息搜集 我们已经知道目标 ...

最新文章

  1. 使用 ale.js 制作一个小而美的表格编辑器(2)
  2. python configparser 参数 用法
  3. WindowsPhone8游戏开发字体国际化化
  4. CouncurrentHashMap源码解析
  5. 在Synaptic Package Manager 加载USB 接口的CD-ROM
  6. java 索引排序_Java培训MySQL之排序分组优化索引的选择
  7. mac下修改mysql默认字符集为utf8
  8. ASP.NET MVC V2 Preview 1 发布 期望VS有更好的表现
  9. LeetCode 581. Shortest Unsorted Continuous Subarray
  10. PLSQL如何将千万数据快速插入到另一张表中_数据库设计中的 9 大常见错误
  11. java工程师职业价值观_什么是职业价值观?舒伯职业价值观测试
  12. 关于文件的MIME类型
  13. 中国信通院发布《区块链赋能新型智慧城市白皮书(2019年)》解读(附全文下载)
  14. 小孩子都喜欢的卡通影视角色原来是用maya软件制作出来的
  15. 推荐一个工具:Dukto 免费快速实现局域网跨平台文件传输
  16. 编程比赛三大赛制介绍(ACM赛制、OI赛制、IOI赛制)
  17. 关于网络直播营销活动监管中的《广告法》
  18. Fresco之强大之余的痛楚
  19. Python自动化小米手环运动数据导出
  20. 连接服务器绑定信息无效,警告:ldap_bind():无法绑定到服务器:凭据无效PHP和LDAP...

热门文章

  1. 下列关于虚拟存储器的叙述中,正确的是( )
  2. CTR预估 论文精读(一)--XGBoost
  3. Win11的两个实用技巧系列之电脑ip总是冲突怎么办?
  4. R语言计算回归模型残差平方和(Residual Sum of Squares)实战,并基于残差平方和比较模型优劣
  5. Linux挖矿病毒清理流程
  6. 25、搞懂闭包、作用域、执行期上下文(VO、AO)、作用域链
  7. VR全景助力健身房品牌升级,大幅度提升用户到店率
  8. 假定有5角、1角、5分、2分和1分共5种硬币,在给顾客找硬币时,一般都会尽可能地选用硬币个数最小的方法
  9. CSS超出两行隐藏,但第三行文字溢出
  10. 爬虫+词云:爬取豆瓣电影top100的导演制作图云