• Linux应急响应学习


    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 打印

    1NF 打印最后一列 "\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请求
     
  • 相关阅读:
    npm nvm cnpm常见指令
    靶机 DC-2
    损失函数——机器学习
    Codeforces Round 895 (Div. 3) A ~ F
    家具商家通过商城小程序发展的作用是什么
    大厂Java面试必备面试题:基础语法-数据类型-编码-注释-运算符-关键字-流程控制语句
    Tkinter学习笔记(一):完成文件选择和保存对话框
    Win10安装TA_Lib采坑记录
    C#核心笔记——(一)C#和.NET Framework
    【NOI模拟赛】独家墙(数位DP)
  • 原文地址:https://www.cnblogs.com/ZZslBl0g/p/16631647.html