进入内网之后,是一种由点到线再到面的测试,先弄清楚当前机器的情况,如在域中角色,提供的服务等信息;再以此为跳板收集其它机器的信息,当收集的信息足够多,拿下域控的可能型也就越高。

本机信息收集

为了后续的提权等操作,首先要尽可能拿下当前机器的权限,所以对当前机器的信息收集也是必要的。

查看系统配置信息

ssysteminfo 查看系统信息,但是内容太多在某些时刻无法通过菜刀等工具看到返回的结果,可以将内容输出到某个文件,也可以结合findstr 查询指定内容,如查询操作系统即软件的信息 systeminfo | findstr /B /C:"OS"
内网信息收集教程-LMLPHP
该指令输入的内容是比较多的,除了使用finder选择输出外,部分信息可以使用其它指令单独显示,比如echo %processor_architecture%查看系统架构,net statistics workstation查看系统启动时间
其中的补丁信息可以使用wmic qfe get caption,description,hotfixid,installedon获取
内网信息收集教程-LMLPHP

WMIC扩展WMI(Windows Management Instrumentation,Windows管理工具) ,提供了从命令行接口和批命令脚本执行系统管理的支持。在cmd中有些时候查到的数据不全,如某些进程的pid,这时可以使用wmic进行操作,WMIC提供了大量的全局开关、别名、动词、命令和丰富的命令行帮助增强用户接口。
wmic product get name,version,查看系统安装的软件版本等内容。
内网信息收集教程-LMLPHP
wmic /node:localhost /namespace:\\root\securitycenter2 path antivirusproduct get displayname /format:list查杀软
内网信息收集教程-LMLPHP
初次之外,还可以使用netsh firewall show confignetsh advfirewall firewall show config查看防火墙配置信息

查看系统服务信息

wmic startup get command,caption,查看启动程序信息
内网信息收集教程-LMLPHP
wmic service list brief,查询本机服务信息

内网信息收集教程-LMLPHP
还可以使用tasklist 查询进程信息
schtasks /query /fo LIST /V,查看计划任务

内网信息收集教程-LMLPHP
netstat -ano查看端口列表

内网信息收集教程-LMLPHP
注意,一般查看进程端口,先查进程pid,在根据pid查端口

查看系统登录信息

query user,登录到系统的用户信息

内网信息收集教程-LMLPHP
net session,列出连接会话信息,但是一般需要高权限才能执行

自动信息收集

很多后渗透模块都可以进行信息收集,这里不谈,分享个嫖到的脚本

for /f "delims=" %%A in ('dir /s /b %WINDIR%\system32\*htable.xsl') do set "var=%%A"

wmic process get CSName,Description,ExecutablePath,ProcessId /format:"%var%" >> out.html
wmic service get Caption,Name,PathName,ServiceType,Started,StartMode,StartName /format:"%var%" >> out.html
wmic USERACCOUNT list full /format:"%var%" >> out.html
wmic group list full /format:"%var%" >> out.html
wmic nicconfig where IPEnabled='true' get Caption,DefaultIPGateway,Description,DHCPEnabled,DHCPServer,IPAddress,IPSubnet,MACAddress /format:"%var%" >> out.html
wmic volume get Label,DeviceID,DriveLetter,FileSystem,Capacity,FreeSpace /format:"%var%" >> out.html
wmic netuse list full /format:"%var%" >> out.html
wmic qfe get Caption,Description,HotFixID,InstalledOn /format:"%var%" >> out.html
wmic startup get Caption,Command,Location,User /format:"%var%" >> out.html
wmic PRODUCT get Description,InstallDate,InstallLocation,PackageCache,Vendor,Version /format:"%var%" >> out.html
wmic os get name,version,InstallDate,LastBootUpTime,LocalDateTime,Manufacturer,RegisteredUser,ServicePackMajorVersion,SystemDirectory /format:"%var%" >> out.html
wmic Timezone get DaylightName,Description,StandardName /format:"%var%" >> out.html

复制为bat文件,结果为out.html保存在c盘根目录,名称路径可自行修改。

域内信息收集

判断是否存在域

whoami,如果当前账户为域用户,则返回结果通常为域名\用户名

内网信息收集教程-LMLPHP
ipconfig,如果是双网卡,一般存在内网

内网信息收集教程-LMLPHP
systeminfo,如果在域中,则如图,否则为workgroup

内网信息收集教程-LMLPHP

内网信息收集教程-LMLPHP
net config workstation,在域中,通常计算机全名为计算机名.域名

内网信息收集教程-LMLPHP
不在域中如下图

内网信息收集教程-LMLPHP
net time /domain,查看时间服务器,域中机器的dns服务器和时间服务器通常为域控机。如下图则是存在域且当前登录用户为域用户

内网信息收集教程-LMLPHP
如下图则表示不在域中

内网信息收集教程-LMLPHP
如下图则表示在域中,但当前用户非域用户

内网信息收集教程-LMLPHP
除此之外,收集其它内容的时候都能看到,比如系统信息,用户信息等

探测域内存主机&端口

探测存活主机和端口平时最容易想到的工具是nmap,但这个工具太大,直接安装存在风险,端口转发受限于网络环境,这里聊聊其它方法

powershell

powershell可以在渗透中提供强大的助力,下面这些脚本使用的时候记得修改 ip地址
扫描存活ip,最前面的1..255是ip地址的d段,最后范围是192.168.0.1-255,判断和修改方式下同

1..255 | % {echo "192.168.0.$_"; ping -n 1 -w 100 192.168.0.$_} | Select-String ttl

判断主机类型,根据ttl值判断,范围192.168.0.1-255

1..255 | % {echo "192.168.0.$_"; ping -n 1 -w 100 192.168.0.$_} | Select-String ttl |% { if ($_ -match "ms") { $ttl = $_.line.split('=')[2] -as [int]; if ($ttl -lt 65) { $os = "linux"} elseif ($ttl -gt 64 -And $ttl -lt 129) { $os = "windows"} else {$os = "cisco"}; write-host "192.168.0.$_ OS:$os" ; echo "192.168.0.$_" >> scan_results.txt }}

扫描端口

24..25 | % {echo ((new-object Net.Sockets.TcpClient).Connect("192.168.1.119",$_)) "Port $_ is open!"} 2>$null

24..25 |% {echo "$_ is "; Test-NetConnection -Port $_ -InformationLevel "Quiet" 192.168.1.119}2>null

扫描指定端口的ip

foreach ($ip in 1..20) {Test-NetConnection -Port 80 -InformationLevel "Detailed" 192.168.0.$ip}

arp扫描

在内网里通常使用mac地址进行机器寻找,其可以通过arp协议实现

内网信息收集教程-LMLPHP

小工具

由很多免安装的小工具也可以进行扫描,比如nbtscan,直接传到目标服务器上运行即可,工具下载地址:http://www.unixwiz.net/tools/nbtscan.html ,用法:nbtscan.exe 网段 ,更多用法参考:nbgtscam.exe /?

内网信息收集教程-LMLPHP
含义如下:
|Token|含义|
|——|——|
SHARING|机器正在运行的文件和打印共享服务,但这并不一定有内容共享
DC|机器可能是Windows NT域控制器,无论是主域还是辅助域。
U=user |机器可能有一个具有指定名称的登录用户
IIS |机器可能安装了Microsoft的Internet信息服务器(IIS)
EXCHANGE |机器可能安装Microsoft Exchange
NOTES |单机器可能安装Lotus Notes电子邮件客户端
? |没有识别出NETBIOS资源

telnet

telnet常规使用是和服务器建立连接,也开业用来探测端口是否开放
用法:telnet 主机 端口,如:telnet dc 3389。注意:不是所有机器都安装了此服务。

查看用户&机器&会话相关信息

查看机器相关信息

net view /domain,查询域信息,判断当前机器加入的域

内网信息收集教程-LMLPHP
net view /domain:域名,查询域内所有主机

内网信息收集教程-LMLPHP
在域中,有一类至关重要的机器叫域控制器,简称域控,机器名通常为DC,在实际环境中,域控为一主一备用两台。
netdom query pdc,查看域控名称

内网信息收集教程-LMLPHP

查看用户相关信息

net user查询当前机器所有用户,net user /domain查看域用户

内网信息收集教程-LMLPHP
net user 用户名查看当前机器内的用户信息

内网信息收集教程-LMLPHP
net user 用户名 /domain查看当前机器内的域用户信息

内网信息收集教程-LMLPHP
注意对比上述结果的区别,此外net user localgroup,net user localgroup /domainnet group /domain也是有区别的
wmic useraccount get /all,获取域内用户的详细信息

内网信息收集教程-LMLPHP

 
03-16 19:00