内网渗透里,信息收集做得是否扎实,几乎决定了后续所有操作是走直线还是绕远路。我接触过不少刚开始做安全测试的朋友,拿到一台主机权限后,第一反应是急着上工具、跑漏洞、看能不能提权,结果回头复盘时才后悔:本该在第一步就发现的域控、共享目录、备用网段,全被漏掉了。这篇文章不绕弯子,直接从模拟靶场实战出发,把内网信息收集的命令、思路和笔记模板一次讲透,适合刚接触内网安全的测试人员,也适合准备安全类考核的选手。
这里要提前说清楚:整个内容只适用于授权靶场和合法测试场景,未授权的扫描坚决不能做。内网信息收集的目标其实很朴素,就是把目标网络里的主机、端口、服务、用户、域结构、共享资源尽可能完整地摸清,形成一份后续决策可以直接使用的资产清单。下面每条命令我都标注了用途和为什么这么用,希望能帮你少踩几次坑。
1. 信息收集:内网渗透的第一步该怎么想
1.1 信息收集的本质:把未知网络翻译成可决策的表格
信息收集并不是简单地把命令一条条往终端里贴,它的本质是在回答一组固定问题:当前控制点在哪个网段?这台主机有几块网卡、连了哪些网络?网络里有多少台存活主机?每台主机开放了哪些端口,端口背后是什么服务?是否存在域环境,域控在哪,我们当前用户在域里属于什么角色?有哪些共享资源、账号、SPN值得关注?把这些问题全部落到纸面上,内网就从一个模糊的“网段”变成了清晰的一张资产表。
我习惯把信息收集分成五个梯度:本机信息、主机存活、端口服务、域结构、应用与共享。每一步输出的结果,都是下一步的输入。比如本机信息里看到DNS后缀是example.local,就基本可以假设当前主机在域环境里,于是自然要去做域信息收集;再比如端口扫描发现一台主机同时开了88、389、445、5985端口,基本可以判断它是域控,接下来所有高价值测试都应该优先围着它转。这种链路式的思考方式,比单纯背命令重要得多,也是从“会敲命令”到“会做内网”的分水岭。
1.2 先盘自己,再摸别人
很多人一进内网,第一个动作就是拿扫描器去扫整个网段,这其实反了。正确做法是先花几分钟把自己当前控制的主机盘清楚。这台主机往往保存着大量线索:多块网卡意味着有多条通向其他网段的路由,DNS后缀和登录域能告诉你是否身处域环境,本地管理员组成员决定了之后的权限提升方向,最近通信过的IP列表可以从ARP缓存里直接看到,而计划任务、启动项、进程列表里则可能藏着管理员留下的脚本和凭据。
举个例子,一条ipconfig /all看着普通,但它能一次性暴露IP地址、掩码、网关、DNS服务器和DNS后缀。如果发现主机有多个活动网卡,并且每个网卡对应不同网段,那么横向移动的范围就不只局限在一个24位网段里了。再配合net config workstation,可以立刻看到当前登录的域和工作组状态:如果显示的是EXAMPLE,说明主机加入了example.local域;如果显示的是WORKGROUP,那多半是工作组环境,信息收集思路要切换到“找共享、找本地弱口令”的方向。先盘自己,本质上就是先把已知信息最大化,再去触碰未知网络。
2. 主机发现与端口扫描:把内网摸出第一张地图
2.1 Windows/Linux本机命令:先把自己这台机器看透
Windows下的本机命令,我常用下面这一组,先看清楚后路、身份、通信记录:
ipconfig /all systeminfo whoami /all net config workstation net user %username% net localgroup administrators netstat -ano arp -a route printsysteminfo除了能看系统版本和补丁,还能在早期判断主机角色:如果是域控或服务器,通常内存、磁盘配置会和普通工作站有明显差异;whoami /all可以一次看清当前用户所属的本地组和域组,比如是否在Administrators组、Remote Desktop Users组;netstat -ano能列出当前活动TCP连接,从中能看到这台主机正在跟哪些IP通信,这往往是发现关键服务器的捷径;arp -a则更直接,它记录了二层网络里最近通信过的主机IP和MAC地址,配合MAC地址厂商信息,还能推算设备类型。
Linux主机上的命令也类似,重点放在网络、用户、计划任务和SUID文件上:
ip addr hostname && cat /etc/hosts cat /etc/resolv.conf uname -a env ip route arp -a cat /etc/passwd netstat -tlnp ps aux crontab -l find / -perm -4000 -type f 2>/dev/null其中env命令值得多说一句,它会把当前环境变量全部列出来,很多自动化脚本会把数据库口令、API Key直接写进环境变量,哪怕只是测试靶场,我也见过不少把连接字符串藏在环境变量里的情况。crontab -l则是看当前用户的计划任务,有些后台任务会在固定时间执行备份脚本或更新脚本,这些脚本路径和参数都是非常有价值的线索。find / -perm -4000是为了找出所有带SUID位的可执行文件,这是内网Linux提权的经典入口,收集阶段先把清单拉出来,后面分析会方便很多。
2.2 内网存活主机探测:不要只信ping
刚开始接触内网测试的人,习惯用批量ping来找存活主机,这本身没问题,但现实是很多主机会禁用ICMP回显,你ping过去没有任何回应,不代表主机不存在。更可靠的做法是把ICMP、ARP和TCP端口探测组合起来用。在同一广播域内,ARP广播几乎不会被防火墙拦截,所以arp-scan -l这类工具往往能发现一批ping不出来的主机。
nmap -sn 10.10.10.0/24 arp-scan -lNmap的-sn参数并不是只发ICMP,它会对目标同时发送ICMP echo、TCP SYN到443端口、TCP ACK到80端口,这样即使目标禁ping,只要开放了443或80,仍然可以被识别为存活主机。这套机制比单纯ping可靠得多。Windows环境下,如果不想额外装工具,也可以用一条批处理做一个快速存活探测:
for /L %i in (1,1,254) do @ping -n 1 -w 300 10.10.10.%i | findstr "TTL"这条命令会遍历10.10.10.1到10.10.10.254,凡是返回TTL字段的IP就说明能ping通。但请记住,它只能作为粗筛,真正到了内网环境,我还是建议用Nmap或fscan这类专业工具,把存活探测和端口扫描一起完成,效率会高很多。
2.3 端口与服务识别:把开放端口变成服务清单
找到存活主机后,下一步是识别端口和服务。我的习惯是先对重点主机做一次全端口扫描,再用常见端口列表批量扫所有资产,两者结合既不会漏掉非常规端口,也不会让扫描时间失控。常用命令如下:
nmap -sT -sV -T4 -p- 10.10.10.11 nmap -sT -sV -sC -p 21,22,23,25,53,80,88,110,135,139,143,389,443,445,465,993,995,1433,3306,3389,5432,5900,5985,5986,7001,8080,8443,10051 10.10.10.0/24第一条是重点主机全端口扫描,-p-意为1到65535全端口,-sV开启版本探测,内网环境下使用-sTTCP connect扫描比较稳妥,不需要root权限,结果可靠。第二条是批量扫描常见服务端口,加上-sC会加载Nmap的默认脚本,顺便抓取SMB共享、HTTP标题、SSL证书等指纹信息。端口数量多、脚本种类丰富,能大大降低后续人工识别的成本。
端口与服务之间的对应关系,是内网信息收集的基本功。下面这张表是我自己整理的重点端口清单,每次扫描完都会拿它来对照目标角色:
| 端口 | 常见服务 | 信息收集要点 |
|---|---|---|
| 80/443 | HTTP/HTTPS | Web应用指纹、框架版本、后台路径、robots.txt |
| 21/22/23 | FTP/SSH/Telnet | 可匿名访问?服务版本?弱口令风险点 |
| 88 | Kerberos | 基本可以确认是域控,域信息收集从这里开始 |
| 135/139 | RPC/NetBIOS | Windows远程过程调用,可枚举共享和用户信息 |
| 389/636 | LDAP/LDAPS | 域目录服务端口,域用户和组织结构查询入口 |
| 445 | SMB | 共享目录、空会话枚举、永恒之蓝等历史漏洞检测 |
| 1433 | SQL Server | 数据库版本、实例名、空口令/弱口令需谨慎验证 |
| 3306 | MySQL | 数据库版本、root空口令检测需谨慎验证 |
| 3389 | RDP | Windows远程桌面,记录可登录用户和网络层认证方式 |
| 5985/5986 | WinRM | 远程管理服务,高危目标,可能直接用于横向命令执行 |
| 8080 | 常见Web代理/管理台 | 中间件控制台、Web管理后台,版本信息收集重点 |
2.4 快速资产探测工具fscan的定位
在靶场和授权测试里,我经常先用fscan做一轮快速资产摸底。fscan把主机发现、端口扫描、服务识别、常见漏洞和未授权检测集成在一起,一条命令就能输出整个网段的大致情况,非常适合开局使用。典型用法是:
fscan -h 10.10.10.0/24 -o results/fscan-pc001.txt fscan -h 10.10.10.10 -p 1-65535第一条扫描整个网段,第二条针对重点主机做全端口。需要提醒的是,fscan的探测包比较多,在真实环境中如果目标有严格的入侵检测机制,默认参数可能会触发告警,所以使用前必须确认授权边界。靶场环境相对干净,适合把它作为主力快速侦察工具。扫描结果保存到文件后,再用Nmap做一次精细确认,这是我自己比较常用的组合拳。
3. 内网服务与域环境信息收集
3.1 通过SMB/RPC枚举共享和用户
Windows内网里,SMB和RPC协议是信息收集的富矿。只要445端口开放,就可以尝试枚举共享目录和用户列表。在旧版本系统或一些没做加固的靶场里,甚至能以空会话连上它们。常用命令如下:
smbclient -L //10.10.10.10 -N enum4linux -a 10.10.10.10net view \\10.10.10.10如果目标允许空会话,enum4linux会把用户、组、共享、操作系统版本、密码策略等信息一次性拉出来;net view \\目标IP则能直接看到对方共享出来的资源列表。我遇到很多测试环境,备份目录就明文共享在FS服务器上,里面存放着配置文件、脚本、压缩包,这些内容的价值甚至高于一个反弹权限。RPC也是一个重要入口,可以手动枚举域用户和域组:
rpcclient -U "" -N 10.10.10.10进入rpcclient后,执行enumdomusers列出域用户,执行enumdomgroups列出域组。空会话在当前主流系统里基本被禁用,但很多靶场为了模拟遗留问题会保留这种配置。即使空会话失败,如果你已经拿到了普通域用户权限,也可以用该身份查询,效果通常会更好。
3.2 域环境下的关键信息收集命令
确认目标存在域环境之后,信息收集的重心要快速转移到域结构上来。域结构决定了横向移动的路径:域管在哪台机器上登录过?哪些用户属于特殊组?哪些SPN指向服务账户?这些都可以用系统自带的命令查到。先看一组传统命令:
net view /domain nltest /dclist:example.local setspn -T example.local -Q */* net group "Domain Admins" /domain net group "Enterprise Admins" /domain net user /domainnltest /dclist可以列出域控列表,setspn -Q */*会输出域内所有SPN注册信息,SPN背后有很多是服务账户,比如SQL服务、备份服务,这些账户通常拥有较高的权限且密码容易被固定复用,是后续信息分析和横向测试的重要目标。net group "Domain Admins" /domain则是直接查看域管组成员,任何时候都值得优先记录。
如果目标Windows机器安装了AD管理工具,还可以用PowerShell的ActiveDirectory模块查询得更精细:
Get-ADUser -Filter * -Properties SamAccountName,Description,MemberOf Get-ADGroup -Filter * -Properties Member Get-ADComputer -Filter * -Properties OperatingSystem,IPv4Address这三个查询分别得到所有用户、所有组、所有计算机,基本能把域资产表的大框架搭起来。在安装了PowerView的测试环境中,我还会用下面这组命令做更快速的域信息采集:
Get-DomainUser Get-DomainGroup Get-DomainComputer Find-DomainSharePowerView提供的对象字段更多,比如用户描述、上次登录时间、归属组、计算机系统版本等。描述字段尤其值得看,很多管理员会在描述里写下“服务器管理员”“财务系统专用”“备份账户”之类的标注,这些信息能直接帮你锁定高价值账号,效率完全不一样。
3.3 HTTP/数据库等应用层信息收集
除了Windows协议,内网里的大量Web服务和数据库也是信息收集的重点。很多业务系统内网部署,往往没有外层防护,暴露出来的后台和接口更容易泄露敏感信息。对Web服务,我会先用curl快速抓取响应头和首页:
curl -I http://10.10.10.12 curl -s http://10.10.10.12/robots.txt响应头里的Server字段、X-Powered-By字段能反映Web容器和开发语言,robots.txt则能看出目标自己标注的目录结构。再配合Nmap的-sV -p 80,443,8080,可以拿到更具体的组件版本。如果是Java中间件,比如WebLogic、JBoss,还能继续查看控制台路径;如果是PHP站点,可以留意常见的备份文件和配置文件路径,但这里只做识别和记录,不涉及漏洞利用。
数据库端口同样需要重点识别。内网里常见的是SQL Server的1433、MySQL的3306、Oracle的1521、PostgreSQL的5432。扫描到这些端口后,我第一件事是用客户端或工具确认版本,观察是否可以直接连接,比如是否存在空口令,但不建议在这个阶段去批量尝试口令,尤其是域环境里,多次认证失败会把账户锁掉,给自己制造麻烦。信息收集阶段只要把数据库类型、版本、可访问范围记录清楚即可,口令验证要放到更靠后的环节进行。
4. 靶场实战:一套完整的信息收集过程
4.1 靶场环境设定与前提说明
为了把上面这些命令串起来,我模拟一个授权靶场环境:目标网段是10.10.10.0/24,域名为example.local,已通过一次外网打点拿到一台Windows 10工作机PC-001的普通域用户权限。现在要做的,就是在这个网段里把信息收集走一遍,最终定位域控、关键服务器、高价值账号共享资源。整个环境完全是虚构的,主机名、IP、用户都只是示例。
4.2 第一步:本机信息收集
登录到PC-001后,我先依次执行以下命令,并同步把关键输出复制到自己的笔记文件里:
ipconfig /all whoami /all net config workstation net view /domainipconfig /all的输出显示PC-001的IP是10.10.10.22,DNS后缀是example.local,网关是10.10.10.1。看到这个DNS后缀,基本可以判断主机已加入example.local域。whoami /all显示当前用户是EXAMPLE\alice,属于Domain Users组,同时本地Administrators组不在其成员列表里,说明这是一台普通权限的工作机。net view /domain列出了example.local域中可见的计算机名,包括DC-01、FS-01、WEB-01等。到这里,我已经掌握了本机位置、域成员关系和潜在目标名单。
4.3 第二步:内网存活与端口扫描
本机信息整理好后,我开始做网段探测。先用fscan快速摸底:
fscan -h 10.10.10.0/24 -o results/fscan-pc001.txt扫描结果里,10.10.10.10、10.10.10.11、10.10.10.12三台主机存活,其中DC-01开放了88、389、445、3389、5985,FS-01开放了139、445,WEB-01开放了80、443、8080。为了确认服务指纹,我对三台主机再做一次精细Nmap扫描:
nmap -sT -sV -p 445,389,88,3389,5985 10.10.10.10 10.10.10.11 10.10.10.12输出确认:DC-01是域控,01端口88对应Kerberos,389对应LDAP,5985对应WinRM;FS-01主要提供SMB共享;WEB-01运行着Web应用。不需要再看更多,整个内网的核心角色已经浮出水面:域控、文件服务器、Web服务器,目标边界清晰了。
4.4 第三步:域结构信息梳理
接下来以alice的身份查询域信息,重点看域管和SPN:
nltest /dclist:example.local net group "Domain Admins" /domain setspn -T example.local -Q */*模拟结果如下:域控是DC-01;Domain Admins组里有admin-a、admin-b、svc-dc三个账号;SPN列表里出现了svc-sql、svc-backup,分别注册了SQL服务与备份服务的SPN。这里svc-dc、svc-sql这类账号都值得特别标注,因为它们很可能是高权限服务账户。不过信息收集阶段,我只把这些账号和组关系记录到笔记里,不做任何额外的认证尝试。域内计算机列表也从net view结果里补充完整,形成了主机名与IP的对应关系。
4.5 第四步:共享与敏感信息查找
域结构清楚后,我开始查看目标主机的共享资源:
net view \\DC-01 net view \\FS-01 dir \\FS-01\backup /s /bnet view显示FS-01存在一个名为backup的共享目录,当前用户alice有读取权限。继续列目录,发现里面有一个backup_config.zip,还有一个记录着数据库连接信息的配置文件。我直接把文件名称、路径、大小和访问权限记入笔记,并标注“需要进一步解压分析”。这个发现意味着后续横向测试很可能不需要再从零开始找突破口,敏感文件本身就是一条清晰的路径。
4.6 第五步:整理结果与下一步规划
经过以上四步,我把结果汇总成一张资产表:
| 主机 | IP | 开放端口 | 角色 | 关键发现 |
|---|---|---|---|---|
| DC-01 | 10.10.10.10 | 88/389/445/3389/5985 | 域控 | 域管账号 admin-a/admin-b/svc-dc |
| FS-01 | 10.10.10.11 | 139/445 | 文件服务器 | backup共享中有备份配置包 |
| WEB-01 | 10.10.10.12 | 80/443/8080 | Web服务器 | 未知Web应用,待指纹识别 |
| PC-001 | 10.10.10.22 | 未重点扫描 | 当前工作机 | 当前用户 alice,Domain Users |
这张表一出来,后续重点就很清楚:优先围绕DC-01做身份认证和域内访问验证;对svc-sql、svc-backup这类SPN服务账户做定向分析;解压FS-01上的备份包,看是否有可用的数据库口令或运维脚本。每个方向都不是猜出来的,而是由上一步的信息收集结果自然推导出来的。靶场里走完这一流程,后面的横向操作就不需要临时抓瞎了。
5. 笔记整理:把命令输出变成可复用的资产
5.1 笔记记什么,不记什么
信息收集不只是执行命令,更大一部分工作是把输出变成后续能看懂的笔记。我的原则是:记结论,也记上下文;记内容,也记来源。每台主机单独一个笔记文件,记录它的IP、开放端口、服务版本、域角色、发现的关键账号和共享路径。同时每条关键发现后面最好附带一行命令来源,比如“由setspn查询获取”,方便事后回溯。
不要做的是把所有终端输出原封不动粘贴到一个超长文本里,那样既不方便检索,也看不出重点。更合理的做法是,在笔记里用一个字段记录“原始命令输出位置”,比如结果文件路径,再把过滤后的关键行提炼成表格或列表。所有笔记都建议带时间戳,因为内网是动态环境,同一台机器今天开放的端口明天可能就变了,记录时间能帮助你判断信息的时效性。
5.2 信息收集Checklist模板(可直接抄作业)
下面是我自己常用的信息收集Checklist,每次做内网测试都会按这个顺序过一遍:
| 信息类别 | 关键命令示例 | 需要记录的重点字段 |
|---|---|---|
| 本机网络 | ipconfig /all | IP地址、网卡数量、DNS后缀、网关 |
| 当前身份 | whoami /all | 用户名、域、所属组列表 |
| 系统补丁 | systeminfo | OS版本、补丁编号、主机名 |
| 通信痕迹 | netstat -ano、arp -a | 活动连接IP、ARP缓存中的内网主机 |
| 存活主机 | nmap -sn / fscan | 存活IP清单、是否响应ICMP |
| 端口服务 | nmap -sV | 端口号、协议、服务版本 |
| 共享资源 | net view \IP、enum4linux | 共享名、路径、当前用户是否有读取权限 |
| 域信息 | nltest /dclist、setspn -Q/ | 域控列表、域用户、域组、SPN注册信息 |
| 重点账号 | net group "Domain Admins" /domain | 域管组成员、高权限服务账户、描述字段 |
| 应用指纹 | curl -I、nmap -sV | Web容器、开发语言、中间件版本 |
笔记目录可以按下面这种方式组织:
0_infra/ networks.txt targets.txt 1_hosts/ PC-001.md DC-01.md FS-01.md WEB-01.md 2_domain/ users.txt groups.txt spn.txt computers.txt 3_shares/ interesting_files.txt 4_notes/ findings.md这个目录结构的核心是“主机维度和域维度分开”,每个主机一个独立Markdown文件,域数据和共享数据单独存放。真正到了横向移动阶段,你不需要翻看几百行的终端记录,只需要打开这些结构化的笔记文件,几秒钟就能定位到目标。
5.3 用表格管理跨主机关联
信息收集结束后,除了单台主机的笔记,还要建立一张跨主机的关系表,把“谁能访问谁”“哪个账号在哪些机器上有效”这类信息集中管理。举例:
| 源主机/账号 | 可访问目标主机 | 开放协议/端口 | 关联证据 |
|---|---|---|---|
| PC-001 alice | FS-01 | SMB 445,backup共享可读 | net view 输出 |
| PC-001 alice | DC-01 | Kerberos 88,LDAP 389可访问 | nltest / setspn 查询 |
| svc-sql(SPN记录) | DC-01/WEB-01 | 特定服务票据请求入口 | setspn 注册信息 |
| backup_config | FS-01 | 备份包含数据库连接信息 | 共享目录文件列表 |
这张表把主机、账号、协议、证据串在一起,后续的横向思路就变得非常直观。比如看到alice能访问DC-01的WinRM 5985端口,就可以计划做远程管理验证;看到svc-sql有SPN记录,就可以规划票据相关测试。信息收集的终点,应该是形成这样一张可供决策的关联图。
6. 常见问题与排查技巧实录
6.1 为什么扫不到主机?
我在靶场里遇到过不少“明明知道有机器,扫描却看不到”的情况。最常见的原因是目标禁用了ICMP回显,所以纯ping找不到;其次是防火墙只允许特定IP访问特定端口,扫描源地址不在放行名单里;第三种是主机位于不同VLAN或网段,当前控制点没有对应路由;还有一种是扫描工具线程开得太高,丢包严重,部分主机的回应没有被接收。
对应的排查思路是:先用ARP扫描同一广播域内的存活主机,ARP请求不会因为目标禁ping而失效;再用TCP端口扫描代替ICMP探测,比如Nmap-sn本身就会带TCP探测;如果怀疑跨网段,先查看当前主机的路由表和可访问网段,再决定是否需要在中间节点做转发;最后适当降低线程数、增加超时时间,慢速扫描往往比快速扫描更可靠。真实靶场里,我也因为线程太高漏掉过域控,后来改成低速率加多方式探测,结果马上就不同了。
6.2 命令输出太多,如何快速提取关键信息
系统命令的输出经常很长,尤其是systeminfo、Get-ADUser这类命令。处理办法是不要看全量,而是用过滤命令把关键字段挑出来。Windows下可以用findstr,Linux下可以用grep。比如:
systeminfo | findstr /B /C:"Host Name" /C:"OS Name" /C:"OS Version"nmap -p 445 --open 10.10.10.0/24 -oG - | grep 'open'第一条只保留主机名和系统版本,第二条从Nmap的grepable输出里提取开放445端口的主机IP。PowerShell下还可以把命令结果转换成表格导出,例如:
Get-ADUser -Filter * | Select-Object SamAccountName,Description | Export-Csv ad_users.csv -NoTypeInformation导出CSV后再用Excel打开,排序、筛选、找描述字段里的敏感词都方便。还要养成一个习惯:所有命令都加输出重定向,Windows用> notes/xxx.txt,Linux用| tee notes/xxx.txt,这样既能看到实时输出,又能留下原始记录。
6.3 不同系统和工具版本的适配问题
内网里经常遇到老版本系统或者没有预装工具的机器。Windows Server 2008、Windows 7这类老系统上,PowerShell版本低,很多新模块用不了,此时用传统的net命令和wmic命令反而更可靠。比如查询用户信息:
wmic useraccount get name,sid,fullname wmic group where local="true" get nameLinux不同发行版安装工具的方式也不一样,Debian系用apt install,RedHat系用yum install,Kali这类渗透发行版一般已经预装了Nmap、arp-scan、enum4linux。在没有包管理器的轻量系统里,可能需要手动编译或上传静态编译版本,这时候要格外注意上传工具的安全性和完整性。建议在本地维护一个常用工具的静态编译包清单,按系统架构分类,能省去不少现场找依赖的时间。
6.4 授权边界与测试规范
最后说一个无论如何都不能越过的原则:信息收集永远只在你拥有明确授权的靶场或测试范围内进行。扫描器、枚举命令、fscan这类工具会产生大量连接日志,任何未经授权的探测都可能被视作恶意行为,这条红线没有任何例外。在授权环境里,也建议把密码喷洒和登录尝试放到信息收集之后,并且严格控制次数,避免把账号锁死影响后续测试。
信息收集阶段获得的数据也要谨慎保管,尤其是账号列表、共享文件路径、数据库连接信息这些敏感内容,不要随意写入公共笔记或提交到外部平台。安全测试的核心价值是帮助组织发现问题、修复问题,而不是制造新的风险。守住边界,技术才能走在正确的路上。
拿我自己的体会来说,信息收集最迷人的地方不是执行了多少条命令,而是通过命令让一个陌生网络逐渐变得清晰。下次你在靶场里拿到一台主机,不妨先从本机信息看起,再一步一步往域名、共享、账号方向走,把每一步结果整理成笔记。熟练之后你会发现,后面所有的横向和权限提升,都只是这张信息收集表上的一个注脚。