🌀 鱼油のB10g

✦ 不定期更新技术随想

✦ 分享奇妙发现

📌 近期动态:

探索AI和工具使用...

第5章 第36.2课

情报侦察实战指南:从校园安全到企业防御


二、情报侦察概述:像侦探一样思考

校园场景:假设你要参加网络安全竞赛,需要侦查对手学校服务器信息。

# 情报侦察伪代码框架
def intelligence_recon(target, mode):
if mode == "passive":# 被动侦察
data = search_public_sources(target)# 不触碰目标
elif mode == "active":# 主动侦察
data = scan_target_directly(target)# 可能触发报警
return analyze(data)

# 真实案例:
passive_data = get_from_baidu("site:xx.edu.cn filetype:pdf")# 搜索公开课表
active_data = port_scan("202.120.xx.xx")# 扫描开放端口(高风险!)

核心概念拆解

  1. 被动侦察(推荐初学者)
  • 动作:图书馆翻查学校年鉴/官网历史快照
  • 获取:校园网IP段、旧系统截图
  • 工具:
# Wayback Machine API获取历史页面
import waybackpy
url = "https://xx.edu.cn"
archive = waybackpy.Url(url).archive_url# 返回2019年页面快照
  1. 主动侦察(需授权)
  • 动作:用Nmap扫描实验室内网
  • 风险:触发IDS告警(可能被辅导员约谈)
  • 合法替代方案:
# 仅扫描自己电脑
nmap -sV 127.0.0.1# 查看本地开放服务
  1. OSINT(黄金技能)
# 通过GitHub找学生泄露的代码
# 搜索语法:org:xx-university password
import requests
url = "https://api.github.com/search/code?q=org:xx-university+filename:config"
response = requests.get(url).json()
for item in response['items']:
print(item['repository']['full_name'])# 含敏感信息的仓库

三、情报侦察图解:网络空间的冰山

互联网 vs 深网 vs 暗网(以校园资源为例):

层级 校园映射 情报获取方式
表层互联网 学校官网/公众号 百度搜索 site:xx.edu.cn
深网 需要学号登录的教务系统 社会工程学(骗密码?✖)
合法途径:申请测试账号
暗网 学生私下交易的考题黑市 Tor浏览器访问.onion站点
(法律风险高!)

情报侦察 vs OSINT侦察

graph LR A[情报侦察] --> B[主动侦察] A --> C[被动侦察] C --> D[OSINT]# OSINT是被动侦察的子集 D --> E[公开渠道]

四、情报侦察阶段:攻防演练三步走

目标: 评估学校"智慧教室系统"安全性

阶段1:目标资产枚举
# 自动化资产发现(伪代码)
assets = []
# 方法1:DNS解析
subdomains = dns_brute("classroom.xx.edu.cn")# 爆破子域名:video.classroom、api.classroom...
# 方法2:证书透明日志
certs = crt_sh_search("xx.edu.cn")# 获取所有关联域名
assets.extend(subdomains + certs)

print(f"发现资产: {assets}")
# 输出:['video.xx.edu.cn', 'api-classroom.xx.edu.cn', 'dev-classroom.xx.edu.cn']
阶段2:资产属性关联
# 关联IP与运维信息
ip = dns_lookup("video.xx.edu.cn")# 解析IP → 202.119.xx.xx
whois_data = whois_query(ip)# 获取IP注册信息 → "某教育科技公司"
shodan_data = shodan_host(ip)# 获取端口 → 开放80(HTTP)/443(HTTPS)/3389(RDP?!)

# 关键发现:视频系统由第三方公司维护,且意外开放远程桌面端口
阶段3:攻击面分析
# 基于ATT&CK框架建模
attack_surface = {
"Web入口": {
"技术": ["SQL注入", "XSS"],
"证据": "使用Joomla CMS(已知漏洞CVE-2023-12345)"
},
"RDP服务": {
"技术": ["暴力破解", "凭证窃取"],
"证据": "3389端口暴露在公网"
}
}

# 生成威胁报告
generate_report(attack_surface, priority="高危")

五、威胁建模拓展:用STRIDE保卫校园系统

场景:为学生会投票系统设计安全方案

OCTAVE方法实践:
  1. 识别资产
critical_assets = ["投票数据库", "管理员后台","用户密码"]
  1. 评估威胁(STRIDE模型):
graph TD S[Spoofing] --> |冒充学生投票| 身份认证薄弱 T[Tampering] --> |篡改票数| 数据库无校验 R[Repudiation] --> |抵赖操作| 缺乏操作日志 I[Information Disclosure] --> |泄露学号| 明文传输数据 D[Denial of Service] --> |刷票攻击| 无限投票漏洞 E[Elevation of Privilege] --> |普通学生变管理员| 权限控制缺失
  1. 制定对策
countermeasures = {
"Spoofing": "双因素认证",
"Tampering": "数据库签名校验",
"Repudiation": "审计日志+区块链存证",
"Information Disclosure": "HTTPS+数据加密",
"Denial of Service": "IP限流+验证码",
"Elevation of Privilege": "RBAC权限模型"
}

六、情报侦察战术技术:ATT&CK实战

ATT&CK侦察阶段技术(校园场景映射):

技术ID 战术 校园案例 防御建议
T1595 主动扫描 扫描实验室服务器开放端口 部署防火墙IP白名单
T1589 受害人身份收集 爬取学生论坛泄露的学号 隐私保护培训
T1592 硬件信息收集 通过设备MAC地址判断物联网教室位置 网络设备匿名化
# 模拟ATT&CK战术执行(伪代码)
recon_sequence = [
{"technique": "T1595", "action": "scan_ports('202.112.xx.xx')"},
{"technique": "T1589", "action": "crawl_forum('bbs.xx.edu.cn')"},
{"technique": "T1592", "action": "analyze_arp_traffic()"}
]

# 防御检测代码示例(基于Suricata规则)
alert http any any -> any 80 (msg:"疑似爬虫活动";
flow:established,to_server;
content:"/forum.php?page=";
http.uri;
detection_filter:track by_src, count 100, seconds 60;)

七、情报侦察内容:从理论到工具链

最小化侦察清单

1. **域名信息**
- WHOIS查询:`python-whois`库
- DNS记录:`dig A/NS/MX target.edu.cn`

2. **服务器信息**
- 端口扫描:`nmap -sV --script safe target_ip`
- 证书解析:`openssl s_client -connect target:443`

3. **人员信息**
- 邮箱收集:`theharvester -d xx.edu.cn -b baidu`
- 社交关联:Maltego分析教师姓名→论文→合作机构

4. **代码泄露**
- GitHub搜索:`filename:.env site:github.com "xx.edu.cn"`
- 网盘扫描:`site:pan.baidu.com 教务系统密码`

工具集成脚本示例

# 自动化OSINT收集工具
import osint_toolkit

target = "xx.edu.cn"

# 执行侦察流水线
report = osint_toolkit.pipeline(
steps = [
("dns_enum", {"domain": target}),
("whois_lookup", {"target": target}),
("github_dork", {"query": f"org:{target} password"}),
("shodan_scan", {"filter": f"hostname:{target}"})
],
output_format="markdown"# 生成实验报告
)

with open("recon_report.md", "w") as f:
f.write(report)

给学弟学妹的忠告

  1. 法律红线
if target not in ["127.0.0.1", "your_own_domain"]:
print("未经授权的侦察涉嫌违法!")
exit(0)# 立即停止
  1. 学习路径
  1. 职场映射
企业安全岗位日常:
- 9:00 查看威胁情报平台新预警
- 10:00 编写ATT&CK映射规则
- 14:00 用Maltego分析攻击链
- 16:00 输出加固建议报告

所有示例工具和脚本已打包(公众号回复 校园OSINT工具包 获取)。记住:技术是双刃剑,侦察的终极目的是构建更安全的网络世界。共勉 (•̀ω•́)✧

posted on 2025-08-04 13:02  鱼油YOU  阅读(17)  评论(0)    收藏  举报