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
- Windows XP
-
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
-
设置
LHOST
KaliIP和RHOST
WinIP,按照原来实验的思路把端口对齐到5314
-
再次查看
options
都已设置完成,于是开始攻击,但是不仅连接被拒绝而且session
对象创建失败
-
也许是因为端口的问题,于是恢复默认的端口,连接成功但是
session
对象还是创建失败
-
也许是因为这台Windows已经安装了
KB958644
补丁,于是要苦寻传说中没有补丁的WinXPmhJ9
-
终于安装完成后重复原来的步骤后我发现,这个版本不仅系统问题很多而且依然不能创建
session
对象(有缘也许可以成功)
-
也许是因为MSF水土不服的问题,于是要苦寻以前从来没用过的英文版WinXP
4VAk
-
终于安装完成后再一次重复原来的步骤终于连接成功了(果然是系统的问题)
-
进行一些指令操作验证连接的效果,
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代号大多都还有一个美丽的中文名)。