$ :(){ :|:& };:

웃는 남자의 이미지

Quote:
Code Listing 6.2: A bash forkbomb

$ :(){ :|:& };:

Now this is not good - any user with shell access to your box could take it down. But if that user can only start 30 processes the damage will be minimal. So let's set a process limit:

Gentoo Weekly Newsletter 를 읽다가 궁금해서요.
$ :(){ :|:& };: 가 어떻게 쉘 폭탄이 되는 지 좀 설명해주십시요. ^^

새가슴이라서 직접해보지는 못하겠고...
다른 분이 한번 해보시고 어떤 증상이 나타나는지 알려주셔도 좋고..ㅎㅎ

같은 글에서는 저런 명령에 대비해서 user process 갯수를 적절히 제한해두라고 하네요.

Quote:
Code Listing 6.3: Setting a process limit

# ulimit -u 30
# ulimit -a

max user processes (-u) 30

File attachments: 
첨부파일 크기
Image icon fork.jpg78.15 KB
kirrie의 이미지

대략.. 무한루프를 돌면서 쓰레기 bash 프로세스를 생성하는 것 같습니다.
colinux에서 한번 실행했습니다만.. 결과는..
생각하기도 싫습니다. :evil:

--->
데비안 & 우분투로 대동단결!

나는오리의 이미지

kirrie wrote:
대략.. 무한루프를 돌면서 쓰레기 bash 프로세스를 생성하는 것 같습니다.
colinux에서 한번 실행했습니다만.. 결과는..
생각하기도 싫습니다. :evil:
결과를 안알려 주시는군요.
결국 혼자만 당하긴 싫으신가보죠? ㅡ.,ㅡ;
아~ 집에가면 왠지 저 명령어부터 실행해봐야하는건가요?
ㅠ.ㅠ
어제부터 이글보고 난 후에 계속 궁금해 죽겠네요.
hey의 이미지

제 데스크탑에서 해봤어요. 결과는 ..

퇴근했어요.

... 책임지세요!!!


----------------------------
May the F/OSS be with you..


aiking의 이미지

ㅋㅋㅋ 내일이나 모레쯤 한번 해봐야겠네요~ㅋㅋㅋㅋ

다들 어떤 증상이길래~ㅋ

설마~무한 프로세서 생성인가요?ㅋㅋㅋ

o ji ma! ji rm sin!
삽질의 추억~ㅋ

Prentice의 이미지

ulimit -u로 유저 프로세스 제한하고 실행해보세요.

멋모르고 대책없이 cygwin에서 실행해봤다가 피봤습니다. T_T

warpdory의 이미지

회사 서버에서 돌렸다가.... ......... 좌절 직전 모드였습니다.

히유...


---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도

즐겁게 놀아보자.

jachin의 이미지

더미 시스템에서 root 권한으로 과감하게 실행했습니다. :evil:

사진으로 찍어서 보여드릴께요. :)

앗... 지금 방금 관찰했는데요...

모든 프로세스가 하나씩... 하나씩 죽어가요.

sshd 도, samba도, bash 도... Bye~ 모두들 죽어가요...

엄청나네요. :twisted:

메모리 영역에 있는 모든 프로세스는 다 죽고, 비어있는 메모리 영역들...

스왑들... 와~ 정말 새하얗게 메모리를 지우는 모습. Be White~ More White~ (점점 미쳐가고 있음)

superwtk의 이미지

도대체 어떻게 되길래...

궁금하군요 :roll:

나는오리의 이미지

jachin wrote:
더미 시스템에서 root 권한으로 과감하게 실행했습니다. :evil:

사진으로 찍어서 보여드릴께요. :)

사진이 무척 궁금하네요.
xsaku의 이미지

덜덜덜덜덜... (한번 실행후 아직까지 충격이 가시지 않고있어요..)

Prentice의 이미지

aiking wrote:
ㅋㅋㅋ 내일이나 모레쯤 한번 해봐야겠네요~ㅋㅋㅋㅋ

다들 어떤 증상이길래~ㅋ

설마~무한 프로세서 생성인가요?ㅋㅋㅋ


CPU가 무한으로 생긴다면 얼마나 좋을까요 ^^;;;

------

:|:

이부분이 무한 실행되는 것인가요?

lifthrasiir의 이미지

검은해 wrote:
:|:

이부분이 무한 실행되는 것인가요?

:|:&라고 되어 있으면 :와 :&를 함께 실행하게 되는데 :는 현재 bash 프로세스 안에서 돌겠지만 :&는 fork되어 새로운 bash 프로세스를 만든 후 :를 실행하게 됩니다. 프로세스 제한이 없다면 끝도 없이 프로세스를 만들겠죠. (제 생각에는 시간이 지날 수록 프로세스가 증가하는 속도가 높아질 것 같네요. :가 돌아 가는 프로세스 수가 늘어나니까;)

- 토끼군

웃는 남자의 이미지

xsaku wrote:
덜덜덜덜덜... (한번 실행후 아직까지 충격이 가시지 않고있어요..)

다들 ...대체 어느 정도이시길래 이토록 충격적인 반응이..?
더더욱 해보기가 두려워지네요.
거의 rm -rf / 급 정도인가요?

----------------------------------------
Nothing left after Nirvana.

dasomoli의 이미지

웃는 남자 wrote:
거의 rm -rf / 급 정도인가요?

:D



dasomoli의 블로그(http://dasomoli.org)
dasomoli = DasomOLI = Dasom + DOLI = 다솜돌이
다솜 = 사랑하옴의 옛 고어.
Developer! ubuntu-ko! 다솜돌이 정석
lovethecorners의 이미지

음..이런거 군요...vmware 에서 해보았습니다...
조금 보여드릴께요...

댓글 첨부 파일: 
첨부파일 크기
Image icon 0바이트
marantz의 이미지

대박이군요...;

저도 VMWARE 에서 돌렸다가...

그냥 Poweroff 시켰습니다. 마우스도 안움직이려고 하더군요.

Too Many Sceret is in your heart.
We must break it and don't forget it.
Until no more secret remains in your soul

다크슈테펜의 이미지

&nbsp

인생이란게 다 그런게 아니겠어요....? 뭘(?)
http://schutepen.egloos.com

aiking의 이미지

모든것을 다 포기하고~ 상황을 받아드이는 저 모습~ㅋㅋㅋ

o ji ma! ji rm sin!
삽질의 추억~ㅋ

ffnhj의 이미지

윽, 농담인줄 알았는데, 진짜네.
실행 3초 후에 결국 리셋버튼 눌렀습니다. :cry:

근데, 아직도 이 명령어가 이해가 되지 않습니다. 누구 좀 설명해 주세요.

segfault의 이미지

ffnhj wrote:
윽, 농담인줄 알았는데, 진짜네.
실행 3초 후에 결국 리셋버튼 눌렀습니다. :cry:

근데, 아직도 이 명령어가 이해가 되지 않습니다. 누구 좀 설명해 주세요.

일종의 재귀 호출입니다.

:(){ blahblah } :라고 불리는 함수를 정의합니다. :는 단지 함수 이름입니다.

:|:& 위에서 토끼군님이 설명해주신 대로.. 명령을 실행시키면 자기 스스로 : 함수를 재귀호출하고, & 명령에 의해서 백그라운드 프로세스를 한개 더 실행합니다. 한마디로, : 함수 안에서 : 함수를 두개씩 호출하는거죠.. 저렇게 함으로써, bash프로세스는 무한히 fork됩니다. 계속 2**n개의 프로세스가 생기니까, 시스템으로써는 감당이 안되는겁니다..

저 함수를 알기쉽게 풀어쓰면

bashbomb() {
   bashbomb | bashbomb&
};
bashbomb

이렇게 되겠죠...

저도 정확히는 모르지만, 제가 아는 범위 내에서 답변해 드렸습니다.

talez의 이미지

뭣두 모르고 저거 붙여넣기 해서 실행했다가 잽팅했어요 :cry:

컴퓨터가 서서히 뻗어버리더군요

결국 키 입력도 안되서 리셋버튼을..... :cry: :cry:

잇힝~

coro328의 이미지

옆에 놀고 있는 서버 다운시켜버렸습니다 :(

조용히 리셋시켜 놨습니다 :evil:

Fe.head의 이미지

: 이걸로 함수를 만들수 있다니 참신하군요 :)

그냥

while [ 1 ]
do
     bash &
done

이걸로도 되지않나요?

고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"

s4bz의 이미지

fehead wrote:
: 이걸로 함수를 만들수 있다니 참신하군요 :)

그냥

while [ 1 ]
do
     bash &
done

이걸로도 되지않나요?

이것보다 더 효과적(?)이죠..

최소 2배이상의 효과를..;;

아~~

segfault의 이미지

s4bz wrote:
이것보다 더 효과적(?)이죠..

최소 2배이상의 효과를..;;

2배가 아니라

2**n배 이상 효과를 낼지도 (.....)

망치의 이미지

vmware 에서 실행했는데..
그냥 잠드셨습니다.. -_-;

---------------------------------------
http://www.waitfor.com/
http://www.textmud.com/

ydhoney의 이미지

음..돈 줘야하는데 안주는 업체 서버에다가 저걸 실행시켜보고 싶어요.

ffnhj의 이미지

친절한 설명 감사드립니다.
':'가 쉘에서 제어문자가 아니라 일반문자로 취급된다는 걸 처음 알았네요.

sigsegv wrote:
ffnhj wrote:
윽, 농담인줄 알았는데, 진짜네.
실행 3초 후에 결국 리셋버튼 눌렀습니다. :cry:

근데, 아직도 이 명령어가 이해가 되지 않습니다. 누구 좀 설명해 주세요.

일종의 재귀 호출입니다.

:(){ blahblah } :라고 불리는 함수를 정의합니다. :는 단지 함수 이름입니다.

:|:& 위에서 토끼군님이 설명해주신 대로.. 명령을 실행시키면 자기 스스로 : 함수를 재귀호출하고, & 명령에 의해서 백그라운드 프로세스를 한개 더 실행합니다. 한마디로, : 함수 안에서 : 함수를 두개씩 호출하는거죠.. 저렇게 함으로써, bash프로세스는 무한히 fork됩니다. 계속 2**n개의 프로세스가 생기니까, 시스템으로써는 감당이 안되는겁니다..

저 함수를 알기쉽게 풀어쓰면

bashbomb() {
   bashbomb | bashbomb&
};
bashbomb

이렇게 되겠죠...

저도 정확히는 모르지만, 제가 아는 범위 내에서 답변해 드렸습니다.

warpdory의 이미지

ydhoney wrote:
음..돈 줘야하는데 안주는 업체 서버에다가 저걸 실행시켜보고 싶어요.

실행시켰더니 바로 입금시켜주는데요 ?


---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도

즐겁게 놀아보자.

hjeeha의 이미지

돈안주는 업체 서버에서 직접 실행시키기보다.. 자주 쓰는 쉘 중간에 슬쩍 라인을 끼워넣는 것이..
결과는 대략 정신병원으로 달려가지 않을까 싶네요.

highwind의 이미지

Gentoo Weekly Newsletter: August 8th, 2005

여기서 나온거군요 ^^;;

젠투 만세!

=====================================
http://timothylive.net

lifthrasiir의 이미지

ydhoney wrote:
음..돈 줘야하는데 안주는 업체 서버에다가 저걸 실행시켜보고 싶어요.

bash profile에다 올려 놓으세요.

- 토끼군

innu의 이미지

재..재밌네요...

아... 하하하하하하하 :shock: :shock: :shock: :shock:

Debian Spirit !!!

kjd2338의 이미지

tokigun wrote:
ydhoney wrote:
음..돈 줘야하는데 안주는 업체 서버에다가 저걸 실행시켜보고 싶어요.

bash profile에다 올려 놓으세요.

- 토끼군

이리되면.... 대략 좌절....

(이래서 서버는 IDC에 놓는 것인가 봅니다... :D )

인생은 삽질에서 시작해서, 삽질로 끝난다...

ftfuture의 이미지

MSN 제목으로 넣었더니 아이콘이 캬하하
재밌네요..