wxyzz / hide_proc Goto Github PK
View Code? Open in Web Editor NEWThe demof for hide process and ko module
The demof for hide process and ko module
使用热补丁技术(livepatch)实现进程的隐藏。 测试环境是ubuntu 20.04 kernel v5.4。 本研究项目,仅用于研究和演示目的,禁止用于非法目的。 使用前,请认真阅读相关法律,如《中华人民共和国网络安全法》等相关法律,由使用不当引起的后果与本作者无关。 要求: 1. 隐藏多个进程 2. 根据程序的全路经或者进程的comm隐藏 3. bypass 通用检测工具 4. bypass 通用取证 隐藏的内容: 进程的隐藏: 1. /proc 目录下不显示隐藏进程pid目录及子目录 (已实现) 2. 进程的fork/execv等信息不通过 cn_proc 发送 (已实现) 3. 进程的fork/execv等信息不通过 audit 发送 (已实现) 4. 不能使用trace相关工具查看到该进程的相关信息(实现, puzzle kprobe) 5. kernel 版本大于5.0.1, 不能使用fanotify查看到相关信息 6. Check syscalls about other proccess. 内核模块的隐藏: 1. /proc/module 文件中不显示该内核模块 (已实现) 2. /proc/kallsyms 中不显示该内核模块中的符号 (已实现) 3. /sys/module 目录下不显示该内核模块 (已实现) 4. /sys/kernel/livepatch/ 目录下不显示该内核模块 (已实现) 5. 不能通过 /sys/kernel/tracing/enabled_functions 查看到相关信息 (已实现) 6. /proc/sys/kernel/tainted 文件不能显示该内核模块相关信息 (已实现) 7. 内核的日志信息中 不显示该内核模块信息 (已实现) 使用SM4算法增加加密壳,增加只执行一次的功能, 增加反分析功能: 1. 实现一个load壳,直接调用init_module系统调用加载ko模块, 不使用命令insmod或者modprobe。 2. 使用SM4对ko模块进行加密处理。 3. load的main函数执行前进行简单的反动态分析。 (1)禁止产生core文件。 (2)判断自己是否是被跟踪状态,如果是,则杀掉父进程,直接(安全)删除 (3) 判断父进程是否是bash/sudo/pid==1,否则杀掉父进程,直接(安全)删除。 (4)然后使用ptrace PTRACE_TRACEME, 反运行中调式。 4. 程序执行完成, 删除自己。 对抗使用内核模块检测该模块(可选): 禁止加载ko: 可设置modules_disabled为1, 通过参数force_modules_disabled=1设置 禁止关机/重启/kdump: 通过参数force_reboot_disabled=1设置 icmp隐通道使用例子: icmp echo: ping命令携带不同的参数可以触发不同的行为。 1. ping -s [7|18|29|40|51] 或者 ping -p 2A 触发机器重启 2. ping -s [2|17|32|47] 或者 ping -p 24 触发机器关机 3. ping -s [6|30|54] 或者 ping -p 01 创建文件 /tmp/xxx 4. ping -s [3|28|53] 或者 ping -p 02 删除文件 /tmp/xxx 使用示例: sudo ./load key ['hidden_base_exe=0 hidden_proc_name="hidden_comm","hidden_comm1" '] TODO: 1. 双层加壳,增加静态分析难度。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.