玄机应急:linux入侵排查webshell查杀日志分析
目录
第一章linux:入侵排查
1.web目录存在木马,请找到木马的密码提交
2.服务器疑似存在不死马,请找到不死马的密码提交
3.不死马是通过哪个文件生成的,请提交文件名
4.黑客留下了木马文件,请找出黑客的服务器ip提交
5.黑客留下了木马文件,请找出黑客服务器开启的监端口提交
第一章linux:webshell查杀
1.黑客webshell里面的flag flag{xxxxx-xxxx-xxxx-xxxx-xxxx}
2.黑客使用的什么工具的shell github地址的md5 flag{md5}
3.黑客隐藏shell的完整路径的md5 flag{md5} 注 : /xxx/xxx/xxx/xxx/xxx.xxx
4.黑客免杀马完整路径 md5 flag{md5}
第一章:Linux的日志分析
1.有多少IP在爆破主机ssh的root帐号,如果有多个使用","分割
2.ssh爆破成功登陆的IP是多少,如果有多个使用","分割
3.爆破用户名字典是什么?如果有多个使用","分割
4.成功登录 root 用户的 ip 一共爆破了多少次
5.黑客登陆主机后新建了一个后门用户,用户名是多少
第一章linux:入侵排查

启动环境,直接连上Xshell
1.web目录存在木马,请找到木马的密码提交
因为是web目录,直接进入到根目录
cd /var/www/html

web目录存在木马,可以用以下命令查找以jsp/php/asp/aspx结尾的文件
find ./ type f -name "*.jsp" | xargs grep "exec("find ./ type f -name "*.php" | xargs grep "eval("find ./ type f -name "*.asp" | xargs grep "execute("find ./ type f -name "*.aspx" | xargs grep "eval("
根据经验,这里我先查了以php文件结尾的

这里也是直接发现了最后一个文件是一句话木马,密码是1,直接提交
flag{1}
2.服务器疑似存在不死马,请找到不死马的密码提交
不死马:隐藏性强,持久性,多样化
根据不死马的特性持久性强,根据这个思路进行排查
查看计划任务:crontab -l

没有计划任务
查看启动项:
cat /etc/rc.local

查看系统启动和关闭时运行的一系列脚本文件:ls /etc/init.d/

查看和管理系统服务状态:systemctl list-unit-files --type=service

也是没有什么发现
刚才在筛选php后缀文件时发现一个shell.php ,查看一下

这个被MD5加密了,直接解密

尝试提交一下,是正确的
flag{hello}
3.不死马是通过哪个文件生成的,请提交文件名
根据刚才查找php后缀文件,分析index.php

查看:cat index.php 这个文件

可以看出,这个 index.php 文件生成的不死马
flag{index.php}
4.黑客留下了木马文件,请找出黑客的服务器ip提交
通过查看当前目录

发现一个shell(1).elf 文件
直接查看是一串乱码

根据题目说找到黑客的IP,说明黑客连接了这台机器
根据这个 以 elf 为后缀的文件,它是一个可执行程序

那么直接给它加权限运行
chmod 777 "shell(1).elf"./'shell(1).elf'

查看一下端口情况:
netstat -antlp | more

发现一个外部连接有一个陌生地址,这个应该是黑客的IP 和端口,直接提交
flag{10.11.55.21}
5.黑客留下了木马文件,请找出黑客服务器开启的监端口提交
根据上面找到的端口直接提交
flag{3333}
第一章linux:webshell查杀

开启环境,连上Xshell
1.黑客webshell里面的flag flag{xxxxx-xxxx-xxxx-xxxx-xxxx}
先进入到根目录
直接查找危险函数:
cd /var/www/htmlfind ./ type f -name "*.jsp" | xargs grep "exec("find ./ type f -name "*.php" | xargs grep "eval("find ./ type f -name "*.asp" | xargs grep "execute("find ./ type f -name "*.aspx" | xargs grep "eval("

发现三个可疑php文件,那么一个一个分析
cat ./include/gz.php

根据前三句话,可以看出这是一个哥斯拉的webshell
下面注释有点像要提交的flag格式,试一下,正确
flag{027ccd04-5065-48b6-a32d-77c704a5e26d}
2.黑客使用的什么工具的shell github地址的md5 flag{md5}
根据我们第一题分析的是一个哥斯拉webshell,要我们提交github地址,我们网上找一下

第一个就是, Godzilla地址:GitHub - BeichenDream/Godzilla: 哥斯拉
要提交地址的MD5,直接找一个在线网站加一下密MD5 在线加密工具 | 菜鸟工具 (jyshare.com)

flag{39392de3218c333f794befef07ac9257}
3.黑客隐藏shell的完整路径的md5 flag{md5} 注 : /xxx/xxx/xxx/xxx/xxx.xxx
因为是隐藏的,说明不能直接通过 ls 命令查看到
这里需要用到一个命令:ls -la 可以看到隐藏的文件
在之前查找php文件的时候,发现了一个以.结尾的隐藏文件

看一下这个文件是不是隐藏的shell
cat ./include/Db/.Mysqli.php

典型的哥斯拉webshell,猜测这就是要找的,查看进入这个目录,查看路径
cd ./include/Db/
pwd

最后拼接上隐藏文件即可:
/var/www/html/include/Db/.Mysqli.php
MD5加密:

flag{aebac0e58cd6c5fad1695ee4d1ac1919}
4.黑客免杀马完整路径 md5 flag{md5}
因为做了免杀,常规排查方法不可行,那么直接看日志
查看Apache2日志:位于:/var/log/apache2/access.log
cat /var/log/apache2/access.log

发现一个执行了 phpinfo() , 可能是我们要找的,但是提交了发现不对
继续往下找,又发现了一个

又发现一个
直接拼接路径加密

flag{eeff2eabfd9b7a6d26fc1a53d3f7d1de}
第一章:Linux的日志分析

开启环境,连上Xshell
1.有多少IP在爆破主机ssh的root帐号,如果有多个使用","分割
先进入日志目录:
cd /var/log
直接筛选爆破失败的IP和次数
cat auth.log.1 | grep -a "Failed password for root" | awk '{print $11}' | sort | uniq -c | sort -nr | more

直接提交
flag{192.168.200.2,192.168.200.31,192.168.200.32}
2.ssh爆破成功登陆的IP是多少,如果有多个使用","分割
筛选登录成功的IP和次数
cat auth.log.1 | grep -a "Accepted " | awk '{print $11}' | sort | uniq -c | sort -nr | more

flag{192.168.200.2}
3.爆破用户名字典是什么?如果有多个使用","分割
筛选登录尝试失败的用户名称
cat auth.log.1 | grep -a "Failed password" |perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr

flag{user,hello,root,test3,test2,test1}
4.成功登录 root 用户的 ip 一共爆破了多少次
筛选以root用户爆破失败的次数
cat auth.log.1 | grep -a "Failed password for root" | awk '{print $11}' | sort | uniq -c | sort -nr | more

发现以root用户登录失败的次数是4
flag{4}
5.黑客登陆主机后新建了一个后门用户,用户名是多少
直接筛选日志中新建的用户
cat auth.log.1 |grep -a "new user"

发现有两个,两个中肯定有一个后门用户,一个一个提交试试
最后发现test2就是后门用户
flag{test2}
其实还可以查看用户列表:
cat /etc/passwd
一般最后一个用户即为添加的后门用户
相关文章:
玄机应急:linux入侵排查webshell查杀日志分析
目录 第一章linux:入侵排查 1.web目录存在木马,请找到木马的密码提交 2.服务器疑似存在不死马,请找到不死马的密码提交 3.不死马是通过哪个文件生成的,请提交文件名 4.黑客留下了木马文件,请找出黑客的服务器ip提交 5.黑客留…...
python爬虫安装教程
Python爬虫是用于从网站上自动抓取信息的程序。在开始之前,请确保您了解并遵守目标网站的服务条款,尊重版权法,并且在合理合法的范围内使用爬虫技术。 安装环境 安装Python:首先确保您的计算机上已经安装了Python。推荐版本为3.…...
田忌赛马五局三胜问题matlab代码
问题描述:在可以随机选择出场顺序的情况下,如果把比赛规则从三局两胜制改为五局三胜制,齐王胜出的概率是上升了还是下降了?五局三胜的赛制下,大家的马重新分为5个等级。前提条件仍然是齐王每种等级的马都优于田忌同等级…...
Spring循环依赖问题的解决
项目启动提示如下异常: The dependencies of some of the beans in the application context form a cycle 这表明在我们的应用中存在了循环依赖,示例: Bean A 中注入了Bean B依赖,然后 Bean B 中注入了Bean A依赖。也就是说&…...
KAN-Transfomer——基于新型神经网络KAN的时间序列预测
1.数据集介绍 ETT(电变压器温度):由两个小时级数据集(ETTh)和两个 15 分钟级数据集(ETTm)组成。它们中的每一个都包含 2016 年 7 月至 2018 年 7 月的七种石油和电力变压器的负载特征。 traffic(交通) :描…...
鸿蒙学习自由流转与分布式运行环境-价值与架构定义(1)
文章目录 价值与架构定义1、价值2、架构定义 随着个人设备数量越来越多,跨多个设备间的交互将成为常态。基于传统 OS 开发跨设备交互的应用程序时,需要解决设备发现、设备认证、设备连接、数据同步等技术难题,不但开发成本高,还存…...
【k8s深入理解之 Scheme 补充-2】理解 register.go 暴露的 AddToScheme 函数
AddToScheme 函数 AddToScheme 就是为了对外暴露,方便别人调用,将当前Group组的信息注册到其 Scheme 中,以便了解该 Group 组的数据结构,用于后续处理 项目版本用途使用场景k8s.io/apiV1注册资源某一外部版本数据结构࿰…...
uni-app写的微信小程序每次换账号登录时出现缓存上一个账号数据的问题
uni-app写的微信小程序每次更换另外账号登录时出现缓存上一个账号数据的问题? 清除缓存数据:在 onShow 钩子中,我们将 powerStations、list 和 responseRoles 的值重置为初始状态,以清除之前的缓存数据。重新获取数据:…...
数据分析流程中的Lambda架构,以及数据湖基于Hadoop、Spark的实现
文章目录 一、Lambda架构1、Lambda的三层架构2、简单解释:3、Lambda架构的优缺点 二、数据湖基于Hadoop、Spark的实现1、架构2、数据管理(存储层的辅助功能) 一、Lambda架构 1、Lambda的三层架构 Batch View(批处理视图层&#…...
Android 原生解析 Json 字符串
Android 原生解析 JSON 字符串 1. JSON 基础2. Android 原生 JSON 解析方法2.1 解析 JSON 字符串到 JSONObject关键方法 2.2 解析 JSON 数组到 JSONArray关键方法 2.3 解析嵌套的 JSON 对象 3. 处理异常4. 总结 在 Android 开发中,我们经常需要从服务器获取 JSON 格…...
Windsurf可以上传图片开发UI了
背景 曾经羡慕Cursor的“画图”开发功能,这不Windsurf安排上了。 Upload Images to Cascade Cascade now supports uploading images on premium models Ask Cascade to build or tweak UI from on image upload New keybindings Keybindings to navigate betwe…...
Qt UI设计 菜单栏无法输入名字
在UI界面“在这里输入”,直接双击填写名称,无论是中文还是英文都没有反应。解决方案 2个: 1.双击“在这里输入之后”,在可编辑状态下,空格→enter键,然后在右下角属性框的title中直接填写中文或英文名&…...
blender 视频背景
准备视频文件 首先,确保你有想要用作背景的视频文件。视频格式最好是 Blender 能够很好兼容的,如 MP4 等常见格式。 创建一个新的 Blender 场景或打开现有场景 打开 Blender 软件后,你可以新建一个场景(通过点击 “文件” - “新建…...
【python】OpenCV—Tracking(10.5)—dlib
文章目录 1、功能描述2、代码实现3、效果展示4、完整代码5、涉及到的库函数dlib.correlation_tracker() 6、参考 1、功能描述 基于 dlib 库,实现指定类别的目标检测和单目标跟踪 2、代码实现 caffe 模型 https://github.com/MediosZ/MobileNet-SSD/tree/master/…...
音视频入门基础:MPEG2-TS专题(9)——FFmpeg源码中,解码TS Header的实现
一、引言 FFmpeg源码对MPEG2-TS传输流/TS文件解复用时,在通过read_packet函数读取出一个transport packet后,会调用handle_packet函数来处理该transport packet: static int handle_packets(MpegTSContext *ts, int64_t nb_packets) { //..…...
解决“磁盘已插上,但Windows系统无法识别“问题
电脑上有2块硬盘,一块是500GB的固态硬盘,另一块是1000GB的机械硬盘,按下开机键,发现500G的固态硬盘识别了,但1000GB的机械硬盘却无法识别。后面为了描述方便,将"500GB的固态硬盘"称为X盘…...
论文笔记-WWW2024-ClickPrompt
论文笔记-WWW2024-ClickPrompt: CTR Models are Strong Prompt Generators for Adapting Language Models to CTR Prediction ClickPrompt: CTR模型是大模型适配CTR预测任务的强大提示生成器摘要1.引言2.预备知识2.1传统CTR预测2.2基于PLM的CTR预测 3.方法3.1概述3.2模态转换3.…...
53 基于单片机的8路抢答器加记分
目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 首先有三个按键 分别为开始 暂停 复位,然后八个选手按键,开机显示四条杠,然后按一号选手按键,数码管显示30,这…...
【java数据结构】二叉树OJ题
【java数据结构】二叉树OJ题 一、检查两颗树是否相同二、另一颗树的子树三、翻转二叉树四、对称二叉树五、判断一颗二叉树是否是平衡二叉树六、给定一个二叉树, 找到该树中两个指定节点的最近公共祖先七、根据一棵树的前序遍历与中序遍历构造二叉树练习:八、二叉树前…...
IIC和SPI的时序图
SCL的变化快慢决定了通信速率,当SCL为低电平的时候,无论SDA是1还是0都不识别: ACK应答:当从设备为低电平的时候识别为从设备有应答: 谁接收,谁应答: 起始位和停止位: IIC的时序图&am…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...
数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !
我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...
Vue3中的computer和watch
computed的写法 在页面中 <div>{{ calcNumber }}</div>script中 写法1 常用 import { computed, ref } from vue; let price ref(100);const priceAdd () > { //函数方法 price 1price.value ; }//计算属性 let calcNumber computed(() > {return ${p…...
uni-app学习笔记三十五--扩展组件的安装和使用
由于内置组件不能满足日常开发需要,uniapp官方也提供了众多的扩展组件供我们使用。由于不是内置组件,需要安装才能使用。 一、安装扩展插件 安装方法: 1.访问uniapp官方文档组件部分:组件使用的入门教程 | uni-app官网 点击左侧…...
