域说明
AD域
复制代码
AD域服务是每个windows域网络的基石,他负责存储域成员(包括设备和用户)的信息、验证其凭据并定义其访问权限。运行此服务的服务器称为域控制器。
工作组
复制代码
将不同的计算机按照功能或部门分别列入不同的工作组(例如技术部的计算机加入“技术部”工作组),工作组中所有计算机都是对等的,没有服务器和客户机的区别,方便同组的计算机互相访问
域本地组 全局组 通用组
复制代码
# 域本地组
主要授予本域内资源的访问权限
# 全局组
组内用户来自于本域,作用于全林,加入全局组的用户就是管理员,可以对域内成员有特权
# 通用组
组内用户来自于全林(任何域的用户账号、全局组和其他通用组),作用于全林
AD域信息收集
收集本机信息
复制代码
# 查询网络配置信息
ipconfig /all
+ 结果利用:可以看到本机是否在域中,如果在域中可看到域名。可看到dns服务器,一般情况下dns服务器和域控主机是同一台机器。
# 查询操作系统和版本信息
systeminfo | findstr /B /C:"Name" /C:"Version" //英文版操作系统查看操作系统和版本信息
systeminfo | findstr /B /C:"名称" /C:"版本" //中文版操作系统查看操作系统和版本信息
+ 结果利用:不同的操作系统(界限一般是winserver2003)所使用的系统命令有所不同。
# 查看安装的软件及版本、路径
wmic product get name,version
# 查看进程信息
wmic process list brief
+ 结果利用:可查看开启了哪些杀毒软件,免杀的时候可以根据安装的杀毒软件进行绕过。
常见杀软
360sd.exe 360杀毒
ksafetray.exe 金山卫士
safedogupdatecenter.exe 安全狗
avguard.exe 小红伞
AVP.exe 卡巴斯基
# 查看用户列表
net user
+ 结果利用:通过分析本机用户列表,可以找出内网机器命名规则,用来推测整个域的用户命名方式
# 获取本地管理员(通常包括域用户)信息
net localgroup administrator
# 列出或断开本地计算机连接的客户端的会话
net session
+ 结果利用:可获取连接过这台主机的用户以及主机ip,可用于横向
# 查看打的补丁
wmic qfe get HotFixID
+ 结果利用:可以找到未打补丁的漏洞,并且有些例如域内凭据的利用(ptk)需要打了补丁才能利用。
# 查看本机共享列表和可访问的域共享列表
net share
# 查看开启自启动运行软件
wmic startup get command,caption
+ 结果利用:可利用开机自启软件进行后续权限维持
复制代码
+ windows server 2003及之前版本
# 关闭防火墙
netsh firewall set opmode disable
# 允许指定程序全部连接
netsh firewall add allowedprogram c:\nc.exe "allow nc" enable
# 查看防火墙配置
netsh firewall show config
+ windows server 2003之后的版本
# 关闭防火墙
netsh advfirewall set allprofiles state off
# 允许指定程序进入
netsh advfirewall firewall add rule name="pass nc" dir=in action=allow program="C: \nc.exe"
# 查看防火墙配置
netsh firewall show config
# 允许3389端口放行
netsh advfirewall firewall add rule name="Romote" protocol=TCP dir=in localport=3389 action=allow
复制代码
# whoami
whoami执行之后有三种情况:本地普通用户 本地管理员用户 域内用户
本地普通用户:执行完whoami之后显示
计算机名\普通用户名(例如win-2008\user)
本地管理员用户:执行完whoami之后显示
计算机名\管理员用户(例如win-2008\administrator)
域内用户:执行完whoami之后显示
域名\域用户名
域内信息搜集
复制代码
# 使用ipconfig命令
ipconfig /all
执行以上命令可以查看dns服务器的ip地址,以及域名(假设为hack.domain)
使用nslookup解析域名,查看对应ip是否和dns服务器ip相同,相同说明dns服务器和域控在同一台服务器上
nslookup hack.domain
# 判断当前用户是否在域中
net time /domain
执行这个命令可以看到三种情况:
1,存在域,但当前用户不是域用户(结果会提示系统错误)
2,存在域,并且当前用户是域用户(结果会显示时间)
3,不存在域,当前为工作组(会显示找不到域控制器)
复制代码
# 利用 ICMP协议快速探测内网
依次对内网中的每个ip地址进行ping命令,使用如下命令探测整个c段,快速找到内网的所有存活主机
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.1.%I | findstr "TTL="
# 利用arp扫描探测内网
arp.exe -t 192.168.1.0/20
复制代码
# 查询域
net view /domain
# 查询域内所有计算机
net view /domain:域名
# 查看域控的机器名
nltest /DCLIST:域名(可以再使用ipconfig /all查看自己的机器名看是不是域控)
# 或者通过查看时间来查看域控机器名
net time /domain
结果会返回域控机器名和域内时间
# 获取域内用户和管理员信息(其中krbtgt用户不仅可以创建票据授权服务(TGS)的加密密钥,还可以实现多种域内权限持久化方法
net user /domain
# 查询域用户列表
net user /domain
# 查询指定用户的详细信息
net user username /domain //username是用户名
# 查看存在的用户
dsquery user
# 查询本地管理员组用户
net localgroup administrators
# 查询登录域及登录用户信息
net config workstation
# 查询域内所有计算机列表
net group "domain computers" /domain
#获取域密码信息(密码策略,密码长度,错误锁定等)
net accounts /domain
#查看域控制器组(一个域内一般存在两台或两台以上的域控制器,主域故障,备用域控制器可以保证工作正常运行)
net group "Domain Cpntrollers" /domain
获取普通用户账号之后,如何定位管理员
复制代码
定位管理员常规渠道:1.日志 2.会话
日志:本地机器的管理员日志
会话:每台机器的登录会话
查找域管理进程
复制代码
# 获取域管理员列表
net group "Domain Admins" /domain
# 列出本机的所有进程及进程用户
tasklist /v
# 寻找进程所有者为域管理员的进程
复制代码
# 查询域控制器列表
net group "Domain Controllers" /domain
# 收集域管理员列表
net group "Domain Admins" /domain
# 收集所有活动域的会话列表
使用psloggedon(sysinternals包中的工具)可以查看会话列表
psloggedon.exe \\计算机名 //可以查询登录过这台计算机的所有用户
psloggedon.exe username //可以查询到用户登录过的本地或远程计算机
复制代码
bloodhound psloggedon netsess