口令破解
口令安全威胁
-概述
现在很多地方都以用户名(账号)和口令(密码)作为鉴权的方式,口令(密码)就意味着访问权限。口令(密码)就相当于进入家门的钥匙,当他人有一把可以进入你家的钥匙,想想你的安全、你的财务、你的隐私、害怕了吧。例如网站后台、数据库、服务器、个人电脑、QQ、邮箱等等
-口令安全现状
@ 弱口令
类似于123456、654321、admin123 等这样常见的弱密码。
@ 默认口令
很多应用或者系统都存在默认口令。比如phpstudy的mysql 数据库默认账密[root/root],Tomcat 管理控制台默认账密[tomcat/tomcat]等。
@ 明文传输
比如http、ftp、telnet 等服务,在网络中传输的数据流都是明文的,包括口令认证信息等。这样的服务,就有被嗅探的风险。
破解方式
-暴力破解
暴力破解就是利用所有可能的字符组成密码,去尝试破解。这是最原始,粗暴的破解方法,根据运算能力,如果能够承受的起时间成本的话,最终一定会爆破出密码。下表是不同字符集合不同位数密码的数量。
字符集 |
密码位数 |
密码空间 |
[0-9] |
8 位 |
10^8=100000000 |
[0-9][a-z] |
8 位 |
36^8=2821109907456 |
[0-9][a-z] |
1-8 位 |
?? |
下图为用真空密码字典生成器,生成的1到8位数的小写字母和数字字典,约占用空间。
-字典破解
如果能通过比较合理的条件,筛选或者过滤掉一些全字符组合的内容,就会大幅降低爆破的成本。我们把筛选出的密码组合成特定的字典。在用字典爆破密码也是可以的,但是这样做有可能会漏掉真正的密码。密码字典大致分为以下几类。
@弱口令字典
比如123456,admin 等这样的默认口令或弱口令。
@社工字典
人们在设置密码的时候,往往为了便于记忆,密码的内容和组合会与个人信息有关,比如常见的密码组合“名字+生日”。社工字典更具针对性,准确率也比较高。
下图为,根据提供的用户信息,使用亦思社会工程学字典生成器生成的用户可能使用的密码,通过此字典进行密码破解。
@字符集字典
如果能确定密码的字符集合,也将大大降低爆破的成本。
windows口令破解
-windows口令远程爆破
我们可以通过NTScan 工具远程爆破windows 口令
工具 |
NTScan |
使用场景 |
本地网络(局域网) |
支持模式 |
139/445| 支持IPC/SMB/WMI 三种扫描模式 |
字典文件 |
NT_user.dic/NT_pass.dic |
如何防止NTscan 扫描?
secpol.msc
本地策略-->安全选项-->网络访问:本地账户的共享和安全模式属性-->仅来宾模式。
-windows账户hash值破解
除了可以从远程爆破windows 密码,我们还可以在本地破解windows 密码。本地windows 账户破解主要有两种方式。
@ 从内存中读取windows 密码
我们可以是用getpass 直接从windows 系统内存中读取庄户密码。
@ windows hash 值破解
windows hash 值破解一共需要两步操作。首先我们使用QuarksPwDump工具读取(导出)windows 账户密码hash 值,然后再使用SAMinside 工具破解hash 值。
实验:windows 口令远程爆破
-环境说明
win7 |
攻击机 |
桥接 |
与win2008 同一内网 |
win2008 |
靶机 |
桥接 |
10.10.20.60 |
使用NTScan进行扫描之前,查看密码字典。
用户名字典。
-配置NTscan
输入起始IP,其他默认保持不变,点击开始,等待扫描结束。如果爆破密码,会出现在软件的下方。
由此可见,我们已经爆破出来windows2008的账密[administrator/123.com]。
-深度利用
左键点击这个地址,会出现一个Connect,点击可以进入一个NTcmd界面。
我们可以在NTcmd中输入命令,如下图:
此时密码破解成功,可以看到我们为system权限。
实验:windows hash 值破解
-导出windows 密码hash 值
先在windows7虚拟机中打开一个cmd窗口,把QuarksPwDump这个软件托到命令行中。
拖到命令行之后,回车出现以下界面:
我们需要进入到QuarksPwDump软件所在的根目录
输入QuarksPwDump.exe –dhl命令,导出windows 账户hash 值。注:在导出hash值时,会闪退一下,重新操作一遍会看到以下内容。
将得到的hash值复制到hash.txt文档中。
-使用SAMside 破解hash 值
打开SAMinside软件,破解hash值,具体使用方法见下图。
将我们的hash.txt文件打开。
打开文件后,就会自动将我们的windows7的密码破解出来了。
由于我们本课程中的素材使用的密码比较简单,所以直接会显示出密码,实际上SAMside 支持暴力破解、字典破解、掩码攻击等方式。
linux口令破解
linux 口令破解,也分远程破解与本地破解。远程破解主要是爆破ssh 服务,属于在线密码攻击。本地破解需要拿到linux 的shadow 文件,进行hash 值破解,属于离线密码攻击。
-破解SSH服务
我们使用hydra 攻击破解ssh 服务,hydra 攻击已经自动集成在kali 虚拟机中。命令如下
hydra -l root -P /root/dic/test_pwd.dic 10.10.20.79 ssh -vV
在命令行输入hydra,出现以下内容
可以看到,我们的hydra是8.3版本的。
准备两个字典,test_pwd.dic和test_user.dic,由于做实验,可以自己编写一个用户名字典和密码字典
将kali虚拟机接为桥接模式,用ifconfig命令查看IP地址,并输入命令hydra -l root -P /root/dic/test_pwd.dic 10.10.20.79 ssh -vV爆破ssh服务密码。
-本地shadow文件破解
我们可以使用john 工具,破解shadow 密码文件。
john 有windows 版和linux 版本。john 也是自动集成在kali 中。john 破解的时候也需要准备一个字典。
john 的具体命令如下
john --wordlist=/root/dic/test_pwd.dic /etc/shadow
john --show /etc/shadow
网络服务口令破解
在渗透测试中,我们同样会对各种服务的口令进行审计。
-破解MSSQL 口令
本实验,需要搭建一个SQL server2000服务管理器,开启后在kali虚拟机中输入以下命令:
hydra -l sa -P /root/dic/test_pwd.dic 10.10.20.87 mssql -vV
-破解RDP口令
@开启RDP 服务
右键计算机à属性à远程设置à远程à勾选运行任意版本远程桌面的计算机连接。
使用命令netstat -an 查看3389端口是否开启。
@打开kali虚拟机输入以下命令,进行爆破
hydra -l administrator -P /root/dic/test_pwd.dic 10.10.20.75 rdp -vV
-破解FTP口令
打开我们的kali虚拟机,输入以下命令:
hydra -L /root/dic/test_user.dic -P /root/dic/test_pwd.dic 10.10.20.81 ftp -vV
进行爆破FTP服务器
结果如下
在线密码查询网站
在线密码查询网站主要是查询md5 hash 值得。这样的网站有:
www.cmd5.com
pmd5.com
附录:FTP 服务器的搭建
-搭建FTP 服务器
准备一台windows2003虚拟机,并在虚拟机中搭建FTP服务器。具体的FTP服务器搭建过程见网络部分。
-新建FTP 站点
FTP搭建完成后,需要新建FTP站点,具体操作如下:
配置完成后,点击应用,然后确定。
-添加账户
添加用户,开始--控制工具--计算机管理。
系统工具---本地用户和组--用户--右键 新用户
-设置权限
打开FTP站点--右键权限
为刚刚添加的用户设置权限。
重启一下FTP站点,然后使用netstat -an命令,查看21端口是否开启。