项目简介
@veo师傅研究的一个全链路内存马系列(ebpf内核马、nginx内存马、WebSocket内存马)。
注意:本项目不含有完整的利用工具,仅提供无害化测试程序、防御加固方案,以及研究思路讨论。
ebpf内核马:通过ebpf hook入/出口流量,筛选出特定的恶意命令,再通过hook execve等函数,将其他进程正常执行的命令替换为恶意命令,达到WebShell的效果。
无进程、无端口、无文件(注入后文件可删除)
执行命令不会新建shell进程,无法通过常规行为检测
将WebShell注入内核,无法通过常规内存检测
可改造内核马,适配HTTP协议以外的所有协议
内核版本需要大于4.15.0,即 Ubuntu 16、CentOS 8
命令不是直接执行,需要等待其他进程执行命令
无回显
下载测试程序releases并运行
POST veo=/bin/touch /tmp/pwn
1. 为什么不通过ebpf直接执行命令
根据ebpf的编写规则,ebpf自己是不能执行命令的,它只能hook各种函数。所以有两种方法可以间接达到执行命令的效果
自己开一个进程,ebpf通过ebpf map传输命令参数到这个进程,通过这个进程执行命令
监听其他进程执行的命令,将其修改为恶意命令参数
2. 怎么通过ebpf识别HTTP报文
3. 怎么让ebpf脱离加载器在内核中持续运行,即使加载器程序退出
https://eunomia.dev/zh/tutorials/28-detach/
通过bpftool可以检测出是否有ebpf恶意程序
权限收敛,收敛SYS_ADMIN、CAP_BPF等权限
确认 /proc/sys/kernel/unprivileged_bpf_disabled 为 1
https://github.com/veo/ebpf_shell
https://github.com/veo/nginx_shell
转载于潇湘信安。
下载地址
原文始发于微信公众号(乌雲安全):一种新型内核马/WebShell
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论