news 2026/7/6 3:38:12

SRC信息收集续集

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SRC信息收集续集

SRC 信息收集(续集) — 从插件到自动化,武装你的挖洞工具箱

上节课我们聊了信息收集的理论和基本方法,今天我们来点硬核的:浏览器插件、端口扫描、Web 刺探,以及用 Python 把信息收集自动化起来。准备好了吗?


课程概览

1. 信息收集的各种插件(扩展技能) 2. 端口扫描续集(进阶篇) 3. Web 信息刺探续集 4. Python 信息收集实战 5. 作业:用 Python 实现子域名查询 & 端口扫描

一、信息收集必备浏览器插件

在网络安全领域,信息收集是至关重要的一环。下面这些浏览器插件,就像给你的浏览器装了雷达一样,让你在浏览网页的同时悄无声息地收集目标信息。

0. 插件安装教程

所有插件的安装方式大同小异,这里以 Chrome 为例:

  1. 打开 Chrome 应用商店
  2. 搜索插件名称
  3. 点击「添加至 Chrome」
  4. 安装后在浏览器右上角点开插件图标即可使用

1. Shodan 插件

Shodan 被称为「暗黑谷歌」,是互联网设备搜索引擎的老大哥。

它能让你看到什么?

  • 当前网站的 IP 地址
  • 反解析域名
  • 国家 / 城市
  • 开放的端口
  • 一键跳转到 Shodan 网页查看更多信息

实战场景:访问http://www.chungwah.com.hk/,点开 Shodan 插件,立马看到这个站点的端口对外开放情况。是信息收集的必备插件之一。


2. FOFA Pro View 插件

FOFA 是国内最强大的网络空间测绘平台之一,这个浏览器插件让你在浏览目标网站时直接获取 FOFA 数据。

能拿到什么?

  • 所属地区
  • 网络类型
  • 关联的资产信息

一句话:帮你对目标网站有个全面的第一印象,不用来回切页面,效率拉满。


3. FindSomething 插件

这个插件非常实用——它能从网页的源代码和 JavaScript 文件中找到隐藏的宝藏。

它能找出什么?

  • 内嵌的 URL 路径
  • JS 变量中的敏感信息
  • 可能在源码里藏着的用户名和密码

很多时候开发人员会不小心在前端代码里留下测试账号、API Key 之类的东西。FindSomething 把这些信息整理并展现出来,简直是挖洞利器。


4. Wappalyzer 插件

Wappalyzer 是全球使用最广泛的技术栈识别工具之一。

它的作用是什么?

  • 识别后端语言(PHP / Python / Java / Node.js 等)
  • 识别服务器中间件(Apache / Nginx / IIS 等)
  • 识别前端框架(React / Vue / jQuery 等)
  • 识别 CMS 系统(WordPress / Drupal 等)

为什么要知道这些?举个例子:如果你发现目标用的是 WordPress 4.x 旧版本且没打补丁,就可以针对性地去找已知漏洞,而不是盲目扫描。知己知彼,百战不殆。


5. Similar Sites 插件

这个插件的逻辑很简单却非常聪明:找到与当前网站类似的站点。

为什么重要?

  • 如果已知当前网站有某漏洞,同类网站很可能也有相同问题
  • 扩大信息收集的范围,找到更多潜在的目标资产

6. Bulk URL Opener 插件

功能:一次性打开多个 URL。

最佳拍档:配合 FindSomething 使用。

用 FindSomething 从网页源码中扒出一堆 URL 路径后,用 Bulk URL Opener 批量打开,快速排查哪些是后台登录页、哪些是敏感路径。比如打开一堆/admin路径,说不定哪个就暴露了后台。


7. Hunter - Email Finder Extension

一句话介绍:社工必备工具。

功能:从网站上查找该域名下所有公开的邮箱地址。

拿到邮箱后可以干什么?可以尝试弱口令撞库、社交工程钓鱼,或者在后续密码破解中提供线索。社工这一环在信息收集中往往被低估,但效果拔群。


8. NexusScan 插件

相对较新的安全扫描插件,功能很全面:

  • 利用 VirusTotal API 进行 URL 安全扫描
  • 利用 urlscan.io 进行实时分析
  • 检测恶意网站和钓鱼页面
  • IP 地址分析
  • 技术栈检测

装一个插件等于同时用上了 VirusTotal 和 urlscan.io 的能力,省时省力。


9. 更多插件…

插件生态非常丰富,篇幅所限不能一一展开,但上面这 8 个是 SRC 挖洞中最常用的。工具不在多,用精了才是本事。


二、端口扫描进阶

为什么需要端口扫描?

上一节课我们聊了在线端口扫描工具,但真正的渗透测试中,你需要更灵活、更快速的本地工具。masscan + nmap被称为端口扫描的黄金组合。


masscan — 速度之王

masscan 是 Kali 内置的端口扫描工具,它的核心优势就是,比 nmap 快得多。

最佳实践:先用 masscan 对目标 IP(通常是一个网段)进行全端口扫描,然后再用 nmap 对存活主机的开放端口进行详细的服务识别和漏洞探测。

常用参数速查表
类别参数说明
基本扫描-p指定扫描的端口范围
--range指定 IP 范围
-iL从文件中读取目标 IP
速度控制--rate设置扫描速度(数据包/秒)
--max-rate设置最大扫描速度
--min-rate设置最小扫描速度
输出格式-oL普通文本格式
-oJJSON 格式
-oGGrepable 格式(便于 grep 处理)
网络探测--pingPing 扫描,检测存活主机
--banners获取服务横幅信息
网络配置--adapter选择网络适配器
--router-mac指定路由器 MAC 地址
案例 1:扫描 C 段指定端口
# 扫描 192.168.2.1 到 192.168.2.255 的 80-90 端口sudomasscan-p80-90--range192.168.2.1-192.168.2.255

输出示例:

192.168.2.4 → IIS 服务器 192.168.2.1 → 中国电信网关 192.168.2.5 → 本机
案例 2:C 段存活主机探测
# 检查指定范围内哪些主机在线sudomasscan--ping--range192.168.2.1-192.168.2.255
案例 3:全端口扫描 + 目录扫描实战
# 扫描所有端口,速率设为 1000masscan-p1-65535192.168.2.42--rate1000# 扫描 1-10000 端口masscan-p1-10000192.168.2.42# 扫描 1-100 端口masscan-p1-100192.168.2.42# 只扫 80 端口masscan-p80192.168.2.42
目录扫描的作用是什么?

核心目的:自动探测目标网站的隐藏目录和文件,挖掘后台入口、敏感配置、未授权资源等。

举例:

  • 扫到www.xx.com/admin/login.php→ 后台登录页 → 尝试弱口令
  • 扫到www.xx.com/backup/202505_order.sql→ 数据库备份文件 → 数据直接泄露!
  • 扫到www.xx.com/phpmyadmin/→ phpMyAdmin 入口 → 可以尝试爆破

每一次目录扫描的发现,都可能是打开后门的钥匙。

补充概念:旁注

旁注:同一台服务器下运行的不同 Web 应用。

查询工具:https://webscan.cc/

场景:假设www.xx.com防御做得很好,但同一台 IP 下还有一个没人维护的旧站点——从那个旧站点入手,最终拿下服务器,www.xx.com自然也就落入囊中。

masscan vs nmap 速度对比
# masscan 方式masscan-p1-100192.168.2.42# nmap 方式nmap192.168.2.42-p1-100# 感觉上还是快一些的

masscan 适合大范围快速扫描,nmap 适合精细探测。两者取长补短,才是最佳姿势。


nmap — 瑞士军刀

nmap 是功能最全面的网络扫描工具,支持端口扫描、主机探测、服务识别、系统识别,并且结果可以导出。

端口扫描
nmap192.168.2.42-p1-100# 扫描 1-100 端口nmap192.168.2.42-p1-1000# 扫描 1-1000 端口nmap192.168.2.42-p80,3389,22,21# 扫描指定端口

端口参数:

写法含义
-p 80扫描 80 端口
-p 1-80扫描 1~80 端口
-p 80,3389,22,21扫描指定端口
-p-等价于-p 1-65535
主机探测
nmap-sP192.168.2.42# 检测主机是否存活
服务识别
nmap-sV192.168.2.42-p80# 识别 80 端口的服务及版本nmap-sV192.168.2.42# 识别所有开放端口的服务
结果导出
sudonmap-O192.168.2.42-oNResultContent.txt# 导出为文本文件# 查看结果catResultContent.txtvimResultContent.txt

三、Web 信息刺探续集

黑暗引擎 — 网络空间测绘四天王

引擎地址特点
FOFAhttps://fofa.info/国内最强,语法丰富
Quake(360)https://quake.360.cn360 出品,数据全面
Shodanhttps://www.shodan.io老牌引擎,国际顶流
ZoomEyehttps://www.zoomeye.org知道创宇出品
FOFA 搜索语法速查
domain="baidu.com"# 按域名搜索host="webserver1"# 按主机名搜索ip="153.3.238.28"# 按 IP 搜索title="美食推荐"# 按网页标题关键词搜索server="Apache"# 按服务器软件搜索header="Content-Type: application/json"# 按 HTTP 头搜索port="80"# 按端口搜索city="London"# 按城市搜索city="中国"# 按中国城市搜索"FBI"&&country="US"# 组合搜索

FOFA 的语法灵活度远超你的想象,熟练掌握后,你可以不到 1 分钟就定位出全国范围内运行了某个特定漏洞版本软件的服务器。

参考文章:

  • https://blog.csdn.net/2302_82189125/article/details/135935575
  • https://blog.csdn.net/Javachichi/article/details/145199363

社工信息收集(快速回顾)

上一节课讲过的内容,这里列个速查:

工具地址
爱企查https://aiqicha.baidu.com/
企查查https://www.qcc.com/
ICP 备案查询https://beian.miit.gov.cn/

NC 瑞士军刀 — 用 NetCat 做端口收集

NetCat(简称 nc),在网络安全界有瑞士军刀的美誉。它可以通过 TCP/UDP 协议进行读写,既可以做网络调试工具,也可以用来端口扫描。

常用参数
参数说明
-l开启监听模式
-p指定端口
-t以 telnet 形式应答
-e程序重定向
-n以数字形式标识 IP
-v显示详细信息
-z不交互,直接显示结果(端口扫描必备)
-u使用 UDP 协议
-w设置超时时间
-d后台运行
实验 1:扫描远程网站端口
# 先 ping 获取 IPpingwww.chungwah.com.hk# 获得 IP = 103.231.255.94# 用 nc 扫描端口nc-n-v-w1-z103.231.255.94802122232553110443143318632289330656315632500080809090

输出看到3306端口开放,说明该网站使用的是 MySQL 数据库作为后端数据支撑。

实验 2:扫描本机 phpStudy 端口
nc-n-v-w1-z192.168.2.5802122232553110443143318632289330656315632500080809090
实验 3:扫描端口范围
nc-n-v-w1-z192.168.2.51-1000# 扫描 1-1000 端口nc-n-v-w1-z192.168.2.51-100# 扫描 1-100 端口
实验 4:打印 Banner 信息
# 用 echo 配合 nc 获取端口 Banner 信息echo" "|nc-n-v-w1192.168.2.51-1000echo" "|nc-n-v-w1192.168.2.51-100

拿到 Banner 后,在浏览器访问192.168.2.5:80,就能看到 Web 服务的具体内容了。


四、Python 信息收集实战 — 从零到自动化

为什么要学 Python?因为当你面对成百上千个目标时,手工操作无异于大海捞针。掌握了 Python,你就掌握了批量化和自动化的能力。

Python 学习的三重意义

  1. 理解安全工具原理— 知其然更知其所以然
  2. 掌握自定义开发— 没有工具时可以自己造轮子
  3. 解决实战痛点— 手工操作麻烦、批量化场景没有现成工具

4.1 Python 环境搭建

Python 介绍

Python 是一种解释型、面向对象、动态数据类型的高级编程语言,以简洁易读著称。

Python 2 vs Python 3

对比项Python 2Python 3
官方支持2020 年 1 月 1 日停止当前主流
不等号<>!=
打印语句print "hello"print("hello")
输入函数raw_input()input()
语法兼容❌ 不兼容 Python 3❌ 不兼容 Python 2

请务必使用 Python 3!Python 2 已经不再被官方维护。

查看版本:

python--version
PyCharm 介绍

PyCharm 是由 JetBrains 公司开发的 Python IDE,功能包括:调试、语法高亮、项目管理、代码跳转、智能提示、自动补全、单元测试、版本控制等。

安装参考:https://zhuanlan.zhihu.com/p/359897213


4.2 pip — Python 的包管理器

pip list# 列出已安装的所有模块pipinstall模块名# 安装最新版本pipinstall模块名==版本号# 安装指定版本pip uninstall 模块名# 卸载模块
国内镜像源(加速安装)

由于网络原因,从 PyPI 官方仓库安装可能很慢,建议使用国内镜像:

# 清华源pipinstallpython-whois-ihttps://pypi.tuna.tsinghua.edu.cn/simple# 阿里云源pipinstallsocket-ihttp://mirrors.aliyun.com/pypi/simple/# 腾讯云源pipinstallsocket-ihttp://mirrors.cloud.tencent.com/pypi/simple
镜像源地址
清华https://pypi.tuna.tsinghua.edu.cn/simple
阿里云http://mirrors.aliyun.com/pypi/simple/
中科大https://pypi.mirrors.ustc.edu.cn/simple/
华中理工http://pypi.hustunique.com/
山东理工http://pypi.sdutlinux.org/
豆瓣http://pypi.douban.com/simple/

4.3 Python 基础速览

注释
# 这是单行注释''' 这是多行注释(三个单引号) 可以换行写 '''""" 这也是多行注释(三个双引号) 引号必须成对出现 """
变量赋值与输入输出
# 变量赋值a=10# 输出函数print("Hello, Python!")# 输入函数name=input('请输入你的姓名:')
六大标准数据类型
类型说明是否可变
Numbers(数字)存储数值❌ 不可变
String(字符串)文本数据❌ 不可变
List(列表)有序集合[ ]✅ 可变
Tuple(元组)有序集合( )❌ 不可变
Set(集合)无序不重复{ }✅ 可变
Dictionary(字典)键值对{key: value}✅ 可变

数字:

var1=1var2=10

字符串:

s='abcdef'print(s[1:5])# 切片操作str='Hello World!'print(str)# Hello World!print(str[0])# Hprint(str[2:5])# lloprint(str[2:])# llo World!print(str*2)# Hello World!Hello World!print(str+"TEST")# Hello World!TEST

列表:

list=['Beyond',786,2.23,'john',70.2]tinyList=[123,'john']print(list[0])# Beyondprint(list[1:3])# [786, 2.23]print(tinyList*2)# [123, 'john', 123, 'john']print(list+tinyList)# ['Beyond', 786, 2.23, 'john', 70.2, 123, 'john']

元组:

tuple=('Beyond',786,2.23,'john',70.2)tinytuple=(123,'john')# 元组不能二次赋值,相当于只读列表

字典:

dict={}dict['one']="This is one"dict[2]="This is two"tinydict={'name':'Beyond','code':6734,'dept':'sales'}print(dict['one'])# This is oneprint(tinydict.keys())# dict_keys(['name', 'code', 'dept'])print(tinydict.values())# dict_values(['Beyond', 6734, 'sales'])

4.4 流程控制

if-else 条件语句
name='java'ifname=='python':print('welcome boss')else:print(name,'不是python')
if-elif-else 语句
num=5ifnum==3:print('boss')elifnum==2:print('user')elifnum==1:print('worker')else:print('error')
while 循环
count=0whilecount<10:print('The count is:',count)count=count+1print("Good bye!")# continue 和 break 用法i=1whilei<10:i+=1ifi%2!=0:# 奇数时跳过continueprint(i)# 输出 2、4、6、8、10i=1while1:# 无限循环print(i)i+=1ifi>10:break# 跳出循环
for 循环
# 遍历字符串forletterin'Python':print("当前字母: %s"%letter)# 遍历列表fruits=['banana','apple','mango']forfruitinfruits:print('当前水果: %s'%fruit)# range 用法foriinrange(1,10):print('当前数字:',i)

4.5 函数

defprintme(name):"""打印传入的字符串"""print('我的名字叫:',name)printme('张三')defsum(arg1,arg2):"""返回两个参数的和"""total=arg1+arg2returntotal total=sum(10,20)print(total)# 30

4.6 文件操作

# 读取文件withopen('example.txt','r',encoding='utf-8')asfile:content=file.read()print(content)# 写入文件withopen('example.txt','w',encoding='utf-8')asfile:content=file.write('abcdefg')

4.7 实战案例

案例 1:Python 实现 IP 查询

原理:socket.gethostbyname()方法可以根据域名返回对应的 IP 地址。

importsocket hostName='www.baidu.com'ip=socket.gethostbyname(hostName)print(ip)

案例 2:Python 实现 WHOIS 查询

先装依赖:

pipinstallpython-whois-ihttps://pypi.tuna.tsinghua.edu.cn/simple

代码:

importwhoisdefwhoisCheck(info):ifinfo=="":returnprint("你输入的是空的啊???")whoisResultInfo=whois.whois(info)print(whoisResultInfo)print(whoisResultInfo['name'])print(whoisResultInfo['emails'])print(whoisResultInfo['registrar'])if__name__=='__main__':info=input("请您输入目标地址哦...")whoisCheck(info)

运行后输入www.baidu.com,就能看到注册者、联系邮箱、注册商等注册信息。


案例 3:Python 实现子域名查询

原理:通过遍历子域名字典,用socket.gethostbyname()判断子域名是否存在。能解析到 IP 就说明存在,否则域名无效。

子域名字典dict.txt可以从 https://site.ip138.com/baidu.com/ 这类站点收集,也可以从 GitHub 上找现成的子域名字典。

importsocketimporttimedefzymListCheck(url):url=url.replace("www","")# 去掉 www 前缀forzymListinopen("dict.txt"):zymList=zymList.replace("\n","")# 去掉换行符zymListUrl=zymList+urltry:ip=socket.gethostbyname(zymListUrl)print(zymListUrl+" ----> 该子域名的 IP 为:"+ip)time.sleep(1)exceptExceptionase:print(zymListUrl+" ---> 没有该子域名,错误✗")time.sleep(1)if__name__=='__main__':url=input("请您输入目标地址哦...")zymListCheck(url)

案例 4:Python 实现端口扫描

原理:创建 socket 对象,尝试连接目标 IP 和端口,连接成功说明端口开放。

importsocketdefport_test():sk=socket.socket()try:sk.connect(('127.0.0.1',3306))print('连接成功')except:print('连接失败')sk.close()port_test()

案例 5:多线程端口扫描(进阶版)

逐个端口扫描太慢了?用多线程 + 队列的方式,把扫描速度提升几十倍。

importsocketimportsysimportthreadingimportqueueimporttimedefget_ip(name):ip=socket.gethostbyname(name)returnipdefport_test(ip):whileTrue:ifq.empty():breaksk=socket.socket(socket.AF_INET,socket.SOCK_STREAM)port=q.get()try:sk.connect((ip,port))print(ip,':',port,'---- 连接成功')except:print(port,'失败')passsk.close()time.sleep(1)if__name__=='__main__':ip=sys.argv[1]th_nums=int(sys.argv[2])q=queue.Queue()foriinrange(1,65535):q.put(i)foriinrange(th_nums):t=threading.Thread(target=port_test,args=(ip,))t.start()

使用方法:

python portscan.py127.0.0.11000

1000是线程数,根据自己的机器性能调整。线程越多扫描越快,但太猛了可能被目标防火墙封 IP。


五、课后作业

使用 Python 实现子域名查询端口扫描


扩展资料

  • 补天平台:https://www.butian.net/Reward/plan/2
  • 漏洞银行工具集:https://forum.ywhack.com/bountytips.php?tools
  • Python socket 编程:https://www.bilibili.com/video/BV1aK4y1Y71n/

写在最后:信息收集是渗透测试的基石。工具很多,语法很杂,但万变不离其宗——找到别人找不到的入口,就是挖洞的核心竞争力。下一篇我们继续深入漏洞挖掘实战,敬请期待!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/6 3:31:33

导师都惊呆了!8个AI写论文工具,半天搞定万字论文!

在2026年这个节点&#xff0c;教育部严抓学术规范&#xff0c;自动降AIGC率&#xff0c;知网查重率成了每位硕博生、高校教师的卡点。 其实&#xff0c;AI论文写作早就不再是简单的文字堆砌&#xff0c;它已进化到能帮你深度分析数据、对标学术范式的地步。如果你还在为AI写毕业…

作者头像 李华
网站建设 2026/7/6 3:24:49

征程 6 | 工具链 QAT ObserverBase 源码解析

1. 概述 ObserverBase 是 horizon_plugin_pytorch 量化框架中所有 Observer 的抽象基类。它定义了量化校准器的统一接口和核心功能&#xff0c;为各种量化策略&#xff08;MinMax、MSE、KL 等&#xff09;提供了基础架构。 2. ABCMeta 深度解析 2.1 Python 元类机制 在 Python …

作者头像 李华
网站建设 2026/7/6 3:23:48

番茄小说下载器完整指南:3分钟上手,解锁跨平台离线阅读新体验

番茄小说下载器完整指南&#xff1a;3分钟上手&#xff0c;解锁跨平台离线阅读新体验 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 还在为番茄小说的在线阅读限制而烦恼吗&a…

作者头像 李华