ฉันถูกหลอกให้คัดลอกคำสั่งวางมันทำให้ฉันเจ็บหรือเปล่า?


129

ในฟอรัมออนไลน์บางคน (ฉันเดาว่าจะโทรลล์กับฉัน) พูดเพื่อป้อนข้อมูลนี้ในเทอร์มินัล:

(echo 726d202d7266202a | xxd -r -p)

อย่าวางสิ่งนี้เพราะฉันไม่ทราบว่ามันจะเกิดอะไรขึ้น

มันส่งคืนสิ่งนี้ในเทอร์มินัล:

rm -rf *ryanmcclure@RyansLinuxBox:~$

ลบสิ่งนี้หรือไม่? ฉันสงสัยเพราะฉันได้ยินมาrm -rf *ว่าคำสั่งที่น่ากลัวนั้นลบทุกอย่าง

แก้ไข: เพื่อให้ใครก็ตามที่อ่านสิ่งนี้ทราบฉันได้รับคำสั่งให้ป้อนสิ่งนี้เพื่อดูภาพเคลื่อนไหว ASCII ในเทอร์มินัล ถูกเตือนว่านี่เป็นกลอุบายที่ใช้ในการหลอกฉัน


40
มีโอกาสมากที่คำสั่งที่ผู้โจมตีต้องการ$(echo ... etc)ซึ่งจะลบทุกอย่าง - $(...)หมายถึง "เรียกใช้คำสั่งนี้จับเอาท์พุทและเรียกใช้เป็นคำสั่ง" ที่จะเห็นมันในการดำเนินการได้อย่างปลอดภัยคุณสามารถลอง$(echo ls)- มันวิ่งการส่งออกของecho lsซึ่งเป็นls- lsซึ่งเป็นที่จะบอกว่ามันจะทำงาน

3
ใช่ใครก็ตามที่ทำให้คุณล้มเหลวอย่างมากที่ไม่มีเงื่อนงำว่าจะให้เชลล์ทำอะไรได้มากกว่าถอดรหัสสตริง
ewanm89

53
ดูเหมือนว่าระบบปฏิบัติการของคุณเกือบ ... / sunglassess ... ดำเนินการแล้ว YEAHHhhhh ...
JoeFish

11
ตอนนี้ถึงเวลาที่จะไปและทำให้การสำรองข้อมูลของทุกอย่างที่เป็นช่วงเวลาสั้น ๆ ที่คุณคิดว่าคุณอาจมีการสูญเสีย :)
MattJ

16
ดังนั้นคุณคัดลอกและวางคำสั่งจากแหล่งที่ไม่ปลอดภัย แต่คุณพิมพ์ผิดหรือไม่ โชคดีที่บางครั้งความผิดสองอย่างทำให้ถูกต้อง =)
rakslice

คำตอบ:


157

ไม่มันไม่ได้ทำอะไรเลย - มันแค่โทรใกล้ ๆ

วงเล็บบอก bash (เปลือก) เพื่อดำเนินการเนื้อหาใน subshell (ซึ่งเป็นชนิดไม่มีจุดหมาย) คำสั่งที่ดำเนินการecho 726d202d7266202a | xxd -r -pไม่ได้ทำอะไรนอกจากเอาท์พุทข้อความต่อไปนี้ไปยังหน้าจอ“ rm -rf *” หากมีการเรียกใช้ข้อความนั้นเป็นคำสั่ง - แทนที่จะส่งออกข้อความไปยังหน้าจอ - คุณจะมีปัญหา ดังนั้นให้เป็นบทเรียนฟรีที่จะไม่เรียกใช้คำสั่งจากอินเทอร์เน็ตที่คุณไม่เข้าใจ


6
ไม่rm -rf * ได้โดยไม่ต้องรากจะทำอะไรต่อไปหรือไม่
badp

32
@badp มันทำ มันลบทุกอย่างในไดเรกทอรีปัจจุบันซึ่งหมายความ / home / $ USERNAME (โดยทั่วไป)
JRG

2
@badp ถึงแม้ว่ามันจะเป็น/, การเรียกซ้ำในที่สุดก็จะได้รับรอบ/homeแล้ว/home/$USERNAMEและจากนั้นก็ต้องการทั้งหมดเลยล่ะค่ะ ควรมีข้อผิดพลาด "การอนุญาตที่ถูกปฏิเสธ" จำนวนมากก่อนหน้านั้นแม้ว่า
Izkata

16
ที่จริงแล้วrm -rf /เป็นกรณีพิเศษเพื่อที่คำสั่งเฉพาะจะไม่เป็นอันตรายในระบบ Linux ที่ทันสมัย; สิ่งนี้rm -rf *จะก่อให้เกิดอันตรายร้ายแรงเนื่องจากอาจลบข้อมูลส่วนบุคคลทั้งหมดของคุณซึ่งมีค่ามากกว่าระบบปฏิบัติการ
Jeremy Bicha

7
เป็นเรื่องที่น่าสนใจทีเดียวว่าจะเกิดอะไรขึ้นเมื่อคุณrm -rf /รูต บางคนลองใช้ VM และเขียนเกี่ยวกับเรื่องนี้ใน Super User Blog: blog.superuser.com/2011/07/25/the-path-of-destruction-rm-rf
nhinkle

90

ในจิตวิญญาณของ "มันเป็นการดีกว่าที่จะสอนให้คนไปตกปลากว่าให้ปลาเขา" ฉันแนะนำให้คุณพิมพ์ใน terminal man xxd(และใช่ฉันยังอีกคนบอกให้คุณป้อนบางสิ่งบางอย่างใน terminal ... แต่คุณควรจดจำmanคำสั่งว่าปลอดภัย)

หากคุณไม่คุ้นเคยกับecho, คุณควรตรวจสอบว่าออกมากเกินไป โดยพื้นฐานแล้วคำสั่งที่คุณแสดงรายการ "echoes" สตริงไปยังเอาต์พุตมาตรฐาน

ไพพ์|อย่างไรก็ตามช่องสัญญาณที่เอาต์พุตมาตรฐานเป็นอินพุตมาตรฐานของxxdคำสั่งซึ่งในกรณีนี้ถูกตั้งค่าให้แปลงสตริงเป็นฐานสิบหกเป็นรูปแบบอินพุตปกติ

ดังนั้นคำตอบสั้น ๆ คือ: ไม่มันไม่ได้ลบอะไรเลย แต่มันสะท้อนrm -rf *ไปที่หน้าจอของคุณซึ่งจะต้องให้ความรู้สึกเย็น ๆ กับคุณ :-)


2
ฉันเกลียดเมื่อฉันได้คำตอบที่ยอดเยี่ยมสองข้อ แต่ฉันต้องให้กับ Michael เพราะเขาเอาชนะคุณในเวลาไม่กี่นาที :( แต่คำตอบนี้ก็ยังดีฉันอาจจะทำความรู้จักตัวเองกับก้อง ... :)!
ไรอัน McClure

7
ก่อนที่จะป้อนคำสั่งที่พบบนอินเทอร์เน็ตบนเครื่องของคุณอย่างน้อยคุณควรมีความรู้สึกในสิ่งที่ทำ หากคำสั่งยาวเกินกว่าจะเข้าใจตั้งแต่แรกเห็นให้ทำลายคำสั่งที่|-symbols แน่นอนตรวจสอบหน้าคู่มือถ้าคุณไม่ทราบคำสั่ง มันจะปกป้องคุณจากคนประเภทนี้และคุณจะได้เรียนรู้เล็กน้อยทุกครั้ง
jippie

3
manคำสั่งอาจจะเป็นเพียงคนเดียวที่จะช่วยให้ผลเหมือนกันทั้งในสถานีและในอินเทอร์เน็ตเบราเซอร์
trutheality

7
แต่แจ้งให้ทราบ: man $(rm -rf *)เป็นอันตรายถึงตาย
unperson325680

1
พูดตามตรงฉันไม่คิดว่าการอ่าน man pages ของ xxd จะเป็นประโยชน์กับทุกคนที่ไม่ได้มีความรู้ในการใช้เชลล์ ฉันสงสัยจริงๆว่า OP สามารถระบุได้หรือไม่ว่าคำสั่งนั้นทำอันตรายโดยการอ่านผู้ชายโดยไม่ต้องทำงานมากขึ้น ฉันยอมรับว่าเป็นความคิดที่ดีที่จะรู้ว่าคำสั่งทำอะไรก่อนที่จะป้อนคำสั่งและถามว่าคุณไม่สามารถเข้าใจได้ อันที่จริงแล้วสัตว์เลี้ยงของฉันคนหนึ่งพูดถึงฟอรัม "ทางการ" ของอูบุนตูว่ามีคำแนะนำแบบสุ่มมากเกินไปในการใส่คาถาวิเศษเข้ามาในเทอร์มินัลโดยผู้ที่ไม่มีเงื่อนงำ
Marty ผัด

34

ผู้โจมตีอาจต้องการให้คุณวาง$(echo 726d202d7266202a | xxd -r -p)ลงในเปลือกของคุณ xxd จะถอดรหัส 726d202d7266202a เข้าrm -rf *ซึ่งจะถูกดำเนินการ


17
ฉันคาดเดาเขา (เหยื่อ) ซ้าย$ออกเพราะเขาคิดว่ามันเป็นส่วนหนึ่งของพรอมต์แทนคำสั่ง :)
แดเนียลSerôdio

1
หรือบางทีเขาอาจจะไม่ใช่คนเลวร้ายนัก ... : D
user3490458

1

หากคุณกังวลว่าจะมีคนเสแสร้งระบบไฟล์chrootอยู่บ้าง chroot /random/directoryจากนั้นเรียกใช้คำสั่ง heck


18
มันจะเป็นประโยชน์ในการอธิบายสิ่งที่ chroot ทำหรือบอกเป็นนัยในกรณีนี้ มิฉะนั้นนี้คือการพิมพ์คำสั่งอื่น ... พบได้บนอินเทอร์เน็ต ...
ไมเคิลแรนต์

ทำงานได้ในสิ่งที่ต้องการภาชนะนักเทียบท่ายังเป็นความคิดที่ดี แต่ที่จะ overkill ( แต่เพียงในกรณีที่ ... )
joshumax

เป็นไปได้เสมอที่จะ chroot กลับ (หรือเพียงแค่ออกจากเปลือก chrooted) นั่นอาจรวมอยู่ในเพย์โหลดการโจมตี
Zenexer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.