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

前言

这个作业属于哪个课程:https://edu.cnblogs.com/campus/besti/19attackdefense
这个作业的要求在哪里:https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10612
我在这个课程的目标是:学习网络攻防技术相关知识,掌握相关技能。
这个作业在哪个具体方面帮助我实现目标 :初步学习Windows操作系统安全攻防技术。

1.实践内容

1.1操作系统基本框架概述

1.1.1Windows操作系统的发展与现状
1.1.2 Windows操作系统的基本结构

Windows操作系统的基本结构如下

分为运行于处理器特权模式(ring0)的操作系统内核,以及运行在处理器非特权模式(ring3)的用户空间代码。

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

  • Windows执行体:即Windows内核核心文件ntoskml.exe 的上层接口,包含基本的操作系统内核服务,如进程与线程管理、内存管理、I/O管理、网络连接、进程间通信,以及安全服务。
  • Windows内核体:即Windows内核核心文件ntoskmnl.exe 中函数实现与硬件体系结构支持代码,实现底层的操作系统功能,如线程调度、中断和异常分发处理、多处.理器同步机制等,同时也提供了一组内核例程与基本对象,以帮助执行体来实现高层次的功能服务。
  • 设备驱动程序:包括将用户I/O操作映射为特定硬件设备IO请求的硬件设备驱动程序,以及文件系统与网络设备驱动程序。该部分支持通过数字签名认证的第三方
    硬件厂商的硬件设备驱动程序加载进入内核执行。
  • 硬件抽象层:即hal.dll文件,是用于屏蔽Windows内核与平台硬件差异性的底层
    代码。
  • Windows窗口与图形界面接口内核实现代码:即win 32k.sys文件。

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

  • 系统支持进程:Windows 开机自动启动的系统内建服务进程,如负责登录用户身份认证的logon进程、会话管理进程等。
  • 环境子系统服务进程:为操作系统运行环境提供支持的服务进程,Windows XP只支持Windows环境子系统,而符合POSIX标准的环境子系统则作为UNIX产品的免费服务所提供。
  • 服务进程:通过Windows的服务管理机制所启动的--系列系统及网络服务,如TaskScheduler任务管理器服务,Microsoft SQL Server网络服务等。
  • 用户应用软件:在用户态执行的各类用户应用软件。
  • 核心子系统DLL:即kernel32.d1l/user32.dll/gdi32.dll/advapi32.dll等动态连接库文件,作为用户态服务进程与应用软件和操作系统内核的交互接口,将用户态程序调用的系统API函数映射到相应的一-个或多个Windows内部的系统服务调用。

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

1.2.1 Windows安全体系结构

Windows操作系统的安全设计目标是采用一致的、健壮的、基于对象的安全模型,支持一台机器上多个用户之间安全地共享进程、内存、设备、文件及网络等各种类型的系统资源,来满足商业用户的安全需求,NT5.x内核的Windows 2000操作系统曾通过了CC安全评估标准的EVAL4级别,达到了普通商业应用的要求。
Windows操作系统基于引用监控器模型(Reference Monitor)来实现基本的对象安全模型。引用监控器模型是安全操作系统设计的一种经典模型, 如图7-6所示,系统中所有主体对客体的访问都通过引用监控器作为中介,由引用监控器根据安全访问控制策略来进行授权访问,所有访问记录也都由引用监控器生成审计日志。

基于引用监控器这一经典安全模型,Windows 操作系统以图7-7 所示的安全体系结构来设计实现基础的安全机制,其中最为核心的是位于内核中的SRM ( Security Reference Monitor)安全引用监控器,以及位于用户态的LSASS (Local Security Authority Subsystem Service)安全服务,它们与Winlogon/Netlogon 及Eventlog 等服务一起,实现了对主体用户的身份认证机制、对所有资源对象的访问控制机制,以及对访问的安全审计机制。

  • Winlogon 进程与LSASS中的Netlogon分别负责Windows本地和远程登录用户的身份认证,利用LSASS所提供的身份验证服务,来确定安全主体身份的真实性。
  • 内核中的安全引用监控器作为Windows资源宝库的看门人,根据LSASS服务配置的安全访问控制策略,负责对所有安全主体访问Windows资源对象的授权访问控制。
  • 安全引用监控器根据LSASS服务配置的安全审计策略,对访问过程中关注的事件进行记录,并由EventLog生成系统审计日志。
1.2.2 Windows身份认证机制

Windows操作系统中以安全主体概念来包含所有进行系统资源访问请求的实体对象,有用户、用户组和计算机三大类,对于每个安全主体,以时间和空间上都全局唯一的SID安全标识符来进行标识,SID是一个形如“S-1-5-21-13124455-12541255-61235125-500"的字符串,其中S为固定字符,1为版本号,第三位是个48bit 数值,表示标识符颁发机构(5代表the Windows Security authority), 之后为多个32bit数值的子颁发机构标识,最后-部分被称为RID,一般Administrator账户的RID均为500。
Windows为每个用户和计算机设置账户(accounts) 进行管理,作为这些安全卡体运行程序代码的执行环境,而账户权限的根本作用就是限制这些账户内运行程序对系统资源对象的访问。Windows系统中拥有一些内建账户,如拥有最高权限的本地Administrator账户,作为自动运行系统进程环境的SYSTEM/L ocalSystem账户,具有相对极少权限的Guest图名访客用户,以及IUSR. _Machinename IIS服务的匿名网络访问账户等。而这些账户在黑客眼中,本地Adninistrator和SYSTEM账户拥有最高的权限,是他们攻击的终极目标。
用户组是为了简化用户管理而引入的用户账户容器,通过将用户账户添加入特定的用户组,就可以使得该用户拥有用户组配置的全部权限,有效地使用用户组,可以使得系统管理员对权限控制的配置工作量大大减少。Windows 系统的内建用户组包括:本地最高权限用户组Administrators、 具有单-方面系统权限的Account/Backup/Server/Print Operators等操作组、用于容纳服务账户的Network Service与Local Service用户组,以及所有用户账户所在的Users组等。同样,黑客们也往往希望将自建的后门]账户添加入Administrators用户组,来获得系统的最高权限。
Windows用户账户的口令字经过加密处理之后被保存于SAM或者活动目录AD中,其中本地用户账户口令信息经过不可逆的128 位随机密钥Hash 加密后存储在SAM (Security Accouns Manager)文件中,SAM存储于% systemroot % \system32lconfiglsam文件系统路径位置,并在注册表的HKEY LOCAL MACHINESAM存有副本,但在Windows运行期间,由于Windows 内核对SAM文件加上了一个持久性的文件锁,因此即使是Administrator账户,通过正常途径也不能直接读取SAM,只有LocalSystem账户权限才可以读取,但黑客们已经提出了多种技术可以从内存中dump出SAM内容,从而使得对SAM加密口令字的暴力破解成为可能。Windows 域账户口令信息则保存在域控制器的活动目录AD中,加密方式与单机平台一致,存储文件系统位置是域控制器的%systemroot%' Intds\ntds.dit路径。AD中的口令密文信息同样也可以通过各种技术从内存中dump,并支持离线的暴力口令破解攻击。
对于试图使用Windows系统的用户与远程计算机等安全主体,Windows通过一些秘密信息(如保存的口令字、登记的指纹等)来认证安全主体真实合法的身份,进行用户身份认证。Windows支持本地身份认证和网络身份认证两种方式,分别对在本地系统登录和远程网络访问的主体进行合法性验证。Winlogon进程、GINA图形化登录窗口与LSASS服务通过协作来完成本地身份认证过程,Winlogon 进程会随系统开机而自动运行,响应用户输入的Ctrl+Alt+Del组合键,启动GINA图形化登录窗口, GINA提取到用户输入的口令信息之后,由Winlogon移送给LSASS 服务,利用LSASS提供的身份验证服务来进行用户身份的真实性确认,对通过验证的个许可其登录系统并获得用户账号执行权限。网络身份认证过程由LSASS服务的Netlogon模块主导完成,Windows 客户端访问远程的Windows网络服务器资源时,客户端LSASS服务的Netlogon模块会与服务器端的Netlogon进行基于“质询-应答式”的身份验证协议过程,以验证客户端的用户身份。

1.2.3 Windows授权与访问控制机制

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

在用户等安全主体经过认证之后,Windows 系统会赋予用户一个访问令牌,在这个令牌中保存了一份与登录用户账户有关的安全主体SID标识符列表,包括用户账户本身的SID,所属用户组的SID列表,同时还包含该用户所拥有的一些系统特权列表。

Windows对于系统中所有需保护的资源都抽象成对象(Object), 具体类型包括文件、目录、注册表键值、内核对象、同步对象、私有对象、管道、内存、通信接口等,而对每个对象会关联一个SD安全描述符(Security Descriptor),对象安全描述符由如下主要属性组成。

  • OwnerSID:对象所有者的SID安全标识符。
  • Group SID:对象所在基本用户组的SID安全标识符( 兼容POSIX使用)
  • DACL自主访问控制列表:指明了哪些安全主体可以何种方式来访问该对象,图7-10显示了设置文件对象访问控制列表的示例。
  • SACL系统审计访问控制列表:指明了由哪些主体发起的哪些访问操作需要被审计。

在Windows的主体与客体对象分别在访问令牌和安全描述符中定义了安全上下文环境信息之后,Windows的授权访问控制机制就变得非常简单和清晰,就是由处于内核中的SRM安全引用监控器模块来确定某个主体对某个客体对象是否具备所请求的访问权限,如是则授予访问权,而这一过 程也就构成了Windows系统的基本访问控制机制与对象安全模型。

1.2.4 Windows安全审计机制

Windows安全审计机制的实现方式也比较清晰明了。系统审计策略在本地安全策略中由系统管理员定义,来确定系统对哪些事件进行记录。Windows系统审计策略的配置如图7-12所示: LSASS服务将保存审计策略,并在对象启动审计功能后,在对象安全描述符中的SACL列表中进行保存: SRM安全引用监控器在进行对象访问授权时,也将依据对象的SACL列表配置,对指定的对象访问和操作事件进行审计记录,发送给LSASS服务;由LSASS服务补充审计记录细节信息后,再将这些审计记录发送给EventI og事件日志服务; EventLog 服务最后将事件日志写入日志文件中,并通过事件查看器工具展示给系统管理员,也可以作为第三方审计日志分析工具的分析输入数据源。Windows 系统审计事件日志查看器如图所示。

1.2.5 Windows的其他安全机制
  • Windows安全中心:集成了防火墙、补丁自动更新及病毒防护
  • IPSec加密与验证机制
  • EFS加密文件系统
  • Windows文件保护机制
  • 捆绑的IE浏览器所提供的隐身保护与浏览安全保护机制

Windows的安全策略配置大部分集中在组策略配置界面中,如下

1.3 Windows远程安全攻防技术

Windows远程攻击技术可分为以下几类:

  • 远程口令猜测与破解攻击:包括口令暴力破解、基于字典的猜测以及中间人身份认证欺骗攻击技术。
  • 攻击Windows网络服务:无论Windows自身独有的SMB、MSRPC、NETBIOS等网络服务,还是IIS、MSSQL等各种互联网服务在Windows系统上的具体服务实例,都不可避免地存在着可导致远程代码执行的高危性安全漏洞,攻击者也一直在利用这些漏洞来对Windows网络服务实施远程渗透攻击,从而得到Windows系统的访问权。
  • 攻击Windows客户端及用户:由于近来Windows系统及本身服务安全性的有效提升,针对Web浏览器、第三方应用软件的客户端渗透攻击变得流行。
1.3.2 Windows 远程口令猜测与破解攻击
  • 远程口令字猜测与破解防范措施
    • 尽量关闭不必要开放的易受远程口令猜测攻击网络服务,包括TCP 139/445端口的SMB服务、TCP 135端口的WMI服务、TCP 3389端口的TS终端服务以及TCP 1433端口的MS SQL Server服务等。
    • 配置主机防火墙来限制对上述端口的服务,如果用户仍然需要使用这些服务,但又希望能够提升这些服务对抗远程口令猜测的防护能力,则可以通过配置主机防火墙。
    • 利用网络防火墙来限制到这些服务的访问。
    • 应对远程口令字交换通信窃听与破解攻击最基本的途径是禁用过时而且存在本质上安全缺陷的LanMan与NTLM,而仅使用经过安全加固的NTLMv2与Kerberos认证协议,应保持Windows补T的自动更新并确认NTLMv2协议中发现的安全漏洞已被修补(MS08-068与MS10-012补丁)。
    • 制定和实施强口令字策略,来确保用户设置符合一定的长度及复杂度要求的口令。

1.4 Windows 本地安全攻防技术

1.4.2 Windows 敏感信息窃取
  • 包括:Windows系统口令字密文提取技术、Windows系统口令字破解技术、用户敏感数据窃取

  • 本地敏感信息窃取防范措施:使用更安全的口令字

1.4.3 Windows 消踪灭迹
  • 包括:关闭审计功能、清理事件日志、针对消踪灭迹的方法措施
1.4.4 Windows远程控制与后门程序
  • 攻击者往往会在受控的系统中自主植入第三方的远程控制与后门程序,主要分为命令行远程控公工具、图形化远程控制工具这两大类。

  • 针对后门程序的防范措施:用一些后门检测软件来尝试发现攻击者隐藏的后门程序,常用的检测软件包括反病毒厂商所提供的杀毒软件,以及一些专业的后门及Rootkit检测软件,如Sysinternals 的RootkitRevealer、国内的IceSword冰刃等。

2.实践过程

2.1 动手实践:Metaploit Windows Attack

启用Metaploit3上的msfconcole,输入?查看一些命令

使用search ms08_067来查找针对任务要求的MS08_067漏洞的攻击模块

可以看到可用的攻击模块名称,等级,描述。选用great或excellent的模块效果比较好,用normal之类的可能会没有效果
输入use windows/smb/ms08_067_netapi来使用目标模块

输入show payloads来选择有效的攻击载荷,payload主要作用是在攻击机与靶机之间建立稳定的连接并返回shell

之后可以输入show targets来查看该攻击模块可使用的目标系统型号,当然本实验的靶机window2k_server_SP0_taget是肯定适用该模块的

从前面的payloads中选择了要用的载荷后进行设置使用,set payload generic/shell_reverse_tcp,任务要求payload为远程shell,而reverse通常为反向连接,即靶机反向连接攻击机,而bind为正向连接。

选了反向连接后就要设置目标ip和端口以及攻击机ip

设置完成后就可以输入exploitrun进行攻击了

可以看到通过shell可以获取靶机上的信息,与靶机上显示的一致

2.2 团队对抗事件

由于我是个人实验,就自己来充当攻防双方
首先是攻击方
使用metaploit3的控制台程序,先nmap -sV 192.168.200.125,使用nmap看一下靶机有什么端口及服务能成为攻击目标

随便找一个服务看看metaploit3有没有对应的攻击模块,就决定是你了,Apache,search Apache

看到一个excellent的攻击模块,果断试试,use linux/http/piranha_passwd_exec
再看看有没有好用的payload

只有normal,行吧!试试!
然后像前面那样设置参数

exploit试一下

???没session,那我们建一个,set session 1

还是不行。。我这里不能check,不过根据网上的说法是靶机并没有这个漏洞,是安全的。。行吧,那我们换一个

换Samba,一样的操作再来一遍



成功连接,建个hacksuccess

在进行上面攻击的时候,我同时开着wireshark嗅探网络

首先看看arp确定下是谁对谁发起攻击

看到广播的是192.168.200.3查询192.168.200.125
设置ip.src ==192.168.200.3 && ip.dst == 192.168.200.125看看

可以看到有两条黑的[tcp dup ack xxxx#1],前面那一堆灰的红的可以知道是攻击机寻找靶机开放端口,而这边两条表示数据丢失tcp,而这种东西通常出现在网络时延增大的时候,那我们是不是可以理解为此时攻击机对靶机发动攻击导致的网络拥堵。而且前面有两条SMB报文,百度知SMB用于Web连接和客户端与服务器之间的信息沟通。之后的报文来自攻击机的4444端口,我们看一下[PSH,ACK]的报文,PSH表示报文带数据。


可以看到攻击机发送了ifconfig命令而靶机返回了对应信息,说明此事攻击机的攻击已经成功。
那么这之间的报文的内容应该就是shellcode了


然后前面知道存在SMB报文传递

看到唯一有效的连接是来自攻击的4444端口针对靶机的139端口发起的
可以认为攻击者通过139端口上服务对SMB通道的漏洞进行攻击。

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

来自213.116.251.162的攻击者成功攻陷了一台由rfp部署的蜜罐主机172.16.1.106(主
机名为: lab.wiretrip.net), 这是一次非常典型的针对NT系统的攻击,而且我们有理由相信
攻击者最终识别了蜜罐主机,因此这将是一个非常有趣的案例分析挑战。
你的分析数据源只有包含整个攻击过程的二进制记录文件,而你的任务就是从这个文
件中提取并分析攻击的全部过程。

  • 1.攻击者使用了什么破解工具进行攻击?
  • 2.攻击者如何使用这个破解工具进入并控制了系统?
  • 3.当攻击者获得系统的访问权后做了什么?
  • 4.我们如何防止这样的攻击?
  • 5.你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么?
问题一:攻击者使用了什么破解工具进行攻击?

首先在wireshark中导入log文件,初步看一下数据包

我们知道攻击机ip:213.116.251.162,靶机ip:172.16.1.106

看到这么个东西%CO%AF,百度可知这是一个"/"字符的非法UTF-8表示方式,参考IIS的Unicode漏洞攻击可以知道这是一个Unicode编码漏洞攻击

因为基本上都是tcp或者http数据包,那咱们追踪下数据流

在追踪的tcp数据流中,可以看到最上面有个!ADM!ROX!YOUR!WORLD!出现了很多次,查询可知这个来自一个名为msadc2.pl的攻击工具

问题二:攻击者如何使用这个破解工具进入并控制了系统?

看到上面tcp流中攻击者写入shell进行一些操作进行攻击

过滤出攻击的shell命令进行解析,攻击者通过创建了ftpcom脚本,使用ftp连接www.nether.net,并以johna2k为用户haxedj00为密码下载 nc.exepdump.exesamdump.dll

问题三:当攻击者获得系统的访问权后做了什么?

在获取了系统控制权后,攻击进行了一系列操作

问题四:我们如何防止这样的攻击?
  • 及时进行漏洞扫描并修复,勤打补丁
  • 不用的服务及时禁用
  • 使用NTFS
问题五:你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么?

攻击者的输入可以看出他发现了目标是蜜罐主机

3.实践总结

日志文件十分复杂,一开始无从下手,但是通过各种数据流还是能够看出一点端倪,我是从最后面的数据流往前看的,觉得获得目标系统控制之后的操作总是会直接一些。一趟实验下来还是觉得朦朦胧胧的,对数据还是不够敏感。有待提高。

参考文献

posted on 2020-04-14 14:46  符原  阅读(281)  评论(0编辑  收藏  举报