第一章 网络攻防技术概述
- 发展历史,事件
- 基础技术体系框架:Web 安全攻防(热点)
- (主要内容)
- 系统安全攻防——软件安全漏洞(技术基础)
- 网络协议安全攻防——网络协议安全漏洞(技术基础)
- 物理攻击与社会工程学——人的心里弱点、物理设计缺陷(技术基础)
- 网络攻击路径
- 信息收集
- 踩点:Web 搜索与挖掘、DNS 和 IP 查询、网络拓扑侦擦
- 扫描:Ping 扫描、端口扫描、操作系统探测、网络服务探测、安全漏洞扫描
- 查点:网络服务旗标抓取、网络服务查点、用户账号查点
- 实施攻击
- 获取访问:密码窃听,共享文件的蛮力攻击、攫取密码文件、缓冲区溢出
- 特权提升:密码破解,利用已知漏洞或脆弱点
- 拒绝服务:SYN Flood、ICMP 技术、同一 src/dst SYN 请求、重叠 fragment/offset、错误(bugs、Out of bounds TCP、options(OOB))、DDOS
- 成功之后
- 偷盗窃取:评估可信系统的坚固度,探索明文密码
- 掩踪灭迹:清除日志记录、掩藏工具
- 创建后门:创建“无赖”账号,安排批处理命令作业、感染初启文件、植入远程控制服务、安装监控机制、利用木马替换应用
- 信息收集
- 态度
- 世界充满了待人解决的谜题
- 一个问题不应该被解决两次
- 无聊和乏味的工作是罪恶
- 自由万岁(反独裁,反对审查、保密、压迫)
- 态度不能替代能力(要有智力、实践、奉献精神和辛勤工作)
第二章 网络攻防实验环境
第三章 网络信息收集技术
- Google Hacking
- 找出北大域名中的网站服务器:allinurl:-php -html -htm -asp -aspx -ppt -pdf -swf -doc -xls site:pku.edu.cn,排除掉尽可能多的非首页网址
- 找出开放 rdp web 连接的服务器: allinurl:tsweb/default.html site:cn
- 找出信用卡和身份证信息:filetype:xls 信用卡 site:edu.cn 和 filetype:xls 身份证号 site:edu.cn
- 自动化:Google AJAX Search API,xgoogle 的 python 库
- DNS,IP
- GeoIP City 的免费版本:GeoLite
- tracert / traceroute
- 主机扫描(Ping 扫描)
- nmap -sP:集合 ICMP / SYN / ACK / UDP Ping,默认
- nmap -PE:ICMP Echo 扫描
- nmap -PS<portlist>:TCP SYN 扫描
- nmap -PA<portlist>:TCP ACK 扫描
- nmap -PU<portlist>:UDP 主机扫描
- 端口扫描
- nmap -sT:TCP Connect 扫描
- nmap -sS:TCP SYN 扫描
- nmap -sF:FIN 扫描
- nmap -sN:NULL 扫描
- nmap -sA:ACK 扫描
- nmap -sX:圣诞树扫描
- nmap -sU:UDP 扫描
- 系统探测
- 主动:nmap -O、queso
- 被动:P0f、siphon
- 网络服务主动:nmap -sV
- 网络服务被动:PADS
- 漏洞扫描
- Bugtraq、NVD(美国国家漏洞库)
- 扫描器:Nessus、Cheops-ng
- 网络查点
- 网络服务旗标获取:使用 telnet、netcat 获得服务器的类型和版本号
- STMP 的 VRFY 和 EXPN 指令
- nmap -sR:RPC 查点
- NetBIOS 查点
- 域:net view
- 域控制器:Windows Resource Kit 的 nltest /dclist:DOMAIN_NAME
- NetBIOS 名字表:nbtstat
- SMB 会话查点
- 共享资源:net view \\HOST,Windows Resource Kit 的 rmtshare、srvcheck、srvinfo,Legoin、NetBIOS Audit Tool
- 注册表查点:Windows Resource Kit 的 regdump 或 DumpSec 的 Dump Services
- 查点受信任域:nltest /server 和 nltest /trusted_domain
- 用户查点:Windows Resource Kit 的 usrstat、showgrps、local、global,或 DumpSec
第四章 网络嗅探与协议分析
- MAC 地址洪泛:向交换机发送大量伪造的 MAC 和 IP 地址的包,使交换机的 MAC 地址-端口映射表 无法工作,从而进入广播模式
- MAC 欺骗:冒充目标的 MAC 地址欺骗交换机
- ARP 欺骗
- BPF、libpcap、tcpdump、wireshark
- 嗅探检测:AntiSniff
- 防范:安全的网络拓扑、VLAN、合理分段、静态 ARP、静态 MAC 绑定、网关等重点区域防范、避免明文协议
第五章 TCP/IP 网络协议攻击
- 网络安全:机密性、完整性、可用性、真实性、不可抵赖性
- 中间人攻击
- 协议缺陷与攻击技术
- 网络接口层
- 以太网协议:明文——网络嗅探与协议分析
- 以太网协议:缺乏 MAC 身份认证——MAC 欺骗
- PPP 协议:明文——网络嗅探与协议分析
- 互联层
- IPv4
- 缺乏 IP 地址身份认证——IP 地址欺骗
- 处理 IP 分片逻辑的错误——IP 分片攻击(可用性)
- ICMP
- ICMP 路由重定向缺乏身份认证——ICMP 路由重定向(完整、真实性)
- 广播地址对 Ping 的放大——Ping 洪泛、Smurf
- ARP:广播且无认证——ARP 欺骗
- BGP 等:缺乏较强身份认证——路由欺骗
- 传输层
- TCP
- 三次握手队列瓶颈——SYN 洪泛
- 会话身份认证不安全——RST 攻击
- 会话身份认证不安全——会话劫持
- UDP:UDP 洪泛
- 应用层
- DNS:验证不安全——DNS 欺骗
- SMB:NTLM认证有缺陷——SMB 中间人攻击
- HTTP:url 明文,编码滥用——钓鱼;内嵌连接滥用——网页木马
- 网络层协议攻击
- IP 源地址欺骗
- TCP 初始序列号(ISN)猜测
- nmap 的 -D 选项
- Netwox 工具
- 防范:随机的 ISN、IPSec、避免基于 ip 信任而是认证用户身份、防火墙入站出站过滤内网地址
- ARP 欺骗
- DSniff 套装的 Arpspoof、arpoison、Ettercap、Netwox 33 号
- 防范:静态绑定 ip 和 mac,细分子网,加密数据、arp 防火墙
- ICMP 路由重定向攻击
- 本用于路由通知网络拓扑的改变
- 防范:设置防火墙过滤
- 传输层协议攻击
- TCP RST
- TCP 会话劫持(通常结合 ARP 欺骗进行)
- TCP SYN 洪泛拒绝服务
- 防范:SYN-Cookie。先动态分配资源,达到一定数量后再用 Cookie
- UDP 洪泛拒绝服务
- TCP/IP 协议栈攻击防范
第六章 网络安全防范技术
- 防火墙
- 包过滤
- 基于状态检测的包过滤
- 代理:应用层代理、电路级代理、NAT 代理
- 防火墙部署
- 包过滤路由器
- 双宿主堡垒主机,但对内网控制过于严格,自身安全维护复杂
- 屏蔽主机
- 屏蔽子网
- Linux 的 netfilter / iptables
- filter
- INPUT:发给本地协议栈
- OUTPUT:本地协议栈发出的
- FORWARD:路由转发的
- nat
- PREROUTING:未经路由选择的——DNAT、NAPT等
- POSTROUTING:已经路由选择的——SNAT等
- OUTPUT:本地协议栈发出即将的包——本地数据包DNAT等
- mangle(特殊包修改)
- 以上五个:所有数据包——特殊包包头修改
- iptables command
- -A: append
- -D: delete
- -P: policy,缺省操作
- -N: new chain 创建新链
- -F: flush 删除指定链或所有链的规则
- -L: list
- iptables match,多个条件时采用 与 关系
- -i/-o: 进入/发出网络接口
- -s/-d: 源/目的地址
- -p: 协议
- -m: 网络连接状态
- –sport/–dport: 端口
- iptables target 操作
- ACCEPT:-j ACCEPT
- DROP:-j DROP
- REJECT:-j REJECT 不会在服务器和客户端上留下死套接字,同时也会通知发送端,drop 不会
- RETURN: -jump RETURN 停止遍历使用默认
- iptables nat
- IP伪装、SNAT、DNAT
- 网络检测技术与系统
- 入侵检测:HIDS、NIDS
- 入侵防御系统 IPS
- 开源网络入侵检测系统 Snort
- 网络安全事件响应
- 计算机取证
- 攻击溯源于归因
- 备份恢复
第七章 Windows 操作系统安全攻防
- Windows 系统和安全体系结构介绍
- Windows 远程口令猜测于破解(也有窃听)
- 攻击 WIndows 网络服务,NetBIOS、SMB 重灾区,还有 RPC、IIS 等
- 攻击 WIndows 客户端及用户,本地提权,口令破解
- 防范:关闭非必要服务、防火墙、强口令、禁用不安全的协议、更新补丁
- Windows 销踪灭迹:auditpol 关闭审计、清理事件日志、
第八章 Linux 操作系统安全攻防
- 远程口令猜解、渗透(LAMP、FTP、samba、sendmail)
- 攻击客户端和用户(社会工程学 / 软件分发站点)
- 攻击 linux 路由器和监听器
- 本地安全攻防
- su / sudo 程序中的漏洞
- 攻击用户态 SUID 提权:程序漏洞、缓冲区溢出、符号链接、竞争条件、共享函数库
- 攻击内核代码提权
- shadow 口令破解
- 利用系统配置不当(权限)
第九章 恶意代码安全攻防
- 病毒、蠕虫、恶意移动代码、后门、木马、僵尸网络、内核套件(Rootkit)
- [恶意代码类型.]恶意代码家族名称[.变种号]
- 静态分析技术
- 杀软扫描
- 文件格式识别
- 文件内字符串提取分析
- 二进制结构分析
- 反汇编/反编译
- 代码结构与逻辑分析
- 加壳识别于脱壳
- 动态分析
- 各种进程、文件、注册表监控,调试器沙箱,网络嗅探器,虚拟机等
- 基于快照比对
- 系统行为监控(进程、文件等)
- 网络监控
第十章 软件安全攻防——缓冲区溢出和 Shellcode
- 缓冲区溢出
- NSR模式。缓冲区较大,从低地址到高先填充 nop 再放 shellcode,最后加上覆盖 ret 返回地址的跳转
- RNS模式。缓冲区小,低到高依次是 ret、nop、shellcode
- RS模式。可以精确定位,直接由 ret 跳至 shellcode
- Windows 栈地址在 0x0012*** 附近,不像 linux 在 0xc0000000 下,有空字节截断问题
- windows 系统 dll 中找 jmp esp
- 堆溢出,一般利用函数指针改写(覆盖相邻的全局函数指针)、虚表改写、堆管理漏洞(4字节内存任意写)
- 防御:dep、gs、使用安全的内存函数
第十一章 Web 应用程序安全攻防
- 手工审查 Web 应用程序结构和源码
- 静态/动态页面
- 目录结构,Whisker 探查特定目录
- 辅助性文件,CSS JS 等
- 输入表单
- 查询参数字符串
- 黑客解谜类网站:NotPron、Monyer、sqybi 等
- 自动下载、镜像 web 站点
- Google Hacking 审查与探测《Google Hacking for Penetration Testers》
- app 安全评估与漏洞探测
- 攻击 Web 服务器软件
- 数据驱动的远程代码执行
- 服务器功能扩展模块漏洞
- 样本文件安全漏洞
- 源码泄露漏洞
- 资源解析攻击
- 攻击 Web app:攻击认证机制、授权、客户端、命令执行、信息暴露
- 攻击 Web 数据内容:敏感数据泄漏、网站篡改、上传不良信息
- 防范:安全的加密协议、冗余来应对 ddos、防止 arp 欺骗等、补丁;日志审计、使用稳定成熟的软件、只引入必要的动态页面;运维监控
- SQL 注入
- XSS 跨站脚本。防范:输入验证、输出净化、消除危险的输入点
第十二章 Web 浏览器安全攻防
- 浏览器的发展与威胁
- 网页木马:针对浏览器的渗透攻击
- 网页木马机制
- 内嵌 iframe / frame 等 HTML 标签,可多层
- 恶意 script 脚本
- 内嵌对象链接,图片或 flash
- arp 欺骗,中间人挂马
- 混淆(免杀)
- 检测分析
- 特征码匹配
- 统计与机器学习的静态分析,本质也是特征检测
- 动态行为结果判定
- 基于模拟浏览器环境的动态分析
- 网络钓鱼
- IDN 欺骗技术,unicode 编码的 url