网络攻击基础
第二章 信息收集
- 步骤:踩点,扫描,查点。
- Whois查询:DNS注册信息,IP。
- DNS查询工具:nslookup/dig
网络扫描
主机扫描
- Ping扫描:ping, Nmap(危害不大)
- Ping扫射:同时扫描大量IP地址;软件:Nmap, fping, hping2, Superscan
- 监测:网络入侵检测系统Snort,主机扫描检测工具Scanlogd
- 防御:考虑ICMP通信的过滤策略
端口扫描
- 连接目标主机的TCP和UDP端口,确定哪些服务正在运行即处于监听状态的过程。
- 工具:udp_scan, nmap, WUPS, ScanLine
- FIN扫描:可以绕过某些防火墙;会被记录到日志; 使用RAW IP编程,较为复杂。
- 一般扫描:TCP connect,TCP SYN,TCP FIN,IP段
- 高级扫描:TCP反向ident扫描。通过未公开的函数,系统漏洞或非正常的调用产生特殊信息
系统类型探查
- 探查活跃主机的系统及开放网络服务的类型。PADS
漏洞扫描
- 检查系统是否存在已公布的安全漏洞。
- 漏洞扫描软件:ISS,SATAN/SAINT,Nessus,OpenVAS,Xscan
网络查点
- 针对已知的弱点,对识别出来的服务进行更加充分更具针对性的探查,来寻找真正可以攻击的入口,以及攻击过程中可能需要的关键数据。
- 与踩点的区别:攻击者的入侵程度。
- 与扫描的区别:攻击者的针对性与信息收集的目标性。
- net view / domain; nbtstat
- 预防方法:关闭不必要的服务;关闭打印与共享服务(SMB);关闭盘符默认共享;禁止SMB匿名空会话
网络嗅探与协议分析
- 嗅探工具:wireshark
- 网络嗅探:利用计算机网络接口截获目的地为其他计算机的数据报文,监听网络流中所包含的用户账户密码或私密信息等。
- 共享式网络:通过集线器连接,所有数据包发往每一个主机
- 交换式网络:通过交换机连接,发包只能到特定端口。
- 嗅探攻击:MAC地址洪范;MAC欺骗;ARP欺骗;
- 工具:BPF,Libpcap,Tcpdump,SnifferPro
- 防范:采用交换式网络,静态ARP,避免使用明文传输口令和敏感信息的网络协议。
- ICMP探测
- 优点:如ping命令,返回TTL可以判断主机操作系统的类型和经过的路由器数量。进而查找主机IP
- 缺点:很容易被防火墙限制。
第三章 拒绝服务攻击
- 概念:DoS攻击是指利用网络协议漏洞或其他系统以及应用软件的漏洞耗尽被攻击目标资源,使得被攻击的计算机或网络无法正常提供服务,直至系统停止响应甚至崩溃的攻击方式。即攻击者通过某种手段,导致目标机器或网络停止向合法用户提供正常的服务或资源访问。
- 基本模式
- 资源耗尽型:消耗网络带宽、磁盘空间、内存资源
- 配置修改型:修改或删除系统文件或配置文件使得系统服务停止或性能降低。
- 基于系统缺陷型
- 物理实体破坏型
- 基本形式
- 服务过载:计算机忙碌地处理不断到来的服务请求,以至于无法处理常规的任务。同时,许多新到来的请求被丢弃。
- 消息流:消息流发生于用户向一台网络上的目标主机发送大量的数据报,来延缓目标主机的处理速度,阻止它处理正常任务。
- 信号接地:物理方法
- 粘住 攻击:TCP半连接耗尽资源。
- 分类
- SYN Flood:半连接;对Windows NT有效,IP欺骗技术。(在防火墙上过滤同一主机的后续连接)。
- 死Ping:当发送ping请求的数据包声称自己的尺寸超过ICMP上限,也就是加载的尺寸超过64K上限时,就会使ping请求接收方出现内存分配错误,导致TCP/IP堆栈崩溃致使接受方当机。
- 泪滴(Teardrop):发送不正确的IP分片在某些情况下会破环整个IP协议栈,需要重启。
- Land攻击:特制一个SYN包,源地址与目的地址都为某一服务器,自己创建于自己的空连接。
- Smurf攻击:通过将回复地址设置成受害网络的广播地址的ICMP应答请求数据报来淹没受害主机的方式进行。最终导致该网络的所有主机都对此ICMP应答请求作出答复,导致网络阻塞。
- Fraggle攻击:与Smurf类似,但使用的是UDP Echo。
- 炸弹攻击:利用工具软件,集中在一段时间内,向目标机发送大量垃圾信息,或是发送超出系统接收范围的信息,使对方出现负载过重、网络堵塞等状况,从而造成目标的系统崩溃及拒绝服务
- DDos
- 主控端:接受攻击者命令并发送到代理主机上。
- 代理段:运行攻击程序,接受命令并发起攻击。
- 发送的报文:UDP
- 僵尸网络
- 通过IRC控制bot
- 检测:IDS方法;行为监测法;蜜罐捕捉法。
第四章 缓冲区溢出攻击
- 缓冲区:应用程序用来保存用户输入数据、程序临时数据的内存空间。位置:栈、堆、数据段
- 命令:strcpy(buffer,input);
- 手段:通过制造缓冲区溢出使程序运行一个用户shell,再通过shell执行其他命令。如果该程序属于root且有suid权限的话,攻击者就获得了一个有root权限的shell,便可以对系统进行任意操作。
- 危害:应用程序异常、系统不稳定甚至崩溃、程序跳转到恶意代码。
- ![1573213229376](C:\Users\Adam Young\AppData\Roaming\Typora\typora-user-images\1573213229376.png)
- 栈
- 连续的内存空间。
- 先入后出,生长方向:高地址向低地址。
- 每一个线程有自己的栈。
- ESP:栈顶;EBP:栈底。
- 内容:函数参数,返回地址,EBP,通用寄存器值,函数局部变量。
- 重要寄存器:
- ESP:栈顶。
- EBP:基地址,相对稳定的位置。
- EIP:指令寄存器,函数调用返回后下一个执行语句的地址。
- strncpy_s()函数为安全函数,不会被利用。
- 全局变量和静态变量在同一块内存。
- 常量存储区存放常量,不能修改。
函数调用过程
- 把参数压入栈。
- 保存EIP内容作为返回地址。
- 放入堆栈当前基址寄存器。
- 把当前ESP拷贝到基址寄存器,作为新的基地址。
- 为本地变量留出一定空间,把ESP减去适当数值。
- 调用后恢复EBP,EIP,局部变量不处理。
溢出种类及利用
- 栈溢出
- 特点:缓冲区在栈中分配,拷贝数据过长,覆盖了返回地址或其他重要数据结构。
C语言中的内存分配
- 函数体中定义的变量通常在栈上,若是显式分配(malloc)则在堆上。
- 静态变量在全局区。
- 字符串存放在常量区。
C++中内存分配
- 分区:
- 栈:编译器自动分配回收。局部变量、函数参数。
- 堆:用new分配。
- 自由存储区:用malloc分配。
- 全局/静态存储区:不分初始化和未初始化。
- 常量储存区:不能修改。
堆栈的关系和区别
- 栈是系统提供的功能,特点是快速高效,缺点是有限制,数据不灵活;而堆是函数库提供的功能,特点是灵活方便,数据适应面广泛,但是效率有一定降低。
- §栈是系统数据结构,对于进程/线程是唯一的;堆是函数库内部数据结构,不一定唯一。不同堆分配的内存无法互相操作。
堆溢出
- 特点:缓冲区在堆中分配,复制内容覆盖了管理结构。
整形溢出
- 概念:试图保存一个比它可以表示的最大值还大的数时,就会发生整数溢出。结果不可预料。
- 危害:发生前无法预料。
- 现象:取模。
- 分类
- 宽度溢出:普通。
- 运算溢出:运算后结果太大。
- 符号溢出:无符号被看作有符号,或相反。
ShellCode
- 功能:添加管理员用户,远程可用shell,下载程序。穿透防火墙等。
溢出保护技术
- 程序员:安全编程,软件质量控制,源码级纠错工具。
- 编译器:数组边界检查,编译时加入条件如canary保护。
- 语言:使用类型安全语言:C#,JAVA
- Runtime保护:二进制地址重写,Hook危险函数技术。
- 操作系统:非执行缓冲区。堆栈不可执行,数据段不可执行
安全编程技术
- 设计安全的系统
- 代码规范和风格。
第五章 Web应用程序
Web应用的分层模型
- 表示层:接收客户端输入并显示结果。
- 业务逻辑层:动态脚本。
- 数据层:数据库,本地文件。
传输协议
- HTTP:无状态,明文传输,请求/响应模式——>易受攻击。
- HTTPS:基于SSL/TLS提供对传输层认证和加密。
Web应用的信息收集
- 服务器域名、IP等
- Web端口、开放服务等
- 站点类型与脚本,应用程序类型与版本
- Web服务器/应用程序中的安全漏洞。
- 手工审查应用结构与源代码
- 自动下载与镜像Web站点页面。
- 使用Google Hacking技术审查与探测Web应用程序。(工具:Site Digger)
攻击Web服务器软件
- IIS,MS SQL ASP
- 远程渗透:IIS,SQL,红色代码,尼姆达,SQL Slammer。
Web服务器的漏洞
- 数据驱动的远程代码执行。
- 服务器功能扩展模块
- 样本文件。
- 源代码泄露。
- 资源解析攻击。
SQL注入
- 定义:利用Web应用程序数据层存在的输入验证不完善型安全扣动实施的一类代码注入攻击。
- 漏洞机制:用户输入没有被正确地过滤:转义字符。
- 没有进行严格的类型检查。
攻击步骤
- 发现SQL注入点。
- 判断后台数据库类型。
- 利用SQL注入进行后台口令拆解。
- 上传ASP后门,得到默认账户权限。
- 本地特权提升与利用数据库扩展存储过程。
注入工具
- 漏洞发现:Wposion,mieliekoek.pl
- 注入测试:SPIKE Proxy;SPI Toolkit
- 黑客工具:NBSI,HDSI,啊D,CSC,WED,Pangolin
防范措施
- 使用类型安全的参数编码机制。
- 用户输入要进行完备检查。
- 将动态SQL语句替换为存储过程,预编译SQL或ADO命令对象。
- 加强SQL数据库服务器的配置与连接。
危害(考点)
- 数据库信息泄露。
- 网页篡改。
- 网站挂马。
- 私自添加系统账户。
- 读写文件获取webshell
暴库
通过一些技术手段或者程序漏洞得到数据库的地址,并将数据非法下载到本地。
XSS跨站脚本攻击
- 跨站脚本:跨站脚本是一种通常存在于Web应用程序中的安全漏洞,使得攻击者可以将恶意的代码注入到网页中,从而危害其他Web访问者。
- 与代码注入的比较:
- 相似点:Web应用程序没有对非预期输入作出全面的检查与净化。
- 不同点:代码注入的目标:Web站点;XSS:访问Web应用程序的其他用户。
典型攻击
- 查看终端会话Cookie。
- 窃取Cookie。
- 网页挂马。
攻击类型(考点)
- 持久性XSS:通过利用跨站漏洞构建恶意脚本(留言本,论坛,博客)。
- 非持久性XSS:用户输入产生XSS反馈给该用户,需要结合社会工程学进行攻击。
- DOM-based:本地XSS,如JS本地生成HTML页面中存在。
防范措施
- 服务器端:限制,拒绝,净化。输入验证,输入净化,消除危险输入点。
- 客户端:提高浏览器访问非受信网站时的安全等级。
- 关闭Cookie或设置为只读。
- 安全意识和浏览习惯。
Web浏览器的技术发展与安全威胁
安全威胁类型、
- 网络钓鱼
- 目标:获取个人敏感信息
- 欺骗技术:DNS中毒,网络流量重定向,欺骗性垃圾邮件。
- 欺骗策略:使用IP代替域名;注册相似的DNS域名;对URL进行编码和混淆,修改地址映射HOSTS文件。
- 防范措施:了解威胁与技巧;增强安全意识,提高警惕性;安装安全软件。
- 恶意木马与流氓软件下载:捆绑安装;软件:Site Advisor
- 网页木马-浏览器渗透攻击
- 木马:
- 典型网页木马:MS06-014,ANI
- 网络访问流量重定向:内嵌HTML标签,恶意脚本,内嵌对象
- 木马的定义:计算机木马病毒是指隐藏在正常程序中的一段具有特殊功能的恶意代码,是具备破坏和删除文件、发送密码、记录键盘和攻击Dos等特殊功能的后门程序。
- 特点:
- 隐蔽性:伪装成合法程序。首要特征。
- 欺骗性:使用合法后缀名,使用容易混淆的字母命名。
- 顽固性:有多个备份,而且会关联执行。
- 危害性:可以盗取用户的重要信息。
- 不良信息内容
网站挂马威胁防范
- 补丁:系统补丁,软件升级。
- 杀毒软件。
- 提高安全意识。
病毒
- 概念:编制者在计算机程序中插入的破坏计算机功能或者数据的代码,能影响计算机使用,能自我复制的一组计算机指令或者程序代码。。
- 特征:传播性,感染性,潜伏性,隐蔽性,破坏性。
- 传播途径:
- 存储设备:U盘,CD等
- 网络:网页,电子邮件
- 利用计算机系统和软件弱点传播。
第七章 口令攻击
本章要求
- 了解口令攻击的方法与类别。
- 掌握Windows系统口令验证机制的工作流程(LM,NTLM,Kerberos)
- 熟悉常用口令破解工具和常用口令攻击方法。
- 掌握Windows系统口令的防护方法。
主动口令攻击
- 字典攻击:由很多条可能口令的文本文件导入破解程序。
- 强力攻击:尝试所有字符的组合方式。
被动截获
- 欺骗攻击:通过贡献的网站服务器、端口重定向、伪装网站钓鱼。
- 嗅探攻击:如在FTP信道上的窃听。
Windows下的口令攻击
- LAN Manager处理过程:口令变成大写,补全为14个字符,分成两个7字符,DES加密得到一个64位密文,服务器存储共128位密文。
- 验证:
- NTLM口令处理过程:将口令变成Unicode编码,使用MD4散列算法,保存得到的128位散列值。
口令存储
- SAM数据库:Windows NT/2000使用的安全账号管理器机制来管理用户账号
常用口令攻击方法
- 本地获取
- 远程猜解
- 嗅探
常用破解工具
- L0phtcrack、NTSweep、NTCrack、PDWump。。。
彩虹表破解
- 彩虹表:特定字符的各种组合以及这些组合经过MD5或LM或NTLM等加密后的对照表。
- 软件Rainbow Crack,ophcrack,Free Rainbow Tables
口令的防护
- 选择安全密码:足够长,混合口令。
- 防止口令猜测攻击:硬盘分区采用NTFS格式、正确设置和管理账户、禁止不需要的服务、关闭不用的接口、禁止建立空连接。
- 设置安全策略:强密码历史,密码最长使用期限,密码最短使用期限、密码长度最小值。
第八章 假消息攻击
网络安全属性
- 机密性、完整性、可用性、真实性、不可抵赖性。
网络攻击基本模式
截获、篡改、中断、伪造
工具:Sniffer,Netwox/Netwag
IP源地址欺骗
- 伪造具有虚假源地址IP数据包进行发送。
- 目的:隐藏攻击者身份、假冒其他计算机通过身份认证。
- 原理:路由转发只是用目标IP地址,不对源IP做验证
- 场景:On-path/Off-path
- 防范措施:
- 使用随机化的初始序列号
- 使用网络层安全传输协议如IPsec
- 避免采用基于IP地址的信任策略。
- 在路由器和网关上实施包检查和过滤。
- 真实源IP地址验证。
依赖于IP源欺骗的其他网络协议攻击
- ICMP Smurf放大攻击:Smurf攻击向路由器发送大量的ICMP协议报文。这会触发每个连接的设备向欺骗地址做出响应。(DDoS)
- DNS放大攻击。
- ICMP路由重定向
- TCP RST
- DNS Spoofing
- DDoS:SYN/UDP Flooding。
ARP欺骗
- ARP:将IP地址映射为物理地址MAC。
- ARP欺骗:发送伪造的APR消息,对特定IP所对应的MAC地址进行假冒。
应用场景
- 利用ARP欺骗进行交换网络中的嗅探
- 构造中间人攻击,从而实施TCP会话劫持。
- ARP病毒传播。
- ARP欺骗挂马。
防范措施
- 静态绑定关键主机的IP与MAC映射。
- 使用VLAN虚拟子网细分网络拓扑。
- 加密传输数据。
- 使用ARP防火墙。
ICMP 路由重定向攻击
- 概念:伪装成路由器发送虚假的ICMP路由路径控制包围,使受害主机选择攻击者指定的路由路径。
- 目的:嗅探或假冒攻击。
- 软件:Netwox
- 防范:
- 根据类型过滤一些ICMP数据包。
- 设置防火墙过滤。
- 对于重定向报文判断是否来自本地路由器。
RST攻击
- 概念:通过伪造TCP 重置报文,强制关闭TCP会话连接。
- 场景:恶意拒绝服务攻击,重置入侵,GFW。
- 原理:
- 条件:通讯目标接收TCP包(IP一致,序列号在窗口内)
DNS Spoofing
- 攻击过程:嗅探DNS请求包,注入假冒DNS
- 特性:攻击者能够获取攻击所需的所有信息,注入相应包比真的相应包更早到达受害者。受害者可能接收到多个应答包,竞赛法则。
TCP/IP网络协议栈攻防措施
- 网络接口层:防止嗅探。
- 互连层:检测和过滤技术,增强防火墙等安全策略;关键服务器静态绑定IP映射表
- 传输层:加密传输,安全控制机制。
- 应用层:加密,用户级身份认证;数字签名;
- 安全协议:
- SYN Flood:服务器收到一个SYN后不立即分配缓冲区。
第九章 无线网络和移动中断安全威胁
- 802.11安全弱点:
- 广播网络,共享介质:没有明确的边界,无法有效控制;很难探知窃听、发送点的位置,难以追溯攻击。
- 威胁:窃听、注入、信道抢占/干扰、身份假冒
- 网络连接过程
- 搜索无线网络:信道扫描
- 认证
- 关联:响应关联强求,DHCP分配IP
- 网络攻击
- 无线网络踩点:侦察无线网络和接入点,无线踩点:漫步,自行车,驾车
- 踩点软件:NetStumbler:基于Windows,GPS,对禁用广播请求的AP无效
- Kismet。Linux
- WIFI加密方式
- 不加密:开放网络。
- WEP:RC4,CRC32校验,存在缺陷,极易破解。AirCracl NG破解工具
- WPA/WPA2:预先共享密钥,外部身份认证服务(AES等)
- WiFi安全机制:
- MAC地址过滤
- 禁止SSID广播
- 移动终端恶意代码
网络攻击基础
https://adamyoung71.github.io/2019/04/27/2019-4-27-Network-attacking-fundamentals/