第二章 内网信息收集

第二章 内网信息收集

工作组信息收集

2.2本机信息收集

ipconfig/all											查询网络配置
ncpa.cpl												网络连接
net user												查看本机用户列表
net localgroup administrators							本机管理员(通常含有域用户)
query user ||qwinsta									查看当前在线用户
tasklist /v												查询进程列表
wmic process list brief									查询进程列表
获取操作系统和版本信息
systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"
C:\Users\Administrator>systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"
OS 名称:          Microsoft Windows Server 2012 R2 Standard                   
OS 版本:          6.3.9600 暂缺 Build 9600

查看系统体系机构 echo %PROCESSOR_ARCHITECTURE%
C:\Users\Administrator>echo %PROCESSOR_ARCHITECTURE%
AMD64

wmic product get name,version							查看安装软件及版本路径
powershell "get-wmiobject -class win32_product |select-object -property name,version"
收集软件版本信息
wmic service list brief									查询本机服务信息
wmic startup get command,caption						查看启动程序信息
schtasks /query /fo LIST /v								查看计划任务
net statistics workstation								查看主机开放时间
net session												查看本机会话
netstat -ano											查询端口列表
systeminfo												查看系统补丁
wmic qfe get Caption,Description,HotFixID,InstalledOn	查看安装在系统中的补丁
net share 												查看共享列表
wmic share get name,path,status 						查看共享列表

关闭防火墙
netsh firewall set opmode disable(2003之前的版本)
netsh advfirewall set allprofiles state off(2003以后的版本)
netsh firewall show config								查看防火墙配置

修改防火墙配置
允许指定程序连入
netsh advfirewall firewall add rule name="pass nc" dir=in action=allow 
program="C: \nc.exe"

允许指定程序连出
netsh advfirewall firewall add rule name="Allow nc" dir=out action=allow 
program="C: \nc.exe"

允许 3389 端口放行
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in 
localport=3389 action=allow

查看远程连接端口
REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /V PortNumber

开启3389端口
wmic /namespace:\\root\cimv2\terminalservices path win32_terminalservicesetting where (__CLASS !="") call setallowtsconnections 1

wmic /namespace:\\root\cimv2\terminalservices path win32_tsgeneralsetting where (TerminalName='RDP-Tcp') call setuserauthenticationrequired 1

reg add "HKLM\SYSTEM\CURRENT\CONTROLSET\CONTROL\TERMINAL SERVER" /v fSingleSessionPerUser /t REG_DWORD /d 0 /f

2.3 查询当前权限

2.3.1 查看当前权限
whoami
本地普通用户(只能查看本地信息,不能查看域内信息)
本地管理员	(可以查询域内信息)
域内用户
2.3.2 获取域SID
whoami /all
net user XXX /domin

2.4 判断是否存在域

2.4.1 ipconfig命令
ipconfig/all
2.4.2 查看系统详细信息
systeminfo
2.4.3 查询当前登录域及登录用户信息
net config workstation
2.4.4 判断主域
net time /domain
存在域,但是当前用户不是域用户(发生系统错误5)
存在域,且当前用户是域用户	(显示时间)
不存在域,当前是工作组环境	(未找到域控制器)

2.5 探测域内存活主机

2.5.1 利用netbios快速探测内网
工具:Nbtscan
使用方法:nbtscan.exe 192.168.1.0/20
2.5.2 利用icmp协议探测内网
工具:ping命令:	for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.1.%I | findstr "TTL="
使用vbs脚本进行探测
2.5.3 通过arp扫描探测内网
工具:arp-scan		arp.exe -t 192.168.1.0

powershell.exe -exec bypass -Command "& {Import-Module C:\windows\Temp\Invoke-ARPScan.ps1; Invoke-ARPScan -CIDR 192.168.1.0/24}" >> C:\windows\Temp\log.txt
2.5.4 通过TCP/UDP端口扫描探测内网
ScanLine 是一款经典的端口扫描工具,Windows 全版本通用,体积小,仅使用单个文件,同时支持对 TCP/UDP 的端口扫描,命令如下
scanline -h -t 22,80-89,110,389,445,3389,1099,1433,2049,6379,7001,8080,1521,3306,3389,5432 -u 53,161,137,139 -O c:\windows\temp\log.txt -p 192.168.1.1-254 /b

2.6 扫描域内端口

2.6.1 telnet进行端口扫描
2.6.2 S扫描器
S 扫描器是早期的一种比较快速的端口扫描工具,特别适合运行在 Windows Sever 2003 以下
的平台上,支持大网段扫描。S 扫描器的扫描结果默认保存在其目录下的 result.txt 文件中。推荐
使用 TCP 扫描,命令如下
S.exe TCP 192.168.1.1 192.168.1.254 
445,3389,1433,7001,1099,8080,80,22,23,21,25,110,3306,5432,1521,6379,2049,111 
256 /Banner /save
2.6.3 Metasploit端口扫描
Metasploit 包含多种端口扫描技术,与其他扫描工具接口良好。在 msfconsole 下运行“search 
portscan”命令,即可进行搜索
auxiliary/scanner/portscan/tcp 模块
2.6.4 PowerSploit 下的 Invoke-portscan.ps1 模块
2.6.5 Nishang 下的 Invoke-PortScan 模块
2.6.6 端口 Banner 信息

2.7 域内信息收集

1.查询域
net view /domain 

2.查询此域内所有计算机
net view /domain:hacker

3.查询域内所有用户组列表
net group /domain 
 Domain Admins:域管理员组。
 Domain Computers:域内机器。
 Domain Controllers:域控制器。
 Domain Guest:域访客组,权限较低。
 Domain Users:域用户。
 Enterprise Admins:企业系统管理员用户。
在默认情况下,Domain Admins 和 Enterprise Admins 对域内所有域控制器有完全控制权限

4.查询所有域成员计算机列表
net group "domain computers" /domain 

5.获取域密码相关信息
net accounts /domain 

6.获取域信任信息
nltest /domain_trusts

2.8 查找域控制器

1.查看域内控制器的机器名
nltest /DCLIST:hacker

2.查看域控制器的主机名
Nslookup -type=SRV _ldap._tcp

3.查看当前时间
net time /domain

4.查看域控制器组
net group "Domain Controllers" /domain

2.9 获取域内的用户和管理员信息

2.9.1 查询所有域用户列表
1.向域控制器进行查询
net user /domain

2.获取域内用户详细信息
wmic useraccount get /all

3.查看存在的用户
dsquery user

4.查询域内置本地管理员组用户
net localgroup administrators /domain
Administrator
Domain Admins
Enterprise Admins
2.9.2 查询域管理员用户
1.查询域管理员用户
net group "domain admins" /domain

2.查询管理员用户组
net group "Enterprise Admins" /domain

2.10 定位域管理员

2.10.1 域管理员定位概述
定位域内管理员的常规渠道,一是日志,二是会话。日志是指本地机器的管理
员日志,可以使用脚本或 wevtutil 导出查看。会话是指域内每个机器的登录会话,可以匿名查询,
无须权限,可以使用 netsess.exe 或 PowerView 等工具查询。
2.10.2 常用域管理员定外工具
假设已经在 Windows 域中取得了普通用户权限,希望在域内横向移动,想知道域内用户登录
的位置、他是否是任何系统中的本地管理员、他所归属的组、他是否有权访问文件共享等。枚举
主机、用户和组,有助于我们更好地了解域内布局。
常用的工具有 psloggedon.exe、pveFindADUser.exe、netsess.exe、hunter、NetView 等。在
PowerShell 中,常用的脚本是 PowerView。

1.psloggedon.exe
下载地址:	https://docs.microsoft.com/en-us/sysinternals/downloads/psloggedon

用法:
psloggedon [-] [-l] [-x] [\\computername|username]
 -:显示支持的选项和用于输出值的单位。
 -l:仅显示本地登录,不显示本地和网络资源登录。
 -x:不显示登录时间。
 \\computername:指定要列出登录信息的计算机的名称。
  Username:指定用户名,在网络中搜索该用户登录的计算机。

2.pveFindADUser.exe
可用于查找 Active Directory 用户登录的位置,枚举域用户,以及查找在
特定计算机上登录的用户,包括本地用户、通过 RDP 登录的用户、用于运行服务和计划任务的用户账户
运行该工具的计算机需要具有.NET Framework 2.0,并且需要具有管理员权限
下载地址:	https://github.com/chrisdee/Tools/tree/master/AD/ADFindUsersLoggedOn
pveFindADUser.exe -current	(列举当前登录的所有用户)

5.PowerView 脚本
PowerView 是一款 PowerShell 脚本,里面有一些功能可以辅助找寻定位关键用户,下载地址
https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerView。

2.11 查找域管理进程

2.11.1 本机检查
1.获取域管理员列表
net group "Domain Admins" /domain

2.列出本机所有进程及进程用户
Tasklist /v

3.寻找是否有进程所有者为域管理员的进程
当前存在域管理进程。通过对本机检查的方法,如果能够顺便找到域管理员进程是最好的,
但有时实际情况并非这样。
2.11.2 查询域控制器的域用户会话
查询域控制器的域用户会话,其原理是:在域控制器中查询域用户会话列表,并将其与域管
理员列表交叉引用,从而找出域管理会话的系统列表。在这里,必须查询所有域控制器

1.收集域控制器列表
net group "Domain Controllers" /domain
DC$	

2.收集域管理员列表
net group "Domain Admins" /domain

3.收集所有活动域会话列表
使用 Netsess.exe 查询每个域控制器,收集所有活动域会话列表。Netsess 是一个很棒的工具,
它包含了本地 Windows 函数 netsessionenum,命令如下,如图 2-76 所示。该函数可以返回活动会
话的 IP 地址、域账户、会话开始时间和空闲时间
Netsess.exe –h

4.交叉引用域管理员列表与活动会话列表
2.11.3 查询远程系统中运行的任务
如果渗透目标在域系统上使用共享本地管理员账户运行后,可以用下列脚本来扫描系统中的域管理任务。
同样首先从“域管理员”组中收集域管理员的列表
net group "Domain Admins" /domain
然后使用下列脚本,其中 ips.txt 填入目标域系统的列表,在 names.txt 填入收集来的域管理员
的列表。运行结果如图 2-78 所示
FOR /F %i in (ips.txt) DO @echo [+] %i && @tasklist /V /S %i /U user /P
password 2>NUL > output.txt && FOR /F %n in (names.txt) DO @type output.txt |
findstr %n > NUL && echo [!] %n was found running a process on %i && pause
2.11.4 扫描远程系统的NetBIOS信息
在一些 Windows 系统中,允许用户通过 NetBIOS 查询已登录用户。下面这个 Windows 命令
行脚本将扫描远程系统活跃域管理会话。
同样,先收集域管理员列表,然后将目标域系统列表添加到 ips.txt 文件中,将收集到的域管
理员列表添加到 admins.txt 文件中,并置于同一目录下,如图 2-79 所示。

for /F %i in (ips.txt) do @echo [+] Checking %i && nbtscan -f %i
2>NUL >nbsessions.txt && FOR /F %n in (admins.txt) DO @type nbsessions.txt |
findstr /I %n > NUL && echo [!] %n was found logged into %i

2.12 模拟域管理员方法简介

如果您已经有一个 meterpreter 会话,您可以使用 Incognito 模拟域管理员,或添加一个新的域
管理员。通过尝试遍历系统中所有可用的授权令牌来随意添加新的管理员。具体操作方法在第四
章中会详细讲解。

2.13 利用PowerShell收集域信息

如果想执行一个 PowerShell 脚本,需要修改 PowerShell 的默认权限为执行权限。PowerShell常用的执行权限共有四种,具体如下:
Restricted:默认设置,不允许执行任何脚本。
Allsigned:只能运行经过证书验证的脚本。
Unrestricted:权限最高,可以执行任意脚本。
RemoteSigned:本地脚本无限制,但是对来自网络的脚本必须经过签名

查看默认配置
Get-ExecutionPolicy

修改可以执行任意脚本
Set-ExecutionPolicy Unrestricted


PowerView 中的常用命令如下。
Get-NetDomain:获取当前用户所在的域名称。
Get-NetUser:返回所有用户的详细信息。
Get-NetDomainController:获取所有域控制器。
Get-NetComputer:获取所有域内机器的详细信息。
Get-NetOU:获取域中的 OU 信息。
Get-NetGroup:获取所有域内组和组成员信息。
Get-NetFileServer:根据 SPN 获取当前域使用的文件服务器。
Get-NetShare:获取当前域内所有网络共享。
Get-NetSession:获取在指定服务器存在的会话信息。
Get-NetRDPSession:获取在指定服务器存在的远程连接信息。
Get-NetProcess:获取远程主机的进程信息。
Get-UserEvent:获取指定用户的日志信息。
Get-ADObject:获取活动目录的对象信息。
Get-NetGPO:获取域所有组策略对象。
Get-DomainPolicy:获取域默认或域控制器策略。
Invoke-UserHunter:用于获取域用户登录计算机及该用户是否有本地管理权限。
Invoke-ProcessHunter:查找域内所有机器进程用于找到某特定用户。
Invoke-UserEventHunter:根据用户日志获取某域用户登录过哪些域机器
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值