什么是kali linux web 渗透测试
就是用Kali Linux上面的工具对某个Web网站进行渗透,这个渗透的过程是一个完整的入侵的过程,从而测试Web网站是否有被入侵的可能,并找出网站所存在的漏洞,最后可能还要向对方提交一份渗透测试报告。
Kali从入门到银手镯(二):开启WPS的无线网络渗透测试
很多无线路由器都支持WPS(Wifi Protection Setup)功能,它是一种可以让用户无需密码直接连接Wifi的技术。本来这种技术的初衷是让用户更加方便的连接网络,但是因为它有严重的安全漏洞,所以反而让用户的网络更加不安全。因此在这里推荐大家使用路由器的时候没事就把WPS功能关掉。
因为要进行渗透测试,所以首先我先把自己路由器的WPS功能开启,当然测试结束之后别忘了关闭WPS功能。
使用前一篇文章介绍的方法安装好Kali虚拟机或者U盘系统,然后就可以准备开始了。
当然这里使用到的工具并不是只有Kali能用,其他Linux发行版也可以使用。但是还是推荐Kali,因为很多渗透测试工具都是按照安防论文的理论来实现的,很多都已经不再维护了。而Kali收集了很多尚在维护的工具分支,如果你使用其他发行版的话,可能其软件仓库中的版本还是原来的旧版本。
本文比较简单,涉及到的工具有两个,reaver和aircrack-ng。
我用的是台式机安装的Kali虚拟机系统,自然是没有无线功能的,所以需要一块无线网卡。值得称道的是现在Linux驱动非常完善了,我原来买的360无线网卡可以直接驱动成功。
连接方法也十分简单,电脑插上无线网卡,然后在VMware软件右下角找到无线网卡的图标,点击并选择连接到虚拟机,这样就大功告成了。整个系统可能会卡几秒钟,之后就正常了。
连接成功后,在Kali虚拟机中应该可以看到Wifi图标了,用lsusb命令还可以查看到无线网卡的厂商和具体型号,可以看到我的无线网卡具体型号是MT7601U。
首先输入 sudo airmon-ng 命令查看一下当前系统中的无线网卡,在Kali中这个接口名默认应该是wlan0。
然后输入下面的命令关闭可能影响网卡监听的程序,然后开启监听模式。开启完毕之后,再次输入 sudo airmon-ng ,应该就会看到这次接口名变成了wlan0mon,这样就说明成功开启了监听模式,可以进行下一步了。
输入下面的命令开始扫描附近的无线网络。
稍后应该就会显示出附近开启了WPS的所有网络了,dBm是信号大小,值越小说明信号越强,按Ctrl+C即可中断命令。如果想要查看所有网络的话,可以添加 -a 参数,它会列出所有网络(包括了未开启WPS功能的网络)。
这时候就要记下来网络的BSSID(网络Mac地址)以及ESSID(网络名称),准备好下一步的工作了。
好了,下面就可以开始正式的工作了,其实说起来原理也很简单,WPS PIN是一个8位数字密码,所以其实我们要做的就是不断的尝试,最终找到这个PIN。总共需要尝试的次数有一亿次,看起来这个数字非常大,但是在安全领域,一亿次算是一个非常小的次数了,很多加密算法要攻破甚至需要全世界所有计算机同时计算几百年。
当然要搞定WPS的PIN并不需要这么长时间,最多10来个小时就可以了,平均用时可能也就4-5个小时左右。而且一旦知道了PIN,获得WIFI密码仅需要数秒即可搞定。之后只要PIN码没有发生变化,就算WIFI密码被修改,也可以很轻松的搞定。
接下来就要轮到本文的主角登场了,这就是reaver,专门用于破解WPS Wifi网络的工具。输入 -h 参数即可查看帮助信息,这里简单列出一些我们要使用的参数。
详细参数参考reaver的帮助,并不难懂。
了解了reaver命令行的用法之后,就可以正式开始了。很多时候一次可能并不能成功,需要尝试多次。
因为是测试,所以我干脆直接指定了PIN的值。为了更详细的了解命令运行过程,可以开启2级或者3级输出看看reaver工具到底干了啥。
如果出现了下面的bad FCS,可以在添加 -F 参数忽略帧校验错误,然后再次尝试。
如果一切正常的话,应该会在几分钟内通过PIN解开WIFI的密码。如果不知道PIN密码的话,也可以通过几个小时的尝试来试出PIN进而得知WIFI密码。因此我们在日常使用的时候,一定要记得关掉WPS功能,它是很多漏洞的根源。
Kali Linux 无线渗透测试入门指南 第四章 WLAN 加密缺陷
即使做了最充分的预测,未来始终是不可预测的。WLAN 委员会设计了了 WEP 和 WPA 作为最简单的加密机制,但是,久而久之,这些机制拥有在现实世界中广泛公布和利用的缺陷。
WLAN 加密机制易受密码学攻击,这有相当长的历史了。这从 2000 年的 WEP 开始,它最后被完全破解。最近,攻击慢慢转向了 WPA。即使当前没有公开攻击方式用于在所有情况下破解 WPA,特殊情况下的攻击还是可行的。
WLAN 在空气中传输数据,所以保护数据的机密性是一种内在需求。使用加密是最佳方案。WLAN 委员会(IEEE 802.11)为数据加密指定了以下协议:
这一章中,我们会看一看每个加密协议,并演示针对它们的多种攻击。
WEP 协议在 2000 年发现漏洞,但是,诧异的是,它仍然被使用,并且接入点仍然自带 WEP 功能。
WEP 中有许多密码学缺陷,它们被 Walker,Arbaugh,Fluhrer,Martin,Shamir,KoreK,以及其它人发现。密码学立场上的评估超出了这本书的范围,并且涉及到复杂的数学。这一节中,我们会看一看如何使用 Kali 中便捷可用的工具来破解 WEP 加密。这包含整个 aircrack-ng 工具套件 -- airmon-ng , aireplay-ng , airodump-ng , aircrack-ng ,以及其它。
WEP 的基础缺陷是使用 RC4 和短的 IV 值,每 224 帧复用。虽然这本身是个大数,但是每 5000 个封包中还是有 50% 的几率重用四次。为了利用这个,我们尝试大量流量,是我们增加重用 IV 的可能性,从而比较两个使用相同密钥和 IV 加密的密文。
让我们首先在测试环境中建立 WEP,并且看看如何破解。
遵循以下指南来开始:
我们在环境中建立 WEP,并成功破解了 WEP 密钥。为了完成它,我们首先等待正常客户端连接到接入点。之后,我们使用 aireplay-ng 工具在网络上重放 ARP 封包。这会导致网络发送 ARP 重放封包,从而增加空中发送的数据封包数量。之后我们使用 aircrack-ng 工具,通过分析数据风暴的密码学缺陷来破解 WEP 密钥。
要注意我们也能够使用共享密钥验证绕过机制,来伪造接入点的验证,这会在后面的章节中学到。如果正常客户端离开了网络,这可以更方便一些。这会确保我们可以伪造验证和关联,并且继续将重放封包发送到网络。
在之前的练习中,如果正常客户端突然断开了网络,我们就不能重放封包,因为接入点会拒绝接受来自未关联客户端的封包。
你的挑战就是,使用即将在后面学到的共享密钥绕过伪造验证和授权,使你仍然能够将封包注入到网络中,并验证接入点是否接受和响应它们。
WPA 或者 WPA v1 主要使用 TKIP 加密算法。TKIP 用于改进 WEP,不需要完全新的硬件来运行。反之,WPA2 必须使用 AES-CCMP 算法来加密,这比 TKIP 更加强大和健壮。
WPA 和 WPA2 允许 基于 WAP 的验证,使用基于 RADIUS 服务器(企业)和预共享密钥(PSK)(个人)的验证模式。
WPA/WPA2 PSK 易受字典攻击。攻击所需的输入是客户端和接入点之间的四次 WPA 握手,以及包含常用口令的单词列表。之后,使用例如 Aircrack-ng 的工具,我们可以尝试破解 WPA/WPA2 PSK 口令。
四次握手的演示见下面:
WPA/WPA2 PSK 的原理是它导出了会话层面的密钥,叫做成对临时密钥(PTK),使用预共享密钥和五个其它参数 -- 网络 SSID、验证者 Nounce (ANounce)、申请者 Nounce (SNounce)、验证着 MAC 地址(接入点 MAC)、申请者 MAC 地址(WIFI 客户端 MAC)。密钥之后用于加密接入点和客户端之间的所有数据。
通过嗅探空气来窃取整个对话的攻击者,可以获得前面提到的全部五个参数。它唯一不能得到的东西就是预共享密钥。所以,预共享密钥如何创建?它由用户提供的 WPA-PSK 口令以及 SSID 导出。这些东西的组合通过基于密码的密钥推导函数(PBKDF2)来发送,它的输出是 256 位的共享密钥。
在典型的 WPA/WPA2 PSK 字典攻击中,攻击者会使用可能口令的大量字典以及攻击工具。工具会从每个口令中导出 256 位的预共享密钥,并和其它参数(之前提到过)一起使用来创建 PTK。PTK 用于在握手包之一中验证信息完整性检查(MIC)。如果匹配,从字典中猜测的口令就正确,反之就不正确。
最后,如果授权网络的口令存在于字典中,它会被识别。这就是 WPA/WPA2 PSK 破解的工作原理。下面的图展示涉及到的步骤:
下个练习中,我们会看一看如何破解 WPA PSK 无线网络。使用 CCMP(AES)的WPA2-PSK 网络的破解步骤与之相同。
遵循以下指南来开始:
我们在接入点上设置了 WPA-PSK,使用常见口令: abcdefgh 。之后我们使用解除验证攻击,让正常客户端重新连接到接入点。当我们重新连接时,我们捕获了客户端和接入点之间的 WPA 四次握手。
因为 WPA-PSK 易受字典攻击,我们向 Aircrack-ng 输入了包含 WPA 四次握手的捕获文件,以及常见口令的列表(以单词列表形式)。因为口令 abcdefgh 出现在单词列表中, Aircrack-ng 就能够破解 WPS-PSK 共享口令。要再次注意,在基于字典的 WPA 破解中,你的水平就等于你的字典。所以在你开始之前,编译一个大型并且详细的字典非常重要。通过 Kali 自带的字典,有时候可能不够,可能需要更多单词,尤其是考虑位置因素。
Cowpatty 是个同样使用字典攻击来破解 WPA-PSK 口令的工具。这个工具在 Kali 中自带。我将其留做练习,来让你使用 Cowpatty 破解 WPA-PSK 口令。
同样,设置不常见的口令,它不出现在你的字典中,并再次尝试。你现在再破解口令就不会成功了,无论使用 Aircrack-ng 还是 Cowpatty。
要注意,可以对 WPA2-PSK 网络执行相同攻击。我推荐你自己验证一下。
我们在上一节中看到,如果我们在字典中拥有正确的口令,破解个人 WPA 每次都会像魔法一样。所以,为什么我们不创建一个大型的详细字典,包含百万个常见密码和词组呢?这会帮助我们很多,并且多数情况都会最终破解出口令。这听起来不错,但是我们错过了一个核心组件 -- 所花费的时间。更多需要 CPU 和时间的计算之一就是使用 PSK 口令和 SSID 通过 PSKDF2 的预共享密钥。这个函数在输出 256 位的与共享密钥之前,计算超过 4096 次二者组合的哈希。破解的下一步就是使用这个密钥以及四次握手中的参数来验证握手中的 MIC。这一步计算了非常大。同样,握手中的参数每次都会变化,于是这一步不能预先计算。所以,为了加速破解进程,我们需要使来自口令的与共享密钥的计算尽可能快。
我们可以通过预先计算与共享密钥,在 802.11 标准术语中也叫作成对主密钥(PMK)来加速。要注意,因为 SSID 也用于计算 PMK,使用相同口令和不同 SSID,我们会得到不同的 PMK。所以,PMK 取决于口令和 SSID。
下个练习中,我们会看看如何预先计算 PMK,并将其用于 WPA/WPA2 的破解。
我们可以遵循以下步骤来开始:
我们查看了多种不同工具和技巧来加速 WPA/WPA2-PSK 破解。主要原理就是对给定的 SSID 和字典中的口令列表预计算 PMK。
在所有我们做过的联系中,我们使用多种技巧破解了 WEP 和 WPA 密钥。我们能拿这些信息做什么呢?第一步就是使用密钥解密我们捕获的数据封包。
下一个练习中,我们会在相同的我们所捕获的记录文件中解密 WEP 和 WPA 封包,使用我们破解得到的密钥。
遵循以下步骤来开始:
我们刚刚看到了如何使用 Airdecap-ng 解密 WEP 和 WPA/WPA2-PSK 加密封包。要注意,我们可以使用 Wireshark 做相同的事情。我们推荐你查阅 Wireshark 的文档来探索如何用它来完成。
我们也可以在破解网络密钥之后连接到授权网络。这在渗透测试过程中非常方便。使用破解的密钥登录授权网络,是你可以提供给客户的证明网络不安全的证据。
遵循以下步骤来开始:
我们连接到了 WEP 网络。
遵循以下步骤来开始:
默认的 WIFI 工具 iwconfig 不能用于连接 WPA/WPA2 网络。实际上的工具是 WPA_Supplicant 。这个实验中,我们看到如何使用它来连接 WPA 网络。
Q1 哪种封包用于封包重放?
Q2 WEP 什么时候能被破解?
Q3 WPA 什么时候能被破解?
这一章中,我们了解了 WLAN 加密。WEP 含有缺陷,无论 WEP 密钥是什么,使用足够的数据封包就能破解 WEP。WPA/WPA2 在密码学上不可破解;但是,在特殊的场景下,例如 WPA/WP2-PSK 中使用了弱口令,它就能够通过字典攻击来获得口令。
下一章中我们会看一看 WLAN 设施上的不同工具,例如伪造接入点,邪恶双生子,位反转攻击,以及其它。
网络安全干货知识分享 - Kali Linux渗透测试 106 离线密码破解
前言
最近整理了一些 奇安信华为大佬 的课件资料+大厂面试课题,想要的可以私信自取, 无偿赠送 给粉丝朋友~
1. 密码破解简介
1. 思路
目标系统实施了强安全措施
安装了所有补丁
无任何已知漏洞
无应用层漏洞
攻击面最小化
社会 工程学
获取目标系统用户身份
非授权用户不受信,认证用户可以访问守信资源
已知用户账号权限首先,需要提权
不会触发系统报警
2. 身份认证方法
证明你是你声称你是的那个人
你知道什么(账号密码、pin、passphrase)
你有什么(令牌、token、key、证书、密宝、手机)
你是谁(指纹、视网膜、虹膜、掌纹、声纹、面部识别)
以上方法结合使用
基于互联网的身份验证仍以账号密码为主要形式
3. 密码破解方法
人工猜解
垃圾桶工具
被动信息收集
基于字典暴力破解(主流)
键盘空间字符爆破
字典
保存有用户名和密码的文本文件
/usr/share/wordlist
/usr/share/wfuzz/wordlist
/usr/share/seclists
4. 字典
1. 简介
键盘空间字符爆破
全键盘空间字符
部分键盘空间字符(基于规则)
数字、小写字母、大写字符、符号、空格、瑞典字符、高位 ASCII 码
2. crunch 创建密码字典
无重复字符
crunch 1 1 -p 1234567890 | more
1
必须是最后一个参数
最大、最小字符长度失效,但必须存在
与 -s 参数不兼容(-s 指定起始字符串)
crunch 4 4 0123456789 -s 9990
读取文件中每行内容作为基本字符生成字典
crunch 1 1 -q read.txt
1
字典组成规则
crunch 6 6 -t @,%%^^ | more
-t:按位进行生成密码字典
@:小写字母 lalpha
,:大写字母 ualpha
%:数字 numeric
^:符号 symbols
输出文件压缩
root@kali:~# crunch 4 5 -p dog cat bird
1
-z:指定压缩格式
其他压缩格式:gzip、bzip2、lzma
7z压缩比率最大
指定字符集
root@kali:~# crunch 4 4 -f /usr/share/crunch/charset.lst mixalpha-numeric-all-space -o w.txt -t @d@@ -s cdab
1
随机组合
root@kali:~# crunch 4 5 -p dog cat bird
1
crunch 5 5 abc DEF + !@# -t ,@^%,
在小写字符中使用abc范围,大写字符使用 DEF 范围,数字使用占位符,符号使用!@#
占位符
转义符(空格、符号)
占位符
root@kali:~# crunch 5 5 -t ddd%% -p dog cat bird
1
任何不同于 -p 参数指定的值都是占位符
指定特例
root@kali:~# crunch 5 5 -d 2@ -t @@@%%
1
2@:不超过两个连续相同字符
组合应用
crunch 2 4 0123456789 | aircrack-ng a.cap -e MyESSID -w -
crunch 10 10 12345 –stdout | airolib-ng testdb -import passwd -
3. CUPP 按个人信息生成其专属的密码字典
CUPP:Common User Password Profiler
git clone
python cupp.py -i
4. cewl 通过收集网站信息生成字典
cewl 1.1.1.1 -m 3 -d 3 -e -c -v -w a.txt
-m:最小单词长度
-d:爬网深度
-e:收集包含email地址信息
-c:每个单词出现次数
支持基本、摘要 身份认证
支持代理
5. 用户密码变型
基于 cewl 的结果进行密码变型
末尾增加数字串
字母大小写变化
字母与符号互相转换
字母与数字互相转换
P@$w0rd
6. 使用 John the Ripper 配置文件实现密码动态变型
2. 在线密码破解
1. hydra
简介
密码破解
Windows 密码破解
Linux 密码破解
其他服务密码破解
图形化界面
xhydra
HTTP表单身份认证
密码破解效率
密码复杂度(字典命中率)
带宽、协议、服务器性能、客户端性能
锁定阈值
单位时间最大登陆请求次数
Hydra 的缺点
稳定性差,程序时常崩溃
速度控制不好,容易触发服务屏蔽或锁死机制
每主机新建进程,每服务新建实例
大量目标破解时性能差
2. pw-inspector
Hydra 小工具 pw-inspector
按长度和字符集筛选字典
pw-inspector -i /usr/share/wordlists/nmap.lst -o p1.lst -l
pw-inspector -i /usr/share/wordlists/nmap.lst -o P2.lst -u
pw-inspector -i /usr/share/wordlists/nmap.lst -o P2.lst -u -m 3 -M 5
3. medusa
Medusa 的特点
稳定性好
速度控制得当
基于线程
支持模块少于hydra(不支持RDP)
WEB-Form 支持存在缺陷
查看支持的模块
参数
-n:非默认端口
-s:使用SSL连接
-T:并发主机数
medusa -M ftp -q
3. 离线密码破解
1. 简介
身份认证
禁止明文传输密码
每次认证使用HASH算法加密密码传输(HASH算法加密容易、解密困难)
服务器端用户数据库应加盐加密保存
破解思路
嗅探获取密码HASH
利用漏洞登陆服务器并从用户数据库获取密码HASH
识别HASH类型
长度、字符集
利用离线破解工具碰撞密码HASH
优势
离线不会触发密码锁定机制
不会产生大量登陆失败日志引起管理员注意
2. HASH 识别工具
1. hash-identifier
进行 hash 计算
结果:5f4dcc3b5aa765d61d8327deb882cf99
进行 hash 识别
2. hashid
可能识别错误或无法识别
3. HASH 密码获取
1. samdump2
Windows HASH 获取工具
利用漏洞:Pwdump、fgdump、 mimikatz、wce
物理接触:samdump2
将待攻击主机关机
使用 Kali ISO 在线启动此主机
发现此 windows 机器安装有两块硬盘
mount /dev/sda1 /mnt
将硬盘挂载
cd /mnt/Windows/System32/config
切换目录
samdump2 SYSTEM SAM -o sam.hash
导出密码
利用 nc 传输 HASH
HASH 值:31d6cfe0d16ae931b73c59d7e0c089c0
2. syskey 工具进行密码加密
使用 syskey 进行加密(会对 SAM 数据库进行加密)
重启需要输入密码才能进一步登录
使用 kali iso live
获取到 hash 值
hashcat 很难破解
使用 bkhive 破解
使用 Bootkey 利用RC4算法加密 SAM 数据库
Bootkey 保存于 SYSTEM 文件中
bkhive
从 SYSTEM 文件中提取 bootkey
Kali 2.0 抛弃了 bkhive
编译安装 :
在windows的 kali live 模式下,运行
samdump2 SAM key (版本已更新,不再支持此功能)
建议使用 Kali 1.x
1. Hashcat
简介
开源多线程密码破解工具
支持80多种加密算法破解
基于CPU的计算能力破解
六种模式 (-a 0)
0 Straight:字典破解
1 Combination:将字典中密码进行组合(1 2 11 22 12 21)
2 Toggle case:尝试字典中所有密码的大小写字母组合
3 Brute force:指定字符集(或全部字符集)所有组合
4 Permutation:字典中密码的全部字符置换组合(12 21)
5 Table-lookup:程序为字典中所有密码自动生成掩码
命令
hashcat -b
hashcat -m 100 hash.txt pass.lst
hashcat -m 0 hash.txt -a 3 ?l?l?l?l?l?l?l?l?d?d
结果:hashcat.pot
hashcat -m 100 -a 3 hash -i –increment-min 6 –increment-max 8 ?l?l?l?l?l?l?l?l
掩码动态生成字典
使用
生成文件
计算 hash 类型
结果 MD5
查看 MD5 代表的值
进行破解
2. oclhashcat
简介
号称世界上最快、唯一的基于GPGPU的密码破解软件
免费开源、支持多平台、支持分布式、150+hash算法
硬件支持
虚拟机中无法使用
支持 CUDA 技术的Nvidia显卡
支持 OpenCL 技术的AMD显卡
安装相应的驱动
限制
最大密码长度 55 字符
使用Unicode的最大密码长度 27 字符
关于版本
oclHashcat-plus、oclHashcat-lite 已经合并为 oclhashcat
命令
3. RainbowCrack
简介
基于时间记忆权衡技术生成彩虹表
提前计算密码的HASH值,通过比对HASH值破解密码
计算HASH的速度很慢,修改版支持CUDA GPU
彩虹表
密码明文、HASH值、HASH算法、字符集、明文长度范围
KALI 中包含的 RainbowCrack 工具
rtgen:预计算,生成彩虹表,时的阶段
rtsort:对 rtgen 生成的彩虹表行排序
rcrack:查找彩虹表破解密码
以上命令必须顺序使用
rtgen
LanMan、NTLM、MD2、MD4、MD5、SHA1、SHA256、RIPEMD160
rtgen md5 loweralpha 1 5 0 10000 10000 0
计算彩虹表时间可能很长
下载彩虹表
彩虹表排序
/usr/share/rainbowcrack
rtsort /md5_loweralpha#1-5_0_1000x1000_0.rt
密码破解
r crack *.rt -h 5d41402abc4b2a76b9719d911017c592
rcrack *.rt -l hash.txt
4. John
简介
基于 CPU
支持众多服务应用的加密破解
支持某些对称加密算法破解
模式
Wordlist:基于规则的字典破解
Single crack:默认被首先执行,使用Login/GECOS信息尝试破解
Incremental:所有或指定字符集的暴力破解
External:需要在主配配文件中用C语言子集编程
默认破解模式
Single、wordlist、incremental
主配置文件中指定默认wordlist
破解Linux系统账号密码
破解windows密码
Johnny 图形化界面的john
5. ophcrack
简介
基于彩虹表的LM、NTLM密码破解软件
彩虹表:
0条大神的评论