密码攻击之在线攻击工具
密码测试是安全测试中必不可少的一环,在线攻击多为一个服务远程连接并使用用户名与密码破解。
Cewl
Cewl可以通过爬行网站获取关键信息创建一个密码字典。比如说爬行一个URL,它通过提取返回页面源码中的一些特定标签中的内容,然后把这些内容组合成一个字典。这对管理员密码特定的枚举更高效,字典价值也就更大。
CAT
思科安全审计工具,扫描Cisco路由器的一般性漏洞,例如默认密码,SNMP,community字串和一些老的IOS bug(思科操作系统) 。
Findmyhash
在线哈希破解工具,借助在线破解哈希网站的接口制作的工具。使用方法很简答,如输入命令findmyhash MD5 -h 哈希
,连接各个网站的接口测试能否反查到该哈希的原字符串,从而破解MD5的哈希。
root@kali-Jspo:~# findmyhash MD5 -h c4ca4238a0b923820dcc509a6f75849b
Cracking hash: c4ca4238a0b923820dcc509a6f75849b
Analyzing with digitalsun.pl (http://md5.digitalsun.pl)...
... hash not found in digitalsun.pl
...
...
...
Analyzing with my-addr (http://md5.my-addr.com)...
***** HASH CRACKED!! *****
The original string is: 1
The following hashes were cracked:
----------------------------------
c4ca4238a0b923820dcc509a6f75849b -> 1
Hydra
Hydra支持对各种服务的破解,xhydra 是其图形化页面版本。
hydra -L user.txt -P pass.txt -F ftp://127.0.0.1:21 破解FTP服务
hydra -L user.txt -P pass.txt -F ssh://127.0.0.1:22 破解SSH服务
hydra -L user.txt -P pass.txt -F smb://127.0.0.1 破解SMB服务
hydra -L user.txt -P pass.txt -F mssql://127.0.0.1:21 破解MSSQL账号密码
如要破解本机ssh,首先用命令service ssh start
打开ssh服务,执行命令hydra -l root -P ~/pass.txt -F ssh://127.0.0.1:22
,如果能猜解得到用户名密码,则可看到高亮显示。
Medusa
类似于Hydra的一款工具,使用方法类似。
medusa -u root -P ~/pass.txt -M ssh -h 127.0.0.1
NCrack
Ncrack是一个高速的网络认证破解工具,突出了RDP(3389)爆破功能。命令如:
ncrack -vv -U windows.user -P windows.pwd 192.168.1.101:3389,CL=1 -f
Onesixtyone
snmp扫描工具,用于找出设备上的SNMP Community 字串,扫描速度非常快。
Patator
全能暴力破解测试工具,采用模块化设计并具有灵活的可用性。
patator ssh_login host=127.0.0.1 user=root password=FILE0 0=pass.txt -x ignore:mesg='Authentication failed.'
THC-PPTP-Bruter
针对PPTP VPN端点(TCP端口1723)的暴力破解程序。支持最新的MSChapV2验证,对windows和Cisco网关测试通过,用以探测微软的Anti-Brute Force Implementation中存在的一个漏洞,并通过此漏洞,尝试以每秒300个密码进行暴力破解。
密码攻击之离线攻击工具
在线密码攻击在渗透测试中很重要,但对于测试过程中得到的哈希,加密数据,有需要离线破解工具辅助解决。
creddump套件
- cache-dump:Windows系统将用户信息和密钥存储在系统存档文件和安全存档中。只要提取这些内容,就可以获取用户信息和密码哈希值。
lsadump:LSA是Windows系统本地安全认证的模块。它会存储用户登录其他系统和服务用户名和密码,如VPN网络连接、ADSL网络连接、FTP服务、Web服务
pwdump:Windows运行过程中SAM被锁定,不能直接复制或编辑Windows口令,Pwdump可以将Windows口令从SAM文件中提取出来,并存储在指定的文件中。
chntpw
用来修改 Windows SAM 文件实现系统密码修改,亦可在kali作为启动盘时做删除密码的用途。
crunch
实用的密码字典生成工具,可以指定位数生成暴力枚举字典。
fcrackzip
zip压缩包密码破解工具。
首先使用命令zip -P jspo 1.zip 1.py
生成一个带有密码的zip压缩包,然后使用fcrackzip -b -v -c a -l 1-4 -u 1.zip
进行破解。
hashcat
Hashcat系列软件是比较强大的密码破解软件,系列软件包含Hashcat、oclHashcat;还有一个单独新出的oclRausscrack。其区别为Hashcat只支持cpu破解;oclHashcat和oclGausscrack则支持gpu加速。oclHashcat则分为AMD版和NIVDA版。
hashid
一款简单易用的哈希分析工具,可以判断哈希或哈希文件是何种哈希算法加密的。
hash-identifier
无独有偶,hash-identifier是一款与HashID类似的一款工具。
John the ripper
试图破解某个特定的密码散列,常用于Linux shadow 中账户的密码破解。Johnny将John图形化。
例如我们对本机的系统哈希进行密码破解。
可以看到John为我们破解出了用户“root”和“po”的密码(密码如果出现在密码列表中,John就能够破解;如果未出现,则会破解失败)。使用show选项,可以列出所有被破解的密码。
Ophcrack
利用彩虹表来破解 Windows密码的工具,对应有命令行版的ophcrack-cli。主要有Load、Delete、Save、Table、Crack、Help 和 Exit 七大主要模块。
点击Table设置彩虹表,红色代表没有安装。在官网中下载彩虹表放在指定目录table下,选中所需条目,点击install进行安装。安装成功后,条目会变为绿色。
Load所要破解的文件(这里我们选择Single hash,点击Crack即可破解出来密码。
Pyrit
Pyrit是一款无线网络密码破解工具,借助GPU加速,可以让WAP2密码破解更效率。
pyrit -r xxx.cap analyze 使用analyze检查抓到的包
pyrit -r xxx.cap -i yyy.dic -b ssid attack_passthrough 开始解包(单纯字典)
crunch 8 8 1234567890 | pyrit -i - -r xxx.cap -b ssid attack_passthrough 生成8位由1234567890组成的字典供pyrit使用
Rcrack
彩虹表密码哈希工具,使用第一代彩虹表(RT格式)。使用彩虹表可以大幅度加速哈希破解的进度,但要有足够容量的彩虹表,这也是所谓用硬盘的空间换取破解的时间。
Rcracki_mt
支持最新格式的彩虹表进行哈希破解。
Rsmangler
字典处理工具,可以生成几个字串的所有可能组合形式,在生成社工字典时亦可用到,可以有选择的关闭某些选项。
例如,我们创建一个test文件,其中有关键词root和test,然后输入命令rsmangler -f ~/test
,便能得到所有可能的字串(拼接test中出现的字符)。
Samdump2与BKhive
Linux下破解windows下哈希工具
首先获取win下的SAM文件(C:\windows\sysytem32\config\SAM)和system文件(C:\windows\system32\config\system)
用bkhive从system文件生成一个bootkey文件
bkhive system bootkey
再用bootkey和SAM文件通过samdump2生成一个密码哈希文件
samdump2 SAM bootkey > hashes
接着用John破解John hashes即可
SIPCrack
SIPCrack是针对SIP protocol协议数据包的破解工具,支持PCAP数据包与字典破解
Truecrack
针对TrueCrypt加密文件的密码破解工具。
密码攻击之哈希传递
passing the hash,中文一般翻译为hash传递攻击,在windows系统中,系统通常不会存储用户登录密码,而是存储密码的哈希值,在我们远程登录系统的时候,实际上向远程传递的就是密码的hash值。当攻击者获取了存储在计算机上的用户名和密码的hash值的时候,他虽然不知道密码值,但是仍然可以通过直接连接远程主机,通过传送密码的hash值来达到登录的目的。
Passing the hash套件
要进行哈希传递攻击,首先我们要有目标主机的哈希信息,以Pwdump7抓取hash为例,pth套件每个工具都针对win下响应的exe文件,如使用pth-winexe可以借助哈希执行程序得到一个cmdshell。后面是要操控的主机的IP地址,cmd可以得到一个反弹的shell。例如在这个shell中,我们可以看ip地址,看系统信息等等
Keimpx
一款Python编写的哈希传递工具,可以通过已有的hash信息get一个后门shell 。
无线安全分析工具
随着无线网络的兴起,kali Linux下为我们准备了丰富的无线网络攻击套件。由于无线网络攻击测试需要硬件设备支持,故对这些工具我们只在理论上加以介绍。kali下无线安全分析工具包括RFID与NPC工具(与之相关的是IC卡的攻击与破解,生活中形形色色的饭卡,工卡,房卡,水卡都可以成为攻击测试的目标)、软件定义无线电工具、蓝牙Hack工具与常规无线网络分析工具(BackTrack系列曾以此闻名,包括Aircrack-ng无线网络分析套件等工具)。
Aircrack-ng
与802.11标准的无线网络分析有关的安全软件,主要功能有网络侦测,数据包嗅探,WEP和WPA/WPA2-PSK破解。Aircrack-ng可以工作在任何支持监听模式的无线网卡上并嗅探802.11a,802.11b,802.11g的数据。套件内容包含:
Cowpatty
知名的WPA-PSK握手包密码破解工具
EAPMD5PASS
针对EAP-MD5的密码破解工具
Fern Wifi Cracker
图形化界面工具。如果有外置的无线网卡,需要在虚拟机中把无线网卡勾选在kali下,就能通过接口扫描周围的无线网,扫描之后可以做进一步的攻击测试。
MDK3
无线DOS攻击测试工具,能够发起Beacon Flood、Authentication DoS、Deauthentication/Disassociation Amok等模式的攻击,另外它还具有针对隐藏ESSID的暴力探测模式、802.1X渗透测试、WIDS干扰等功能。
wifite
自动化的无线网审计工具,可以完成自动化破解,由Python脚本编写,结合Aircrack-ng套件与Reaver工具
Reaver
利用了WPS的一个弱点(WPS功能是路由器与无线设备之间的一种加密方式,它与设备中硬编码保存的一个PIN码绑定在一起)。Reaver对开启WPS的路由器的PIN码进行破解,只要有足够的时间,它就能破解WPA或WPA2的密码。
课本笔记
一、TCP/IP网络协议攻击
1.网络安全的属性:机密性 、完整性 、可用性 、真实性 、不可抵赖性 。
2.网络攻击的基本模式分为:截获(嗅探 与 监听) 、中断(拒绝服务) 、篡改(数据包篡改) 、伪造(欺骗) 。
3.TCP/IP网络协议栈在设计时采用了分层模型,分为:网络接口层 、互联层 、传输层 、应用层。每一层当中都有针对破坏网络安全属性为目的的攻击技术。每一层所涉及的主要协议:
- 网络接口层:以太网协议、PPP协议。
- 互联层:IPv4、ICMP、ARP、DGP。
- 传输层:TCP、UDP。
- 应用层:HTTP、FTP、POP3/SMTP、DNS、SMB。
4.在TCP/IP网络协议栈的攻击技术当中,除了网络嗅探与协议分析技术外,最流行的是欺骗技术(Spoofing)。攻击者伪造出特制的网络数据报文,发送给目标主机,使其在接受处理这些伪造报文时遭受攻击。在类UNIX平台和Windows平台上,攻击者都可以通过使用原始套接字(Raw Socket),绕过TCP/IP协议栈的报文封装处理和验证,构造出任意的数据报文。除了自己编程实现伪造报文外,还有一些可以实施各种网络欺骗攻击的工具软件,如:Netwox、Netwag。
二、网络层协议攻击
1.IP源地址欺骗。根本原因在于IP协议在设计时只使用数据包中的目标地址进行路由转发,而不对源地址进行真实性验证。它最普遍应用于拒绝服务攻击当中。防范措施有:
- 使用随机化的初始序列号
- 使用网络层安全传输协议如IPsec
- 避免采用基于IP地址的信任策略,以基于加密算法的用户身份认证机制来替代这些访问控制策略
- 在路由器和网关上实施包过滤。
2.ARP欺骗。根源在于ARP协议在设计时认为局域网内部的所有用户都是可信的,是遵循协议涉及规范的。它的应用场景很多,比如在交换是网络中利用ARP欺骗技术进行局域网的嗅探,并通过进一步的协议分析窃取敏感信息或是利用ARP协议进行中间人攻击。防范措施:
- 静态绑定关键主机IP地址与MAC地址映射关系
- 使用相应的ARP防范工具
- 使用VLAN虚拟子网细分网络拓扑并加密传输数据以降低ARP欺骗攻击的危害后果。
3.ICMP路由重定向攻击。就是利用ICMP路由重定向报文来改变主机的路由表,向目标机器发送重定向消息,自己写可以伪装成为路由器,使目标机器的数据报发送至攻击机从而加强监听,具体过程会与IP源地址欺骗技术结合实施。防范措施:根据类型过滤一些ICMP数据包,设置防火墙过滤,对于ICMP重定向报文判断是不是来自本地路由器等。
三、传输层协议攻击
1.TCP RST攻击。也称作TCP重置报文攻击,是指一种假冒干扰TCP通信连接的技术方法。
2.TCP会话劫持攻击。目标是劫持通信双方已建立的TCP会话连接,假冒其中一方(通常是客户端)的身份,与另一方进行进一步通信。由于TCP会话劫持为攻击者提供了一种绕过应用层身份认证的技术途径,因此得到了较高水平攻击者的青睐。目前比较普遍的方法是结合ARP欺骗来进行TCP会话劫持。防范措施:
- 禁用主机上的源路由
- 采用静态绑定IP-MAC地址表以避免ARP欺骗
- 引用和过滤ICMP重定向报文
- 采用网络层加密机制,即IPsec协议。
3.TCP SYN Flood 拒绝服务攻击。利用TCP三次握手协议的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而不能够为正常用户提供服务。防范措施:
- SYN-Cookie技术
- 防火墙地址状态监控技术。
4.UDP Flood拒绝服务攻击。利用UDP协议天然的无状态不可靠属性,通过向目标主机和网络发送大量的UDP数据包,造成目标主机显著的计算负载提升,或者目标网络的网络拥塞,从而使得目标主机和网络陷入不可用状态,造成咀拒绝服务供给。防范措施:
- 禁用或过滤监控和响应服务
- 禁用或过滤其他的UDP服务
- 网络关键位置使用防火墙和代理机制用来过滤一些非预期的网络流量。
四、TCP/IP网络协议栈攻击防范措施
- 监测、预防与安全加固
- 网络安全协议。如:网络接口层上的WEP、WPA/WPA2、802.X;网络互联层上的IPsec协议簇;床数层上的TLS;应用层的HTTPS、S/MIME、SET、SSH。
- 下一代互联网协议:IPv6。
五、网络安全防范技术与系统
1.防火墙:指的是置于不同的网络安全域之间,对网络流量或访问行为实施访问控制的安全组件或设备。它的基本功能是控制计算机网络中不同信任程度网络域之间传送的数据流。
2.防火墙技术:包过滤技术、基于状态监测的包过滤(或称动态包过滤)技术、代理技术。防火墙的部署方法有:包过滤路由器、双宿主堡垒主机、屏蔽主机、屏蔽子网。
3.Linux开源防火墙:netfilter/iptable。netfilter是Linux内核中实现的防火墙功能模块,iptables则是应用态的防火墙管理工具。
iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作
表名包括:
- raw:高级功能,如:网址过滤
- mangle:数据包修改(QOS),用于实现服务质量
- net:地址转换,用于网关路由器
- filter:包过滤,用于防火墙规则
规则链名包括:
- INPUT链:处理输入数据包
- OUTPUT链:处理输出数据包
- PORWARD链:处理转发数据包
- PREROUTING链:用于目标地址转换(DNAT)
- POSTOUTING链:用于源地址转换(SNAT)
动作包括:
- accept:接收数据包
- DROP:丢弃数据包
- REDIRECT:重定向、映射、透明代理
- SNAT:源地址转换
- DNAT:目标地址转换
- MASQUERADE:IP伪装(NAT),用于ADSL
- LOG:日志记录
4.其他网络防御技术:VPN、内网安全管理、内容安全管理SCM、统一威胁管理。
六、网络监测技术与系统
1.入侵检测技术就是对入侵行为进行检测与发现,它是防火墙之后的第二道安全屏障。入侵检测系统可分为基于主机的入侵检测系统(HIDS)和基于网络的入侵检测系统(NIDS)。入侵检测系统的体系结构分为集中式、层级式和协作式。入侵防御系统是在入侵检测系统基础上发展出来的一种网络安全技术和产品形态,有时也称为内嵌式IDS,它采用直接在网络边界位置内联连接的方式,并在监测到入侵行为后,直接对所关联的攻击网络连接进行阻断处理。
2.Snort是一款非常著名的开源网络入侵检测系统软件,具有强大的功能:数据包嗅探、数据包记录和分析以及各种入侵检测功能。Snort当中的4个主要部件是:数据包嗅探与解码器、预处理器与插件、检测引擎与插件、输出模块与插件。
七、网络安全事件响应技术
网络安全事件响应是P2DR模型中响应环节的关键技术手段。是指针对那些影响计算机系统和网络安全的不当行为,所采取的措施和行动,旨在阻止和减小事件所带来的影响。计算机安全事件响应小组(CSIRT)是进行网络安全事件应急响应和处理的专业团队。安全事件响应可分为6个阶段:准备、检测、抑制、根除、回复和跟踪。响应过程当中所涉及的关键技术包括计算机取证、攻击追溯与归因、备份恢复与灾难恢复等。