MSF基础应用

20175314 2020-4 《网络对抗技术》Exp6 MSF基础应用 Week9

一、实践目标

1、实践对象

  • Kali Linux
  • Metasploitable Linux
  • Windows 10
  • Windows 7
  • Windows XP

2、实践内容

  • 成功主动攻击,如ms08-067
  • 成功针对浏览器的攻击,如ms11-050
  • 成功针对客户端的攻击,如Adobe
  • 成功应用辅助模块的攻击

二、基础知识

1、实践要求

  • 掌握metasploit的基本应用方式,重点是常用的三种攻击方式的思路
  • 实践可不限于示例,并要求至少有一个是和其他所有同学不一样

2、指令/参数

  • SYN Flood攻击指令
    hping3 -q -n -a [伪造源IP] -S -s [伪造源端口] --keep -p [目的端口] --flood [目的IP]

3、预备知识

  • 使用Nmap探测靶机的漏洞(以MS08-067为例)

    • Windows XP
    • Windows 7
  • Ubuntu使用docker搭建samba

    sudo su
    apt-get upgrade
    apt-get update 
    apt-get dist-upgrade
    apt-get install docker.io
    apt-get install samba
    
  • SYN Flood攻击

    • Synchronize Sequence Numbers,同步序列编号,是TCP/IP建立连接时使用的握手信号;
    • SYN Flood利用TCP协议缺陷,通过一定的操作破坏TCP三次握手建立正常连接,占用并耗费系统资源,使得被攻击方资源耗尽,无法及时回应或处理正常的服务请求;
    • 攻击原理:通常客户端在短时间内伪造大量不存在的IP地址,向服务器不断地发送syn包,服务器回复确认包,在进行第三次握手时,服务器等待客户的确认,由于源地址是不存在的,服务器需要不断地重发直至超时。这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求不能进去以及被丢弃,目标系统运行缓慢并引起网络拥堵。

三、实践步骤

1、主动攻击

(1) MS08-067漏洞渗透攻击实践(成功/不唯一)

  • 启动msfconsole查找漏洞

  • 显示该漏洞的渗透模块

  • 进入该漏洞模块的使用,显示有效的攻击载荷,选择shell_reverse_tcp

  • 显示可以被攻击靶机的操作系统版本,可以看到Windows XP SP3中文简体版在列

  • 设置攻击有效载荷generic/shell_reverse_tcp,显示连接需要设置的参数options

  • 设置LHOSTKaliIP和RHOSTWinIP,按照原来实验的思路把端口对齐到5314

  • 再次查看options都已设置完成,于是开始攻击,但是不仅连接被拒绝而且session对象创建失败

  • 也许是因为端口的问题,于是恢复默认的端口,连接成功但是session对象还是创建失败

  • 也许是因为这台Windows已经安装了KB958644补丁,于是要苦寻传说中没有补丁的WinXPmhJ9

  • 终于安装完成后重复原来的步骤后我发现,这个版本不仅系统问题很多而且依然不能创建session对象(有缘也许可以成功)

  • 也许是因为MSF水土不服的问题,于是要苦寻以前从来没用过的英文版WinXP4VAk

  • 终于安装完成后再一次重复原来的步骤终于连接成功了(果然是系统的问题)

  • 进行一些指令操作验证连接的效果,ifconfig/all查看Win的各类地址

  • dir指令查看payload所在目录下的文件,chdir指令查看payload的路径

  • 查看Win目前的用户,显示只有Administrator

  • 查看新建用户,设置用户名和密码,然后再次查看当前的用户,显示添加成功

  • 检查用以远程连接的端口3389是否开启

  • 显示没有开启,执行REG ADD指令开启端口3389

  • 再次检查显示端口3389已开启

  • 在主机系统进行远程连接,输入靶机IP地址

  • 使用自己创建的用户名和密码登录但显示权限不够

  • 再回到Kali端使用MSF提权

  • 重新登录成功

(2) samba漏洞渗透攻击实践(成功/唯一)

  • 使用docker搭建samba

  • 因为安装经过数次,显示地址已被占用

  • 检查进程地址,关闭进程并查看是否已经成功开启docker-samba

  • 在Kali端/usr/share/metasploit-framework/modules/exploits/linux/samba/修改MSF的is_known_pipename模块脚本is_known_pipename.rb

  • 启动MSF,端口和地址都没有问题但是exploit总是失败,显示地址非法

  • 也许是因为Ubuntu搭建的samba环境版本较新,于是要苦寻Metasploitable2

  • msfadmin/msfadmin登录系统,查看IP地址信息

  • 在Kali端使用nmap探测samba

  • 启动msfconsole,根据options设置相关参数,攻击成功

2、针对浏览器的攻击

(1) MS17-010漏洞(永恒之蓝)渗透攻击实践(成功/不唯一)

  • 启动msfconsole查找漏洞

  • 查找有效攻击载荷

  • 根据opions设置相关参数,启动攻击

  • 在靶机的浏览器(IE)输入Kali的IP地址

  • 攻击成功,编码显示有问题,可以换一个payload试试

(2) MS10-002漏洞(极光)渗透攻击实践(成功/唯一)

  • 启动msfconsole查找漏洞

  • 查找有效攻击载荷

  • 根据opions设置相关参数,启动攻击

  • 在靶机的浏览器(IE)输入Kali的IP地址,无响应提醒,后门攻击成功标志性现象

  • 反弹连接成功但是非常奇怪,输入dir指令返回的是Kali的信息

3、针对客户端的攻击

(1) Adobe Reader漏洞渗透攻击实践(成功/不唯一)

  • 启动msfconsole查找漏洞

  • 选择漏洞,查找有效攻击载荷

  • 根据opions设置相关参数,生成pdf文件,将这个文件按照路径取出并复制到靶机

  • 退出当前模块,进入监听模块,根据opions设置相关参数,开始监听

  • 在靶机使用Adobe Reader启动markmsf.pdf

  • 攻击成功,该载荷非常稳定没有编码问题

(2) Office Word漏洞渗透攻击实践(成功/唯一)

  • 启动msfconsole查找漏洞

  • MS11-006漏洞具有更强的实用性,查找有效攻击载荷

  • 根据opions设置相关参数,与我之前完成的免杀进阶生成的带宏的docm文件不同,这次生成的是普通的doc文件,将这个文件按照路径取出并复制到靶机

  • 退出当前模块,进入监听模块,根据opions设置相关参数,监听失败

  • 还是地址与端口连接的问题,尝试关闭进程重启后还是不行,所以还是换个端口试试比较实际,所以doc文件也需要重新设置生成,然后再重新尝试监听

  • 这里反弹连接的方式很特别,双击打开没有反应

  • 经过多次尝试,发现只需要在文件夹中启动缩略图查看即可

4、辅助模块攻击

(1) SYN Flood(成功/唯一)

  • 启动msfconsole,显示所有的辅助模块和用途

  • 靶机启动任务管理器监控CPU的使用率,启动Wireshark,启动攻击

  • 靶机几乎瘫痪,停止攻击后查看任务管理器和Wireshark捕包结果

(2) Web漏洞扫描(成功/唯一)

  • 启动msfconsole,根据options设置相关参数,启动扫描

四、实践报告

1、遇到的问题

  • 问题 Ping过程Negotiating IP Security

  • 解决方案 服务中停止IPSEC Services

  • 问题 Windows关闭Generic Host Process for Win32 Services

  • 解决方案 数据执行保护为Generic Host Process for Win32 Services启用DEP

2、基础问题回答

  • 用自己的话解释什么是exploit,payload,encode
  • exploit 利用系统、程序或服务的漏洞进行攻击的一个过程,即漏洞利用,在MSF攻击过程中也能通过run实现;
  • payload 攻击者在目标系统上执行的一段攻击代码,即攻击载荷,该代码具有反弹连接、创建用户、执行其他系统命令的功能,在在MSF攻击过程中通过exploit运输;
  • encode 可以避免使攻击载荷不能完整运行的坏字符或是改变特征码,在MSF攻击过程中对payload进行包装,帮助其避免被杀软发现。

3、实验收获与感想

  • 经过了前面两次以分析为主的实验,再次使用MSF感觉对过程更加清晰,解决问题的能力也有所提升,本次实验的四个部分都使用了两种方式实现,而且都成功了,虽然是MSF基础应用,但是学习到新的知识和技能感觉还是挺有成就感的。结合免杀的实践,每次后门攻击都至少应该做相应的进程迁移,包括扫描等操作也应该清理入侵痕迹,但是这样理想化的环境也能让我有所体验利用各种有趣的漏洞。
  • 如果要考虑实战,我认为首先要想办法如何连接目标机器或将后门程序植入目标机器,不然再大的漏洞都是摆设,比如可以入侵服务器(网关)、控制内部网络等等,方法有很多但是肯定多少也要结合一定社会工程学。除了上述所说以外还有很重要的一点就是上一个实验即信息搜集,比如针对客户端的攻击,首先要对目标主机的漏洞情况和系统情况还有客户端情况有所掌握,目标机器上是否已经安装补丁?系统是中文版还是英文版?是否安装Adobe或Office?等等问题需要掌握,但是从实用性和普遍性来看,针对浏览器的攻击应该还是比较实用(因为浏览器的漏洞除了MS代号大多都还有一个美丽的中文名)。
原文地址:https://www.cnblogs.com/SANFENs/p/12706021.html