3

В настоящее время я работаю над идеей забавного теста CTF. Однако одно из главных препятствий в этой задаче - предоставить пользователю определенное количество времени на соединение ssh.

По сути, пользователь должен подключиться к виртуальной машине Linux с помощью имени пользователя. У них есть 10 минут, чтобы найти 10 частей флага, которые должны быть расположены в определенном порядке, прежде чем сеанс SSH будет завершен, вызывая событие, которое меняет расположение частей флага вокруг. В этот момент пользователь должен открыть новое соединение SSH и продолжить поиск.

Основной проблемой здесь является ограничение количества времени, которое пользователь имеет. Это возможно даже с SSH? Если да, то как мне это сделать?

Заранее благодарю за любую помощь.

2 ответа2

1

Хм, делать это через SSH было бы непомерно сложно. Я думаю, что самый простой способ - запускать фоновую программу каждый раз, когда у вас есть ssh-вход в конкретную учетную запись, что через 10 минут уничтожает все ssh-соединения. Честно говоря, это было бы очень легко.

Вы бы добавили что-то в ~/.profile или ~/.bashrc что-то вроде

sleep 600
killall --user {whateverhis/herusernameis}
end

или вы поняли идею

0

Используйте ForceCommand в sshd_config . Гарантируется, что он будет выполнен после входа в систему:

Match User ctfuser
  ForceCommand "(sleep 600; killall -u ctfuser)& bash"

Если вам нужен только доступ к оболочке, этого достаточно. Если вам нужен SFTP или SCP, вам нужно немного его настроить.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .