2017-2018-2 20179209《网络攻防》第七周作业
教材学习
windows操作系统的基本框架
Windows操作系统内核基本模块:
- Windows执行体
- Windows内核体
- 设备驱动程序
- 硬件抽象层
- Windows窗口与图形界面接口内核实现代码
- 系统支持进程
- 环境子系统服务进程
- 服务进程
- 用户应用软件
- 核心子系统DLL
进程线程管理机制
Windows将进程视作可执行程序运行时刻的容器,包括:
- 一个私有虚拟内存空间描述符
- 系统资源对象句柄列表
- 带有执行用户账号权限的安全访问令牌(记录了进程ID及父进程ID信息)
- 至少包含一个作为进程内部指令执行体的执行线程
线程控制块TCB包括程序执行的上下文信息:
- CPU处理器状态与寄存器内容
- 保存内核模式和用户模式两个栈
- 线程局部存储区以及线程ID
- 并同时共享所属进程的虚拟地址空间、资源列表和安全访问令牌
PE文件框架:
- DoS头
- PE头
- 分段表
- 具体代码段
- 数据段
Windows网络机制
网卡硬件的设备驱动程序对应OSI物理层;
NDIS库及miniport驱动程序对应OSI数据链路层;
TDI传输层(网络协议驱动)对应OSI网络层和传输层;
网络APIDLL及TDI客户端对应OSI会话层和表示层;
网络应用层程序与服务进程对应OSI应用层。
Windows操作系统的安全体系结构和机制
安全体系结构
基于引用监控器这一经典安全模型,其中最为核心的是位于内核中的SRM安全引用监控器。以及位于用户态的LSASS安全服务,他们与Winlogon/Netlogon及Eventlog等服务一起,实现了对主体用户的身份认证机制、对所有资源对象的访问控制机制,以及对访问的安全审计。
- 身份认证
- 授权与访问控制
- 安全审计
- Windows安全中心
安全主体
- 用户
- 用户组
- 计算机
每个主体都有一个安全标识符来标识——SID
SAM位于%systemroot%\system32\config\sam中,在注册表HKEY_LOCAL_MACHINE\SAM存有副本。
Windows的授权与访问控制机制是基于引用监控器模型,由内核中的SRM模块与用户态的LSASS服务共同来实施,由SRM作为安全主体访问对象资源时的中介,根据设定的访问控制列表进行授权访问。
对象安全描述符(SD)主要属性组成:
- Owner SID
- Group SID
- DACL自主访问控制列表
- SACL 系统审计访问控制列表
Windows远程安全攻防技术
远程攻击技术分类
- 远程口令猜解与破解攻击
- 攻击Windows网络服务
- 攻击Windows客户端与用户
Windows系统安全漏洞生命周期:
- 漏洞发现与披露
- 渗透测试与利用攻击
- 漏洞修补
微软补丁日——每个月第二周周二。
知名漏洞信息库:
- CVE
- NVD
- SecurityFocus
- OSVDB
针对特定目标的渗透测试攻击过程
- 漏洞扫描测试
- 查找针对发现漏洞的渗透代码
- 实施渗透测试
Metasploit采用开发框架和模块组件的可扩展模型,以Ruby语言编写的MSF库作为整个软件的基础核心。
远程口令猜解
最常用的远程口令猜解工具包括:
- Legion
- enum
- SMBGeind
- NTScan
- XScan
- 小榕软件之流光
- NTScan
自动化终端服务口令猜测工具:
- TSGrinder
- Brutik
- FastRDP Brute
- DUBrute
sqlbf和Auto-SQL猜测 1433和1434的MSSQL。
THC公司的 Hydra和Brutus支持基于HTTP和HTTPS协议的SharePoint等服务的口令猜解。
Windows的网络身份认证采用LanMan、NTLM和Kerberos这三种协议。
Cain and Abel则是目前最为全面的口令破解工具——被誉为“黑界神兵”。
远程口令猜解防范措施
- 尽量关闭不必要开放的易受远程口令猜解攻击的网络服务。(139/145端口的SMB服务、135端口的WMI服务、3389端口的TS终端服务、1433 的MSSQL服务)
- 配置主机防火墙来限制对上述端口的服务
- 利用网络防火墙来限制到这些服务的访问者
- 禁用过时而却存在本质上安全缺陷的LanMan与NTLM
- 强口令
网络服务远程渗透攻击防范措施
- 从软件设计开发根源上尽量减少安全漏洞的出现
- 尽可能快地更新与应用软件安全补丁
- 防范“零日”
- 安全核对清单
- 入侵检测与防御机制
Windows本地安全攻防技术
Windows系统上进行特权提升的攻击途径主要有DLL注入(GetAdmin)和破解本地程序安全漏洞。
在本地过去口令字密文的主要途径包括:
- 从另一操作系统启动后拷贝文件系统中的口令密文文件
- 创建SAM备份文件副本
- 使用pwdumpX系列工具直接从SAM文件或活动目录中提取口令密文
位于HKEY_LOCAL_MACHINE\SECURITY\Policy\Secrets子健下的LSA Secrets存有很多登录口令敏感信息。Lsadump2(采用与pwdump2相同的DLL注入技巧)、Cachedump、LSASecretsDump(集成口令字破解技术)等工具可以帮助攻击者读取其中的口令。
L0phtCrack是一款非常经典的Windows口令破解软件,综合字典、暴力破解、组合破解、彩虹表等密码破解技术。支持如下的口令字密文数据格式:
- 本地注册表
- 原始SAM文件
- SAM备份文件
- 网络监听口令字密文
- L0phtcrack自主格式
- pwdumpX系列
John the Ripper主要用于破解UNIX/LINUX系统的口令字,也支持Windows上的口令破解,但其缺陷是只能破解LanMan协议哈希加密的口令,而不支持对NTLM协议加密进行破解。
Windows消踪灭迹
- 关闭审计功能
Windows Resource Kit工具包里的auditpol程序可以关闭审计功能。 - 清理事件日志
使用 Event Viewer事件查看器打开、读取和清除日志。metasploit中的IRB shell脚本也可以清除日志。还有elsave。
meterpreter设计目标包括:
- 隐蔽性
- 设计功能强大
- 灵活可扩展
视频学习
漏洞利用之metasploit基础
Metasploit在渗透测试中经常被用到,实际上这套软件包括了很多工具,这些工具组成了一个完整的攻击矿机。他们或许在渗透测试中的每一个方面都不能称为最好的工具,但组合起来的框架却让它变得强大。
模块介绍:
- Auxiliary:辅助模块
- encoders:供msfencode编码工具使用
- exploits:攻击模块
- payloads:这里面列出的是攻击载荷,也就是攻击成功后执行的代码
- post:后渗透阶段模块,在获得meterpreter的shell之后可以使用的攻击代码
基本命令:
- msfpayload:用来生成payload或者shellcode。
- msfencode:编码器,早起问了编码绕过AV,现在常用msfpayload与它编码避免exploit的坏字符串。
- msfconsole:开启metasploit的console。
漏洞利用之Meterpreter介绍
Meterpreter是metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道,使用它作为攻击载荷能够获得目标系统的一个meterpretershell的链接。
Meterpreter作为后渗透模块有多种类型,并且命令由核心命令和扩展库命令组成,极大地丰富了攻击方式,其有很多有用的功能,如添加一个用户、隐藏一些东西,打开shell、得到用户密码、上传下载远程主机文件、运行cmd.exe、捕捉屏幕、得到远程控制权、捕获按键信息、清除应用程序、显示远程主机的系统信息、显示远程机器的网络接口和IP地址信息。
常用命令:
- backgroud:将当前会话放置后台
- load/use:加载模块
- inreract:切换进一个信道
- migrate:迁移进程
- run:执行一个已有的模块
- resource: 执行一个已有的RC脚本
漏洞利用之metasploit后渗透测试
在跳板几获取一定权限后,需要积极的向内网主机权限发展,获取指定的目标信息,探查系统的漏洞。借助Msf已经得到的Meterpreter后门,可以使系列的操作更容易。
漏洞利用之BeeF
BeeF浏览器攻击框架,对XSS漏洞往往需要一个强大的框架支持,如网络上的XSS平台,在Kali下,BeeF是一款丝毫不逊与XSS平台的工具。它专注于浏览器端的渗透测试。