没有根的 AFL 模糊测试 - 避免修改 /proc/sys/kernel/core_pattern



我想在没有root访问权限的Linux系统上运行American Fuzzy Lop (AFL( fuzzer。 当我这样做时,发生的第一件事是它给了我一条错误消息,要求我修改/proc/sys/kernel/core_pattern

[-] 嗯,您的系统配置为将核心转储通知发送到 外部实用程序。这将由于延迟时间延长而导致问题 在模糊二进制故障和此信息之间 最终通过标准的 waitpid(( API 中继到模糊器。

为避免崩溃被误解为挂起,请以 root 身份登录 并临时修改/proc/sys/kernel/core_pattern,如下所示:

echo core >/proc/sys/kernel/core_pattern
[-] PROGRAM ABORT : Pipe at the beginning of 'core_pattern'
     Location : check_crash_handling(), afl-fuzz.c:6959

我确实理解此错误消息以及为什么解释有意义。

不幸的是,修改/proc/sys/kernel/core_pattern需要系统上的root访问权限。 我从经验中知道,AFL 的其余部分不需要 root 访问权限即可工作。

有没有解决方法可以在没有根的情况下使用 AFL? (也许是一些替代的用户级方法来禁用自动核心转储处理程序,这样它就不会弄乱 AFL? 我在这里读过一堆关于 Linux 上的核心转储的问题,但没有一个确定任何在用户级每个进程粒度上配置核心转储处理程序的方法。

实际上有人已经在这里请求该功能:

来源: https://groups.google.com/forum/m/#!msg/afl-users/7arn66RyNfg/BsnOPViuCAAJ

所以你只需要AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES设置这个 env 变量 - 顾名思义你可能会错过一些东西:(

另请参阅/docs/env_variables.txt 中的 3( 以供参考https://github.com/mirrorer/afl/blob/master/docs/env_variables.txt

最新更新