“恶意”利用IPC$
无论是默认共享还是远程计划任务都是管理员级别或是有相对应权限的账户的操作。
何为IPC$
IPC$ (Internet Process Connection) ,共享"命名管道"的资源,它是为了让进程间通信而开放的命名管道,通过提供可信任的用户名和口令,连接双方可以建立安全的通道并以此通道进行加密数据的交换,从而实现对远程计算机的访问。默认共享是管理员级别或者是有相对权限的账户的操作,同时在安全策略中可以对共享模型进行修改。
所谓空连接:就是在连接时指定一个空的用户名和密码net use \IPIPC$ "" /user:""
,这样的连接是可以建立的,但是并没有什么权限。
利用IPC$
网上多数通过IPC$进行攻击的例子都是通过远程主机开放的默认共享文件夹,上传一个木马文件,通过at命令
添加计划任务的方式执行,这样可以直接得到一个SYSTEM
权限的Shell。
但是这里也有一个要求,就是IPC$
这个默认共享存在,如果对方主机把IPC$删除了,那么虽然可以上传文件,但是却没有办法通过at命令设置计划任务。
流程记录如下:
net use \靶机IP(或者计算机名)ipc$
探测使用自己的用户名和密码能不能连到远程主机(默认情况下该命令会使用当前用户的账户和密码进行尝试)- 拷贝木马
copy 木马文件 \靶机靶机路径
at \靶机IP 时间 木马
win7以后的版本执行
at
命令时执行会报:“AT命令已弃用,请改用schtasks.exe ”,不要理他,至少在2012之前的版本(包括2012R2)是能用的
- AT命令创建的任务权限为SYSTEM,也就是说shell跑起来就是SYSTEM。
- AT命令创建的任务工作模式是:无论用户是否登陆都执行该计划任务。
schtasks
这个命令在远程主机上创建任务时,需要一个在远程主机Administrators组中的用户。schtasks
默认以指定用户的权限创建任务,同时也要求用户登录才能执行该计划任务。可以通过/RU
选项指定运行用户(比如SYSTEM),指定后可以在用户未登陆的情况下执行该任务。schtasks /create /s \远程主机 /u 用户名 /P 密码 /tr "执行的操作" /tn 任务名 /st 开始时间 /sc once /ru "SYSTEM" /f
至于如何连接到目标机器的共享文件夹
- 弱口令爆破,是一种常规的方式。
- 还有一种情况,如果目标主机使用的是ghost模式安装,这样的话与其使用相同ghost镜像的主机会具有相同的SID,也就是相同的权限,应该也可以直接net share。
另外可以通过wmic
命令来远程执行命令:
Windows 在Vista/2008之后引入了wmic命令,可以操作远程计算机。要注意路径权限的问题(返回0表示执行成功,返回9表示访问被拒绝)
运行要求:
- 需要远程系统启动
Windows Management Instrumentation
服务 - 远程系统的本地安全策略中的
网络访问: 本地帐户的共享和安全模式
设置为经典-本地用户以自己的身份验证
wmic /node:目标 /user:用户名 /password:密码 process call create "执行的命令"
详细用法可以参考比CMD更强大的命令行:WMIC后渗透利用
- 删除IPC$:
net share IPC$ /del
删除IPC$之后,在尝试连接IPC$的时候会提示:“找不到网络名”
- 恢复IPC$:
net share IPC$
恢复后需要重启server
服务,否则虽然可以成功连接,但是无法执行AT
等命令