草庐IT

Linux应急响应学习

ZZslBl0g 2023-03-28 原文

Linux应急响应-系统日志排查-溯源

溯源 找到攻击者。系统日志分析攻击者的ip  攻击者可能留下了一些代码 样本

网上的信息很大程度上是不可信的。

方法:

蜜罐  高交互的蜜罐

溯源: ip 日志分析 (通过日志分析,分析哪个ip攻击了目标)

目的:分析黑客在服务器上做了什么事情?

Linux 应急响应 安服。

 

实验环境: 在线环境

w

第二行包括以下信息:

USER - 登录用户名

TTY - 登录用户使用的终端名称

FROM - 来自登录用户的主机名或者 IP

LOGIN@ - 用户登录时间

IDLE - 从用户上次和终端交互到现在的时间,即空闲时间

JCPU - 依附于 tty 的所有进程的使用时间

PCPU - 用户当前进程的使用时间。当前进程名称显示在 WHAT

WHAT - 用户当前进程和选项、参数

lastlog命令 用于显示系统中所有用户最近一次登录信息。

通过grep 来进行过滤:

-v 或 --invert-match : 显示不包含匹配文本的所有行。

lastlog | grep -v "从未登录" ---对"从未登录"进行过滤

last -n 5 --只看最新的五次登录

-d ip 地址转换为主机名。该参数可以获取登录到系统的用户所使用的的主机名,如果目标使用的

vps 服务器绑定了域名,该参数有可能获取到目标域名。

-a 参数把 ip 列放在最后一行

lastb 查看所有登录记录包含失败。

awk 命令可以帮我们取出我们想要的列,-F 指定分隔符,每列之间使用空格分隔,print 打印

$1 第一列 $NF 打印最后一列 "\t"添加 tab 符分隔,一般是 4 个空格。

sort 会将文本进行排序,默认排序会把一样的行都排到一起

sort -nr 排序 -nr 倒序 -n 正序

uniq -c 计数

lastb -a |awk -F' ' '{ print $1 "\t" $NF}' |sort |uniq -c |sort -nr

通过在目录下/secure* 来查看登录的日志

通过grep 来将登录失败的用户过滤出来

grep Failed /var/log/secure*

以空格作为分隔符,来将用户名和ip进行提取(用户登录失败的信息)

grep Failed /var/log/secure* |awk -F' ' '{print $9 "\t" $11}'

常用系统日志说明

日志目录

作用

/var/log/message

包括整体系统信息

/var/log/auth.log

包含系统授权信息,包括用户登录和使用的权限机制等

/var/log/userlog

记录所有等级用户信息的日志

/var/log/cron

记录 crontab 命令是否被正确的执行

/var/log/vsftpd.log

记录 Linux FTP 日志

/var/log/lastlog

记录登录的用户,可以使用命令 lastlog 查看

/var/log/secure

记录大多数应用输入的账号与密码,登录成功与否

/var/log/wtmp

记录登录系统成功的账户信息,等同于命令 last

/var/log/btmp 记录登录系统失败的用户名单,等同于命令 lastb

/var/log/faillog

记录登录系统不成功的账号信息,一般会被黑客删除

 

中间件日志
Web 攻击的方法多种多样,但是默认情况下 Web 日志中所能记录的内容并不算丰富,最致命的是
web 日志是不会记录 post 内容的,想要从 Web 日志中直接找出攻击者的 webshell 是非常难的,
所以一般来说我们的分析思路都是先通过文件的方式找到 webshell,然后再从日志里找到相应的攻击者
ip,再去分析攻击者的整个攻击路径,来回溯攻击者的所有行为。
但各种各样的原因,如黑客在入侵完了之后把 webshell 删除了,通过文件搜索的方式找不到
webshell 或者只能通过分析 web 日志去发现 webshell,比如这时候要排查的话,难度会稍大。
Web 日志主要分析 access_log,本文以常见的中间件 apache 为例,其他中间件日志格式和分析思路
大同小异。
这里以实际靶场中的日志给大家分析,通常日志文件在/var/log/httpd/access_log 目录下。具体
可以看 apache 服务的配置文件中指定的日志文件路径。
Apache 日志字段说明:
字段名称
描述
远程主机
IP 表明是谁访问了网站
空白(E-mail)
为了避免用户的邮箱被垃圾邮件骚扰,第二项就用“
-”取代了
空白(登录名)
用于记录浏览者进行身份验证时提供的名字
请求时间
用方括号包围,而且采用“公用日志格式”或者“标准英文格式”。 时间
信息最后的“+0800”表示服务器所处时区位于 UTC 之后的 8 小时
方法
请求的方式:METHOD、GET、POST、HEAD 等
资源
请求的文件
协议
请求的协议:HTTP+版本号
状态码
请求的状态码
发送的字节数
表示发送给客户端的总字节数。它告诉我们传输是否被打断(该数值是否
和文件的大小相同)
Referer
从哪个页面链接过来的
User-Agent
使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、
浏览器语言、浏览器插件等信息。
 

日志分析的痛点:只能看到 GET 请求的请求操作,POST 请求看不到对服务器提交的内容。

默认情况下日志不记录Post请求,一般只记录Get请求
 

有关Linux应急响应学习的更多相关文章

  1. ruby-on-rails - 每次我尝试部署时,我都会得到 - (gcloud.preview.app.deploy) 错误响应 : [4] DEADLINE_EXCEEDED - 2

    我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie

  2. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  3. CAN协议的学习与理解 - 2

    最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总

  4. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  5. ruby-on-rails - 在 Ruby on Rails 中发送响应之前如何等待多个异步操作完成? - 2

    在我做的一些网络开发中,我有多个操作开始,比如对外部API的GET请求,我希望它们同时开始,因为一个不依赖另一个的结果。我希望事情能够在后台运行。我找到了concurrent-rubylibrary这似乎运作良好。通过将其混合到您创建的类中,该类的方法具有在后台线程上运行的异步版本。这导致我编写如下代码,其中FirstAsyncWorker和SecondAsyncWorker是我编写的类,我在其中混合了Concurrent::Async模块,并编写了一个名为“work”的方法来发送HTTP请求:defindexop1_result=FirstAsyncWorker.new.async.

  6. ruby - 我正在学习编程并选择了 Ruby。我应该升级到 Ruby 1.9 吗? - 2

    我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or

  7. ruby - 我如何学习 ruby​​ 的正则表达式? - 2

    如何学习ruby​​的正则表达式?(对于假人) 最佳答案 http://www.rubular.com/在Ruby中使用正则表达式时是一个很棒的工具,因为它可以立即将结果可视化。 关于ruby-我如何学习ruby​​的正则表达式?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1881231/

  8. 深度学习12. CNN经典网络 VGG16 - 2

    深度学习12.CNN经典网络VGG16一、简介1.VGG来源2.VGG分类3.不同模型的参数数量4.3x3卷积核的好处5.关于学习率调度6.批归一化二、VGG16层分析1.层划分2.参数展开过程图解3.参数传递示例4.VGG16各层参数数量三、代码分析1.VGG16模型定义2.训练3.测试一、简介1.VGG来源VGG(VisualGeometryGroup)是一个视觉几何组在2014年提出的深度卷积神经网络架构。VGG在2014年ImageNet图像分类竞赛亚军,定位竞赛冠军;VGG网络采用连续的小卷积核(3x3)和池化层构建深度神经网络,网络深度可以达到16层或19层,其中VGG16和VGG

  9. 机器学习——时间序列ARIMA模型(四):自相关函数ACF和偏自相关函数PACF用于判断ARIMA模型中p、q参数取值 - 2

    文章目录1、自相关函数ACF2、偏自相关函数PACF3、ARIMA(p,d,q)的阶数判断4、代码实现1、引入所需依赖2、数据读取与处理3、一阶差分与绘图4、ACF5、PACF1、自相关函数ACF自相关函数反映了同一序列在不同时序的取值之间的相关性。公式:ACF(k)=ρk=Cov(yt,yt−k)Var(yt)ACF(k)=\rho_{k}=\frac{Cov(y_{t},y_{t-k})}{Var(y_{t})}ACF(k)=ρk​=Var(yt​)Cov(yt​,yt−k​)​其中分子用于求协方差矩阵,分母用于计算样本方差。求出的ACF值为[-1,1]。但对于一个平稳的AR模型,求出其滞

  10. Unity Shader 学习笔记(5)Shader变体、Shader属性定义技巧、自定义材质面板 - 2

    写在之前Shader变体、Shader属性定义技巧、自定义材质面板,这三个知识点任何一个单拿出来都是一套知识体系,不能一概而论,本文章目的在于将学习和实际工作中遇见的问题进行总结,类似于网络笔记之用,方便后续回顾查看,如有以偏概全、不祥不尽之处,还望海涵。1、Shader变体先看一段代码......Properties{ [KeywordEnum(on,off)]USL_USE_COL("IsUseColorMixTex?",int)=0 [Toggle(IS_RED_ON)]_IsRed("IsRed?",int)=0}......//中间省略,后续会有完整代码 #pragmamulti_c

随机推荐