域渗透-信息收集
内网渗透之域渗透
内网渗透之域渗透
基本信息
1 | |
查询当前权限
获取一台主机后,一般有3种情况:
- 本地普通用户,
win-2008\user
- 本地普通用户,
- 本地管理员用户,
win7-test\administrator
- 本地管理员用户,
- 域内用户,
hacker\administrator
- 域内用户,
其中本地普通用户只能查询本机信息,不能查询域内信息,而本地管理员和域内用户均可查询域内信息。
域内所有查询都通过域控制器(DC)实现,而这个查询会自动使用Kerberos协议进行认证,无须输入账号密码。
获取域SID
- 当前域
hack-naraku的SID:S-1-5-21-1481718049-2714097393-3961720286 - 域用户
winuser的SID:S-1-5-21-1481718049-2714097393-3961720286-1108
- 当前域
1 | |
查询指定用户信息
- 该用户在本地组中没有本地管理员权限
- 在域中属于
Domain Users组
1 | |
判断是否存在域
- 使用
ipconfig
1 | |
查询系统信息
- 域:域名。如果域为
WORKGROUP则表示当前服务器不在域内 - 登录服务器:域控制器
- 域:域名。如果域为
1 | |
查询当前登录域及登录用户
- 工作站域DNS名称:域名。如果为
WORKGROUP则表示当前为非域环境 - 登录域:用于表示当前表示的用户是域用户还是本地用户
- 工作站域DNS名称:域名。如果为
1 | |
判断主域
- 正常执行:存在域,且当前用户是域用户
- 拒绝访问:存在域,但当前用户不是域用户
- 找不到域
WORKGROUP的域控制器:不存在域
1 | |
探测域内存活主机
NetBIOS探测
nbtscan.exe:一个命令行工具,用于扫描目标网络中开放的NetBIOS名称服务器
1 | |
ICMP探测
- 对指定网段中的每个IP地址使用
ping命令
1 | |
ARP探测
arp-scan.exe
1 | |
扫描域内端口
Metasploit端口扫描:MSF提供多种端口扫描技术,还提供与其它扫描工具的接口
- 可在
msfconsole下运行search portscan搜索端口扫描模块 - 这里使用的是
auxiliary/scanner/portscan/tcp
- 可在
1 | |
- Nmap
1 | |
- Netcat:端口Banner信息
1 | |
- Nishang中的
Scan/Invoke-PortScan.ps1模块 - PowerSploit中的
Recon/Invoke-PortScan.ps1脚本
1 | |
其它
- telnet:需要先开启telnet服务
1 | |
- S扫描器:早期的一个扫描器
域信息
需要先启动
Computer Browser服务
1 | |
nltest信任域
信任域:可以在工作组里查询,查询内网是否有域环境
- 参考:Nltest相关命令
1 | |
查找域控
- 查看域控的机器名
1 | |
- 查看域控的主机名
1 | |
- 查看时间
1 | |
- 查看域控组
1 | |
域用户信息
- 查询所有域用户列表
1 | |
- 查询域管理员用户
1 | |
定位域管
- 参考:定位域管理员
概述
在一个域中,当计算机加入域后,会默认给域管理员赋予本地系统管理员权限。因此,域管理员均可以访问本地计算机,且具备完全控制权限。
定位域内管理员的两种渠道:日志和会话。
日志是指本地机器的管理员日志,可以使用脚本或
Wevtutil工具导出并查看。会话是指域内每台机器的登陆会话,可以使用
netsess.exe或PowerView等工具查询(可匿名查询,无需权限)。
PsLoggedOn
PsLoggedOn.exe:可以查看本地登录的用户
- 原理:通过检验注册表里
HKEY_USERS的key值来查询谁登陆过机器(调用NetSessionEnum API) - 限制:部分功能需要管理员权限
1 | |
PVEFindADUser
PVEFindADUser.exe:用于查找Active Directory用户的登录位置、枚举域用户,以及查找在特定计算机上登陆的用户,包括本地用户、通过RDP登陆的用户、用于运行服务和计划任务的用户。
- 限制:运行该工具需要配置
.NET Framework 2.0环境,并且需要具有管理员权限。
1 | |
Netview
Netview.exe:使用
WinAPI枚举系统,利用NetSessionEnum找寻登陆会话,利用NetShareEnum找寻共享,利用NetWkstaUserEnum枚举登陆用户。同时,netview.exe能够查询共享入口和有价值的用户。
限制:绝大多数功能不需要管理员权限
1 | |
Nmap的NSE脚本
Smb-enum-sessions.nse:如果存在域账户或者本地账户,就可以使用该脚本获取远程机器的登陆会话
- 限制:不需要管理员权限
1 | |
| 脚本 | 描述 |
|---|---|
| smb-enum-domains | 尝试枚举系统上的域及其策略 |
| smb-enum-users | 枚举远程Windows系统上的用户,并提供尽可能多的信息 |
| smb-enum-shares | 便利远程主机共享目录 |
| smb-enum-processes | 通过SMB从远程服务器提取进程列表,可以知道目标主机运行哪些软件。需要管理员权限 |
| smb-enum-sessions | 枚举在本地或通过SMB共享登录到系统的用户 |
| smb-os-discovery | 尝试通过SMB协议(端口445或139)确定操作系统,计算机名称,域,工作组和当前时间。 |
PowerView
PowerView是一款依赖powershell和WMI对内网进行查询的常用渗透测试脚本,集成在powersploit工具包中,是一个收集域信息很好用的脚本。
1 | |
查找域管理进程
一个典型的域权限提升过程,通常围绕着收集明文凭据或通过
Mimikatz提权等方法。在获取了管理员权限的系统中寻找域管理员登录进程,进而收集域管理员的凭据。
1 | |
Powershell收集信息
1 | |
其它
用户信息
- 权限:
system > administrator > user
- 权限:
1 | |