色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

最為精簡的一個Linux Fork炸彈解析

Linux愛好者 ? 來源:博客 ? 作者:Saymagic ? 2021-09-07 16:12 ? 次閱讀

轉自:http://blog.saymagic.cn/2015/03/25/fork-bomb.html

Jaromil在2002年設計了最為精簡的一個Linux Fork***,整個代碼只有13個字符,在shell中運行后幾秒后系統就會宕機:

:() { :|:& };:

這樣看起來不是很好理解,我們可以更改下格式:

:()

{

:|:&

};

更好理解一點的話就是這樣:

bomb()

{

bomb|bomb&

};

bomb

因為shell中函數可以省略function關鍵字,所以上面的十三個字符是功能是定義一個函數與調用這個函數,函數的名稱為:,主要的核心代碼是:|:&,可以看出這是一個函數本身的遞歸調用,通過&實現在后臺開啟新進程運行,通過管道實現進程呈幾何形式增長,最后再通過:來調用函數引爆***。因此,幾秒鐘系統就會因為處理不過來太多的進程而死機,解決的唯一辦法就是重啟。

Bomb一下

秉著不作不死的心態,我們也來運行一下,于是我將矛頭指向云主機,我使用了國內的一個2G內存的云主機,首先在本地開啟兩個終端,在一個終端連接云主機后運行***,幾秒后再嘗試用另外一個終端登錄,效果可以看下面Gif圖:

看,運行一段時間后直接報出了-bash: fork: Cannot allocate memory,說明內存不足了。并且我在二號終端上嘗試連接也沒有任何反應。因為是虛擬的云主機,所以我只能通過主機服務商的后臺來給主機斷電重啟。然后才能重新登錄:

***危害

Fork***帶來的后果就是耗盡服務器資源,使服務器不能正常的對外提供服務,也就是常說的DoS(Denial of Service)。與傳統1v1、通過不斷向服務器發送請求造成服務器崩潰不同,Fork***有種坐山觀虎斗,不費一兵一卒斬敵人于馬下的感覺。更嚇人的是這個函數是不需要root權限就可以運行的。看到網上有帖子說某些人將個性簽名改為Fork***,結果果真有好奇之人中槍,試想如果中槍的人是在公司服務器上運行的話,oh,!

預防方式

當然,Fork***沒有那么可怕,用其它語言也可以分分鐘寫出來一個,例如,python版:

import os

while True:

os.fork()

Fork***的本質無非就是靠創建進程來搶占系統資源,在Linux中,我們可以通過ulimit命令來限制用戶的某些行為,運行ulimit -a可以查看我們能做哪些限制:

ubuntu@10-10-57-151:~$ ulimit -a

core file size (blocks, -c) 0

data seg size (kbytes, -d) unlimited

scheduling priority (-e) 0

file size (blocks, -f) unlimited

pending signals (-i) 7782

max locked memory (kbytes, -l) 64

max memory size (kbytes, -m) unlimited

open files (-n) 1024

pipe size (512 bytes, -p) 8

POSIX message queues (bytes, -q) 819200

real-time priority (-r) 0

stack size (kbytes, -s) 8192

cpu time (seconds, -t) unlimited

max user processes (-u) 7782

virtual memory (kbytes, -v) unlimited

file locks (-x) unlimited

可以看到,-u參數可以限制用戶創建進程數,因此,我們可以使用ulimit -u 20來允許用戶最多創建20個進程。這樣就可以預防bomb***。但這樣是不徹底的,關閉終端后這個命令就失效了。我們可以通過修改/etc/security/limits.conf文件來進行更深層次的預防,在文件里添加如下一行(ubuntu需更換為你的用戶名):

ubuntu - nproc 20

這樣,退出后重新登錄,就會發現最大進程數已經更改為20了,

這個時候我們再次運行***就不會報內存不足了,而是提示-bash: fork: retry: No child processes,很棒,此時說明Linux限制了***創建線程。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11293

    瀏覽量

    209340
  • 代碼
    +關注

    關注

    30

    文章

    4779

    瀏覽量

    68527

原文標題:解析超經典的 Fork 炸彈

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    域名解析是什么 為什么要進行域名解析

    云的官方網站,這個背后就是域名解析的過程。 域名解析種說法就是把域名轉換為IP地址。當我們對網站進行訪問的時候,實際上就是與
    的頭像 發表于 11-22 10:12 ?157次閱讀

    Linux系統中shell命令解析

    shell是Linux系統的用戶界面,提供了用戶與內核交互的種接口,它接收用戶輸入的命令并到送到內核去執行,因此也被稱為Linux的命令解釋器。
    的頭像 發表于 11-05 15:40 ?223次閱讀

    Linux根文件系統的掛載過程

    Linux根文件系統(rootfs)是Linux系統中所有其他文件系統和目錄的起點,它是內核啟動時掛載的第一個文件系統。
    的頭像 發表于 10-05 16:50 ?405次閱讀

    如何構建Linux根文件系統

    構建Linux根文件系統是涉及多個步驟和概念的過程,它對于Linux系統的啟動和運行至關重要。
    的頭像 發表于 10-05 16:47 ?295次閱讀

    深度解析linux HID核心

    linux內核中,HID核心是完成HID功能的關鍵組件,如果內核支持HID,在啟動過程中,則會對HID進行初始化,完成該操作的函數是hid_init(),實現在/drivers/hid/hid-core.c中。
    的頭像 發表于 09-29 17:04 ?424次閱讀
    深度<b class='flag-5'>解析</b><b class='flag-5'>linux</b> HID核心

    深度解析linux時鐘子系統

    linux內核中實現了CLK子系統,用于對上層提供各模塊(例如需要時鐘信號的外設,USB等)的時鐘驅動接口,對下層提供具體SOC的時鐘操作細節。
    的頭像 發表于 09-29 16:46 ?439次閱讀
    深度<b class='flag-5'>解析</b><b class='flag-5'>linux</b>時鐘子系統

    小白也會的,在linux上跑android應用的方案

    介紹可以在linux上跑安卓應用的linux桌面——OpenFDE
    的頭像 發表于 08-23 11:14 ?631次閱讀
    小白也會的,在<b class='flag-5'>linux</b>上跑android應用的方案

    產生諧波電流最為突出的設備是什么

    、機電控制、充電裝置等許多方面,給電網帶來了相當多的諧波。據統計,由整流設備引起的諧波將近達到全部諧波的40%,是諧波的主要來源。 以具有強烈非線性特性的電弧為工作介質的設備 :如氣體放電燈(如高壓鈉燈、高壓汞燈、
    的頭像 發表于 08-14 14:52 ?455次閱讀

    python解析netflow數據到csv的流程詳解

    本文主要講解了linux下通過tcpdump抓取netflow數據包,并將其導入到wireshark進行解析,然后通過wireshark導出數據為json文件,再通過python腳本將其解析為csv文件以便做數據分析。
    的頭像 發表于 05-01 11:18 ?665次閱讀
    python<b class='flag-5'>解析</b>netflow數據到csv的流程詳解

    如何采用“狀態機”解析UART數據幀

    如果系統接收上述“不定長度”的協議幀,將會有挑戰--如何高效接收與解析。 為簡化系統設計,我們強烈建議您采用“狀態機”來
    的頭像 發表于 03-25 14:29 ?681次閱讀
    如何采用“狀態機”<b class='flag-5'>解析</b>UART數據幀

    linux和windows的區別 linux系統般用來干嘛

    Linux的設計理念 Linux開源操作系統,其設計理念是自由、共享和開放。Linux系統遵循類Unix的設計原則,注重系統的穩定性
    的頭像 發表于 02-05 14:06 ?942次閱讀

    淺談Linux的進程

    進程和程序的區別: 進程是動態的,程序是靜態的 、進程的創建(fork()函數) int main(){ pid_t pid; pid=fork(); if(pid?????>0
    的頭像 發表于 01-28 15:54 ?257次閱讀
    淺談<b class='flag-5'>Linux</b>的進程

    美國JDAM聯合制導攻擊武器技術解析與實戰應用

    聯合制導攻擊武器般由Mk-82(500磅)、Mk-83(1000磅)和Mk-84(2000磅)四種規格的常規炸彈改裝而成,改裝后分別編號為GBU-38、GBU-32和GBU-31。其中GBU-32和GBU-31為專用侵徹型炸彈
    發表于 01-19 10:32 ?1640次閱讀
    美國JDAM聯合制導攻擊武器技術<b class='flag-5'>解析</b>與實戰應用

    Linux內核內存管理架構解析

    內存管理子系統可能是linux內核中最為復雜的子系統,其支持的功能需求眾多,如頁面映射、頁面分配、頁面回收、頁面交換、冷熱頁面、緊急頁面、頁面碎片管理、頁面緩存、頁面統計等,而且對
    的頭像 發表于 01-04 09:24 ?653次閱讀
    <b class='flag-5'>Linux</b>內核內存管理架構<b class='flag-5'>解析</b>

    Linux常用命令自學手冊》+本手邊linux速查字典

    的兩本書,《linux就該這么學》和《Linux常用命令自學手冊》。 首先,這邊書還是延續了劉老師精簡的風格,從目錄上看,幾乎涵蓋了linux命令中最常用的200
    發表于 12-26 08:46
    主站蜘蛛池模板: 99re在这里只有精品| 免费99精品国产人妻自在线| 国产精品国产三级国AV在线观看| 97伦理97伦理2018最新| 最新色导航| 中文国产在线观看| 最近免费视频中文2019完整版| 伊人久久国产精品| 在线不卡中文字幕| 在线免费视频a| 51xx午夜影视福利| 99久久爱看免费观看| free高跟丝袜秘书hd| xxxx88| qvod电影在线观看| 成人国内精品久久久久影院| Zoofilivideo人馿交| 丰满五十六十老熟女HD60| 国产成人精品亚洲线观看| 国产午夜精AV在线麻豆| 后式大肥臀国产在线| 久久国产乱子伦免费精品| 蜜芽tv在线www| 日本不卡三卡四卡| 忘忧草秋观看未满十八| 亚洲AV國產国产久青草| 亚洲最大日夜无码中文字幕| 诱人的秘书BD在线观看| 99久久久精品免费观看国产| 厨房玩朋友娇妻中文字幕| 国产精品爽黄69天堂A片| 红色机尾快播| 蜜柚视频网在线观看免费| 欧美乱妇日本无乱码特黄大片| 日日射夜夜干夜夜插在线播放| 小玲被公扒开腿| 中国女人内谢69XXXXXA片| WWW久久只有这里有精品| 国产精人妻无码一区麻豆| 精品国产在线国语视频| 女人精69xxxxx|