簡體   English   中英

一個崩潰系統的C程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM