域
域在我的理解就是一个局域网,管理员为了便于操作域内主机,通常会有一个DC(domain control),域控主机可以直接控制其他域内主机,相当于域内的管理员权限,内网渗透的终极目的即拿到域控的权限。
在域控中的主机可以有两种登录方式,普通账户登录和域内账户登录,普通域内用户的权限是很低的,安装程序,修改密码等等都需要向域控申请才能完成。
域控机器
如图,域控可以管理域内的机器和用户
域内信息收集
当我们拿下一台主机后,可以通过
systeminfo 详细信息netstat -ano 端口列表route print 路由表net start 启动服务tasklist 进程列表schtasks 计划任务ipconfig /all 判断存在域net view /domain 判断存在域net time /domain 判断主域netstat -ano 当前网络端口开放nslookup 域名 追踪来源地址wmic service list brief 查询本机服务net config workstation 查询当前登录域及登录用户信息wmic startup get command,caption 查看已启动的程序信息
如图,我的电脑是一台个人主机,没有域
现在,我再用域内的web服务器用户,可以看到有god域
当判断自己在域中,可以尝试进行信息收集
net view /domain 查询域列表net time/domain 从域控查询时间,若当前用户是域用户会从域控返回当前时间,亦用来判 断主域,主域一般用做时间服务器net localgroup administrators 本机管理员【通常含有域用户】net user /domain 查询域用户 ( 当前域 )net group /domain 查询域工作组net group "domain computers" /domain 查看加入域的所有计算机名net group "domain admins" /domain 查询域管理员用户组和域管用户net localgroup administrators /domain 查看域管理员net group "domain controllers" /domain 查看域控net accounts /domain 查看域密码策略
查看本机管理员
查看域内主机
查看域管理员用户
查看域控主机
我们想要通过域内主机拿到域控权限,首先就要获得目标IP地址
net time /domain 获取域控主机名,ping获取目标IP
God.org环境搭建
这里我给web服务器加上连接外网的网卡,所有主机在同一内网
这里我使用CS这一工具,CS在内网渗透比较方便
CS命令大全
browserpivot 注入受害者浏览器进程
sleep 3 全部命令3秒执行
bypassuac 绕过UAC
cancel 取消正在进行的下载
cd 切换目录
checkin 强制让被控端回连一次
clear 清除beacon内部的任务队列
connect Connect to a Beacon peerover TCP
covertvpn 部署Covert VPN客户端
cp 复制文件
dcsync 从DC中提取密码哈希
desktop 远程VNC
dllinject 反射DLL注入进程
dllload 使用LoadLibrary将DLL加载到进程中
download 下载文件
downloads 列出正在进行的文件下载
drives 列出目标盘符
elevate 尝试提权
execute 在目标上执行程序(无输出)
execute-assembly 在目标上内存中执行本地.NET程序
exit 退出beacon
getprivs Enable system privileges oncurrent token
getsystem 尝试获取SYSTEM权限
getuid 获取用户ID
hashdump 转储密码哈希值
help 帮助
inject 在特定进程中生成会话
jobkill 杀死一个后台任务
jobs 列出后台任务
kerberos_ccache_use 从ccache文件中导入票据应用于此会话
kerberos_ticket_purge 清除当前会话的票据
kerberos_ticket_use 从ticket文件中导入票据应用于此会话
keylogger 键盘记录
kill 结束进程
link Connect to a Beacon peerover a named pipe
logonpasswords 使用mimikatz转储凭据和哈希值
ls 列出文件
make_token 创建令牌以传递凭据
mimikatz 运行mimikatz
mkdir 创建一个目录
mode dns 使用DNS A作为通信通道(仅限DNS beacon)
mode dns-txt 使用DNS TXT作为通信通道(仅限D beacon)
mode dns6 使用DNS AAAA作为通信通道(仅限DNS beacon)
mode http 使用HTTP作为通信通道
mv 移动文件
net net命令
note 备注
portscan 进行端口扫描
powerpick 通过Unmanaged PowerShell执行命令
powershell 通过powershell.exe执行命令
powershell-import 导入powershell脚本
ppid Set parent PID forspawned post-ex jobs
ps 显示进程列表
psexec Use a service to spawn asession on a host
psexec_psh Use PowerShell to spawn asession on a host
psinject 在特定进程中执行PowerShell命令
pth 使用Mimikatz进行传递哈希
pwd 当前目录位置
reg Query the registry
rev2self 恢复原始令牌
rm 删除文件或文件夹
rportfwd 端口转发
run 在目标上执行程序(返回输出)
runas 以另一个用户权限执行程序
runasadmin 在高权限下执行程序
runu Execute a program underanother PID
screenshot 屏幕截图
setenv 设置环境变量
shell cmd.exe 打开cmd终端
shell ipconfig 执行ipconfig命令
shinject 将shellcode注入进程
shspawn 生成进程并将shellcode注入其中
sleep 设置睡眠延迟时间
socks 启动SOCKS4代理
socks stop 停止SOCKS4
spawn Spawn a session
spawnas Spawn a session as anotheruser
spawnto Set executable tospawn processes into
spawnu Spawn a session underanother PID
ssh 使用ssh连接远程主机
ssh-key 使用密钥连接远程主机
steal_token 从进程中窃取令牌
timestomp 将一个文件时间戳应用到另一个文件
unlink Disconnect from parentBeacon
upload 上传文件
wdigest 使用mimikatz转储明文凭据
winrm 使用WinRM在主机上生成会话
wmi 使用WMI在主机上生成会话
argue 进程参数欺骗
我们可以利用工具进行信息收集,先假设我们获得了web服务器的权限
进行端口扫描
这里,我们确定了三个目标
192.168.3.21:445 (platform: 500 version: 6.1 name: OWA2010CN-GOD domain: GOD)
5065 5060 3389 995 993 808 636 593 587 464 443 389 143 139 135 110 88 80 53 25 445
192.168.3.25:445 (platform: 500 version: 6.1 name: MARY-PC domain: GOD)
192.168.3.31:445 (platform: 500 version: 6.1 name: WEBSERVER domain: GOD)
使用CS的权限提升插件将拿到的权限进行权限提升
拿到system权限后可以进行密码抓取
我们可以假设域内有相同密码的机器,使用抓取的密码进行横向移动
这里失败了,前面做好信息收集确定目标用户信息后进行横向移动