20169217 2016-2017-2 《网络攻防实践》第七周学习总结

  教材学习总结

   Windows系统结构

     首先可注意到中间有一条线把Windows操作系统的用户模式和内核模式两部分划分开来。线上面的方框代表了用户模式的进程,线之下的组件是内核模式的操作系统服务。用户模式的线程在一个受保护的进程地址空间中执行。因此,系统支持进程、服务进程、用户应用程序和环境子系统都有它们各自的私有进程地址空间。

    

   

    在图中,在“服务进程”和“用户应用程序”方框下面的“子系统DLL ”方框。 在Windows下,用户应用程序并不直接调用原始的Windows操作系统服务,相反,它们通过一个或者多个子系统动态链接库(DLLs)来发起调用。子系统DLL 的角色是,将一个已文档化的函数转化为一些恰当的内部(通常是未文档化的)Windows系统服务调用。这个转化过程可能会——也可能不会——向正在为用户应用程序提供服务的环境子系统进程发送一个消息。

    Windows的内核模式组件包含以下部分:

    Windows执行体包含了基本的操作系统服务,比如内存管理、进程和线程管理、安全性、I/O、网络和跨进程通信。

    Windows内核是由一组低层次的操作系统功能构成的,比如线程调度、中断和异常分发,以及多处理器同步。它也提供了一组例程和基本对象。执行体的其余部分利用这些例程和对象实现更高层次的功能。

     设备驱动程序既包括硬件设备驱动程序,也包括文件系统和网络驱动程序。其中硬件设备驱动程序将用户的I/O 函数调用转换成特定的硬件设备I/O 请求。   硬件抽象层是指一层特殊的代码,它把内核、设备驱动程序和Windows执行体的其余部分,跟与平台相关的硬件差异隔离开来。

     窗口和图形系统实现了图形用户界面(GUI)函数,比如对窗口的处理、用户界面控件,以及绘制等。

    Windows安全架构

    安全性的基本框架在信息技术中,安全性分为五个层次:网络层的安全性、系统层的安全性、用户层的安全性、应用层的安全性和数据层的安全性。

    网络层的安全性体现在网络通讯、防火墙、侦测非法侵入等方面;系统层的安全性体现在防病毒、风险控制、安全性审计等方面;用户层的安全性体现在用户和用户组的管理、单次登录、身份验证等方面;应用层的安全性体现在权限控制和授权等方面;数据层的安全性体现在加密技术上。获得高安全性,只有技术的因素是远远不够的,往往管理的因素会占很大的比重。

   Windows安全机制

   Windows授权与访问控制机制

   Windows的授权与访问控制机制是基于引用监控器模型,由内核中的SRM模块与用户态的LSASS服务共同来实施。在Windows服务器操作系统中,用户可以执行内建的whoami命令来查看当前用户的访问令牌信息。Windows对于系统中所有需保护的资源都抽象成对象,具体类型包括文件、目录、注册表键值、内核对象、同步对象、私有对象、管道、内存、通信接口等,而对每个对象会关联一个SD安全描述符,对象安全描述符由如下主要属性组成:Owner SID、Group SID、DACL自主访问控制列表、SACL系统审计访问控制列表。 Windows安全审计机制系统审计策略在本地安全策略中由系统管理员定义,来确定系统对那些事件进行记录。

    Windows的其他安全机制

    身份认证、授权与访问控制以及安全审计是三个基本安全功能。保护Windows系统安全稳定运行最为关键的三项安全措施——防火墙、补丁自动更新以及病毒防护。除安全中心之外,Windows的安全特性还包括IPSec加密与验证机制、EFS加密文件系统、Windows文件保护机制、捆绑的IE浏览器所提供的隐私保护与浏览安全保护机制等。

    Windows攻击手段

    目前Windows远程攻击技术可以分为以下几大类

    远程口令猜测与破解攻击、攻击Windows网络服务、攻击Windows客户端及用户。

    使用Metasploit软件实施渗透测试

    Metasploit软件采用开发框架和模块组建的可扩展模型,以Ruby语言编写的Metasploit Framework(MSF)库作为整个软件的基础核心,为渗透测试组建的开发与测试提供平台;模块组建是真正实施渗透攻击的代码,包括利用安全漏洞的Exploits模块,进行扫描、查点等其他辅助任务的Auxiliary模块,在目标系统上植入和运行的Shellcode攻击负载Payloads模块,对攻击负载进行编码以躲避检测的Encoders模块,以及对攻击负载进行填充的Nops模块;Metasploit提供多种用户接口,包括Console交互终端、命令行程序运行、Web交互界面以及GUI图形化界面;Metasploit还提供了API接口及插件支持,来支持第三方在MSF基础上开发扩展模块,比如自动化的渗透测试例程等等。

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

    第二种实施远程口令字攻击的经典技术是窃听网络上的口令字交换通信实施破解。应对远程口令猜测与破解这种古老但仍然流行的攻击方式,最根本的防御措施仍然是通过安全培训与教育来让网络中每个用户都能够设置较高安全强度的口令。此外,从技术方面,网络系统管理员还可以实施如下措施,从而降低由于网络中用户设置过于简单的口令所带来的安全风险:

   ①尽量关闭不必要开放的易受远程口令猜测攻击网络服务,包括TCP 139/445端口的SMB服务、TCP135端口的WMI服务、TCP3389端口的TS终端服务以及TCP1433端口的MS SQL Server服务等。

   ②配置主机防火墙来限制对上述端口的服务。③利用网络防火墙来限制到这些服务的访问。

   ④应对远程口令字交换通信窃听与破解攻击最基本的途径是禁用过时而且存在本质上安全缺陷的LanMan与NTLM。

   ⑤对于安全级别较高的Windows系统服务器等主机,管理员可以制定和实施强口令字策略,此外可以设置账户锁定阈值,最后还可以在系统上激活帐户登录失败事件审计功能。   

   Windows网络服务远程渗透攻击

   Windows操作系统默认开放135(TCP)、137(UDP)、138(UDP)、139(TCP)与445(TCP)端口,对应的网络服务为MSRPC远程调用服务、NetBIOS网络基本输入/输出系统服务和SMB文件与打印共享服务。

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

   NetBIOS网络基本输入输出系统提供了Windows局域网联网的基本支持,包括在UDP137端口上监听的NetBIOS名字服务、UDP138端口上的NetBIOS数据报服务以及TCP139端口上的NetBIOS会话服务。

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

    服务消息块SMB是Windows操作系统中最为复杂,也最容易遭受远程渗透攻击的网络服务。SMB空会话是Windows网络中影响范围最广和时间最长的安全弱点之一。

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

    MSRPC网络服务是微软Windows操作系统对DCE-RPC标准远程过程调用机制的实现。远程过程调用机制是现代操作系统最基本的支撑机制之一,允许一个应用程序能够无缝地通过网络调用远程主机上网络进程中的过程,在MSRPC实现中,可以采用如下的网络传输协议:

    ①ncacn_ip_tcp:TCP/IP传输协议,使用TCP135端口

    ②ncadg_ip_udp:UDP/IP传输协议,使用UDP135端口

    ③ncacn_np:SMB命名管道传输协议,使用SMB的TCP139或445端口

    ④ncalrpc:本地网络RPC传输

    ⑤ncacn_http:HTTP传输协议,基于IIS服务,缺省配置在TCP593端口。支持远程过程调用的服务进

    程启动时,需要注册自己的服务访问点,接口标识符以及服务版本号,一个特殊的RPC服务——Portmapper将维护RPC服务数据库,为网络应用程序调用指定的RPC服务提供访问点、接口与版本的查询功能支持。

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

    IIS Internet服务集成了HTTP、FTP、SMTP、POP、NNTP等网络服务,并支持CGI、ASP、ISAPI等动态编程语言与接口,是微软服务器软件提供网站、电子邮件收发和文件共享服务的主要解决方案。MS SQL Server监听TCP1433与UDP1434端口,支持使用Windows用户账号进行身份认证模式。MS SQL Server自建用户身份认证模式,SQL Server数据库服务的登陆账号加密存储与master数据库的syslogins表中,并对用户进行角色管理和授权访问控制,同时提供访问日志功能,整体安全水平能够达到C2级别。 

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

    在本地获取口令字密文的主要包括如下三种途径:

    ①从另一种操作系统启动后拷贝文件系统中的口令密文文件

    ②利用硬盘修复工具包中的rdisk工具,执行“rdisk/s-”命令创建SAM备份文件副本

    ③使用pwdumpX系列工具直接从SAM文件或活动目录中提取口令字密文。

    Windows对于攻击的防范措施

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

    针对Windows系统上的各种网络服务远程渗透攻击,最基本的防范措施就是尽量避免与消除这些渗透攻击所依赖的服务软件安全漏洞,具体包括如下:

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

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

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

    ④利用服务软件厂商及社区中提供的安全核对清单来对服务进行安全配置

    ⑤通过漏洞扫描软件来标识网络中存在的以及安全漏洞并及时修补。

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

    针对LSA Secrets和其他位置口令字的窃取与破解,目前这种攻击普遍需要攻击者已经具有Administrator的权限,在这种情况下,系统很难防止攻击者获取到这些信息,因此只能通过使用更安全的加密算法保护明文口令字,以及通过安全配置策略避免缓存关键服务器的铭感登陆口令信息,来尽量降低这种攻击造成的安全风险。

    Windows消踪灭迹

    ①关闭审计功能(Windows Resource Kit工具包里的auditpol程序可以让他们轻易地关闭审计功能)

    ②清理事件日志(使用Event Viewer事件查看器来打开、读取和清除这台主机上的事件日志)

    Windows远程控制与后门程序

    攻击者往往会在受控的系统中自主植入第三方的远程控制与后门程序,主要分为命令行远程控制工具、图形化远程控制工具这两大类。Netcat工具是攻击者们最常用的命令行远程控制工具么可以通过“nc-L-d-e cmd.exe-p 80”命令启动后门服务,监听所配置的TCP 80端口,并绑定cmd.exe这个Shell程序,当攻击者使用Netcat作为客户端连接目标主机的80端口时,就可以通过网络直接访问到目标主机上的cmd.exe来执行任意的操作。Meterpreter的设计目标包括如下:①隐蔽性②设计功能强大③灵活可扩展。

    针对后门程序的防范措施

    针对远程控制后门程序,在一台计算机已经怀疑遭受攻击的Windows系统上,防御者可以采用一些后门检测软件来尝试发现攻击者隐藏的后门程序,常用的检测软件包括反病毒厂商所提供的杀毒软件,以及一些专业的后门及Rootkit检测软件。

kali视频学习总结与实践

    Metasploit的使用

    Kali漏洞利用之Metasploit基础

    Metasploitable在渗透测试中经常被用到,实际上这套软件包括了很多工具,这些工具组成了一个完整的攻击框架。 一、启动服务 在Kali中使用metaaploie,需要先开启PostgreSQL数据库服务和metasploit服务,然后就可以完整的利用msf数据查询exploit和记录。

service postgresql start service metasploit start
如果不想每次开机都手工启动服务,可以配置随系统启动。

update-rc.d postgresql enable
update-rc.d metasploit enable

路径介绍
Kali中msf的路径为/usr/share/metasploit-framework
Auxiliary:辅助模块,
encoders:供msfencode编码工具使用,具体可以使用 msfencode –l

exploits:攻击模块 每个介绍msf的文章都会提到那个ms08_067_netapi,它就在这个目录下。
payloads:其中列出的是攻击载荷,也就是攻击成功后执行的代码。比如我们常设置的windows/meterpreter/reverse_tcp就在这个文件夹下。
post:后渗透阶段块,在获得meterpreter的shell之后可以使用攻击代码。比如常用的hashdump、arp_scanner就在这里。
    基本命令
msfpayload:用来生成payload或者shellcode
搜索的时候可以用msfpayload -l |grep "windows"这样的命令查询。-o 选项可以列出payload所需的参数。
msfencode:
msf中的编码器,早期为了编码绕过AV,现常用msfpayload与它编码避免exploit中的坏字符串。
msfconsole:开启metasploit的concle
   测试示例:发现漏洞,搜索exploit

   前期扫描得知,目标21端口vsftpd服务版本为2.3.4,使用msfconsole打开msf的命令行版。
找到匹配项

选择相应功能

攻击成功

Kali漏洞利用之Meterpreter介绍

     Meterpreter是Metasploit框架中的一个扩展模块,作为溢出成功后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个meterpretershell的链接。 Meterpreter作为后渗透模块有多种类型,并且命令由核心命令和扩展库组成,极大地丰富了攻击方式。其有很多有用的功能。 常用命令: background:将当前会话放置后台 load/use:加载模块 Interact:切换一个信道migrate:迁移进程 run:执行一个已有模块,输入run后按两下teb,会列出所有的已有脚本。 Resource:执行一个已有的rc脚本常用的Meterpreter类型为:payload/windows/meterpreter/reverse_tcp 针对windows操作系统,反向连接shell,只用起来比较稳定。

Metasploit后渗透测试

   设置跳板机,在跳板机获取一定权限后,需要积极地向内网主机权限发展,获取指定的目标信息,探查系统的漏洞,借助Msf已经得到的Meterpreter后门,可以使后续操作更容易。

1、查看当前网卡、网段信息 先控制一台跳板机,查看相关网卡网段信息

2、添加路由表 run autoroute -s 10.0.0.1

3、开Socks代理 通过使用 auxiliary/sever/socks4a模块,创建一个Socks代理,可以作为浏览器,Sqlmp,Namp等使用。

4、通过Background和sessions -i可以自由切换进入Session

5、输入run可以看到Meterpreter上可以做的很多命令

6、获取内网信息run arp_scanner -r 10.0.0.1/24

7、也可上传文件,做端口转发后续测试

8、应用程序/权限维持/Tunnel工具集

9、端口转发 upload lcx.exe c:\

    Kali漏洞利用之BeeF

     对XSS漏洞需要强大框架的支持,如网上的XSS平台。在Kali下,BeeF是一个不逊色于XSS平台的工具。Beef是浏览器攻击框架的简称,是一款专注于浏览器端的渗透测试工具。官网

http://beefproject.com/。

学习感悟

    Windows的体系结构和安全性的内容只是十分庞大,在学习和查询资料的过程中感觉这写只是可以单独成为一门课程。这里总结的知识仅仅是冰山一角,在今后还要加强对Windows操作系统的学习。

错题分析

    Keimpx是一款Python编写的哈希传递工具,可以通过已有的哈希信息GET一个后门SHELL

    onesixtyone是一个snmap扫描工具,用于找出设备上的SNMP Community字串。

    攻击者可以通过使用原始套接字绕过TCP/IP协议栈的报文封装处理和验证,伪造报文。

    ARP欺骗并没有破坏信息的完整性。

    主动攻击模式有中断、篡改、伪造。

学习进度条

第六周进度

    上周目标完成状况良好

本周进度

    教材:第七章 视频:25-30

 

posted @ 2017-04-15 18:22  刘弘毅  阅读(366)  评论(4编辑  收藏  举报