Windows 渗透基础
- Windows 渗透基础
- 控制注入攻击
- 攻击者的目标:
- 典型的劫持攻击技术
- 缓冲区溢出
- 栈溢出
- Windows 系统渗透攻击
- WIndows 系统主要的网络服务程序:
- 基于 Metasploit 渗透框架的 MS-08067 漏洞利用
- MS08-067 漏洞原理简析
- Metasploit 利用 MS-08067 漏洞渗透攻击流程
- 远程渗透 WIndows 系统的途径
- 认证欺骗
- 客户端软件漏洞利用
- 设备驱动漏洞利用
- 针对系统渗透攻击的一些常见防御措施
控制注入攻击
现代计算机系统遵循冯诺依曼结构:没有在内存中严格区分计算机程序的数据和指令 。
攻击者的目标:
劫持应用程序控制流来执行目标系统上的任意代码,最终达到远程控制目标系统的目的。
典型的劫持攻击技术
- 缓冲区溢出
- 格式化字符串漏洞
- 整数溢出
- 指针释放后再次被使用
缓冲区溢出
- 缓冲区溢出攻击最早可以追溯到 1988 年的 Morris 蠕虫,Fingerd。
- 缓冲区溢出是指当计算机程序向特定缓冲区填充数据时,缺乏严格的边界检查,导致数据外溢,覆盖了相邻内存空间的合法数据,进而改变了程序的合法执行流程。
- 一般根据缓冲区溢出的内存位置不同,缓冲区溢出又可分为栈溢出和堆溢出。
栈溢出
栈上的缓冲区变量缺乏安全边界保护所遭受的溢出攻击
最常见的栈溢出利用方法:覆盖函数返回地址
覆盖函数返回地址:
在执行函数调用前,程序将要返回的下一条指令地址,与函数局部变量、函数调用参数等将同时保存在栈中。
攻击者针对函数返回地址在栈中的存储位置,进行缓冲区溢出,从而改写函数返回地址,当函数调用返回时,程序将调转到哦攻击者指定地址,执行恶意指令。
Windows 系统渗透攻击
WIndows 系统主要的网络服务程序:
- NetBIOS 网络服务
- SMB 网络服务
- MSRPC 网络服务
- RDP 远程桌面服务
MS08-067 漏洞原理简析
- 攻击者利用 Windows 操作系统默认开放的 SMB 服务 445 端口
- 发送恶意代码到目标主机
- 通过 MSRPC 接口调用 Server 服务的一个函数,溢出栈缓冲区,获得远程代码执行权限
- 从而完全控制主机 Windows 系统主要的网络服务程序
1.启动 Metasploit 的控制终端,使用 search 命令搜索 ms08-067 漏洞对应的渗透攻击模块
2.使用 use 命令选择合适的渗透攻击模块
3.使用 set payload 选择适用的攻击负载模块
4.配置渗透攻击模块和攻击负载模块所对应的参数
5.实施渗透攻击过程,成功破解目标系统,植入并运行攻击负载模块,给出远程控制会话
远程渗透 WIndows 系统的途径
认证欺骗
即通过暴力或字典破解登录口令 或发起中间人攻击也就是获取 WIndows 系统非授权访问权限的最轻松的途径之一。
客户端软件漏洞利用
微软发布的安全公告中,漏洞越来越多的出现在 IE、Office、Adobe Reader 等这些缺乏管理但功能复杂的客户端软件中。这些软件的补丁更新速度却没有服务端那么及时,也就是成为了骇客们下手的绝佳目标。
设备驱动漏洞利用
微软倡导的插即用,支持用户所使用的海量外部设备,设备原始的底层,硬件层面的命令交互,需要获得操作系统的高权限,这使得可供黑客攻击的机会也越来越多。
针对系统渗透攻击的一些常见防御措施
- 及时更新应用软件、操作系统、硬件设备驱动程序的安全补丁
- 禁用不必要的网络服务
- 使用防火墙来限制对可能存在漏洞的服务的访问
- 强制用户使用强口令并定期更换口令
- 审计与日志
- 使用扫描软件主动发现系统是否存在已知安全漏洞,安装入侵检测/防御系统
- 客户端应用程序尽量使用受限权限,而非管理员或同等级权限的用户登录因特网
- 运行并及时更新防病毒软件
- 禁用易受攻击的硬件设备