【网安-Web渗透测试-内网渗透】内网信息收集(Windows命令行集合)
1. 内网基础知识
内网即局域网,由组织或公司的计算机组成,可通过私有协议通信,实现数据安全便捷传输。
1.1 局域网
1.1.1 局域网简介
局域网(LAN)是局部范围内的网络,由计算机、打印机、服务器等设备通过网络互联,实现资源共享与信息交换。拓扑结构可采用星型、环型等,支持以太网等技术。
常见应用包括文件共享、联机游戏、视频会议等,同时支持电子邮件、FTP等Internet应用。
1.1.2 局域网的网络结构

核心组成包括:
- 客户端:用户使用的计算机,用于获取网络资源和服务;
- 服务器:提供文件、打印、数据库等网络服务;
- 网络媒介:连接网络设备的物理载体(如电缆、无线电波);
- 网络设备:连接各类设备(如交换机、路由器);
- 网络协议:设备通信标准(如TCP/IP、IPX/SPX协议)。
(3)局域网的特点
网络规模小(范围数百米内)、传输速度快、拓扑结构灵活、维护成本低、安全性高。
1.2 工作组
工作组(Work Group)是一种最常见、最简单的网络资源管理模式,核心是将网络中的电脑、设备按功能分类分组,便于统一管理(例如大学高校、网吧等场景常用)。其核心特点如下:
- ① 默认情况下,所有计算机均处于名为“WORKGROUP”的工作组中。
- ② 适合网络计算机数量少、管理要求不严格的场景,中小公司多采用此模式进行资源权限分配和目录共享。
- ③ 建立步骤简单、易上手,无需复杂配置。
- ④ 相同组或不同组的用户,均可通过对方主机的用户名和密码,查看其共享文件夹(默认共享Users目录)。
- ⑤ 工作组无真正的集中管理功能,组内所有计算机地位对等,不存在服务器与客户机的区分。

1.3 域
工作组适用于小规模、低安全需求的网络;当网络规模庞大(数千/数万台主机)时,需采用域环境管理。
- 单域:网络中仅存在一个域;
- 父域子域:一个域划分出的主域(父域)与分支域(子域);
- 域树:多个域通过信任关系组成的集合;
- 域林:由一个或多个无连续名字空间的域树组成;
- 域控(DC):域模式下的验证服务器,存储域内账户、密码等信息,负责鉴别计算机和用户合法性,保护网络资源。
1.4 内网渗透
内网渗透是获取目标服务器控制权后,通过内网信息收集、代理、权限提升、横向移动等技术,获取内网其他主机(如域控、运维主机)权限的过程。
域渗透思路:
- 通过域成员主机,定位域控制器IP及域管理员账号;
- 以域成员主机为跳板,渗透其他域成员;
- 利用域管理员权限特性,定位其登录过的主机,dump密码并拿下域控制器;
- 渗透整个内网。
注意:
域是Windows系统概念,Linux无域控但可作为域成员,域内信息收集命令多针对Windows系统。但Linux主机可以被添加为域成员。
2. WMIC
2.1 什么是WMIC?
WMIC(Windows Management Instrumentation Command-line)是微软扩展WMI(Windows管理规范)推出的命令行接口工具,核心作用是为WMI名称空间提供友好、强大的命令行操作方式。
在WMIC出现之前,管理WMI系统需要依赖专门的应用(如SMS)、WMI脚本编程(如VBScript)或专业工具(如CIM Studio),对非编程人员极不友好。而WMIC彻底改变了这一现状,无需掌握复杂的编程语言或WMI名称空间知识,就能通过命令行完成各类系统管理操作。
核心特点:
- 跨设备管理:可管理本地计算机,也可管理同一Windows域内的远程计算机(需权限),远程设备无需安装WMIC,仅需支持WMI即可。
- 独立可执行:核心文件为WMIC.exe,默认位于 c:\windows\system32\wbem 目录,支持WinXP、Win2003、Win7及以上Windows系统。
- 双运行模式:支持交互模式和非交互模式,兼顾手动操作和脚本自动化。
2.2 WMIC基础操作
2.2.1 启动WMIC
打开CMD命令行(管理员身份运行更佳),输入以下命令启动WMIC:
C:\> wmic
# 进入交互模式
wmic:root\cli>
首次运行会自动安装WMIC(Win7及以上系统自带,无需安装)。
2.2.2 两种运行模式
- 交互模式:输入 wmic 进入提示符后,逐行输入命令执行(适合手动调试、临时操作)。例如:输入 process 可直接查看所有进程,输入 exit 退出交互模式。
- 非交互模式:直接在CMD中输入 wmic + 具体命令,一次性执行完成(适合脚本编写、批量操作)。例如:wmic process list brief直接查看进程摘要。
2.2.3 全局开关(常用)
全局开关用于控制WMIC命令的执行范围、权限、输出等,常用开关如下(完整开关可输入 wmic /? 查看):
| 全局开关 | 说明 |
|---|---|
| /NODE | 指定要操作的远程服务器(如:/NODE:“192.168.1.10”) |
| /USER | 指定远程操作的用户账号(如:/USER:“administrator”) |
| /PASSWORD | 指定远程用户的密码(如:/PASSWORD:“123456”) |
| /OUTPUT | 指定命令输出结果的保存路径(如:/OUTPUT:“D:\wmic.log”) |
| /? | 查看帮助信息(可加具体命令,如:process /?) |
2.3 常用WMIC命令实例
2.3.1 进程管理(最常用)
- 查看所有进程(完整信息)
C:\> wmic process list full
- 查看进程摘要(类似任务管理器)
C:\> wmic process list brief
- 查看进程名称和可执行路径
C:\> wmic process get name,executablepath
- 结束指定进程(按名称)
C:\> wmic process where name="qq.exe" call terminate(或用 delete 替代 call terminate)
- 结束指定进程(按PID)
C:\> wmic process where pid="1234" delete
- 创建新进程(如打开记事本)
C:\> wmic process call create notepad.exe
2.3.2 服务管理
注意:服务的 name(服务名称)和 caption(显示名称)不同,例如:Telnet服务的caption是“Telnet”,name是“tlntsvr”。
- 启动服务(按name)
C:\> wmic SERVICE where name="w32time" call startservice
- 停止服务(按caption)
C:\> wmic SERVICE where caption="Windows Time" call stopservice
- 暂停服务
C:\> wmic SERVICE where name="Spooler" call PauseService
- 更改服务启动类型(自动/禁用/手动)
C:\> wmic SERVICE where name="Spooler" set StartMode="auto"
- 删除服务
C:\> wmic SERVICE where name="test123" call delete
2.3.3 系统信息查询
- 查看BIOS信息
C:\> wmic bios list full
# 精简版
C:\> wmic bios get Manufacturer,Name
- 查看CPU信息:
C:\> wmic cpu get name,CurrentClockSpeed
# CurrentClockSpeed是当前CPU频率
- 查看操作系统信息:
C:\> wmic os get name,Version,WindowsVersion
- 查看计算机名/域:
C:\> wmic computersystem get name,domain
- 查看屏幕分辨率:
C:\> wmic DESKTOPMONITOR where Status='ok' get ScreenHeight,ScreenWidth
- 查看物理内存:
C:\> wmic memlogical get TotalPhysicalMemory
- 查看磁盘信息(分区、大小、可用空间):
C:\> wmic LOGICALDISK get name,Description,filesystem,size,freespace
- 查看系统补丁:
C:\> wmic qfe get hotfixid
2.3.4 文件与目录管理
- 查找指定文件(如E盘test目录下的cc.cmd):
C:\> wmic datafile where "drive='e:' and path='\\test\\' and FileName='cc' and Extension='cmd'" list
- 删除指定文件(如大于10M的.cmd文件):
C:\> wmic datafile where "drive='e:' and Extension='cmd' and FileSize>'10000000'" call delete
- 文件重命名(如c:\hello.txt改为test.txt)
C:\> wmic datafile "c:\\hello.txt" call rename c:\test.txt
- 删除目录(如c:\good)
C:\> wmic fsdir "c:\\good" call delete
2.3.5 环境变量管理
- 查看temp环境变量
C:\> wmic ENVIRONMENT where "name='temp'" get UserName,VariableValue
- 新增系统环境变量(如home):
C:\> wmic ENVIRONMENT create name="home",username=" <system>",VariableValue="%HOMEDRIVE%%HOMEPATH%"
- 修改path环境变量(新增e:\tools):
C:\> wmic ENVIRONMENT where "name='path' and username='<system>'" set VariableValue="%path%;e:\tools"
- 删除环境变量:
C:\> wmic ENVIRONMENT where "name='home'" delete
2.3.6 远程计算机管理
前提:远程计算机开启WMI服务,且本地账号拥有远程管理权限。
- 远程查看进程
C:\> wmic /node:"192.168.1.10" /user:"administrator" /password:"123456" process list brief
- 远程启动进程(如打开CMD):
C:\> wmic /node:192.168.1.10 /user:administrator /password:123456 process call create cmd.exe
- 远程重启计算机:
C:\> wmic /node:192.168.1.10 /user:administrator /password:123456 process call create "shutdown.exe -r -f -m"
- 开启远程桌面:
C:\> wmic /node:192.168.1.10 /USER:administrator PATH win32_terminalservicesetting WHERE (__Class!="") CALL SetAllowTSConnections 1
2.3.7 其他实用操作
- 更改计算机名(如将abc改为123):
C:\> wmic computersystem where "name='abc'" call rename 123
- 更改用户名(如将admin改为admin00):
C:\> wmic useraccount where "name='admin'" call Rename admin00
- 设置虚拟内存(如初始/最大值512M):
C:\> wmic PAGEFILESET set InitialSize="512",MaximumSize="512"
- 卸载MSI安装包:
C:\> wmic PRODUCT where "name='Microsoft .NET Framework 1.1' and Version='1.1.4322'" call Uninstall
2.4 常见问题与注意事项
- 命令执行失败?大概率是权限不足,右键CMD选择“以管理员身份运行”再尝试。
- 远程操作失败?检查远程计算机是否开启WMI服务(服务名:Winmgmt),且网络通畅、账号权限足够。
- 服务操作提示“ReturnValue=0”?表示执行成功;非0则为失败,可查询对应错误码排查。
- 路径中包含空格?需用双引号包裹,例如:wmic datafile “c:\Program Files\test.exe” call delete。
2. 工作组信息收集
渗透的本质是信息收集,有效收集可大幅缩短渗透测试时间。通过web网站写入一句话木马控制目标服务器后,需以该服务器为跳板渗透内网;而当前主机的网络位置、登录用户及权限、操作系统、网络配置、运行服务与进程等信息均未知,需以此主机为中心开展信息收集。
2.1 用户信息收集
- 查看本机用户列表
C:\> net user
- 获取本地管理员信息
C:\> net localgroup administrators
- 查看当前在线用户
C:\> quser
C:\> query user
C:\> query userl qwinsta
- 查当前用户在目标系统中的具体权限
C:\> whoami /all
- 查看当前权限
C:\> whoami && whoami /priv
- 查当前机器中所有的组名,了解不同组的职能,如,IT,HR,ADMIN,FILE
C:\> net localgroup
2.2 系统信息收集
- 查询网络配置信息。进行IP地址段信息收集
C:\> ipconfig /all
- 查询操作系统及软件信息
#英文系统:
C:\> systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
#中文系统:
C:\> systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"
- 查看当前系统版本
C:\> wmic OS get Caption,CSDVersion,OSArchitecture,Version
- 查询系统体系结构
C:\> echo %PROCESSOR_ARCHITECTURE%
- 查询本机服务信息
C:\> wmic service list brief
- 查看安装的软件的版本、路径
C:\> wmic product get name, version
C:\> powershell "Get-WmiObject -class Win32_Product |Select-Object -Property name, version”
- 查询进程信息
C:\> tasklist
C:\> wmic process list brief
- 查看启动程序信息
C:\> wmic startup get command,caption
- 查看计划任务
#win10之前的系统:
C:\> at
#win10之后的系统:
C:\> schtasks /query /fo LIST /v
C:\> schtasks.exe
- 查看主机开机时间
C:\> net statistics workstation
- 列出或断开本地计算机与所连接的客户端的对话
C:\> net session
- 查询端口列表,本机开放的端口所对应的服务和应用程序
C:\> netstat -ano
C:\> netstat -ano | findstr 445
- 查看远程连接信息
C:\> cmdkey /l
- 查看补丁列表
C:\> systeminfo | findstr KB
- 查看补丁的名称、描述、ID、安装时间等
C:\> wmic qfe get Caption,Description,HotFixID,InstalledOn
- 查看杀软
C:\> WMIC /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List
- 查看本地密码策略
C:\> net accounts
- 查看hosts文件
C:\> type c:\Windows\system32\drivers\etc\hosts
- 查看dns缓存
C:\> ipconfig /displaydns
2.3 网络信息收集
#查看本机所有的tcp,udp端口连接及其对应的pid
C:\> netstat -ano
#查看本机所有的tcp,udp端口连接,pid及其对应的发起程序
C:\> netstat -anob
#查看路由表和arp缓存
C:\> route print
C:\> arp -a
#查看本机共享列表和可访问的域共享列表(445端口)
C:\> net share
C:\> wmic share get name,path,status
#磁盘映射(IPC连接)
#在内网信息收集过程中,如果能过收集到一些相关的凭据信息(账号密码)就可以凭借如下命令去向对方发起连接
C:\> net use k:\\目标IP地址\c$
2.4 防火墙信息收集
#关闭防火墙(Windows Server2003 以前的版本)
C:\> netsh firewallset opmode disable
#关闭防火墙(Windows Server2003 以后的版本)
C:\> netsh advfirewall setallprofiles state off
#查看防火墙配置(netsh命令也可以用作端口转发)
C:\> netsh firewall show config
#查看配置规则
C:\> netsh advfirewall firewall show rule name=all
2.5 代理信息收集
C:\> REG QUERY "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer
C:\> REG QUERY "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v AutoConfigURL
2.6 Wifi密码信息收集
#查看wifi连接记录
C:\> netsh wlan show profile
#查看具体的wifi的密码
C:\> netsh wlan show profile name="<请替换此字符,指的是 所有用户配置文件中的名称 >" key=clear
2.7 回收站内容获取
C:\> FOR /f "skip=1 tokens=1,2 delims= " %c in ('wmic useraccount get name^,sid') do dir /a /b C:\$Recycle.Bin\%d\ ^>%c.txt
# 目录路径:C:\$Recycle.Bin
# $I 开头的文件保存的是路径信息
# $R 开头的文件保存的是文件内容
2.8 Chorme历史记录和Cookie获取
#浏览器存放cookie值和路径:
%localappdata%\google\chrome\USERDA~1\default\LOGIND~1
%localappdata%\google\chrome\USERDA~1\default\cookies
Chrome的用户信息,保存在本地文件为sqlite数据库格式。但mimikatz需自行安装。
#调用mimikatz工具:
C:\> mimikatz.exe privilege::debug log "dpapi::chrome/in:%localappdata%\google\chrome\USERDA~1\default\LOGIND~1" exit
#调用mimikatz工具:
C:\> mimikatz.exe privilege::debug log "dpapi::chrome/in:%localappdata%\google\chrome\USERDA~1\default\cookies /unprotect" exit
2. 域内信息收集
域是一个有安全边界的计算机集合。将网络中多台计算机逻辑上组织到一起,进行集中管理,这种区别于工作组的逻辑环境叫做域,域是组织与存储资源的核心管理单元,在域中,至少有一台域控制器,域控制器中保存着整个域的用户帐号和安全数据。
注意事项:
只有域用户才能执行域查询命令,本地管理员默认无法直接查询域信息。
Domain Admins 和 Enterprise Admins 是域内最高权限组。
主域控默认同时充当时间服务器、DNS 服务器。
密码策略可用于爆破字典生成。
域信任用于多域环境跨域访问,默认域用户只能访问本域资源。
2.1 判断是否处于域环境
- 查看当前登录域、工作站信息(最常用)
C:\> net config workstation
- 查看域时间 → 存在域则返回域控时间(判断域环境神器)
C:\> net time /domain
- 能列出域用户说明已在域内
C:\> net user /domain
- 查看本机 DNS 服务器(域控通常同时充当 DNS)
C:\> ipconfig /all
2.2 查询域基本信息
- 查询当前主机所在域
C:\> net view /domain
- 查询指定域内所有计算机
C:\> net view /domain:mingy
- 查看当前登录域(详细)
C:\> echo %userdomain%
2.3 域用户信息收集
- 查看域内所有账号
C:\> net user /domain
- 查看指定域用户详情
C:\> net user boss /domain
- 查看域密码策略(用于构造爆破字典)
C:\> net accounts /domain
2.4 域用户组信息收集
- 查看域内所有用户组
C:\> net group /domain
- 查看域管理员组
C:\> net group "Domain Admins" /domain
- 查看企业管理员组
C:\> net group "Enterprise Admins" /domain
- 查看域普通用户组
C:\> net group "Domain Users" /domain
- 查看本机管理员组包含哪些域用户
C:\> net localgroup administrators /domain
2.5 定位域控制器
- 查看域控计算机组
C:\> net group "Domain Controllers" /domain
- 查看域时间服务器 = 主域控
C:\> net time /domain
- nltest 列出所有域控
C:\> nltest /DCLIST:GOD
- Windows Server 2008+ 查询主域控
C:\> netdom query pdc
- ping 域控获取 IP(-4 强制返回 IPv4)
C:\> ping DC01.god.org -4
2.6 dsquery 域信息查询(域控自带工具)
- 查看域内所有机器
C:\> dsquery computer
- 查看域内所有用户
C:\> dsquery user
- 查看域内所有组
C:\> dsquery group
- 查看域网段
C:\> dsquery subnet
2.7 DNS、邮件、信任关系收集
- 查看域内 DNS 服务器
C:\> nslookup -q=ns god.com
- 查看域内邮件服务器
C:\> nslookup -q=mx god.com
- 查看域信任关系
C:\> nltest /domain_trusts
2.8 其它
- 查看域信任详细信息
C:\> nltest /domain_trusts /v
- 快速定位域控 IP
C:\> nslookup %userdomain%
- 查看域内所有共享
C:\> net view \\%userdomain%
- 查看域内所有组织单元 OU
C:\> dsquery ou
- 查看当前用户是否为域管
C:\> whoami /groups
- 查看域内所有 GPO 组策略
C:\> gpresult /R
- 获取域管理员 SID 等信息
C:\> wmic useraccount where (name="administrator" and domain="%userdomain%") get name,sid
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)