20169215 2016-2017-2 《网络攻防实践》/《网络攻击与防范》第六周学习总结
教材学习内容总结
网络安全和网络攻击
网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,从安全属性来看,机密性、完整性和可用性构成了网络安全的三个基本属性,也被国外学者称为信息安全金三角模型(后来网络安全又添加了真实性和不可抵赖性)。
网络攻击有四种基本模式:截获(机密性)、中断(可用性)、篡改(完整性)和伪造(真实性)。截获是被动攻击,攻击技术为嗅探与监听;中断、篡改和伪造属于主动攻击,中断的攻击技术为拒绝服务;伪造的攻击技术为欺骗;篡改的攻击技术为数据包篡改。
TCP/IP网络协议栈安全缺陷和攻击技术
TCP/IP协议栈在设计时采用了分层模型,分为了网络接口层、互联层、传输层与应用层。
网络接口层
网络接口层协议常用的是以太网协议,缺乏对MAC地址源的身份认证机制,可以在发送数据帧时伪装成别的网络接口,实现MAC地址欺骗攻击。网络接口层常用协议还有PPP协议,不提供对其所封装数据完整性和机密性的保障,存在被嗅探和监听的安全隐患。
互联层
互联层基础协议是互联网协议IPv4,其他还包括ICMP、ARP、BGP等动态路由协议。IP协议缺乏IP地址身份认证机制,只使用数据包中的目标地址进行路由转发,不对源地址进行真实性的验证,使用nmap扫描器时,可以通过参数-D
进行IP源地址欺骗;还有源路由选项滥用、IP分片重组缺陷。ARP协议采用广播方式询问确认目标MAC地址并使用ARP缓存机制,却没有对映射关系的真实性进行验证,容易造成ARP欺骗攻击。ICMP协议主要安全缺陷在于攻击者可以利用ICMP重定向报文控制数据包路由路径,实施ICMP路由重定向攻击,也可能被滥用造成拒绝服务攻击。动态路由协议由于缺乏有力的身份认证机制,攻击者可能欺骗并修改路由更新信息,破坏或修改网络路由路径表,造成网络通信的重定向。
传输层
传输层协议主要包括TCP和UDP。TCP建立会话之后的连接过程中,仅仅依靠IP地址、端口和SEQ/ACK号对通信对方进行验证,非常容易遭受伪造和欺骗攻击;TCP三次握手过程可以进行SYN洪泛攻击,进行拒绝服务破坏系统可用性。针对UDP协议的攻击较为少见,比较流行的只有UDP洪泛攻击。
应用层
应用层协议如HTTP、FTP、POP3/SMTP、DNS、SMB等缺乏安全考虑,大多采用明文传输,存在被嗅探监听、欺骗与中间人攻击的风险。
在类UNIX和Windows平台上,攻击者可以通过特权用户权限,使用原始套接字绕过TCP/IP协议栈的报文封装处理和验证,构造出任意数据报文。也可以通过Netwox创建任意的TCP/UDP/IP数据报文,通过执行netwox number -help
查询参数配置格式,一般需要根用户权限运行Netwox大部分工具。
针对传输层最流行的攻击方式有:TCP RST攻击、TCP会话劫持攻击、TCP SYN洪泛拒绝服务攻击和UDP洪泛拒绝服务攻击。
TCP RST攻击
TCP RST攻击即TCP重置报文攻击是一种叫毛干扰TCP通信连接的攻击方法。通过置TCP协议头标志位的“reset”比特位为1来直接切断TCP会话连接,从而达到拒绝服务攻击的目的。
TCP会话劫持攻击
TCP会话劫持攻击是劫持通信双方已建立的TCP会话连接,假冒一方与另一方进行进一步通信,其原因TCP会话建立并在应用层确认了身份之后的会话期间不再进行身份认证,可以通过重定向网络通信和网络嗅探获得序列号等信息。目前比较普遍的方法是结合ARP欺骗来进行TCP会话劫持。
防范TCP会话劫持攻击的措施:
- 禁用主机上的源路由;
- 静态绑定IP-MAC映射表避免ARP欺骗;
- 引用和过滤ICMP重定向报文;
- 采用网络层加密机制,即IPsec协议。
TCP SYN Flood拒绝服务攻击
TCP SYN Flood,即SYN洪泛攻击,是目前最有效和流行的一种拒绝服务攻击形式,利用了TCP三次握手协议的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而不能够为正常用户提供服务。
SYN Flood攻击防范措施:
- SYN-Cookie技术,避免了在连接信息未完全到达前进行资源分配;
- 防火墙地址状态监控技术,通过对网络中的TCP连接进行状态监控和处理,维护每个源IP地址到目标服务器的TCP状态,把伪造的源地址拉黑。
UDP Flood拒绝服务攻击
UDP是无状态、不可靠的,基于这种特性,只要向目标主机和网络发送大量UDP数据包,使目标主机计算负载显著提升或目标网络拥塞。因此,UDP Flood一般用于分布式拒绝服务攻击。
网络安全协议
应用层 | shell:SSH ftp:SFTP http:HTTPS email:S/MIME PKI/SET |
传输层 | SSL TLS |
网络互联层 | IPsec |
网络接口层 | 统一认证协议:802.1x WLAN:WEP/WPA |
防火墙技术
防火墙是目前最成熟的网络防御技术之一,可以在网络协议各个层次上实施网络访问控制机制,对网络流量和访问进行检查和控制。
防火墙最基本的功能就是控制在计算机网络中不同信任程度网络域之间传送的数据流,为网络管理员提供如下安全功能:
- 检查控制进出网络的网络流量;
- 防止脆弱或不安全的协议和服务;
- 防止内部网络信息的外泄;
- 对网络存取和访问进行监控审计;
- 防火墙可以强化网络安全策略并集成其他安全防御机制。
防火墙作为网络边界防护机制,先天无法防范的安全威胁如下:
- 来自网络内部的安全威胁
- 通过非法外联的网络攻击
- 计算机病毒传播
由于技术瓶颈问题,目前还无法有效防范的安全威胁有:
- 针对开放服务安全漏洞的渗透攻击
- 针对网络客户端程序的渗透攻击
- 基于隐蔽通道进行通信的木马或僵尸网络
在防火墙技术和产品发展过程中,形成和广泛采用的技术主要有包过滤技术、基于状态检测的包过滤技术(动态包过滤)、代理技术(网络代理)等。
防火墙大致分为如下几种类型:
- 集成包过滤功能的路由器
- 基于通用操作系统的防火墙软件产品
- 基于安全操作系统的防火前
- 硬件防火墙设备
防火墙部署方法有:
- 包过滤路由器
- 双宿主堡垒主机
- 屏蔽主机
- 屏蔽子网
Linux开源防火墙:netfilter/iptables
netfilter/iptables组合是目前Linux开源操作系统中普遍适用的防火墙技术解决方案,其中netfilter是Linux内核中实现的防火墙功能模块,iptables是应用台的防火墙管理工具。
netfilter/iptables中包含三个最基本的规则表,分别为用于包过滤处理的filter表、用于网络地址转换处理的nat表、用于特殊目的数据包修改的mangle表。
Iptables为用户提供了配置netfilter规则的命令行接口:
iptables [- table] command [match] [target]
其中 -t 指定配置规则所在的表,缺省表包括filter、nat、mangle、raw等;
command 部分是iptables命令的最重要部分,告诉iptables命令要做什么;
Match 部分为规则匹配条件,指定数据包与规则匹配所具有的特征,分为通用匹配和特定协议匹配;
Target 部分指定满足匹配条件之后的目标操作。
Snort
Snort是一款跨平台、轻量级的网络入侵检测西酮,用C语言编写,并采用了标准的捕获数据包函数库 libpcap,具有非常好的可移植性。
Snort具有数据包嗅探、数据包记录和分析、各种入侵检测功能,设计时采用了注重高性能、简单和灵活的原则,基本架构主要由四个基本部分组成:
- 数据包嗅探/解码器
- 预处理器/插件(包括TCP/IP协议栈模拟、应用层协议解码与规范化、异常检测)
- 检测引擎/插件
- 输出模块/插件
教材学习中的问题和解决过程
- 源路由选项不理解
源路由可以分为两类,一类是严格源路由选项(Strict Source Route),一类是松散源路由选项(Loose Source Route)。
严格源路由选项:规定IP数据报要经过路径上的每一个路由器,相邻路由器之间不得有中间路由器,并且所经过的路由器的顺序不可更改。
松散源路由选项:只是给出IP数据报必须经过的一些“要点”,并不给出一条完备的路径,无直接连接的路由器之间的路由尚需IP软件的寻址功能补充。 - ICMP重定向
ICMP重定向报文是ICMP控制报文中的一种。在特定的情况下,当路由器检测到一台机器使用非优化路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由。路由器也会把初始数据包向它的目的地转发。
发生ICMP重定向通常有两种情况:- 当路由器从某个接口收到数据还需要从相同接口转发该数据时;
- 当路由器从某个接口到发往远程网络的数据时发现源ip地址与下一跳属于同一网段时。
视频学习学习
Kali下对密码攻击工具分为了四类:
- GPU工具集
- Passing the Hash
- 离线攻击
- 在线攻击
在线攻击工具
Cewl
Cewl可以通过爬行网站获取关键信息创建一个密码字典。
CAT
CAT是一个很小的安全审计工具,扫描Cisco路由器的一般性漏洞。
Findmyhash
在线哈希破解工具,借助在线破解哈希网站的接口制作的工具。
老牌破解工具Hydra
使用参数很简单易懂:
破解FTP服务:
hydra -L user.txt -P pass.txt -F ftp://127.0.0.1:21
破解SSH服务:
hydra -L user.txt -P pass.txt -F ssh://127.0.0.1:22
破解SMB服务:
hydra -L user.txt -P pass.txt -F smb://127.0.0.1
破解MSSQL账户密码:
hydra -L user.txt -P pass.txt -F mssql://127.0.0.1:1433
Medusa
类似于Hydra的工具,使用方法类似:
如:
Medusa -h 192.168.235.96 -u root -P //wordlists/rockyou.txt -M ssh
NCrack
功能基本相似,但突出了RDP(3389)爆破功能,如使用命令:
ncrack -vv -U windows.user -P windows.pwd 192.168.1.101:2289, CL=1 -f
Onesixtyone
是一个snmp扫描工具,用于找出设备上的SNMP Community淄川,扫描速度非常快。
Patator
Patator是一款Python编写的多服务破解工具,如枚举一个服务用户名密码:
patator ssh_login host=127.0.0.1 user=root password=FILE0 0=pass.txt -x ignore:mesg='Authentication failed.'
phrasen|drescher
是一个多线程支持插件式的密码破解工具。
THC-PPTP-Bruter
是针对PPTP VPN端点的暴力破解程序,泳衣探测微软的Anti-Brute Force Implementation中存在的一个漏洞,并通过此漏洞,尝试以每秒300个的密码进行暴力破解。
离线攻击工具
Creddump
是Kali下离线攻击工具中的Cache-dump、lsadump和pwdump均为creddump套件的一部分,基于Python的哈希专区工具。
Chntpw
用来修改Window SAM文件实现系统密码修改,亦可在Kali作为启动盘时做删除密码的用途。
Crunch
实用的密码字典生成工具,可以指定位数生成暴力枚举字典。
Dictstat
是一款字典分析工具,可以分析出一个现有字典分布状况,也可以按照一定的过滤器提取字典。
Fcrackzip
Kali下的一款ZIP压缩包密码破解工具。
fcrackzip -b -v -c a -l 1-4 -u 1.zip
Hashcat
比较强大的密码破解软件,系列软件包含Hashcat、oclHashcat,还有一个单独的oclRausscrack。Hashcat只支持CPU破解;oclHashcat和oclRausscrack支持gpu加速,oclHashcat分为AMD版和NIVDA版。
参数介绍:
-m (——hash-type=NUM)
-a (——attack-mode=NUM)
Hashid
是一款简单易用的哈希分析工具,可以判断哈希或哈希文件是何种哈希算法加密的。
HashIdentifyer
一款与HashID类似的工具。
John the ripper
常用于Linux Shadow中账户的密码破解。
用john --show johnshadow
显示结果。
Johnny
对应于命令行版的John,Johnny将其图形化。
Ophcrack
彩虹表Windows密码HASH破解工具。对应有命令行版ophcrack-cli。
Pyrit
是一款无线网络密码破解工具,借助GPU加速,可以让WPA2密码破解更效率。
使用analyze找到的包:
pyrit -r xxx.cap analyze
开始跑包(单纯字典):
pyrit -r xxx.cap -iyyy.dic -b ssid attack_passthrough
也可以将PYRIT于CRUNCH结合使用:
crunch 8 81234567890 | pyrit -i - -r /file/hack01 -cap -b bassid attack_passthrough
Rcrack
彩虹表密码哈希工具,使用了第一代彩虹表(RT格式)。
Rcracki_mt
彩虹表哈希破解工具,支持最新格式的彩虹表进行哈希破解。
Rsmangler
字典处理工具,可以生成几个字串的所有可能组合形式,在生成社工字典时也可用到,可以有选择性的关闭某些选项。
Samdump2与BKhive
是Linux下破解Windows下哈希的工具。
首先获取win下的文件:
SAM文件:C:windowssystem32configSAM
system文件:C:windowssystem32configsystem
先用bkhive从system文件生成一个bootkey文件:
bkhive system bootkey
再用bootkey和SAM文件通过samdump2生成一个密码hash文件:
samdump2 SAM bootkey > hashes
接着使用john破解john hashes即可。
SIPCrack
针对SIP protocol协议数据包的破解工具,支持PCAP数据包与字典破解。
SUCrack
借助su命令进行本地root账户的密码破解。
Truecrack
一款针对TrueCrypt加密文件的密码破解工具。
哈希传递
Passing the hash套件
PTH套件每个工具都针对WIN下相应的EXE文件,使用Pth-winexe可以借助哈希执行程序得到一个cmdshell。
Keimpx
是一款python编写的哈希传递工局,可以通过已有的哈希信息GET一个后门SHELL。
使用PWDUMP7抓取哈希,将文件保存至根目录,使用keimpx的-c参数使文件作为凭据。获得shell后,可以通过help命令查看命令使用。后门SHELL绑定的端口号是2090,也可以使用NC
直接连接到一个SHELL。
MEtasploit
模块exploit/windows/smb/psexec也可完成HASH传递攻击。
无线安全分析工具
包括RFID/NFC(与IC卡的攻击与破解相关)、软件定义无线电、蓝牙工具集、无线网络分析工具(BackTrack系列曾以此闻名,包括Aircrack-ng无线网络分析套件等工具)。
Aircrack
Aircrack-ng是一个与802.11标准的无线网络分析有关的安全软件,功能包括:网络侦测、数据包嗅探、WEP和WPA/WPA2-PSK破解。可以嗅探802.11a、802.11b、802.11g的数据。
套件内包含:
name | description |
---|---|
aircrack-ng | 破解WEP以及WPA密钥 |
airdecap-ng | 通过已知密钥解密WEP或WPA嗅探数据 |
airmon-ng | 将网卡设定为监听模式 |
aireplay | 数据包注入工具 |
airodump-ng | 数据包嗅探 |
airtun-ng | 创建虚拟管道 |
airolib-ng | 保存、管理ESSID密码列表 |
packetforge-ng | 创建数据包注入用的加密包 |
Tools | 混合、转换工具 |
airbase-ng | 软件模拟AP |
airdecloak-ng | 消除pcap文件中的WEP |
airdriver-ng | 无线设备驱动管理工具 |
airolib-ng | 保存、管理ESSID密码列表、计算对应的密钥 |
Cowpatty
是一款致命的WPA-PSK握手包密码破解工具。
EAPMD5PASS
是一款针对EAP-MD5的密码破解工具。
图形化的Fern Wifi Cracker
虚线网络分析中,如果使用虚拟机中的Kali Linux,需要外置无线网卡。
MDK3
是一款无线DOS攻击测试工具,能够发起Beacon Flood、 Authentication DoS、Deauthentication/Disassociation Amok等魔石的攻击,还具有针对隐藏ESSID的暴力探测模式、802.11X渗透测试、WIDS干扰等功能。
Wifite
自动化的无线网审计工具,可以完成自动化破解。Python脚本编写,结合Aircrack-ng套件与Reaver工具。
Reaver
对开启WPS的路由器PIN码进行破解。
视频学习遇到的问题
- Findmyhash没办法工作。
2.john分析密码分析了十多分钟,没出结果。
上周考试错题总结
无错题。
学习进度条
时间 | 学习内容 | 博客量 |
---|---|---|
第一周 | Linux基础知识学习 | 1/1 |
第二周 | Kali视频1-5,课本一、二章内容 | 1/2 |
第三周 | Kali视频6-10,课本第三章内容 | 1/3 |
第四周 | Kali视频11-15,课本第四章内容 | 1/4 |
第五周 | Kali视频16-20,课本最后两章内容 | 1/5 |
第六周 | Kali视频21-25,课本五、六章内容 | 1/6 |