LINUX.ORG.RU

Обход «while true ; do pkill ssh ; done»

 , , ,


1

2

На уроках проги иногда когда нефиг делать у нас идет война. Раньше все было просто: ssh username@hostname, но теперь про ssh все знают и «защищаются от этого». Кто-то либо пишет в файл ~/.bashrc «pkill ssh». Я нашел способ как это обходить: ssh username@hostname [команда]. Это выполняет команду до выполнения файла .bashrc, но некоторые пишут «while true ; do pkill ssh ; done». Запускается цикл, блокирующий ssh. И моментальное выполнение не помогает. Есть ли способ обойти и это? Какой-то скрипт или команда? СРазу прошу не писать ничего по типу «Иди учи уроки»,«Делом занимайся на занятиях» и т.п. Я не бездельник, по проге я один из лучших, а такое я делаю редко, но это прикольно

Запустить один раз в сеансе screen команду, которая будет как-то запрашивать дальнейшие команды у твоего компа с компа одноклассника.

Infra_HDC ★★★★★
()
Ответ на: комментарий от Infra_HDC

Тоже как вариант, но хорошо-бы что то по эффективнее

vvediteima
() автор топика

Кильнуть шел в котором работает while? Ну или как выше подсказали — screen (это выглядит перспективнее)

MrClon ★★★★★
()

while true ; do pkill ssh ; done

Наверное sshd? Если есть рут напиши скрипт который сделает копию sshd с другим именем и создаст под него юнит на другой порт, приходишь после уроков и запускаешь его везде :)

KillTheCat ★★★★★
()
Ответ на: P.s. от vvediteima

А через scp/sftp .bashrc не обнулить?

Если через scp/sftp доступен файл ~/.ssh/authorized_keys, то через 'command=«xxxx»' можно запустить что-нибудь полезное.

Сделать доп. ключ для которого в .authorized_keys будет выполняться отдельный скрипт.

vel ★★★★★
()
Последнее исправление: vel (всего исправлений: 1)

но некоторые пишут «while true ; do pkill ssh ; done».

куда пишут, на своём или чужом компе

Harald ★★★★★
()
Ответ на: комментарий от vel

Можно и из консоли запустить, вроде (while true; do pkill ssh; done)&.

Вообще если нет рута, то только прятать в .bashrc\юзерскриптам каких-нить своего демона. Если есть рут, то можно и пользователя добавить и свой сервис поднять.

KillTheCat ★★★★★
()

Ой, прямо ностальжи нахлынула, подключиться к тачке одногруппника и кильнуть процесс, не факт даже что это был ssh, ибо какой-то древний солярис, препод чуть пиздюлей не дал, он таких умных на раз выщемлял

zolden ★★★★★
()

Эх, помнится, лет 20 тому назад зашёл я однажды на машину коллеги по работе и выполнил while (1) fork();. Так он со мной потом три дня не разговаривал.

Bass ★★★★★
()
Ответ на: комментарий от Bass

Все там были. Я как-то раз отомстил так @userid2 за форкбомбу на своём ноуте.

luke ★★★★★
()

ставь кали. тогда тебе будет не до этого, будешь как все, задавать вопросы «почему в кали не работает то, сё, всё»

buratino ★★★★★
()

Вы там все под одним username что-ли работаете?

mky ★★★★★
()
Ответ на: комментарий от vel

sshd(24134)

На сколько я понимаю pkill ssh запущенный от юзера убивает как-раз этот процесс (работающий от юзера)

MrClon ★★★★★
()
Ответ на: комментарий от vvediteima

Ну так не вручную его килять. Так же в цикле подключаешься и пытаешься выполнить свой pkill. Авось один раз из n и получится проехаться на race condition

MrClon ★★★★★
()
Ответ на: комментарий от vel

Фишка в том что нужно успеть запустить что бы ты там не запускал до того как вражий цикл кильнёт sshd обслуживающий твою сессию

MrClon ★★★★★
()
Ответ на: комментарий от vel

На сервере /usr/bin/ssh вообще не выполняется. pkill ssh выбирает процессы sshd (аргумент pkill это не точное имя процесса, а регулярка). Чтобы кильнуть только ssh нужно выполнять pkill '^ssh$' Если указать произвольную команду как параметр ssh на клиенте, или в authorized_keys на сервер то эта комманда всё равно будет запущенна экземпляром sshd работающем от юзера (сейчас специально проверил). Во всяком случае в debian так: при отсутствии ssh сессий в системе работет один процесс sshd (работает от рута), после подключения по ssh появляется ещё два (один от рута, второй от юзера)

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

Эм...а чего сложного удалить с сервера sshd или ограничить доступ по ip? Чего они такие сложности с циклом придумали...

Kolins ★★★
()
Ответ на: комментарий от Kolins

Одно из двух: либо «школьники такие школьники», либо «рута нет». Либо и то и другое. Перечитай первопост, это студентота на лабораторной резвится

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

Ну окей, если сервер это другой ученик, то он должен знать у него учетку, а там скорее всего несколько учеток на класс. Скрипт убивает только те процессы, что запускаются от имени пользователя. Значит, можно зайти по ssh под другой учеткой, через su зайти в нужного пользователя и творить дичь.

Kolins ★★★
()
Ответ на: комментарий от Kolins

Если там одна учетка для всех студентов, то обычно делают «chattr +i» на файл с паролем.

vel ★★★★★
()
Ответ на: комментарий от Kolins

На всех учеников есть только 1 пользователь. И еще 2 учительских, от которых не изветсен пароль

vvediteima
() автор топика
Ответ на: комментарий от Kolins

Не учили, но я знаю. У меня свой ноут с рутом, а руты на школьных ПК под паролем, нам неизвестным

vvediteima
() автор топика
Ответ на: комментарий от MrClon

У всех одинаковое имя пользователя и пароль. У некоторых свой ноутбук со своим пользователем (в т.ч. у меня)

vvediteima
() автор топика
Ответ на: комментарий от Kolins

Сначала кто то нашел в инете ssh, потом это разлетелось по всем. Теперь кто то узнал про циклы в shell и про pkill ssh, ну и то же самое произошло. Хотя сейчас про циклы все забыли и просто pkill ssh пихают в .bashrc Это я умею обходить(см. 1 пост)

vvediteima
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.