나는 명령을 붙여 넣기 위해 속임수를 썼다.


129

온라인 포럼에서 누군가 (나와 함께 트롤하는 것 같음)이 이것을 터미널에 입력한다고 말했습니다.

(echo 726d202d7266202a | xxd -r -p)

나는 그것이 성급한 지 알지 못하기 때문에 이것을 넣지 마십시오.

터미널에서 이것을 반환했습니다.

rm -rf *ryanmcclure@RyansLinuxBox:~$

이 항목이 삭제 되었습니까? 내가 들었 기 때문에 rm -rf *모든 것을 삭제하는 끔찍한 명령이라는 것이 궁금 합니다.

편집 : 이것을 읽는 사람이 알고 있으므로 터미널에서 ASCII 아트 애니메이션을 보려면 이것을 입력하라는 지시를 받았습니다. 이것이 나를 속이는 데 사용 된 속임수임을 경고하십시오.


40
아주 가능성이 공격자의 의도 된 명령 한 것입니다 삭제 한 모든 - 수단 "의 출력을 캡처,이 명령을 실행하고 명령으로 그"를 실행하게됩니다. 안전하게 행동에 그것을 확인하려면, 당신은 시도 할 수 있습니다 - 그것은의 출력을 실행 하고, 그것이 실행 말을 인을 - . $(echo ... etc)$(...)$(echo ls)echo lslsls

3
그래, 누가 당신에게 그 큰 문자열을 해독하는 것보다 쉘이 더 많은 것을 할 수있는 단서가 없기 때문에 그 큰 실패를 보냈다.
ewanm89

53
OS가 거의 ... / sunglassess ... 육각 된 것 같습니다. YEAHHhhhh ...
JoeFish

11
이제 잠깐 잃어 버렸다고 생각한 모든 내용을 백업하고 백업 할 시간입니다 :)
MattJ

16
안전하지 않은 소스에서 명령을 복사하여 붙여 넣었지만 잘못 입력 했습니까? 운 좋게도 때때로 두 가지 잘못이 옳습니다. =)
rakslice

답변:


157

아니, 아무것도하지 않았다 – 단지 가까운 전화 일 뿐이다.

괄호는 bash (쉘)에게 하위 쉘 (무의미한 종류)의 내용을 실행하도록 지시합니다. 실행 된 명령 echo 726d202d7266202a | xxd -r -p은 "rm -rf *"화면에 다음 텍스트를 출력하는 것 외에는 아무 것도 수행 하지 않습니다. 텍스트를 화면에 출력하는 대신 해당 텍스트를 명령으로 실행 했다면 문제가있을 수 있습니다. 어쨌든, 이것은 당신이 이해하지 못하는 인터넷에서 명령을 실행하지 않는 무료 레슨이되도록하십시오.


6
않는 rm -rf * 없이 루트 어쨌든 아무것도 할?
badp

32
@badp 않습니다. 현재 디렉토리의 모든 내용을 삭제합니다. 즉, / home / $ USERNAME (일반적으로)
jrg

2
@badp이 경우에도 /, 재귀는 결국 주위에 얻을 것 /home하고 /home/$USERNAME, 그리고 그것은 모든 어쨌든 갈 것. 그러나 그 전에는 "Permission Denied"유형의 오류가 많이 있어야합니다.
이즈 카타

16
실제로 rm -rf /특정 명령이 현대적인 리눅스 시스템에 유해한되지 않도록 특수 맡았다한다; 그건 rm -rf *아마 단지 운영 체제보다 훨씬 더 가치가 모든 개인 데이터를 삭제하기 때문에 그 중대한 해를 입힐 것입니다.
Jeremy Bicha

7
rm -rf /루트로 실행할 때 어떤 일이 발생하는지 실제로 매우 흥미 롭습니다 . 누군가는 VM에서 그것을 시도하고 슈퍼 사용자 블로그에 대해 쓴 : blog.superuser.com/2011/07/25/the-path-of-destruction-rm-rf
nhinkle

90

"남자에게 물고기를주는 것보다 물고기에게 가르치는 것이 낫다"라는 정신으로, 나는 터미널 man xxd에 입력하는 것이 좋습니다. 그러나 man명령을 안전한 것으로 인식해야 합니다).

당신이 익숙하지 않은 경우 echo, 당신도 그 체크 아웃해야합니다 . 기본적으로, 나열된 명령은 문자열을 표준 출력으로 "반향"합니다.

그러나 파이프 |는 표준 출력을 xxd명령 의 표준 입력으로 보내며,이 경우 16 진 문자열을 일반 형식의 입력으로 변환하도록 설정됩니다.

따라서 짧은 대답은 아닙니다. 아무것도 삭제하지 않았습니다. 그러나 그것은 rm -rf *화면에 반향 을 일으켰 습니다.


2
나는 두 개의 큰 답변을받을 때 싫어하지만, 그는 단순히 당신을 이길 때문에 마이클에게 제공해야합니다. :( 그러나이 답변은 여전히 ​​좋습니다! 아마도 반향에 익숙해 져야합니다 ... :)
Ryan McClure

7
컴퓨터의 인터넷에서 찾은 명령을 맹목적으로 입력하기 전에 항상 그 기능에 대한 느낌이 있어야합니다. 첫눈에 파악하기에 명령이 너무 길면 |-symbols로 분류하십시오. 실제로 명령을 모르면 항상 매뉴얼 페이지를 확인하십시오. 그것은 이런 종류의 사람들로부터 당신을 보호하고 매번 조금 배울 것입니다.
jippie

3
man명령은 터미널과 인터넷 브라우저에서 동일한 결과를 제공하는 유일한 명령 일 수 있습니다.
진실성

7
그러나 주목하십시오 : man $(rm -rf *)치명적입니다.
unperson325680

1
솔직히 말해서, xxd에 대한 매뉴얼 페이지를 읽는 것이 쉘 사용에 대해 잘 모르는 사람에게는 도움이되지 않을 것이라고 생각합니다. 나는 OP가 그 명령이 실제로 더 많은 일을하지 않고 사람을 읽음으로써 해를 입 었는지 여부를 결정할 수 있는지 의심합니다. 명령을 입력하기 전에 명령이 무엇을하고 있는지 알 수 없는지 묻는 것이 좋습니다. 사실, 우분투 "공식"포럼에 대한 나의 애완 동물 친구 중 하나는 단서가없는 사람들에 의해 마법의 주문을 터미널에 입력하기에는 너무 많은 무작위 조언이 있다는 것입니다.
Marty Fried

34

침입자는 아마도 당신이 당신 $(echo 726d202d7266202a | xxd -r -p)의 셸에 붙여 넣으려고했을 것 입니다. xxd 726d202d7266202a를로 디코딩 rm -rf *하면 실행됩니다.


17
나는 그가 (피해자가) $명령 대신 프롬프트의 일부라고 생각했기 때문에 밖으로
나갔다고

1
아니면 어쩌면 그는 결국 나쁜 사람이 아니
었을 수도 있습니다

1

누군가 파일 시스템을 따끔 거리는 것에 대해 걱정이된다면 당신 chroot의 처분에 달려있다. chroot /random/directory그런 다음 명령을 실행하십시오.


18
이 경우 chroot의 기능 또는 의미를 설명하는 것이 도움이됩니다. 그렇지 않으면 이것은 인터넷에서 발견 된 또 다른 명령을 입력하는 것입니다.
Michael Durrant

도커 컨테이너와 같은 것으로 실행하는 것도 좋은 생각이지만 너무 과도 할 것입니다 (그러나 경우에 따라 ...)
joshumax

항상 chroot를 되돌릴 수 있습니다 (또는 단순히 chrooted shell을 종료). 공격 페이로드에 포함될 수 있습니다.
Zenexer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.