教材学习
windows系统架构
Windows操作系统内核的基本模块
- Windows执行体
- Windows内核体
- 设备驱动程序
- 硬件抽象层
- Windows窗口与图形界面接口内核实现代码
- 系统支持进程
- 环境子系统服务进程
- 服务进程
- 用户应用软件
- 核心子系统DLL
Windows的虚拟内存空间
- 系统核心内存区间
- 用户内存区间
Windows网络组件模块
- 各种网卡硬件的设备驱动程序
- NDIS库及miniport驱动程序
- TDI传输层,也称为网络协议驱动
- 网络API DLL及TDI客户端
- 网络应用程序与服务进程
在32位的Windows系统中,2GB~4GB区间为系统核心内存,0GB~2GB区间为用户态内存
Windows的文件管理系统早期是FAT,由于安全性弱,被NTFS所取代
注册表中的系统自启动挂接点(ASEP)上注册的应用软件可以随系统引导而自动运行,因此也是很多恶意代码及流氓软件普遍的攻击目标
windows系统安全架构和机制
Windows安全体系结构
- Windows操作系统的安全设计目标是采用一致的、健壮的、基于对象的安全模型
- Windows操作系统基于引用监控器模型(RM)来实现基本的对象安全模型
- 引用监控器模型(RM)最为核心的是位于内核中的SRM安全引用监控器,以及位于用户态的LSASS安全服务
Windows授权与访问控制机制
- Windows的授权与访问控制机制是基于引用监控器模型,由内核中的SRM模块与用户态的LSASS服务共同来实施
- 对象安全描述符的主要属性:Owner SID、Group SID、DACL自动访问控制列表、SACL系统审计访问控制列表
Windows安全审计机制
- LSASS服务保存审计策略
- SRM对指定的对象访问和操作事件进行审计记录,发送给LSASS服务
- EventLog服务将事件日志写入日志文件中,也可以作为第三方审计日志分析工具的分析输入数据源
Windows的其他安全机制
- Windows基本安全功能特性:身份认证、授权与访问控制、安全审计
- Windows安全中心集成了对于保护Windows系统安全稳定运行最为关键的三项安全措施:防火墙、补丁自动更新、病毒防护
- 配置Windows系统的安全策略,需要用户在安全需求及易用性中找到平衡
安全性分层
- 网络层的安全性
- 系统层的安全性
- 用户层的安全性
- 应用层的安全性
- 数据层的安全性
各层特性
- 网络层的安全性体现在网络通讯、防火墙、侦测非法侵入等方面
- 系统层的安全性体现在防病毒、风险控制、安全性审计等方面
- 用户层的安全性体现在用户和用户组的管理、单次登录、身份验证等方面
- 应用层的安全性体现在权限控制和授权等方面
- 数据层的安全性体现在加密技术上
获得高安全性,只有技术的因素是远远不够的,往往管理的因素会占很大的比重
windows系统安全攻防技术
Windows攻击手段
- 远程口令猜测与破解攻击
- 攻击Windows网络服务
- 攻击Windows客户端及用户
Windows远程攻击技术分类
- 远程口令猜测与破解攻击
- 攻击Windows网络服务
- 攻击Windows客户端及用户
Windows远程口令猜测与破解攻击
- SMB协议通常运行于TCP445与TCP139端口
- 远程口令字攻击的方法:远程口令字猜测、窃听网络上的口令字交换通信实施破解
- 远程口令猜测与破解最根本的防御措施是通过安全培训与教育来让网络中每个用户都能够设置较高安全强度的口令
Windows网络服务远程渗透攻击
- Windows操作系统默认开放135(TCP)、137(UDP)、138(UDP)、139(TCP)与445(TCP)端口,对应的网络服务为MSRPC远程调用服务、NetBIOS网络基本输入/输出系统服务和SMB文件与打印共享服务。
Windows系统的安全漏洞生命周期
- 系统安全的本质核心在于安全漏洞、渗透攻击及安全监测防御机制之间的攻防博弈与竞赛
- 典型的渗透攻击过程包括:漏洞扫描、查找针对发现漏洞的渗透代码、实施渗透测试
Metasploit的使用
- metasploit的基础核心是以Ruby语言编写的metasploit framework(MSF)库
- Metasploit提供多种用户接口,包括Console交互终端、命令行程序运行、Web交互界面以及GUI图形化界面
使用Metasploit软件实施渗透测试
- Metasploit软件采用开发框架和模块组建的可扩展模型,以Ruby语言编写的Metasploit Framework(MSF)库作为整个软件的基础核心,为渗透测试组建的开发与测试提供平台;模块组建是真正实施渗透攻击的代码,包括利用安全漏洞的Exploits模块,进行扫描、查点等其他辅助任务的Auxiliary模块,在目标系统上植入和运行的Shellcode攻击负载Payloads模块,对攻击负载进行编码以躲避检测的Encoders模块,以及对攻击负载进行填充的Nops模块;Metasploit提供多种用户接口,包括Console交互终端、命令行程序运行、Web交互界面以及GUI图形化界面;Metasploit还提供了API接口及插件支持,来支持第三方在MSF基础上开发扩展模块,比如自动化的渗透测试例程等等。
kali视频学习
漏洞利用之检索与利用
searchsploit
通过searchsploit可以方便的借助关键词搜索到信息以及漏洞利用的exp
Metasploit基础
开启PostgreSQL数据库服务和metasploit服务并运行
路径介绍
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就在这里。
测试实例
Meterpreter介绍
- Meterpreter是Metasploit框架中的一个扩展模块,作为溢出成功后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个meterpretershell的链接。
- meterpreter作为后渗透模块有多中类型,并且命令由核心命令和扩展库命令组成,极大地丰富了攻击方式,其有很多有用的功能,如,添加一个用户,隐藏一些东西,打开shell,得到用户密码,上传下载远程主机的文件,运行cmd.exe,捕获屏幕,得到远程控制权,捕获按键信息,清除应用程序,显示远程主机的系统信息,显示远程及其的网络接口和IP地址等信息。
Metasploit后渗透测试
1.查看当前网卡、网段信息
2.添加路由表 run autoroute -s
3.开socks代理
4.通过background和sessions -i可以自由切换进入session
5.输入run可以看到在meterpreter上做很多命令
6.通过run post/可以看到后渗透测试的模块
7.获取内网信息 run arp_scanner -r
BeeF
- 命令行输入beef-xss
- 用户名密码beef
测试
其中,四种颜色分别表示:
该攻击模块可用,但隐蔽性强
该攻击模块可用,但隐蔽性差
该用户模块是否可用还有待验证
该攻击模块不可用代理Proxy功能