熊喵君的博客

Thinking will not overcome fear but action will.

Linux 安全对抗收集

安全对抗case及检测策略

0x00 前言 0x01 bash相关 bash反弹 bash提权 0x 参考 反弹Shell,看这一篇就够了

FILEBEAT :一款轻量级日志采集器agent的实现与分析

数据的搬运工

0x00 前言 下图形象的说明了filebeat的功能,主要包括两点: 支持从不同数据源收集数据并转换成事件 发送事件到指定的输出(支持多种输出) 支持从多种不同的input(上游)中接受需要收集的数据(如log input从日志文件中收集数据) 对收集来的数据进行加工(如多行合并,增加业务自定义字段,json encode等) 将加工好的数据发送到o...

golang eBPF 开发入门(五)

网络开发之 XDP/TC

0x00 前言 XDP 与 TC 的位置: XDP:Ingress TC:Egress XDP VS DPDK: 参考文档: XDP tutorial Making eBPF programming easier via build env and examples 应用场景 XDP:ACL(防火墙) LB:如katran 0x0...

主机入侵检测系统 Elkeid:设计与分析(一)

后台服务模块

0x00 前言 Elkeid 后台主要模块如下: AgentCenter 模块:负责与 Agent 进行通信,采集 Agent 数据并简单处理后汇总到消息队列集群,同时也负责对 Agent 进行管理包括 Agent 的升级,配置修改,任务下发等。同时 AgentCenter 也对外提供 HTTP 接口,Manager 模块通过这些 HTTP 接口实现对 AgentCenter ...

golang eBPF 开发入门(三)

eBPF 中的 Maps 数据结构分析与应用

0x00 前言 上文 介绍了 ebpf 的内核态 / 用户态的通信示例,本文关注三个问题:为什么要使用 maps?maps 使用的一般场景?maps 的基本结构及实现原理。BPF Map 是内核空间和用户空间之间用于数据交换、信息传递的桥梁。是 eBPF 程序中使用的主要数据结构。BPF Map 本质上是以键 / 值方式存储在内核中的数据结构,在内核空间的程序创建 BPF Map 并返...

golang eBPF 开发入门(二)

kprobe/uprobe/tracepoint 开发实践

0x00 前言 本文专注于最右侧的技术 0x01 kprobe/uprobe/tracepoint 技术 tracepoint 0x02 kprobe 基础实践 开发步骤 1、准备对应版本的 kernel 内核源码,在对系统调用植入探针的过程中,需要了解对应函数的参数和返回值定义 uname -a #5.15.0-83-generic # 确认目标设备的 linux...

数据结构与算法回顾(九):bitmap

0x00 前言 0x01 原理 && 应用 bitmap 比较简单,用一个 bit 来标记某个元素对应的 value,而 Key 即是该元素。由于采用 bit 来存储一个数据,相对节省空间(不考虑稀疏存储的场景下)。假设要对 0-31 内的 3 个元素 (10,17,28) 排序,那么就可以采用 Bitmap 方法(假设这些元素没有重复)。bitmap 算法常用...

gopsutil 使用与分析

一个跨平台的采集库 && windows API 实现

0x00 前言 gopsutil 屏蔽了各个系统之间的差异,具有非常好的可移植性 本文基于 v4.24.7 分析 0x01 应用实战 先引入一个问题,已知 srcip、srcport,如何查找到该信息对应(占用)的进程名字(pid)?思路大致如下: 通过 srcip、srcport 获取进程 pid 通过 pid 获取进程名(进程路径) Linux 实现 Windows...

WinTun && WinDivert 使用与分析

基于Clash等开源项目的一些技术实现总结

0x00 前言 本文汇总下笔者在研究Clash(ClashMeta)等一些windows上的透明代理项目的一些技术思路总结,基于wintun OR windivert 0x01 配置&&功能 进程过滤 Rules 规则可支持按照PROCESS-NAME 源进程名、PROCESS-PATH 源进程路径等走对应的规则,比如 # clash 开 tun 模式代理,根据进...

ego/gocache:一个缓存管理通用工具库的实现

0x00 前言 gocache 是一个可扩展的缓存库(非缓存实现) 作为上层封装了众多开源 cache 库 / redis 的实现 缓存语义的包装,比如 chain cache,loadable cache 等 支持 cache 类通用指标的采集 版本分析基于 lib/v4.1.6 0x01 公共接口 Store adapters:存储适配器 该 interfa...