一、弱口令的定义
仅包含简单数字和字母的口令,例如“123”、“abc”等,因为这样的口令很容易被别人破解,从而使用户的计算机面临风险,因此不推荐用户使用。
二、弱口令的特点
1、连续字符串(如aaaa,abc等)
2、数字
数字通常会包含个人信息,如生日、身份证号的某几位。
3、字符串+数字;数字+字符串;重复数字或字符串的组合
三、安全口令的要求(有效防止弱口令)
1.不使用空口令或系统缺省的口令,因为这些口令众所周知,为典型的弱口令。
2.口令长度不小于8个字符。
3.口令不应该为连续的某个字符(例如:AAAAAAAA)或重复某些字符的组合(例如:tzf.tzf.)。
4.口令应该为以下四类字符的组合,大写字母(A-Z)、小写字母(a-z)、数字(0-9)和特殊字符。每类字符至少包含一个。如果某类字符只包含一个,那么该字符不应为首字符或尾字符。
5.口令中不应包含本人、父母、子女和配偶的姓名和出生日期、纪念日期、登录名、E-mail地址等等与本人有关的信息,以及字典中的单词。
6.口令不应该为用数字或符号代替某些字母的单词。
7.口令应该易记且可以快速输入,防止他人从你身后很容易看到你的输入。
8.至少90天内更换一次口令,防止未被发现的入侵者继续使用该口令。
四、暴力破解
1、定义
暴力破解,是一种针对于密码的破译方法,将密码进行逐个推算直到找出真正的密码为止。例如一个已知是四位并且全部由数字组成的密码,其可能共有10000种组合,因此最多尝试10000次就能找到正确的密码。而当遇到人为设置密码(非随机密码,人为设置密码有规律可循)的场景,则可以使用密码字典(例如彩虹表)查找高频密码,破解时间大大缩短。
2、暴力破解的方法
1)穷举法
穷举法是指根据输入密码的设定长度、选定的字符集生成可能的密码全集,进行地毯式搜索。例如一个已知是四位并且全部由数字组成的密码,其可能共有10000种组合,因此最多尝试10000次就能找到正确的密码。理论上利用这种方法可以破解任何一种密码,但随着密码复杂度增加,破解密码的时间会指数级延长。
穷举法适用于猜解随机生成的短信验证码等,因为各种随机生成密码出现的概率是一样的,不受人的记忆影响。
2)字典式攻击
字典式攻击是将出现频率最高的密码保存到文件中,这文件就是字典,暴破时使用字典中的这些密码去猜解。
字典式攻击适用于猜解人为设定的口令,因为人为设定受人方便记忆影响不同密码出现的概率是不一样的,12345678、password作为密码的概率比fghtsaer作为密码的概率要高得多。与穷举法相比,字典式攻击虽然损失了较小的命中率但节省了较多的时间。
3)彩虹表攻击
彩虹表攻击也属于字典式攻击,但它是一种高效地破解哈希算法(MD5、SHA1、SHA256/512等)的攻击方式。
网站为了增加安全性,不会直接将用户密码存储在数据库中,而是将密码进行哈希,变成一长串毫无意义的字符,并且哈希算法是不可逆的,没有解密算法可以还原成原来的密码。面对哈希后的密码,破解的方法有两个,一是用穷举法组合出所有的密码可能,然后经哈希加密算法计算,将结果与目标哈希值进行比对,但边计算边比对会耗费海量的时间;二是提前生成可能密码与对应哈希串的对照表,但是对照表将占据海量的磁盘空间,以14位字母和数字的组合密码为例,生成的密码32位哈希串的对照表将占用5.7×10^14 TB的存储空间。
彩虹表是时间空间折中的方法,其核心思想是将明文计算得到的哈希值由R函数映射回明文空间,交替计算明文和哈希值,生成哈希链,将这个链的首尾存储在表中,中间的都删掉,用的时候临时算,那么存储的空间比原来的减少了一半,而计算次数也并没有大量增多。由于在哈希链的计算过程中引入不同的R函数,将不同的R函数用不同的颜色表示,众多的哈希链就会像彩虹一样,所以叫做彩虹表。
使用彩虹表进行破解,普通PC也能达到每秒1000亿次以上的惊人速度。为了增加安全性,可能会多次哈希,例如MD5后再MD5一次;或者在原始密码前后补上一串字符,增加密码长度后再哈希,学名叫加盐(salt),这些算法的结果都可以加入彩虹表中。最完善的彩虹表差不多能破解出目前网上99.9%的密码。
五、容易被暴力破解的口令
许多人设置的密码都过于简单,或者使用电话号码、出生日期、亲人或宠物的名字作为密码,或者在不同网站使用相同密码,这些行为导致密码很容易被破解。
在 2020 年末,NordPass 公布了 2020 年使用率最高的 200 个密码,排名靠前的几个密码分别为 123456、123456789、password、12345678、111111、123123、12345、1234567890、1234567、000000、1234 …… ,除了纯数字,还有各种数字和字母组合,例如:qwerty、abc123 和 picture1 等。
暴力破解不会造成直接的入侵,但攻击者通过暴力破解获得了系统/用户的账号和密码,以此为后续的入侵做准备。对于个人而言,直接从用户那里窃取金钱,或者窃取其身份,身份盗用可能导致进一步的财务损失。对于企业而言,通过暴力破解可以登录Telnet服务、POP3服务和MySQL服务等,登录成功将会导致用户信息泄露、文件共享、邮件泄露或无法正常发送邮件等高危事件。
六、如何防止用户的密码被暴力破解
1、应用层面
- 对登录设置账户锁定。例:在连续输入错误的密码之后,需要间隔一段时间才能输入下一次密码。
- 对登录的设备进行识别,如果是受信任的设备可通过,如果是新设备需要进行用户认证。
2、用户层面
- 使用复杂度较高的密码,如包含大小写字母、数字、特殊字符。
- 定期修改密码。
七、总结
对于弱口令的破解,穷举法对于简单的口令有着“奇效”,但是对于一般的口令,穷举法的工作量太大;字典式攻击,弱口令字典可以存储相关弱口令,相较于穷举法损失了一些命中率(缺),节省了存储空间(优);彩虹表攻击,是针对破解使用哈希算法加密的口令破解法,成本非常高。
最后
接下来我将给各位同学划分一张学习计划表!
学习计划
那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:
阶段一:初级网络安全工程师
接下来我将给大家安排一个为期1个月的网络安全初级计划,当你学完后,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;其中,如果你等保模块学的好,还可以从事等保工程师。
综合薪资区间6k~15k
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(1周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(1周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(1周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
那么,到此为止,已经耗时1个月左右。你已经成功成为了一名“脚本小子”。那么你还想接着往下探索吗?
阶段二:中级or高级网络安全工程师(看自己能力)
综合薪资区间15k~30k
7、脚本编程学习(4周)
在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。
零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习
搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;
Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完
用Python编写漏洞的exp,然后写一个简单的网络爬虫
PHP基本语法学习并书写一个简单的博客系统
熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)
了解Bootstrap的布局或者CSS。
阶段三:顶级网络安全工程师
学习资料分享
当然,只给予计划不给予学习资料的行为无异于耍流氓,这里给大家整理了一份完整版的网络安全(嘿客)全套学习资料已经上传至CSDN官方,朋友们如果需要点击下方链接也可扫描下方微信二v码获取网络工程师全套资料【保证100%免费】
本文转自 https://blog.csdn.net/zz12345600354/article/details/138837663?spm=1001.2014.3001.5501,如有侵权,请联系删除。