เป็นไปได้หรือไม่ที่จะซ่อนนามแฝงที่เป็นอันตรายใน Bash บน Linux?


9

เป็นไปได้หรือไม่ที่จะซ่อนการดำรงอยู่ของนามแฝงที่เป็นอันตรายใน Bash บนระบบ Linux และดำเนินการโดยผู้ใช้โดยที่พวกเขาไม่รู้ตัว?

คำตอบ:


13

มันเป็นไปได้ที่จะทำเช่นนั้นโดยการเพิ่มนามแฝงที่มีอยู่ลงบนอันที่เป็นอันตรายและใช้การเคลื่อนไหวของเคอร์เซอร์เพื่อซ่อนมันหากใช้aliasคำสั่งเพื่อแสดงคำจำกัดความของนามแฝง มันไม่ได้เป็นวิธีที่เข้าใจผิดได้อย่างสมบูรณ์แบบ แต่อาจตรวจไม่พบสักระยะหนึ่ง การไพพ์aliasผ่านhdจะแสดงให้คุณเห็นว่ามีเอาชีวิตการหลบหนีใด ๆ (การเลื่อนเคอร์เซอร์) ในนามแฝงของคุณหรือไม่ นี่คือหลักฐานของแนวคิดสำหรับวิธีการแทรกคำสั่งที่เป็นอันตรายลงในนามแฝง:

alias | gawk 'BEGIN {
        FS = "[ =\047]"
        db = "\\"; sp = db " "; amp = db "&"
        sq= "\047"; bell = "\007"; esc = "\033"
    } 
    NR == 3 { len1 = length($2) }
    NR == 4 {
        alias = $2
        orig = gensub(sq, "", "g", substr($0, match($0, "=") + 1))
        orig = gensub(" ", db sp, "g", orig)
    }
    END {
        hide = "$" db sq sp "--" sp db "\r" esc "[J" esc "[A" db "\t"
        for(i=1; i<len1; i++) {hide = hide esc "[C"}
        cmd = "sed -i s/^alias" sp alias ".*/alias" sp alias "=" db sq "echo" sp db bell db db amp db db amp orig db sq hide db sq "/ aliases"
    system(cmd)
    }'
  • sedคำสั่งปรับเปลี่ยนไฟล์ที่เรียกว่า "นามแฝง" ในสถานที่ - สคริปต์ที่แท้จริงของประเภทนี้จะไปสำหรับคอและปรับเปลี่ยนแฟ้มสคริปต์จริงเพื่อนามแฝงที่เป็นอันตรายจะถูกเปิดใช้งานครั้งต่อไปที่จะได้ดำเนินการ
  • ส่วนที่เป็นอันตรายของตัวอย่างนี้เพียงแค่ส่งสัญญาณเตือนเทอร์มินัลเพื่อให้คุณรู้ว่ามันทำงานได้
  • คำสั่งที่ใช้นามแฝงเดิมจะถูกดำเนินการโดยมีเนื้อหาhideเป็นอาร์กิวเมนต์ดังนั้นจึงเป็นไปได้ว่าคุณจะได้รับข้อผิดพลาดคล้ายกับที่รายงานในคำถามนี้ อาจเป็นไปได้ที่จะย้อนกลับส่วนเดิมและที่เป็นอันตรายเพื่อส่งผลกระทบต่อสิ่งนี้แม้ว่าสิ่งนี้จะรบกวนการโต้แย้งที่มีให้กับนามแฝง --ความพยายามที่จะทำในสคริปต์ด้านบนเพื่อทำเครื่องหมายจุดสิ้นสุดของการขัดแย้งกับ
  • แทนที่จะผูกมัดชิ้นส่วนดั้งเดิมและที่เป็นอันตรายด้วย&&คุณสามารถไปป์หนึ่งต่อไปและสร้างสคริปต์ที่เป็นอันตราย (แสดงไว้ข้างต้นด้วยechoคำสั่งง่าย ๆ) stdinเพื่อstdoutส่งต่อเพื่อแก้ไขข้อมูลเมื่อข้ามหรือซ่อน ดำรงอยู่ต่อไปโดยไม่รบกวนการเปลี่ยนเส้นทางอื่น
  • ความเป็นไปได้อีกประการหนึ่งคือแทนที่จะรวมนามแฝงเดิมไว้ในสคริปต์ที่เป็นอันตรายซึ่งสามารถลบสตริงการเคลื่อนไหวของเคอร์เซอร์ออกจากรายการอาร์กิวเมนต์และส่งส่วนที่เหลือไปยังต้นฉบับ
  • ฉันเลือกเร็กคอร์ดที่ 3 และ 4 โดยพลการโค้ดที่ชาญฉลาดมากขึ้นสามารถกำหนดเป้าหมายนามแฝงเฉพาะ แต่พวกเขาจำเป็นต้องอยู่ติดกัน (หรือการเคลื่อนไหวของเคอร์เซอร์อาจทำให้ซับซ้อนมากขึ้น)
  • hideสตริงอาจจะแก้ไขให้มีการเคลื่อนไหวของเคอร์เซอร์ที่แตกต่างกันและข้อความของนามแฝงเดิมเพื่อให้aliasคำสั่งจะปรากฏแสดงนามแฝงแปรแทนที่จะซ่อนมันพร้อมกับส่วนที่เป็นอันตราย
  • . aliasesจะลองมันออกมาเป็นลายลักษณ์อักษรคุณจะต้องมีอย่างน้อยสี่นามแฝงที่ใช้งานเรียกใช้สคริปต์นี้แล้วแหล่งแฟ้มผลกับ alias|hdจากนั้นคุณสามารถพยายามที่จะใช้นามแฝงได้รับผลกระทบและดูสิ่งที่ดูเหมือนว่าเมื่อคุณทำ
  • ไม่ต้องสงสัยเลยว่าสามารถเขียนใหม่ได้หลายร้อยวิธี - ทั้งหมดนั้นดีกว่า
  • การคุกคามประเภทนี้จริงเพียงใด? ฉันไม่มีเงื่อนงำ แต่ถ้าฉันทำได้ ...
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.