R0 Anti Antivirus

R0 杀软对抗 由于臭名昭著的Patch Gaurd(PG), 安全软件厂商从长远考虑, 只得使用其他途径实现系统监控, 我将介绍现代杀软的实现原理和技术结构. 技术结构 WIndows并不想将系统权限交出去, 而Linux则相反, 有了root权限, 可以做任何事. 所以Linux rootkit非常昌盛, 不过Windows相比并无太多优势. 为了维持系统稳定和反rootkit, 微软做了很多事情, 包括Patch gaurd, 也包括证书签名要求, 但是这样也限制了安全软件的手脚, 安全软件只能使用Windows提供的通知, 或者事件等进行系统监控, 病毒检测. 核心技术就三种, 掌握这三种技术, 无视杀软就是了. 在R0, 杀软使用Minifilter驱动技术, 监控磁盘文件更改, 在R3发起FS请求后, 由IO管理器(I/O Manager)将请求转发到过滤管理器(Filter Manager), 过滤管理器将把请求发送到Minifilter驱动, 此时杀软可对文件进行检测. 杀软检测到文件改动后, 会对文件进行检测, 这就是静态查杀. 这就是为什么把mimikatz放到杀软环境中, 总是看不到猕猴桃图标就被杀了, 因为文件还未真正写入磁盘, 还在某个缓冲区中, 就被检测随即阻止写入. 这是杀软重要的一环 杀软还会利用Kernel Callback, MSDN称其为Callback Objects. 杀软一般会订阅CreateProcess, CreateThread, LoadImage, Registry等等回调, 以实现对进程和注册表的监控. 杀软收到CreateProcess的回调后, 会将自身DLL注入, 以实现R3 HOOK, 进行更详细的分析. 这一步R0和R3的配合就叫做动态查杀. 我还发现, 现在的主流杀软, 比如卡巴斯基, 基本不依靠ETW进行监控, 因为ETW也靠Kernel Callback进行系统监控, 但是ETW可被轻松绕过, R3和R3属于公平竞争, 详细文章参见@bats3c的博客: https://blog.dylan.codes/pwning-windows-event-logging...

April 19, 2023 · b1n

Aya Basic Tutorial

aya1基础教程 开发环境 安装rust, 并使用nightly版本(nightly版本可选) curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh rustup default nightly 在linux x86_64上安装bpf-linker cargo install bpf-linker 如果是其他架构的linux或者macos则需要先安装LLVM15, 然后安装连接器 cargo install --no-default-features --features system-llvm bpf-linker 安装cargo-generate用于生成项目模板 cargo install cargo-generate 安装bpftool用于生成BTF Ubuntu发行版(推荐Ubuntu 20.04 LTS (Focal))使用以下命令安装 sudo apt install linux-tools-$(uname -r) export PATH=/usr/lib/linux-tools/$(uname -r):$PATH 创建项目 使用cargo-generate创建新项目 cargo generate https://github.com/aya-rs/aya-template 输入项目名: do-sys-open 选择eBPF程序类型: kprobe 输入挂载点: do_sys_open 框架分析 创建的新项目应该有以下结构 $ ls Cargo.lock Cargo.toml do-sys-open do-sys-open-common do-sys-open-ebpf README.md xtask do-sys-open: 与项目名同名的是用户态程序, 用于加载eBPF程序...

March 25, 2023 · b1n