转载

0x01

前言:

今天拿了个linux的主机,提下来了,以前提成root之后就没深入过,这次想着先把root密码破解出来;

以前交洞的时候只是单纯证明存在/etc/passwd和/etc/shadow,但从没管过里面的hash;

看网上教程也很多,我也记录一下我的学习成果吧。

0x02

大家都知道,linux系统中有一个用户密码配置文件 /etc/shadow ,里面存放着用户名以及一串密文:

形如:

 
1
2
root:$6$7vXyCOws$Hp/xoGf50Kov51cy83h6CTYoQerInkAFWWYZL22640N6P0kgy9Gfy4NVndDa1hNUevqR122E7ykmA1BIIOg0C.:16821:0:99999:7:::
用户名:加密密码:上次更改密码的时间:最小更改密码间隔:密码有效期限:密码过期提示时间:密码锁定期:账户有效期:保留字段

另外一个 /etc/passwd 文件是用户账户配置文件,只保存用户账户的基本信息,并不保存密码信息。

形如:

 
1
2
root:x:0:0:root:/root:/bin/bash
用户名:密码:用户id:组ID:GECOS:主目录:默认Shell

0x03

由于咱们要破解是root密码,则只需要把/etc/shadow的root的加密密码拿出来即可;

 
1
$6$7vXyCOws$Hp/xoGf50Kov51cy83h6CTYoQerInkAFWWYZL22640N6P0kgy9Gfy4NVndDa1hNUevqR122E7ykmA1BIIOg0C.

最后小数点不要漏掉,因为这些文件内容格式都是:分割的,其余的都是内容;

这里来解释一下$分割的各个部分的含义:

 
1
2
3
4
6:表示一种类型标记为6的密码散列;
7vXyCOws:加盐(Salt)值;
Hp/xoGf50Kov51cy83h6CTYoQerInkAFWWYZL22640N6P0kgy9Gfy4NVndDa1hNUevqR122E7ykmA1BIIOg0C.:hash值;
!具体也就是magic、salt、password

将这段加密密码保存到一个文件里,文件后缀.hash;

咱们这里保存为1.hash。

0x04

kali下的一款hash破解工具 hashcat ,网上说的天花乱坠,我这直接记录关于咱们破解root密码的具体用法,其他用法类似,具体百度吧;

hashcat据官网说牛逼得很,每秒最快可爆破80亿数据;

咱们这里利用他的暴力破解,就是常说的爆破,这也是得看字典;

具体命令:

 
1
hashcat -m 1800 -a 0 -o found.txt 1.hash 1.txt

解释一下:

 
1
2
3
4
5
-m 是指定那种加密类型,1800是SHA-512(Unix)的代号,具体--help来查看;
-a  是指定攻击模式,0代表Straight模式,使用字典进行破解尝试;
-o 是破解出来的信息输出结果文件,输出到found.txt文件中;
1.hash 是我们上面保存的加密密码文件;
1.txt 是我们的爆破密码,越大越精越好;

这里碰到了一点小问题,hash-identifier 来看root密码检查是 SHA-256 加密,但这个并不是我这台机子linux的加密方式,使用这个是不能开始爆破的;

但这可以先记住一点:

 
1
2
3
linux 的/etc/shadow文件中hash算法包括缺省的DES经典算法、MD5哈希算法($1)、Blowfish加密算法($2或$2a)和SHA哈希算法($5或$6)。
因此利用hashcat进行破解的参数也不同,比如MD5哈希算法($1),使用hashcat -m 500参数;
SHA哈希算法($5或$6),使用hashcat -m 1800 参数。

具体标记如下:

 
1
2
3
4
5
1. $0 = DES
2. $1 = MD5
3. $2a(2y) = Blowfish
4. $5 = SHA-256
5. $6 = SHA-512

这里可以直接看magic标记值来直接判断,这里是6,所以是SHA-512的magic值1800;

回车开始爆破。

0x05

拿本地操作一下,放了个6000小字典,里面放上了虚拟机root的密码;

可以看到,很快就爆破出来了,每秒近700次,还是挺快的;

结果会在当前目录生产两个文件found.txt和hashcat.pot;

里面内容一样,都是爆破出来的结果;

0x06

1.hashcat支持市面上存在的近乎全部的hash加密,–help可以看到;

2.在并不知道密文的情况下,我们可以先使用hash-identifier来帮助检测下,虽然有的不准确;

3.各种加盐(salt)的顺序,以及hash值的具体得来的方式不同,也会导致加密的类型产生差别;

如同:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
0 = MD5
10 = md5($pass.$salt)
20 = md5($salt.$pass)
300= md5(unicode($pass).$salt)
40 = md5($salt.unicode($pass))
3300 = MD5(Sun)
3500 = md5(md5(md5($pass)))
3610 = md5(md5($salt).$pass)
3710 = md5($salt.md5($pass))
3720 = md5($pass.md5($salt))
3800 = md5($salt.$pass.$salt)
3910 = md5(md5($pass).md5($salt))
4010 = md5($salt.md5($salt.$pass))
4110 = md5($salt.md5($pass.$salt))
4210 = md5($username.0.$pass)
4300 = md5(strtoupper(md5($pass)))
4400 = md5(sha1($pass))
....

4.这里linux的密码只看$分割,其余字符都是内容,有点 . 也得带上。

如何破解linux用户帐号密码二的更多相关文章

  1. 如何破解linux用户帐号密码一

    ENCRYPT_METHOD SHA512 定义帐号密码的加密方式 1.第一步拿到散列,也就是加密后的密码hash值 2.可以去一些彩虹表(rainbow)网站查询这些hash对应的密码明文,稍微花些 ...

  2. linux用户帐号管理/etcpasswd 和/etc/shadow文件

    #学习鸟哥的linux私房菜 /etc/passwd的文件构造: dahu@dahu-OptiPlex-:~/myfile/VideoFile$ head /etc/passwd root:x:::r ...

  3. 对于已经添加引用,还找不到类型或名字空间的错误及svn客户端清除用户帐号密码

    1 已经添加过引用,却找不到类型或名字空间. 可以看下项目的的.net framework版本是否一致. 项目(例如类库项目)右键(vs解决方案资源管理器)——>属性——>应用程序——&g ...

  4. Linux下停用和启用用户帐号

    有时候某个用户不乖,但是还不想删除他的帐号只是想给他点儿颜色看看,或者出于某种权限管理不想让他/她使用这个帐号,那么冻结帐号就是最好的方法了,linux中的帐号密码保存在/etc/shadow文件里面 ...

  5. linux初级学习笔记七:linux用户管理,密码和组命令详解!(视频序号:04_1)

    本节学习的命令: 用户管理命令:useradd,userdel,id,finger,usermod,chsh,chfn,passwd,pwck, 组管理命令:groupadd,groupmod,gro ...

  6. WCF加密操作(包括证书和证书+帐号密码)

    WCF作为.net三大组件之一,伟大之处不用多说,但是其加密配置对于我这样的萌新来说还是颇有难度,因此将几天来的研究成果共享出来,与各位共勉~ 首先声明我的开发环境,Win10创意者更新 + Visu ...

  7. 如何修改SharePoint2013服务器场帐号密码

    服务器远程登录帐号密码修改密码后,如何修改sharepoint服务器场管理员账户密码,今天登录了一下N久以前的搭建sharepoint2013服务器场的一台服务器器,登录进去以后直接提示帐号密码过期需 ...

  8. Ansible-Tower快速入门-4.以超级用户帐号登录【翻译】

    以超级用户帐号登录 首先,登录tower需要使用tower服务器所在的URL,格式如下:https://<tower server name>/ 注意:tower安装了一个自签名证书用于H ...

  9. 用firefox 31配合KeePass密码管理器实现web帐号密码自动填写登录

    原文:http://bbs.kafan.cn/thread-1754676-1-1.html KeePass的优势:1.这是一款完全开源的密码管理器2.很多人都使用lastpass来保存密码,而这种严 ...

随机推荐

  1. Monkey官方帮助翻译&介绍

    都说想学好就看原文,英文不好为了翻译这个可费了大劲了.表格从GOOGLE官网复制到WORD里编辑,结果贴上来格式全乱了,只得不弄表格了.表格中官网的事件不是最新的,比最新的少2个,具体我会另发一篇文章 ...

  2. vue-devtools安装

    https://www.cnblogs.com/yuqing6/p/7440549.html

  3. CSU-1974 神奇药水

    CSU-1974 神奇药水 Description ​ 对于csuxushu来说,能够在CSU(California State University)组织2017年的ACM暑期集训让他感到十分荣幸. ...

  4. PAT1031

    一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8, ...

  5. 生成比较短的Token字符串

    有的时候,我们需要生成一些Token作为标识:如认证后的标识符,资源的提取码等.一个比较常见的算法是生成一个GUID来作为Token,由于GUID的随机性和唯一性特点,作为Token是一个非常可靠的选 ...

  6. ICPC World Finals 2018 Problem H Single Cut of Failure

    题目链接 题解视频 题解文档 解法概要: 问题可以转化为 考虑一个长为 $2n$ 的数组 $A$,$1$ 到 $n$ 这 $n$ 个整数每个恰在 $A$ 中出现 $2$ 次.判断是否存在一个长为 $n ...

  7. [SDOI2016][bzoj4514] 数字配对 [费用流]

    题面 传送门 思路 一个数字能且只能匹配一次 这引导我们思考:一次代表什么?代表用到一定上限(b数组)就不能再用,同时每用一次会产生价值(c数组) 上限?价值?网络流! 把一次匹配设为一点流量,那产生 ...

  8. BZOJ5306 [HAOI2018]染色 【组合数 + 容斥 + NTT】

    题目 为了报答小 C 的苹果, 小 G 打算送给热爱美术的小 C 一块画布, 这块画布可 以抽象为一个长度为 \(N\) 的序列, 每个位置都可以被染成 \(M\) 种颜色中的某一种. 然而小 C 只 ...

  9. 微信小程序微信支付流程

    1.小程序调用wx.login获取登录凭证code wx.login(无请求参数)返回code(有效期5分钟) wx.login({ success:function(res){ //get res. ...

  10. 【自己D自己】WC2019总结

    好吧写着写着写成自黑文了. 这是我时隔一个月写的,寒假非常自闭,肝童年游戏赛尔号来着…… 没玩过的无视 作为一个 $BJ$ 蒟蒻,第一次飞到广州二中这么远的地方(我没出过国,去广州算是很远的一次了). ...