口令攻击
身份认证是保护信息系统安全的第一道防线,口令是应用最广泛的身份认证方法,因此口令攻击是入侵用户系统或网络的重要手段
下图为网络认证过程
口令分为静态和动态口令:
- 静态口令:用户登录系统的用户名和口令一次性产生,在使用过程中总是固定不变
- 动态口令:也称一次性口令,用户登录过程中,基于用户口令加入不确定银子,对用户口令和不确定因子进行单向散列函数变换,得到结果作为认证数据提交给认证服务器,服务器对比自己用同样算法计算出的数值和用户提交数据对比来实现身份认证
口令攻击的分类:
- 攻击过程中是否利用用户个人信息:漫步攻击和定向攻击
- 攻击是否需要与服务器交互:在线攻击和离线攻击
- 攻击者获取口令方式:针对口令强度攻击、针对口令存储攻击、针对口令传输攻击
针对口令强度的攻击
即:猜测推断+暴力破解
强口令和弱口令
强口令特点:
- 不容易被发现规律,且有足够长度
- 对长度的要求随应用环境的不同而不同,使得攻击者在某个时间段内很难破解
- 采取一些变通方法如:适当变形英文单词、根据键盘位置转换口令
攻击方法
- 字典攻击:使用概率较高的口令集中存放在字典文件中,通过不同的变异规则生成猜测字典
- 强力攻击:计算机暴力破解所有组合
- 组合攻击:介于字典和强力攻击之间,在字典尾部添加任意个字母或数字
- 撞库攻击:收集网上已泄露的用户名、口令等信息,使用它们尝试登陆其他网站
通常有了拖库(攻击并盗取有价值网络站点的数据库)和洗库(黑色产业链将有价值数据变现),才有了撞库;下图是整个流程
- 彩虹表攻击:破解哈希算法的技术,可以破解MD5、HASH等
针对口令存储的攻击
通常系统为了验证的需要,将口令以明文或密文的形式存放在系统中,这时可以采取远程控制或本地操作目标主机,以一些技术手段获取口令
攻击方法
针对缓存口令的攻击
一个系统不管口令存储在什么位置,在进行身份验证时总要加载到内存中,这时存在口令泄露的风险
如上图使用pwdump.exe工具获取了内存中存在的用户口令散列值
针对口令文件的攻击
- Linux:shadow文件
- Windows:SAM(security account manager,安全账号管理器)
尽管这些口令文件以密文形式存储,但是一旦攻击者获取后仍可以使用离线暴力破解来得到账号和口令
口令的其他存储位置
注册表(windows特有的对象):很多程序会将口令存放在注册表中
硬盘:还原精灵
Windows系统账号口令攻击
windows系统的口令散列在下面几个位置可以找到:
- 注册表:HKEY_LOCAL_MACHINESAM
- SAM文件,windowssystem32configsam
- 恢复盘中,windowsrepair
- 某些系统进程内存中
SAM文件的安全保护措施
- 文件锁定:操作系统运行期间,SAM文件被system账号锁定,即使有管理员权限也无法访问
- SAM在注册表中的备份隐藏起来了
- 不可读:系统保存SAM文件时进行了压缩处理,不具有可读性
Windows的NTLM算法
- 将口令转换为Unicode字符串
- 用MD4对口令进行单项HASH,生成16字节的HASH值
本地获取的方法
- 获取系统自动保存的口令:系统将用户口令保存在硬盘上
- 直接读取Windows系统中的登录口令:系统将用户的口令暂存在内存中
- 破解SAM信息
针对口令传输的攻击
网络环境中需要远程验证用户身份,此时需要被验证方提供用户名和口令等认证信息,攻击者可能通过网络截获响应数据,从而获取目标系统的账号和口令
口令嗅探
在网络上截获认证信息的有效方法是进行嗅探攻击,特别是在局域网上,可以使用嗅探器获得流经同一网段的所有网络数据
嗅探器将系统的网络接口设为混杂模式,可以监听到所有流经同一以太网段的数据包,并存储相关数据到文件中,攻击者会在之后进行下载
要求:运行嗅探程序的主机和被监听的主机必须在同一个以太网段上,在外网主机上执行嗅探没有效果;嗅探程序需要以管理员身份运行
口令嗅探是一种被动的攻击方式,用户很难察觉
键盘记录
口令从键盘输入,所以键盘记录也是一种有效的被动攻击方法:
- 硬件截获:修改主机的键盘接口(PS/2或USB),使之在向主机传递I/O数据同时将信息发送给攻击者,要求攻击者修改硬件
- 软件截获(大多数):作为木马功能的一部分,主要通过监视OS处理键盘输入的接口记录键盘数据
键盘记录的好处:直接获得明文密码
windows中安装钩子(win中的窗口消息处理机制,可以处理键盘按键、鼠标按键、移动消息等)来截获键盘记录
网络钓鱼
phishing,攻击者利用欺骗性的电子邮件和伪造的web站点,欺骗用户输入口令和身份敏感信息,常见的就是游戏、银行、qq盗号
比如steam我以前就见过个钓鱼网站,说是某某游戏服务器维护,领取奖励补偿给你一网址,让你在那顶上登录steam账号,实际就是盗号
网上找了个图steam钓鱼网站有多真? - 哔哩哔哩 (bilibili.com):其实搞过恶意网址检测的一看就很不正常,这个顶域太少见,一般网站为了提高知名度(SEO)都会选取贵一点或常见的顶域com、cn、org之类的,work顶域的我是没见过,进去就会让你输账号密码啥的(现在steam可以设置邮箱验证,异地登录会要求验证key)
防止盗号需要我们不去点那些可疑链接(得懂些恶意网址特征),不在除官网以外的地方输自己的账号密码
重放攻击
信息系统中,为了防止嗅探攻击通常不直接传输明文口令,而是利用口令按照一定的认证协议和加密算法去认证,但协议本身设计不周容易受到重放攻击的威胁
重放攻击:攻击者记录当前的通信流量,以在适当的时候重发给通信的某一方,达到欺骗目的
- 简单重放:攻击者监听通信双方的数据并记录下来,以后再重新发送,达到欺骗目的
- 反向重放:向消息发送者重放数据
口令攻击的防范
- 口令的设置在易记和复杂之间折中,不在所有系统中使用相同的口令,不要记在不安全的地方
- 重要账户使用强口令,不重要的可以降低要求
- 设置口令安全策略
- 采用加密的通信协议,如https
- 区分虚假站点
- Windows关闭不必要服务和端口
- 及时升级杀毒软件,防止木马窃取口令