[精选]网络信息对抗第五章Windows安全攻防32924.pptx
网络信息对抗主讲人:张 瑜Email:QQ:344248003网络信息对抗第五章:Windows 安全攻防提纲oWindows 操作系统简介oWindows NT 5.x 的系统结构oWindows NT 5.x 的网络结构oWindows NT 5.x 的安全结构BMW Break My Windows桌面操作系统市场份额o http:/数据桌面操作系统市场份额桌面操作系统市场份额Windows 发展历程o 桌面(客户端)操作系统n 1990:Windows 3.xn 1995-1999:Windows 95,98,ME(4.x)n 2000:Windows 2000 Pro(5.0.x)n 2001:Windows XP(5.1.x)n 2007:Windows Vista(6.0.x)n 2009:Windows 7(6.1.x)n 2012:Windows 8(6.4)n 2015:Windows 10(10)o 服务器操作系统n 1993:Windows NT(3.x,4.x)n 2000:Windows 2000 Server(5.0.x)n 2003:Windows Server 2003(5.2.x)n 2008:Windows Server 2008(6.x)n 2012:Windows Server 2012Windows 8o 2011 年9 月14 日,Windows 8 开发者预览版发布。o 兼容移动终端,微软将苹果的IOS、谷歌的Android 视为Windows 8 在移动领域的主要竞争对手。o 2012 年10 月,微软发布Windows 8 正式版,可在平板电脑上使用。Windows 8 界面Windows 10o Windows 10 手机预览版在2 月正式发布;o Windows 10 零售版正式发布时间:2015 年夏季,将涵盖PC、平板电脑、手机、XBOX 和服务器端,芯片类型将涵盖x86 和ARM。Windows 10 界面Windows 10 界面提纲oWindows 操作系统简介oWindows NT 5.x 的系统结构oWindows NT 5.x 的网络结构oWindows NT 5.x 的安全结构推荐书籍o 深入解析Windows 操作系统(第四版)n Windows Server 2003/Windows XP/Windows 2000 技术内幕o 作者n Mark E.Russinovicho sysinternalsn David A.Solomono 译者n 潘爱民研究员MSRAo 英文版电子书Windows Kernel 和软件资源Windows 操作系统基本结构oWindows 操作系统基本模型n 内核模式:内核代码运行在处理器特权模式(ring 0)n 用户模式:应用程序代码运行在处理器非特权模式(ring 3)Windows 操作系统基本结构Windows 系统核心结构和组件o 系统进程n Idle/System/smss/winlogon/lsass/serviceso Windows 环境子系统n 内核:win32k.sysn 用户:csrss.exen 子系统DLL:Kernel32/Advapi32/User32/Gdi32o Ntdll.dlln 用户模式/内核模式GWo Windows 执行体n Ntoskrnl.exe 上层o 内核n Ntoskrnl.exe 中函数和硬件体系结构支持o 硬件抽象层hal.dllo 设备驱动程序Windows 系统核心结构和组件Windows 系统的启动机制o Boot Loader Phasen NTLDRn 休眠模式恢复:系统盘hiberfil.sysn boot.inin multi(0)disk(0)rdisk(0)partition(2)WINDOWS=Microsoft Windows XP Professional/fastdetect o Kernel Loading Phasen 装载Kernel:ntoskrnl.exe/hal.dll/kdcom.dll/bootvid.dlln 装载系统盘Windows 系统的启动机制o Session Managern 内核进程启动Session Manager Subsystem(smss.exe)n 创建环境变量n 启动Win32 子系统(win32k.sys)n 启动Win32 子系统用户模式组件(csrss.exe)n 创建虚拟内存映射n 启动Winlogon 登录界面(winlogon.exe)Windows 系统的启动机制o Winlogonn 调用GINA 登录界面处理,获得用户credentialsn Winlogon 将credentials 传递给LSA(Local Security Authority)n LSA 确定登录帐号对应的帐号数据库(Local SAM,Domain SAM,Active Directory),并credentials 是否可登录o Logon phasen 启动Service Control Manager(SCM,service.exe),启动设置为“自动启动”的服务n 启动LSASS(Local Security Authority Subsystem Service,lsass.exe),执行本地安全策略和组策略n 启动设置为“开机自动启动”的应用程序“开机自启”应用程序位置o HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnce o HKLMSOFTWAREMicrosoftWindowsCurrentVersionpoliciesExplorerRun o HKLMSOFTWAREMicrosoftWindowsCurrentVersionRun o HKCUSoftwareMicrosoftWindows NTCurrentVersionWindowsRun o HKCUSoftwareMicrosoftWindowsCurrentVersionRun o HKCUSoftwareMicrosoftWindowsCurrentVersionRunOnce“开机自启”应用程序位置o All Users ProfilePathStart MenuProgramsStartup(please note that this path is localized on non-English versions of Windows)o Current User ProfilePathStart MenuProgramsStartup(please note that this path is localized on non-English versions of Windows)o“开机自启”是恶意程序期望的目标!o 太多了?!找工具帮你的忙n Autorunsn 360 安全卫士Autoruns360 安全卫生Windows 文件系统o FAT(File Allocation Table 文件分配表)n 1980:FAT12 1987:FAT16 1995:FAT32n 文件目录表:Table;文件分配表:Linked Listn 安全性弱,正在被NTFS 取代o NTFS(NT File System)n 1990s:M$/IBM joint project,从OS/2 文件系统HPFS 继承n NTFS v3.x for Windows NT 5.x,较FAT 更具安全性(ACL),更好的性能、可靠性和磁盘利用效率n 基于访问控制列表机制保证文件读写安全性n 支持任意UTF-16 命名,使用B+树进行索引,n Metadata 保存文件相关各种数据,保存在Meta File Table(MFT)PE 文件格式Windows 的进程和线程管理o Windows 下的进程和线程n 可执行程序:静态指令序列n 进程:一个容器,包含至少一个执行线程n 线程:进程内部的指令执行实体o Windows 进程构成元素n 私有虚拟内存地址空间n 映射至进程内存空间的可执行程序n 资源句柄列表n 访问令牌(Security Access Token)n 进程ID,父进程IDn 至少一个执行线程o Windows 线程包含基本部件(context)n 处理器状态CPU 寄存器内容n 两个栈(内核模式、用户模式)n 线程局部存储区(TLS),共享进程虚拟地址空间和资源列表n 线程ID执行体进程块(EPROCESS/KPROCESS/PEB)执行体线程块(ETHREAD/KTHREAD/TEB)Windows 的内存管理o 系统核心内存区间n 0 xFFFFFFFF0 x80000000(4G2G)n 映射内核、HAL、Win32k.sys 子系统等n 内核态可操纵(DKOM)o 用户内存区间n 0 x000000000 x80000000(2G0G)n 堆:动态分配变量(malloc),向高地址增长n 静态内存区间:全局变量、静态变量n 代码区间:从0 x00400000 开始n 栈:向低地址增长o 单线程进程:(栈底地址:0 x0012FFXXXX)n 每个线程对应一个用户态的栈和堆o Windows Memory layoutWindows 的内存管理程序装载和运行Windows 系统API 调用过程API Hooking 机制o API Hooing:对API 调用过程进行Hook(挂钩),改变API调用流程以达到某种目的的技术方法。o API Hooking 目的n 隐藏自身存在:恶意代码,Rootkitn 安全监控和加强:防病毒软件,n 安全监控和分析:Sandbox,o API Hooking 技术手段n 用户层API Hooking:Proxy DLL,IAT Patching,Code overwriting,Debuggern 内核层API Hooking:SSDT hook,IDT Hook,Sysenter hook,IRP hookn 混合模式API Hooking:结合两者,有些内核API 没有很好的文档支持Windows 系统的注册表o Windows 系统注册表n Windows 配置和控制方面关键角色n 系统全局配置的存储仓库n 每个用户配置信息的存储仓库o 注册表查找编辑工具n Regedit.exeo 注册表的读写n 读取:系统引导过程,系统登录过程,应用程序启动过程n 修改:缺省安装,应用程序安装,设备驱动安装,修改应用程序配置o 注册表在文件系统上的存储(Hive)n HKLMSYSTEMCurrentControlSetControlhivelisto 注册表监视工具n RegMono 注册表自动启动可扩展点(ASEP 点)-autorunn 经常被恶意代码/攻击者利用提纲oWindows 操作系统简介oWindows NT 5.x 的系统结构oWindows NT 5.x 的网络结构oWindows NT 5.x 的安全结构Windows NT5.x 中的网络结构Windows NT5.x 中的网络结构Windows Networking APIo NetBIOS 网络基本输入/输出系统n Windows 独有的局域网组网协议o RPC 远过程调用n PRC/DCOMo WinSock APIo 命名管道(Named Pipes)和邮件槽(Mail Slots)n 命名管道:提供可靠双向通信,协议无关的标识Windows 网络资源的方法n 邮件槽:提供不可靠的单向数据传输,支持广播o Web 访问APIn WinInet/WinHTTP/HTTP APINetBIOSo NetBIOS(网络基本输入/输出系统):最初由IBM 开发,MS利用NetBIOS 作为构建局域网的上层协议o NetBIOS 使得程序和网络之间有了标准的接口,方便应用程序的开发。并且可以移植到其他的网络中o NetBIOS 位于OSI 模型会话层,TCP/IP 之上o NetBIOS 有两种通讯模式n 会话模式。一对一进行通讯,LAN 中的机器之间建立会话,可以传输较多的信息,并且可以检查传输错误n 数据报模式。可以进行广播或者一对多的通讯,传输数据大小受限制,没有错误检查机制,也不必建立通讯会话o NetBIOS over TCP/IP,支持三种服务n 名字服务UDP 137n 会话服务TCP 139/445n 数据报服务UDP 138MSRPC 远程进程调用/DCOMo RPC(Remote Procedure Call)n 网络编程标准n 目的:提供“能在某种程度上像应用程序开发人员隐藏有关网络编程细节”的编程模型o RPC 调用n 允许程序员编写的客户应用程序跨网络调用远程计算机上服务器应用程序中的过程o COM/DCOMn COM 对象:使应用程序由不同组件构成,导出面向对象接口,提高软件模块化、可扩展性和可交互性。n DCOM:提供COM 组件的位置透明性,依赖于RPCn Know More:潘爱民著COM 组件技术,组件技术讲义WinSock APIo WinSock:Windows 套接字n Winsock 1.0:Microsoft 的BSD 套接字实现n Winsock 2.2:支持面向连接/无连接通信,异步I/O,更好性能和伸缩性o 面向连接的Winsock 操作o WinSock 编程n Microsoft Windows 网络编程常用的Windows 应用层网络服务o Network Applicationso IIS(Internet Information Services)n HTTP/FTP/o Emailn Exchange Servero Databasen MS SQL Servero RDPn Remote Desktop Protocolo 通常以Windows 服务方式后台运行Windows 服务o Windows 服务系统启动时刻启动进程的机制,提供不依赖于任何交互式的服务。o Windows 服务n 服务应用程序o 注册服务Advapi32.dll,CreateService/StartServiceso 注册表:HKLMSYSTEMCurrentControlSetServiceso 共享服务进程:服务宿主svchost.exen 服务控制管理器(SCM,service control manager,services.exe)o Winlogon 进程在加载GINA 之前执行SCM 启动函数o SCM 中的ScCreateServiceDB 根据注册表分别启动服务o SCM 中的ScAutoStartServices 启动“自动启动”的服务n 服务控制程序(SCP,service control program)o 控制面板,服务插件Windows 服务控制面板为何需了解Windows 内部机制?o Windows 应用编程开发n 熟悉掌握Windows 操作系统向上层应用提供的APIn 基本了解所涉及的Windows 组件的内部实现原理o Windows 内核编程开发n 深入了解涉及的Windows 组件内部实现机制n 掌握在内核中直接操纵Windows 对象的技术方法o 针对Windows 平台的攻击o 针对Windows 恶意代码、攻击的监控与防护Rootkit 检测技术总体流程图检测技术分析活动线程检测o 隐藏机制:钩子,DKOMo 内核线程调度机制:SwapContext()函数o 活动线程检测:线程结构检测技术分析进程、驱动检测o 隐藏机制:钩子,DKOMn 内核对象概念n 内核对象结构o 进程、驱动检测:n 基于内核对象特征的虚拟内存搜索方法检测技术分析网络端口检测o 隐藏机制:钩子o 驱动会话机制o 基于驱动会话的隐藏端口检测方法检测技术分析文件系统隐藏检测o 隐藏机制:钩子或文件系统过滤o NTFS 与MFT 表o FAT32 与FAT 表o 文件系统隐藏检测:o 基于磁盘扇区直接读写的隐藏文件搜索方法检测技术分析注册表、系统服务、启动项o 隐藏机制:钩子(Hook)o Hive 结构:struct hive;o Dump 注册表文件o 基于Hive 结构的二进制文件分析方法获得底层视图提纲oWindows 操作系统简介oWindows NT 5.x 的系统结构oWindows NT 5.x 的网络结构oWindows NT 5.x 的安全结构Windows 安全性o 设计目标n 一致的、健壮的、基于对象的安全模型n 满足商业用户的安全需求,达到CC 评估标准EAL4o AAA:身份验证、授权、审计n 一台机器上多个用户之间安全地共享资源o 进程,内存,设备,文件,网络o 安全模型n 服务器管理和保护各种对象n 客户通过服务器访问对象o 服务器扮演客户,访问对象o 访问的结果返回给服务器o 攻击者目标n 在拥有最高权限的用户帐户环境中执行命令。Windows NT 5.x 安全体系结构SRM-安全引用监控器o SRM(Security Reference Monitor)n 安全引用监控器n Windows 资源宝库的看门人n 位置:Windows 执行体Ntoskrnl.exe 上层n 内核模式,负责对运行在用户模式代码的各种资源存取请求进行检查Subject 安全主体o Windows NT 5.x 的安全主体n 用户(users)和用户帐户(accounts)n 用户组(groups)n 计算机(computers)o Account Identifier:Security identifier(SID)安全标识符n 时间和空间唯一的安全主体帐户标识n 48 位数值:S-1-N-Y1-Y2-Y3-Y4n Some well-known SIDs:Administrator Y4(RID)=500用户帐户o 用户帐户n 操作系统运行程序代码的执行环境o 帐户权限n 限制该用户帐户内运行程序对系统资源对象的访问o Windows 内建帐户n 本地Administrator 帐户:最高权限n SYSTEM/LocalSystem:技术角度最高权限,自动运行程序所使用的运行环境n Guest 帐户:相对极少的权限n IUSR_machinename:IIS 匿名网络访问帐户,Guest 组n IWAM_machinename:IIS 应用程序运行帐户o 黑客眼里的Windows 帐户n 本地Administrator 和SYSTEM 帐户拥有最高权限,是终极目标用户组o 用户组n 简化用户管理引入的用户帐户容器n 将用户帐户添加入特定用户组,该用户即拥有用户组配置的全部权限o Windows 内建用户组n Administrators:本地最高权限用户组n Account/Backup/Server/Print Operators:略低于Administratorsn Network/Local Service:用于容纳服务帐户,替代原先用于启动服务的SYSTEM 帐户n Users:所有用户帐户o Windows 域中的内建用户组n Domain Admins:域中最高权限n Enterprise Admins:森林中最高权限组帐户口令管理-SAM 和活动目录o 本地帐户和口令信息-保存在SAM 中n SAM:Security Accounts Managern 加密口令字存储:不可逆Hash 后存储n SAM 位置:运行时刻不能直接读取n 文件系统:%systemroot%system32configsamn 注册表:HKEY_LOCAL_MACHINESAMo 域帐户和口令信息-保存在域控制器的活动目录AD 中n AD:Active Directoryn AD 位置:%systemroot%ntdsntds.ditn 加密格式与单机平台一致,但访问方法不同o SYSKEY 机制-128 位随机密钥加密保护机制对象-Objecto 对象-系统中所有需保护的资源n 文件、目录、注册表键n 内核对象n 同步对象n 私有对象(如打印机等)n 管道、内存、通讯,等o 对象的安全描述符SD(Security Descriptor)n Owner SIDn Group SIDsn Discretionary ACL(授权)n Audit:System ACL(审计)DACLAAAo Authenticationn 身份验证o Authorization n 授权(访问控制)o Auditing n 审计Authentication-身份验证o 身份验证n 操作系统通过一些秘密信息认证安全主体真实合法的身份n 秘密信息:口令、指纹o 身份验证方式n 本地身份验证:本地系统登录Ctrl-Alt-Deln 网络身份验证:远程访问令牌o 令牌n 保存一份与登录帐户有关的安全主体SID 列表n 帐户本身SID、所属用户组的SID 等o 进程的访问令牌(Security Access Token)n 继承启动进程的用户帐户所拥有的令牌n 是对一个进程安全环境的完整描述o 包括以下主要信息n 用户帐户的SIDn 所有包含该用户的安全组的SIDsn 特权:该用户和用户组所拥有的权利n Ownern Default Discretionary Access Control List(DACL)Whoami身份验证-winlogon/GINA/LSASSo Winlogon(winlogon.exe)n 响应Ctrl-Alt-Del(SAS:Secure Attention Sequence)n 处理交互式登录和身份验证o GINA(gina.dll)n Graphical Identification and Authenticationn 显示登录窗口,提取用户秘密信息,移送给LSAo LSASS(lsass.exe)n 保存并执行本地安全策略n 提供身份验证服务n 支持可扩展的SSP 和APs网络身份验证-netlogono 质询/应答方式o 网络身份验证方式n LANMan(win9x)n MSV1_0o NTLM(NT4SP3,NT5.x)o NTLMv2(NT4SP4,NT5.x)n Kerberos(NT5.x Server)Authorization:授权(访问控制)o 授权(Authorization)n 访问控制(Access Control)n 通过SRM 机制确定某个通过验证的主体对某个对象是否具有访问权限,如是授予访问权.o Windows 授权机制:SRMAuditing:审计o 审计策略n Security Policy(本地安全策略)中定义n 定义系统对哪些事件进行记录o 审计内部机制n LSASS:保存审计策略,传递给SRMo 对象启动审计功能后,分配SACL 表保存n SRM:生成审计记录,发送回LSASSn LSASS:补充审计记录细节信息后,发送给EventLog(事件日志)n EventLog:写入日志文件安全审计Windows 安全配置策略o 组策略o gpedit.msco 计算机配置o 用户配置o 最佳安全实践o Google:“windows group policy best practice”o 安全策略:安全性和易用性的折中o 关闭自动播放Windows 其他安全机制o Windows 安全中心n 防火墙n 自动更新n 病毒防护o Internet 选项n 浏览器安全n 隐私保护-cookiesn 安全证书Windows 其他安全机制o DEP:数据执行保护n 堆栈不可执行n 但会造成某些特殊程序无法正常运行o 自加密软件o Adobe 部分软件n Windows XP 缺省仅为基本Windows 程序/服务启用DEPn Win 7 缺省对全部程序启用o ASLR:内存空间随机化n Vista/Win 7 引入实现Windows 其他安全机制o IPSecn IP 加密和验证策略n 本地安全配置|IP 安全策略o EFS(加密文件系统)n NTFS 文件系统被攻陷后抵御物理攻击n 性能及易用性问题,很少被使用o WFP(Windows 文件保护机制)n 防止Windows 操作系统核心文件被恶意替换n“驱动程序签名”机制,备份目录dllcachen 绕开方法:WinLogon 中的SFCDisable 设置为0ffffff9dh,永久性禁用WFP 功能n WFP 对木马、有经验攻击者很容易被绕过下堂课预告o 4 月19 日1 2 节n Windows 攻击技术及防御方法(部分)o 建议课前阅读:n 基本:黑客大曝光第3 章“查点”p80-122、第4 章“攻击Windows 操作系统”n 进阶:Windows Server 2003 黑客大曝光第2 部分“侦察”、第3 部分“分而治之”、第4 部分“攻击脆弱服务和客户端”o 可从课程共享FTP 获取相关资源演讲完毕,谢谢观看!