读书笔记(3)- 口令攻击|Win&Linux&FTP
提要:
口令认证是身份认证的一种手段,计算机通过用户名进行身份标识,通过口令对访问者是否拥有该用户名对应的真实身份进行鉴别。
口令攻击包括强力攻击、字典破解和字典混合破解的方法。根据是否能掌握口令加密算法和口令数据的情况,采用在线破解和离线破解的方式。
这一章对Windows和Linux两种操作系统进行了口令破解验证,并以FTP服务器为例,验证对于远程服务器的攻击测试方法。
1. 基础知识
1.1 Windows系统下的口令存储
Win系列的操作系统使用安全账户管理器(Security Account Manager,SAM)进行用户和口令管理,SAM通过系统唯一的安全标志(SID)标示用户,SID跟随账户同时创建和删除。安全账户管理器使用SAM数据库存储系统中所有的用户组与用户账户的信息,包括口令hash、SID等。SAM数据库主要通过偏移量和长度来定位内容,单个账号的信息集中存放在一起。因此,系统口令的静态破解可以通过获取并分析SAM数据库文件来进行。
1.2 Linux系统下的口令存储
Linux系统用户的口令保存在加密后的文本文件中,一般放在/etc目录下的passwd文件中,包含用户名、加密口令、用户ID、组ID等信息,基本格式为: username:password:uid:gid:comments:directory:shell 。默认安装时,Linux使用shadow机制,即将passwd中的加密口令导出到shadow中。shadow文件的每一行包含9个域,基本格式为: username:password:lastchg:min:max:warn:inactive:expire:flag 。
其中,lastchg域表示从1970.1.1起到最近一次修改口令经过的天数;min域表示两次修改口令之间的最小间隔天数;max域表示口令仍然有效的最大天数;warn域表示在口令失效前多少天里系统应该给用户以警告提示;inactive域表示口令失效后,用户账号还将保持有效的天数;expire域表示用户账号失效时距离1970.1.1的天数;flag域保留。
目前,Linux系统出于安全需要,为防止普通用户读取口令文件,将passwd文件一分为二,把与用户口令相关的域提取出来组成shadow文件,并规定只有超级用户才能读取该文件。
1.3 口令攻击常用方法
1)强力攻击就是让计算机尝试字母、数字、特殊字符所有的组合,经过大量计算破解口令。
2)字典破解就是使用字典库中的数据不断进行用户名和口令的反复试探,字典库中包括常用的词、词组、数字及其组合等,并在进行攻击的过程中不断充实丰富。
3)字典混合破解介于字典破解和强力攻击之间,字典破解只能发现字典库中的单词口令,强力攻击虽然能发现所有的口令,但是速度慢,时间长。字典混合破解使用字典单词但是在单词尾部串接几个字母和数字的方法来反复试探。
2. 实验内容
2.1 PWDUMP+LC5破解windows系统口令
实验工具:Windows7 靶机;LC5(L0phtCrack v5.04);PWDUMP
LC5是一款口令破解工具,可用于检测系统用户是否使用了不安全的密码;
PWDUMP是一款windows系统环境下密码破解和恢复工具,可以将win系统的口令散列,包括NTLM和LM口令散列从SAM文件中提取出来存储到指定的文件中。
实验步骤:
(1)在靶机的cmd中使用 net user 命令添加测试用户;eg net user test 736873 /add
(2)命令行运行PWDUMP,提取SAM文件中的口令散列,存储到txt文件中; pwdump7 > 2.txt
(3)打开LC5,导入PWDUMP提取得到的文件,自动加载系统用户信息;会话设置选项中可以选择破解方式,并对破解方式进行相关设置;然后破解得到口令。
(4)设置一些口令策略,可以提高口令破解的难度。命令行执行 secpol.msc 命令,打开本地安全策略,可在“安全设置”-“账户策略”-“密码策略”中对口令设置一些要求。
2.2 彩虹表破解windows系统口令
实验工具:Windows7 靶机;彩虹表工具Ophcrack
彩虹表是一个庞大的、针对各种可能的字母组合预先计算好的哈希值的集合,各种算法都包含,可以快速破解各种密码。越复杂的密码,需要的彩虹表越大,主流的彩虹表都在100GB以上。可以根据破解密码的复杂度,下载不同大小的彩虹表。
Ophcrack是一个使用彩虹表破解windows系统环境下的口令散列的程序,可进行口令提取、散列表加载以及口令破解。资料:http://www.ha97.com/4009.html
实验步骤:
(1)添加测试用户;
(2)Ophcrack和彩虹表的安装和使用,安装Ophcrack,将彩虹表文件下载并解压到安装目录...
(3)Load按钮加载口令散列,可以选择“Local SAM with samdump2”,该操作将从SAM文件中提取口令散列并加载;
(4)Crack按钮即可开始破解。
2.3 John the Ripper破解Linux系统环境下的口令
实验工具:Ubuntu12.04 靶机;John the Ripper(资料一、二、三)
John the Ripper是免费的开源软件,可用于在已知密文的情况下尝试破解出明文。该软件支持目前大多数的加密算法,如DES、MD4和MD5等,支持多种不同类型的系统架构,包括UNIX、Linux和Windows。主要用于破解设置相对简单的UNIX/Linux系统环境下的密码。
实验步骤:
(1)在靶机系统中,进入root下,添加测试用户test,并设置密码; useradd test / passwd test
(2)下载、编译运行John the Ripper;参照资料一中的第一部分
(3)在John the Ripper的安装目录下的run子目录中,john.conf文件是破解选项的配置文件,在其中可以对某些字段的取值进行修改;
(4)在run子目录下,执行 john /etc/shadow 命令,进行口令破解;
(5)使用命令 john --show /etc/shadow 可以明文显示shadow文件中的内容。
2.4 远程服务器口令破解
实验工具:Windows7 靶机;FileZilla;ftpscan
FileZilla是免费开源的FTP软件,分为客户端版本和服务器端版本。本实验需要在靶机上安装服务器版本。ftpscan是基于命令行的FTP弱口令扫描小工具,速度快、使用简单。
实验步骤:
(1)在靶机上安装FileZilla FTP服务器,默认选项即可;
(2)在FTP服务端添加用户test并设置密码;
(3)ftpscan.exe工具下载到攻击机上,conf文件夹下是字典文件,分别为用户名字典和口令字典;
(4)在攻击机命令行下,执行 ftpscan.exe xxx.xxx.xxx.xxx ,针对FTP服务器进行在线破解;
(5)在FileZilla FTP服务器主界面,可以设置开启日志记录,在日志中可以看到请求连接的过程,如果遇到扫描攻击后,可以从日志文件中查看到来自同一IP的大量连接尝试。