一、教材内容学习总结
1、Windows操作系统的基本结构
如图所示
Windows操作系统分为运行于处理器特权模式(ring 0)的操作系统内核,以及运行在处理器非特权模式(ring 3)的用户空间代码,并采用宏内核(monolithic)模式来进行架构,即大量内核模块与设备驱动程序共享内核态内存空间,使得任意的内核模块或设备驱动程序都有可能破坏其它内核模块数据,该宏内核机制也使得Windows操作系统容易遭受一驱动方式植入内核的rootkit的危害。为了避免这类攻击,win7缺省要求所有请求安装进入内核执行的设备驱动程序都需要经过数字签名,这有效提升了内核的安全性。
Windows操作系统内核基本模块:
①Windows执行体:Windows内核核心文件ntoskrnl.exe的上层接口
②Windows内核体:Windows内核核心文件ntoskrnl.exe中函数实现与硬件体系结构支持代码,实现底层的操作系统功能
③设备驱动程序:包括将用户I/O操作映射为特定硬件设备I/O请求的硬件设备驱动程序程序,以及文件系统与网络设备驱动程序。
④硬件抽象层:hal.dll文件,用于屏蔽Windows内核与平台硬件差异性的底层代码.
⑤Windows窗口与图形界面接口内核实现代码:win.32k.sys文件
Windows操作系统在用户态的代码模块:
①系统支持进程:Windows开机自动启动的系统内建服务进程
②环境子系统服务进程:为操作系统运行环境提供支持的服务进程
③服务进程:通过windows的服务管理机制所启动的一系列系统及网络服务
④用户应用软件:在用户态执行的各类用户应用软件
⑤核心子系统DLL:即kernel32.dll/user32.dll/gdi32.dll/avapi32.dll等动态连接库文件,作为用户态服务进程与应用软件和操作系统内核的交互接口,将用户态程序调用的系统API函数映射到相应的一个或多个Windows内部的系统服务调用。
核心机制:
①Windows进程和线程管理机制
②Windows内存管理机制
③Windows文件管理机制
④Windows注册表管理机制
⑤Windows的网络机制
-网卡硬件设备驱动程序,位于OSI物理层
-NDIS库及miniport驱动程序,位于OSI链路层
-TDI传输层,网络协议驱动,位于OSI网络层与传输层
-网络API DLL 及TDI客户端,对应OSI会话层与表示层
-网络应用程序与服务进程,对应OSI应用层
2、Windows操作系统的安全体系结构和机制
①监控器模型:主体到客体的访问都通过监控器作中间,由引用监控器根据安全访问控制策略来进行授权访问,所有访问记录都由监控器生成审计日志。
②核心:SRM安全引用监控(内核中)、LSASS安全服务(用户态)、winlogon/netlogn、以及Eventlog
③身份认证机制:安全主体:用户、用户组、计算机 身份认证:本地身份认证(winlogon进程、GINA图形化登录窗口与LSASS服务)、网络身份认证(NTLM、Lanman、kerberos)
④授权与访问控制机制:对象:文件,目录,注册表键值,内核对象,同步对象,私有对象,管道,内存,通信接口。 属性组成:Owner SID,Group SID,DACL自主访问控制列表,SACL系统审计访问控制列表。
⑤安全审计机制
⑥其他安全机制:安全中心(防火墙、补丁自动更新、病毒防护),IPsec加载和验证机制,EPS加密文件系统,windows文件保护机制,捆绑的IE浏览器所提供的隐私保护和浏览器安全保护机制。
3、Windows远程安全攻防技术
①包括远程口令猜解攻击、windows网络服务攻击,windows客户端和用户攻击。
②远程口令猜解攻击: 远程口令猜解:SMB协议(tcp445、tcp139),其他包括WMI服务、TS远程桌面终端服务,MY SQL数据库服务、SharePoint。
③远程口令猜解的防范:关闭不必要的易受攻击的网络服务、配置主机防火墙来限制某些端口服务、网络防火墙限制这些服务的访问、禁用过时且有安全缺陷的Lanman和NTLM、指定强口令策略。
④网络服务远程渗透攻击:针对NETBIOS服务的著名漏洞和攻击、针对SMB服务的著名漏洞和攻击、针对MSRPC服务的著名漏洞和攻击、针对windows系统上微软网络的远程渗透攻击、针对windows系统上第三方服务的远程渗透攻击。
⑤网络服务远程渗透防范措施:最基本的是尽量避免与消除这些渗透攻击所依赖的服务软件安全漏洞。
4、Windows本地安全攻防技术
①本地提权攻击:利用操作系统内核、特权用户启动程序中安全缺陷与漏洞,原因是服务器和桌面系统没有即时进行补丁更新。
②敏感信息窃取: windows系统口令密文提取技术(拷贝口令密文文件、rdisk工具备份、pwdumpx从SAM文件或者活动目录中提取口令密文) windows系统口令字破解技术、用户敏感数据窃取:find、findstr、grep、meterpreter
③本地敏感信息窃取防范:选择高强度、高防御的口令,使用更安全的加密明文算法,安全配置策略。
二、kali视频学习总结
(一)KaliSecurity 漏洞利用之检索与利用
1、Exploit Database->searchsploit
searchsploit可以借助关键词搜索漏洞信息以及漏洞对应的exp,命令searchsploit wordpress列出了漏洞和文件地址。
查看列出的文件,例:
2、pattern create
测试漏洞
armitage
结合MSF进行利用
3、jboss-autopwn-linux->win
专门针对Jboss的漏洞利用工具
4、ikat
自动化开启,等待目标访问中招。
5、termineter
评估智能电表的安全性。
(二)KaliSecurity 漏洞利用之Metasploit基础
Metasploit在渗透测试中经常被用到。这套软件包括了很多工具,这些工具组成了一个完整的攻击框架。
1.启动服务
在Kali中使用metasploit,需要先启动Postgre SQL数据库服务和metasploit服务,然后就可以完整的利用msf数据库查询exploit和记录。
2.路径介绍
kali中,msf的路径为/usr/share/metasploit-framework
3.基本命令
msfpayload:用来生成payload或者shellcode
搜索时候可以用msfpayload -l |grep “windows”这样的命令来查询
-o选项可以列出payload所需的参数
msfencode:msf中的编码器,早期为了编码绕过AV现在常用msfpayload与它编码避免exploit的坏字符串。使用它作为攻击载荷能够获得目标系统的一个meterpretershell的链接。
msfconsole:开启metasploit的console
(三)漏洞检测之Meterpreter
Meterpreter是Metasploit框架中的一个拓展模块,作为溢出成功后的攻击载荷使用。攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个Meterpretershell的链接。
Meterpreter作为后渗透模块有很多类型,并且命令由核心命令和扩展库命令组成,极大的丰富了攻击方式。其有很多的功能,如添加一个用户、隐藏一些东西、打开shell、得到用户密码、上传下载远程主机的文件、运行cmd.exe、捕捉屏幕、得到远程控制权、捕获按键信息、清除应用程序、显示远程主机的系统信息、显示远程机器的网络接口和IP地址等。
常用的命令:
background 将当前会话放置后台
load/use 加载模块
interact 切换进一个信道
migrate 迁移进程
run 执行一个已有的模块
Resource 执行一个已有的rc脚本常用的meterpreter类型:
payload windows/meterpreter/reverse_tcp
1.生成meterpreter后门:
生成成功,将其移入XP系统中:
2.打开MSF,开启监听
3.在目标主机上执行door.exe
在kali的msf中执行exploit开始监听:
4.通过help命令查看可执行命令:
5.常见命令使用
6.捕获屏幕,可以看到捕获结果保存在root下
(四)KaliSecurity 漏洞利用之Metasploit后渗透测试
在跳板获取一定权限后需要积极地向内网主机权限发展,获取指定的目标信息,探查系统漏洞,借助msf已经得到的Meterpreter后门,可以使系列的操作更容易。
1.查看当前网卡、网段信息(使用ifconfig)。可查看到三个网卡,一个是本地网卡,另一个是我们能访问的网卡,还有一个网卡具有内网IP。
2.添加路由表run autoroute -s 10.0.0.1
可以使用msf中的模块跨网段攻击或扫描。可通过脚本autoroute快速添加。
3.开socket代理,通过使用auxiliary/server/socks4a模块,创建一个socks代理,可以为浏览器,sqlmap,nmap使用。通过代理即可访问内网计算机。
4.通过background和session -i可以自由切换进入session。
5.输入run可以看到在meterpreter上可以做的很多命令。
6.通过run post/可以看到后渗透测试模块
7.获取内网信息run arp_scanner -r 10.0.0.1/24
8.也可以上传文件,做端口转发后进行后续测试,例如upload lcx.exe c:\\
传送文件到c盘根目录。
(五)KaliSecurity 漏洞利用之BeEF
对XSS漏洞的利用需要一个强大的框架支持,BeeF是浏览器攻击框架的简称,是一款专注于浏览器端的渗透工具。
1.命令行下启动BeeF
直接使用命令 beef-xss即可,打开浏览器,会自动跳转至beef登录页面:
2.HOOK持续的时间为关闭测试页面为止,在此期间相当于被控制了,可以发送攻击命令,在Commands模块我们可以完成很多任务。
其中。4中颜色分别表示:
该攻击模块可用,且隐蔽性强
该攻击模块可用,但隐蔽性差
该用户模块是否可用还有待验证
该攻击模块不可用
3.选取MISC下的Raw JavaScript模块为测试用例
有段表格有该模块的详细说明,以及一些可选的参数等。随意输入good morning,点击Excute进行攻击:
执行后在目标网页可以看到如下效果图:
4.Proxy功能
选中目标主机,点右键,在菜单中选中use as proxy,然后在rider选项卡中的forge request 编辑并发送想要发送的内容:
信息发送后,可通过History选项看到,待传输成功后,点击相应的信息,即可显示详细的传输过程:
5.BeeF与Metasploit结合加载
BeeF默认是不加载Metasploit的,如果要使用Metasploit丰富的攻击模块,需要做些配置:
修改文件config.yaml
打开一个msfconsole
可以看到Metasploit下面多了很多可以使用的模块。
修改 /usr/share/beef-xss/config.yaml中的Metasploit一行为true:
保证此处IP等信息设置正确(不适用127.0.0.1,需使用本机IP),并修改Custom路径,配置好后,打开msfconsole,运行命令:
load msgrpc ServerHost=192.168.1.124 Pass=abc123