본문 바로가기

Learning/└◆Network Hacking

운영체제 내에서 부하량을 주는 방법(로컬 DoS)

 

 

 

 

 

운영체제 내에서 DoS(Denial of Services) Attack

 

   

모니터링 툴 종류

# top - Display Linux tasks

# free - Display amount of free and used memory in the system

# /usr/bin/baobab - A graphical tool to analyse disk usage

# /usr/bin/xload - System load average display for X

# /usr/bin/gnome-system-monitor - System monitor

# /usr/bin/gnome-system-log - /var/logs/messages log viewer

 

 

# gnome-[TAB][TAB]

 

 

# gnome-system-[TAB][TAB]

gnome-system-log      gnome-system-monitor

 

 

[실습] 시스템 모니터링(CPU/MEM)

 

[TERM2] # top

[TERM3] # gnome-system-monitor &

 

 

 

 

 

 

 

 

 

CPU 부하량 테스트

 

# cd /root/bin

# cat cpu.sh

#!/bin/bash

 

echo "+------------------------------------------+"

echo "| Control-C will terminate cpu.sh process. |"

echo "+------------------------------------------+"

 

START=0

END=1000000000000000000

while [ $START -le $END ]

do

       START=`expr $START + 1`

done

 

# nome-system-monitor & 모니터링

 

# ./cpu.sh

-> 모니터링 창을 확인한다.

 

 

# cat cpu2.sh

#!/bin/bash

 

echo "+------------------------------------------+"

echo "| Control-C will terminate cpu2.sh process.|"

echo "+------------------------------------------+"

 

while true

do

       a=1

done

 

# ./cpu2.sh

-> 모니터링 창을 확인한다.

 

 

# cat cpu3.sh

#!/bin/bash

 

echo "+------------------------------------------+"

echo "| Control-C will terminate cpu3.sh process.|"

echo "+------------------------------------------+"

 

trap 'killall cpu.sh ; exit 1' 2 3

 

./cpu.sh &

sleep 10

./cpu.sh &

sleep 10

./cpu.sh &

sleep 10

./cpu.sh &

sleep 3600

 

trap 2 3

 

# ./cpu3.sh

-> 모니터링 창을 확인한다.

 

 

 

-------------------------------------------------------------------------------------------------

 

 

 

메모리 부하량 테스트

 

linux200(MEM : 1G => 4G)

# free

# top -n 1 | grep Mem:

 

# cat mem.c

#include<stdio.h>

#include<stdlib.h>

 

main()

{

        char *m;

 

        printf("+------------------------------------------+\n");

        printf("| Control-C will terminate mem process. |\n");

        printf("+------------------------------------------+\n");

 

        while (1) m=malloc(1);

}

 

# man printf

# whatis printf

# man 3 printf

 

# gcc -o mem mem.c     (# yum -y install gcc)

# ./mem

<CTRL + C>

 

# which gcc

# gcc -o mem mem.c

# file mem

 

 

 

 

 

 

디스크 부하량 테스트

 

[TERM2] # top

[TERM3] # gnome-system-monitor

[TERM4] # while true

> do

> echo "----------------`date`-------------"

> df -h /

> sleep 2

> done

 

# cat disk_exhaust.c

#include<fcntl.h>

#include<sys/types.h>

#include<sys/stat.h>

 

main()

{

     int fd;

     char buf[10000];

     fd=open("tempfile", O_WRONLY | O_CREAT, 0777);

     unlink("./tempfile");

     while(1)

          write(fd, buf, sizeof(buf));

}

 

# gcc -o disk_exhaust disk_exhaust.c

# ./disk_exhaust

<CTRL + C>

 

실습시 한 사람이 사용할수 있는 디스크 양이 제한 설정 되어 있기 때문에 적당량에서 종료된다.