第一章 网络攻防技术概述

  • 发展历史,事件
  • 基础技术体系框架:Web 安全攻防(热点)
    • (主要内容)
    • 系统安全攻防——软件安全漏洞(技术基础)
    • 网络协议安全攻防——网络协议安全漏洞(技术基础)
    • 物理攻击与社会工程学——人的心里弱点、物理设计缺陷(技术基础)
  • 网络攻击路径
    • 信息收集
      1. 踩点:Web 搜索与挖掘、DNS 和 IP 查询、网络拓扑侦擦
      2. 扫描:Ping 扫描、端口扫描、操作系统探测、网络服务探测、安全漏洞扫描
      3. 查点:网络服务旗标抓取、网络服务查点、用户账号查点
    • 实施攻击
      1. 获取访问:密码窃听,共享文件的蛮力攻击、攫取密码文件、缓冲区溢出
      2. 特权提升:密码破解,利用已知漏洞或脆弱点
      3. 拒绝服务:SYN Flood、ICMP 技术、同一 src/dst SYN 请求、重叠 fragment/offset、错误(bugs、Out of bounds TCP、options(OOB))、DDOS
    • 成功之后
      1. 偷盗窃取:评估可信系统的坚固度,探索明文密码
      2. 掩踪灭迹:清除日志记录、掩藏工具
      3. 创建后门:创建“无赖”账号,安排批处理命令作业、感染初启文件、植入远程控制服务、安装监控机制、利用木马替换应用
  • 态度
    • 世界充满了待人解决的谜题
    • 一个问题不应该被解决两次
    • 无聊和乏味的工作是罪恶
    • 自由万岁(反独裁,反对审查、保密、压迫)
    • 态度不能替代能力(要有智力、实践、奉献精神和辛勤工作)

第二章 网络攻防实验环境

第三章 网络信息收集技术

  • 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