[英]A C program to crash the system
几天前我接受了一次采访,我被要求在C中编写一个程序,该程序崩溃系统/关闭系统。 毋庸置疑,我觉得非常愚蠢,不知道如何接近:(
我还是试了一下,编写了使用大量内存的程序。 但我的采访者对我的任何技术都不满意。
编写一个调用未定义或实现定义的行为的程序很容易。 其中一些程序可能会使系统崩溃。
但根据定义,这是不一致的。 现代操作系统很难(尽管不是100%成功)防止流氓应用程序崩溃系统。
没有可移植的方法来编写崩溃系统的C程序。
叉炸弹可能会或可能不会使系统陷入困境。 当然, fork
不可移植 - 系统可以通过限制给定帐户可以创建的进程数来防御此类攻击。
当然总有这个:
#include <stdio.h>
int main(void) {
puts("HEY YOU, PULL THE PLUG!!");
return 0;
}
好吧,你有没有尝试过?
void main(void) {
system("shutdown -P 0");
}
要在Linux上执行此程序,您必须以root
身份登录。
我会尝试写垃圾到/dev/kmem
。 很有可能导致无法恢复的系统崩溃。
一种方法是利用当前系统的“权限提升”漏洞。
根据当前配置,您可以搜索影响系统的漏洞。 例如基于内核版本。 然后将权限升级为root。
一旦进程为“root”,它就可以以各种方式关闭系统。 将SIGPWR发送到“init”进程是一种干净的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.