Linux应急响应——知攻善防应急靶场-Linux(1)
文章目录
- 查看history历史指令
- 查看开机自启动项
- 异常连接和端口
- 异常进程
- 定时任务
- 异常服务
- 日志分析
- 账户排查
- 总结
靶场出处是知攻善防
Linux应急响应靶机 1
前景需要:
小王急匆匆地找到小张,小王说"李哥,我dev服务器被黑了",快救救我!!
挑战内容:
黑客的IP地址
遗留下的三个flag
开机后桌面找到题解脚本,终端运行起来即可。
靶机中相关账户密码:
defend/defend
root/defend
题目如下:
按照自己的思路看能找到多少个flag
查看history历史指令
当前用户是defend
备份一下.bash_history文件
然后查看,没发现异常
切换root用户查看
然后.bash_history同理也是先备份一份
发现一个flag:flag{thisismybaby}
然后看历史指令发现他动了rc.local开机自启动,所以断定这里肯定是不对劲的。
那就先顺着思路看开机自启动项
查看开机自启动项
cat /etc/rc.d/rc.lcal
一眼v我50,拿到flag:flag{kfcvme50}
异常连接和端口
netstat -alntup # 这里肯定没问题,因为我虚拟机是仅主机模式
异常进程
ps -ef 和 top 都可以查看是否有异常进程占用
也是没啥问题
ps -ef
↓
top
↓
定时任务
这里本来是到开机自启然后到定时任务的,因为我们history查看历史指令的时候已经发现动过开机自启了所以先去查看开机自启。
这里的 定时任务查看指令如下:
crontab -l #查看定时任务
还可以进入/var/spool/目录中对应查看定时任务。
这里的定时任务没有问题。
异常服务
查看所有自启动的服务,这里可以跟运维进行沟通是否有异常的,因为自己也看不出哪些是需要和哪些是不需要的,当然排除大佬一眼看出。
下面服务自启中都没有问题。
systemctl list-unit-files --type=service | grep enabled
日志分析
日志分析就要看他有哪些服务应用。
日志一般都放在/var/log中,直接进去看有哪些相关应用服务日志即可。
当然这一步是可以和运维沟通的哈。
我这里进入/var/log目录后看到有redis,那就直接看redis的日志
查看redis.log后,发现日志记录的是什么时候开启了redis和端口号是啥,还有连接情况,那么这里连接情况就是可以判断是否是黑客的入侵ip地址了。
看完后,发现redis连接成功了的日志信息包含“ Accepted”,那就筛选一下即可。
cat redis.log | grep ’ Accepted’
可以发现,外部地址连接进来的ip就可能是黑客的ip了。
所以这里记录一下疑似黑客ip为:192.168.75.129
账户排查
排查是否有黑客进来或者创建了用户,同事在这里也可以排查一下是否有黑客暴力破解ssh。
-
w #查看当前登录进来的用户操作
-
/etc/passwd #查看是否有可疑账号
-
/etc/shadow #查看影子文件是否有问题
-
过滤特权用户
查看是否有其他可疑的特权用户
awk -F: ‘$3==0{print $1}’ /etc/passwd -
过滤远程登录用户
查看是否有其他可疑远程登录用户
awk ‘/$1|$6/{print $1}’ /etc/shadow
若发现可疑用户,跟运维沟通确认后直接删掉
usermod -L user 禁用帐号,帐号无法登录,/etc/shadow 第二栏为 ! 开头
userdel user 删除 user 用户
userdel -r user 将删除 user 用户,并且将 /home 目录下的 user 目录一并删除
到这里基本没有发现了。
整理一下成果:
flag{thisismybaby}flag{kfcvme50}192.168.75.129
还差一个flag,到这里基本没思路了,
由于是找flag,那就使出我的终极大招
find / -type f '*.*' | xargs -i grep 'flag{' {}
直接出来flag了,就问你牛不牛批,三个都出来了,我们前面一顿操作猛如虎,难道还不如一个指令??
其实不是的,这是个耍赖行为,做题目无非是提升自己的实力,所以还是按照正常思维做好,现实中的黑客不会给你写个flag就走了。
没思路就去看writeup,原来redis.conf文件中还存在一个flag
过滤一下就出来了:cat /etc/redis.conf | grep ‘flag’
flag{P@ssW0rd_redis}
总结
题解:
192.168.75.129
flag{thisismybaby}
flag{kfcvme50}
flag{P@ssW0rd_redis}
反思一下为什么没有想到配置文件,给他忽略了,flag藏在里面。
其实仔细想想确实有道理,因为黑客入侵后,基本的应急角度来看,他做的东西也有可能是掩耳盗铃,比如自启动和log日志中记录的一些攻击行为,让人觉得已经没有其他手脚被动过了。
但其实不然,配置文件中留下手脚这种被忽略后,照样能够通过这个后门进来。
一开始还想吐槽一下怎么flag还在配置文件中的,仔细一想,我确实被被摆了一道,配置文件后门没找出来,确实太菜了。。。。
相关文章:

Linux应急响应——知攻善防应急靶场-Linux(1)
文章目录 查看history历史指令查看开机自启动项异常连接和端口异常进程定时任务异常服务日志分析账户排查总结 靶场出处是知攻善防 Linux应急响应靶机 1 前景需要: 小王急匆匆地找到小张,小王说"李哥,我dev服务器被黑了",快救救我&…...

基于CDMA的多用户水下无线光通信(1)——背景介绍
研究生期间做多用户水下无线光通信(Underwater Optical Wireless Communication,UOWC),写几篇博客分享一下学的内容。导师给了大方向,让我用直接序列码分多址(Direct Sequence Code Division Multiple Acce…...

基于springboot websocket和okhttp实现消息中转
1、业务介绍 消息源服务的消息不能直接推给用户侧,用户与中间服务建立websocket连接,中间服务再与源服务建立websocket连接,源服务的消息推给中间服务,中间服务再将消息推送给用户。流程如下图: 此例中我们定义中间服…...
@PostConstruct 注解的方法用于资源的初始化
PostConstruct 是 Java EE 5 引入的一个注解,主要用于依赖注入完成之后,需要执行的方法上。这个注解的方法会在依赖注入完成后自动被容器(如 EJB 容器或 Spring 容器)调用,并且只会被调用一次。 PostConstruct 注解的…...
(一)SvelteKit教程:hello world
(一)SvelteKit教程:hello world sveltekit 的官方教程,在这里:Creating a project • Docs • SvelteKitCreating a project • Docs • SvelteKit 我们可以按照如下的步骤来创建一个项目: npm create s…...
华为Atlas NPU ffmpeg 编译安装
处理器:鲲鹏920 NPU:昇腾 310P3 操作系统:Kylin Linux Advanced Server V10 CANN:Ascend-cann-toolkit_8.0.RC1_linux-aarch64.run FFmpeg:AscendFFmpegPlugin(不要用AscendFFmpeg) AscendFFmpegPlugin下载地址&…...

Python 虚拟环境 requirements.txt 文件生成 ;pipenv导出pip安装文件
搜索关键词: Python 虚拟环境Pipenv requirements.txt 文件生成;Pipenv 导出 pip requirements.txt安装文件 本文基于python版本 >3.9 文章内容有效日期2023年01月开始(因为此方法从这个时间开始是完全ok的) 上述为pipenv的演示版本 使用以下命令可精准生成requirement…...
Less与Sass的区别
1. 功能和工具: Sass:提供了更多的功能和内置方法,如条件语句、循环、数学函数等。Sass 也支持更复杂的操作和逻辑构建。 Less:功能也很强大,但相比之下,Sass 在功能上更为丰富和成熟。 2、编译环境&…...
力扣-2663
题目 如果一个字符串满足以下条件,则称其为 美丽字符串 : 它由英语小写字母表的前 k 个字母组成。它不包含任何长度为 2 或更长的回文子字符串。 给你一个长度为 n 的美丽字符串 s 和一个正整数 k 。 请你找出并返回一个长度为 n 的美丽字符串&#…...

CausalMMM:基于因果结构学习的营销组合建模
1. 摘要 在线广告中,营销组合建模(Marketing Mix Modeling,MMM) 被用于预测广告商家的总商品交易量(GMV),并帮助决策者调整各种广告渠道的预算分配。传统的基于回归技术的MMM方法在复杂营销场景…...
编译 CUDA 程序的基本知识和步骤
基本工具 NVCC(NVIDIA CUDA Compiler): nvcc 是 NVIDIA 提供的 CUDA 编译器,用于将 CUDA 源代码(.cu 文件)编译成可执行文件或库。它可以处理 CUDA 和主机代码(例如 C)的混合编译。nvcc 调用底层…...

[SAP ABAP] 排序内表数据
语法格式 整表排序 SORT <itab> [ASCENDING|DESCENDING]. 按指定字段排序 SORT <itab> BY f1 [ASCENDING|DESCENDING] f2 [ASCENDING|DESCENDING] ... fn [ASCENDING|DESCENDING].<itab>:代表内表 不指定排序方式则默认升序排序 示例1 结果显…...

【UML用户指南】-21-对基本行为建模-活动图
目录 1、概念 2、组成结构 2.1、动作 2.2、活动节点 2.3、控制流 2.4、分支 2.5、分岔和汇合 2.6、泳道 2.7、对象流 2.8、扩展区域 3、一般用法 3.1、对工作流建模 3.2、对操作建模 一个活动图从本质上说是一个流程图,展现从活动到活动的控制流 活动图…...

【web2】jquary,bootstrap,vue
文章目录 1.jquary:选择器1.1 jquery框架引入:$("mydiv") 当成id选择器1.2 jquery版本/对象:$(js对象) -> jquery对象1.3 jquery的页面加载事件:$ 想象成 window.onload 1.4 jquery的基本选择器:$()里内容…...

独角兽品牌獭崎酱酒:高性价比的酱香之选
在酱香型白酒领域中,獭崎酱酒以其独特的品牌定位和高性价比迅速崛起,成为市场上备受关注的独角兽品牌。作为贵州茅台镇的一款新秀酱香酒,獭崎酱酒不仅传承了百年酿造工艺,还以创新的商业模式和亲民的价格赢得了广大消费者的青睐。…...

java打印菱形和空心菱形
java打印菱形 菱形分上下两个部分。其中上部分同打印金字塔;下部分循环部分i是递减 (ps:菱形层数只能为奇数) import java.util.Scanner;public class Lingxing{public static void main(String[] args) {Scanner myScanner new Scanner(S…...
Day10 —— 大数据技术之Scala
Scala编程入门 Scala的概述什么是Scala?Scala的重要特点Scala的使用场景 Scala的安装Scala基础Scala总结 Scala的概述 什么是Scala? Scala是一种将面向对象和函数式编程结合在一起的高级语言,旨在以简洁、优雅和类型安全的方式表达通用编程…...

Linux应用系统快速部署:docker快速部署linux应用程序
目录 一、背景 (一)引入docker的起因 (二)docker介绍 (三)Docker部署的优势 1、轻量级和可移植性 2、快速部署和扩展 3、一致性 4、版本控制 5、安全性 6、资源隔离 7、简化团队协作 8、多容器…...
三目运算符中间的表达式可以省略吗(a?:c)?
熟悉C语言的童靴对三目运算符都非常熟悉,a? b : c; 如果a为true,则整个运算符的值为b,否则为c;那么问题来了,三目运算符中间的表达式可以省略吗?即a? : c; 1、linux内核中出现的省略情况 本人在阅读内核代码是发现了下面的代码: preferr…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...

GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...

android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...
前端中slice和splic的区别
1. slice slice 用于从数组中提取一部分元素,返回一个新的数组。 特点: 不修改原数组:slice 不会改变原数组,而是返回一个新的数组。提取数组的部分:slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...

【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...
Pydantic + Function Calling的结合
1、Pydantic Pydantic 是一个 Python 库,用于数据验证和设置管理,通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发(如 FastAPI)、配置管理和数据解析,核心功能包括: 数据验证:通过…...

JDK 17 序列化是怎么回事
如何序列化?其实很简单,就是根据每个类型,用工厂类调用。逐个完成。 没什么漂亮的代码,只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...

边缘计算网关提升水产养殖尾水处理的远程运维效率
一、项目背景 随着水产养殖行业的快速发展,养殖尾水的处理成为了一个亟待解决的环保问题。传统的尾水处理方式不仅效率低下,而且难以实现精准监控和管理。为了提升尾水处理的效果和效率,同时降低人力成本,某大型水产养殖企业决定…...