dastapov: (Default)
[personal profile] dastapov
Эпиграф:
Имейте в виду: всякая история хочет быть рассказанной, как всякое семечко хочет прорасти. Когда человек носит в себе слишком много нерассказанных историй, он начинает сутулиться, голова его ноет по утрам, а сны начинают повторяться одно и то же, из ночи в ночь, сущий кошмар.



Наверняка все из нас в разное время становились объектами розыгрышей со стороны сослуживцев, когда добрых, а когда - не очень. Эта история - об одном из таких розыгрышей, а был ли он добрым или нет - судить вам, дорогие читатели :)

Где-то на заре 2000-го года мне довелось самым непосредственным образом участвовать в проекте по внедрению достаточно большого UNIX-based програмно-аппаратного комплекса. GUI для управления и мониторинга этим комплексом были "толстыми" X11-клиентами, которые приходилось использовать "по сети".

Для незнакомых с технологией (это существенно для понимания шутки) поясню, что повсеместно используемая на UNIX-ах графическая система X11 позволяет запускать приложение на удаленной машине так, что его интерфейс будет рисоваться на экране вашей рабочей станции (по сети будут посылаться команды X11, описывающие, что и как надо отобразить в окне приложения - там квадратик закрасить, тут строчку вывести, и т.п.). Нечто вроде terminal client под windows, но отрисовывается не весь удаленный десктоп, а окно одного приложения.

И вот я у себя на рабочей станции настраиваю все для удобной работы с этим самым програмно-аппаратным комплексом. Поскольку он состоит из нескольких машин, я решаю, что я буду у себя запускать Xnest, в котором с помощью XChooser выбирать, на какую из машин я буду логиниться.

Я запускаю "Xnest :1 -indirect localhost" и вижу (помимо интересных мне машин) еще несколько. Часть из них я узнаю по hostname-ам - это рабочие станции моих коллег, а часть мне незнакома. Быстрая проверка с помощью "DISPLAY=remote_hostname:0 xdpyinfo" показывает, что одна из незнакомых машин позволяет подключаться к ее X-серверу без всякой аутентификации. Другими словами, можно запустить произвольное приложение и попросить его отрисовать свой интерфейс на экране этой незащищенной машины, и это произойдет.

Развитие событий напрашивалось само собой. В то время еще не прошло и года с тех пор, как вышла "Матрица" и строчка "Wake up, Neo" узнавалась и отождествлялась с фильмом абсолютно однозначно.

На одном из общедоступных UNIX-серверов под безликим account-ом навроде "test" в cron для исполнения раз в пять минут вешается скрипт следующего содержания:

Если в числе активных процессов нету "xeyes", то выполняем:
   DISPLAY=ip-незащищенной-машины:0
   xmessage -nearmouse -buttons "Huh?" -timeout 3 "Wake up, Neo. Matrix watches you" && xeyes -geometry 1600x1200


Тот, кто сидит за дисплеем удаленной машины, при этом видит следующее: сначала у него на экране появляется окошко-сообщение "Wake up, Neo. Matrix watches you" с кнопокй "Huh?", а через три секунды оно исчезает и появляются ОГРОМНЫЕ, во весь экран, глаза, которые следят за курсором мыши. Что-то вроде вот этого, но гораздо больше :)


Даже если же приложение с глазами будет закрыто, через пять минут cron запустит скрипт еще раз, и все повторится сначала :)

Для наблюдения за жертвой использвалось приложение xtv, позволяющее в реальном времени наблюдать все, что творится на несекьюрной машине. Довольно быстро выяснилось, что несекьюрный X-сервер был установлен у одного из наших администраторов, который использовал его для мониторинга работы серверов под управлением SunOS. Глаза довольно быстро вывели его из себя, и он стал искать источник напасти.

По какой-то причине он не сразу догадался посмотреть по "netstat", с какого хоста в сети к нему приходит напасть, и ограничился тем, что методично прибивал "глаза" по мере их появления. Тогда из скрипта была убрана проверка на то, что "xeyes" уже запущены и опция по "максимизации" глаз, а интервал запуска - сокращен до минуты. Получилось что-то вроде вот этого:


Впрочем, не прошло и трех часов, как админ выследил хост, с которого лезли "глаза", вынес строчку из крона, настроил у себя xauth и пришел ругаться со мной ...

Мораль: не открывайте доступов больше, чем реально нужно :)
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

dastapov: (Default)
Dmitry Astapov

May 2022

M T W T F S S
       1
2345678
9101112131415
161718 19202122
23242526272829
3031     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags