内网渗透之域内信息收集
渗透测试之域内信息收集 Information collection in the domain of intranet pentest来自 :我超怕的 https://www.cnblogs.com/iAmSoScArEd/p/13835618.html
1、查看当前权限
whoami
2、查询域SID
whoami -all
3、查询指定用户的详细信息
net user 需要查询的用户名 /domain
4、查询是否存在域
(1)使用ipconfig
ipconfig -all
执行命令后将会得到网关IP地址、DNS的IP地址、域名、本机是否与DNS服务器处于同一网段等信息
如果存在主DNS后缀,则可以尝试对该域名进行反向解析出IP地址,判断DNS服务器是否与域控制器在同一台服务器上,反向解析命令:
nslookup 域名
#如 nslookup company.com
(2)查询系统详细信息
使用命令:
systeminfo
如果结果中 参数 “域” 有具体的值,且登录服务器为“DC”等域控制器标识,则表示在这个域内。
如果参数“域”为“WORKGROUP”则表示当前服务器不在域内。
(3)查询当前登录域及登录用户信息
net config workstation
“工作站域”或“工作站域DNS名称”为“WORKGROUP”则表示当前服务器不在域内。(截图显示我不在域中)
“工作站域”表示当前域,“工作站域DNS名称”显示域控制器域名。
“登录域”表示当前登录的用户是域用户还是本地用户。(截图显示我当前为微软账号登录)
(4)判断主域
net time /domain
通常域服务器也会同时作为时间服务器使用。
若存在域,当前用户不在域中会提示:发生系统错误,拒绝访问
若存在域,当前用户在域中会提示:XX域 的当前时间是 xxx
若当前网络环境不存在域则提示:找不到WORKGROUP的域控制器,请键入XXXX
5、探测域内存活主机
(1)利用NetBIOS快速探测内网
NetBIOS是局域网程序使用的一种应用程序编程接口,为程序提供了请求低级别服务的统一命令集,为局域网提供了网络及其他特殊功能。几乎所有的局域网都是在NetBIOS协议的基础上工作的。
nbtscan是一个命令行工具,用于扫描本地或远程TCP/IP网络上的开放NetBIOS名称服务器。
使用方式:将该工具上传至目标主机中,使用命令运行即可。
下载地址:http://unixwiz.net/tools/nbtscan.html
nbt.exe 192.168.0.1/24 nbt.exe 192.168.0.1-100 nbt.exe 192.168.0.50
运行结果解释:第一列为存活IP地址,第二列为机器名和所在域的名称,最后一列为该集齐开启的服务列表。
常见服务说明:
参数 | 含义 |
SHARING | 该机器存在正在运行的文件和打印共享服务,不一定有内容共享 |
DC | 该机器可能为域控制器 |
U=USER | 该机器中有登录名为User的用户(不一定准确) |
IIS | 该机器中可能安装了IIS服务器 |
EXCHANGE | 该机器中可能安装了EXCHANGE |
NOTES | 该机器中可能安装了Lotus Notes电子邮件客户端 |
? | 没有是被出该机器的NetBIOS资源 |
(2)利用ICMP协议快速探测内网
可以在内网依次对每个IP进行Ping操作,可以快速找出内网存活的所有主机。可以使用如下命令进行探测。
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.1.%I | findstr "TTL="
存活主机将会被显示出来。
或使用VBScript探测(比较慢),结果在C:\Windows\Temp\Results.txt中,需要手动编辑所属C段
脚本如下,保存为xxx.vbs:
strSubNet = "192.168.0." Set objFSO= CreateObject("Scripting.FileSystemObject") Set objTS = objfso.CreateTextFile("C:\Windows\Temp\Results.txt") For i = 1 To 254 strComputer = strSubNet & i blnResult = Ping(strComputer) If blnResult = True Then objTS.WriteLine strComputer End If Next objTS.Close WScript.Echo "All Done !" Function Ping(strComputer) Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * From Win32_PingStatus Where Address=\'" & strComputer & "\'") For Each objItem In colItems Select case objItem.StatusCode Case 0 Ping = True Case Else Ping = False End select Exit For Next End Function
运行方式为
cscript 文件名
如:cscript ping.vbs
6、通过ARP探测内网
(1)arp-scan工具
windows获取 地址:https://github.com/QbsuranAlang/arp-scan-windows-
其他系统获取 地址:https://github.com/royhills/arp-scan
命令如下:
arp.exe -t 192.168.0.1/24 arp.exe -t 192.168.0.5
(2)Empire的arpscan模块
Empire中内置了arpscan模块。
在Empire中使用方法如下:
(Empire: xx) > usemodule situational_awareness/network/arpscan (Empire: situational_awareness/network/arpscan) > info (Empire: situational_awareness/network/arpscan) > set Range 192.168.0.1-192.168.0.254 (Empire: situational_awareness/network/arpscan) > info (Empire: situational_awareness/network/arpscan) > execute
(3)Nishang中的Invoke-ARPScan.ps1脚本
7、通过TCP/UDP端口扫描探测内网
ScanLine是一个经典的端口扫描工具,可以在所有版本的windows操作系统中使用,体积小的单个文件。同时支持TCP/UDP扫描。
命令如下:
scanline -h -t 21,22,80,443,445,1433-3306 -u 53,137,139,161 -O c:\windows\temp\results.txt -p 192.168.0.1-254 /b
-t 为TCP扫描端口
-u 为UDP扫描端口