Как-то начальство поставило задачу узнать чем занимаются люди на рабочем месте и не сливают ли чего конкурентам. После раскопок ответов Гугла было принято решение писать своё. Описание сего чуда под катом.
Из возможностей:
1. Понимает ICQ и MRIM(Агент@Mail.ru), при этом вне зависимости от порта, разбор идёт на уровне протоколов.
2. Коректно разбирает кодировки сообщений(вроде как).
Системные требования:
1. Linux(пока только он, но это только пока)
2. nfqueue-bindings
3. Python
4. MySQL
5. Web-сервер с поддержкой CGI(для морды)
Установка и использование:
1
2
|
svn checkout http://imsniff.googlecode.com/svn/trunk/ imsniff
mysql --user=root mysql |
Создаём базу, юзверя и таблицы:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
CREATE DATABASE security;
GRANT ALL PRIVILEGES ON security.* TO sniff@localhost IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
USE security;
CREATE TABLE `sniff` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`ip` varchar(20) DEFAULT NULL,
`proto` int(11) NOT NULL,
`from_handle` varchar(255) DEFAULT NULL,
`to_handle` varchar(255) DEFAULT NULL,
`msg` text,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `sniff_handle` (
`handle` varchar(255) DEFAULT NULL,
`ip` varchar(20) DEFAULT NULL,
`port` int(11) DEFAULT NULL,
`cookie` varchar(255) DEFAULT NULL,
UNIQUE KEY `handle` (`handle`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; |
Далее:
1
2
|
iptables -A INPUT -m string --algo bm --from 51 --hex-string '|EF BE AD DE|' -j NFQUEUE
iptables -A OUTPUT -m string --algo bm --from 51 --hex-string '|EF BE AD DE|' -j NFQUEUE |
Осторожно, отвалится "Агент"
1
2
|
cd imsniff
python imsniff.py -b |
Последняя строка должна выполняться от рута.
На этом этапе вы должны будете увидеть свой агентовский траффик.
За дополнительной информацией можете полазить по папкам, в папке contrib имеются примерные скрипты для автозапуска и настройки iptables на шлюзе.
PS: Снифер снифает только кто кому и когда написал, никаких паролей!!!
-
Тема поста интересна, но скудно описана. Не хочется все это устанавливать, только что бы узнать о возможностях. Добавьте, пожалуйста, информацию о самой системе (какую информацию она собирает) и скриншоты веб-интерфейса. Так же интересно про последовательность "EF BE AD DE": она встречается только в ICQ и MRIM? в каждом сообщении им-клиентов или только при авторизации? а ssl в ICQ и MRIM не может использоваться?
-
-
Смотрите ниже.
-
не хотел бы у вас работать.
-
1. Прозрачный перехват сообщений icq и mrim
2. Если вы видели таблицу на html - вы видели веб интерфейс. Украшательств нет. Сугубо инфа кто кому и когда что написал, и что ему написали в ответ.
3. Последовательность EF BE AD DE встречается в mrim. За подробностями в гугл и tcpdump.
4. SSL может использоваться, но отлавливаться не будет. Курим ssldump и мат.часть.
-
-
Красивый ответ, честно говоря более объёмно трудно ответить. Спасибо!!!
-
Курим ssldump и мат.часть.
т.е. jabber не спасет?
-
Последовательность EF BE AD DE есть ничто иное как 0xDEADBEEF в big endian порядке (т.е. dead beef, "мёртвая говядина") и используется очень часто как magic number, просто потому что красиво звучит/выглядит в дампе. Так что по идее этот скрипт должен ловить не только icq но и довольно много других протоколов...
P.S. не стал бы у вас работать
-
ИМХО, если кто-то поставит перед собой цель слить инфу, врядли он будет делать это посредством мессенджеров. Гораздо проще скопировать на флешку или отправить почтой... А вообще, параноики сложные люди. Не хотел бы работать в конторе, в которой постоянно за мной следят. А вдруг я с женой о личном общаюсь? Зачем это кому-то знать?
-
-
А зачем вы это делаете в рабочее время?
PS Я тоже на работе о личном общаюсь, но возможность слежки учитываю.
-
-
Я не писал, что я этим на работе занимаюсь :) Всего лишь предположил. На работе работать нужно :)
-
А зачем Вам родственники? Ведь у них беда может быть в рабочее время!
То что некоторые не умеют работать и занимаются в рабочее время личными делами никому не даёт право лишать личной жизни и "прослушивать", это элементарно неприлично!!!
Да и степень КПД зависит не от того сколько он проговорил на личные темы! Можно сколько угодно потратить на личное время и потом своей работой в разы перекрыть это "потерянно" время.
Кстати, зачастую те кто занимаются контролем других или малополезны (потому и придумывают себе работу вместо полезных занятий) или у них комплекс 20/80 (причём они себя точно относят к категории 20 и не могут объективно взглянуть на действительность)
-
-
Если беда - позвонят. Хорошо хоть на моей работе не надо отключать мобильник. Да, неприлично, но таковы некоторые работодатели, и кроме увольнения выходов не видно. Я точно знаю, что моя производительность возрастает, если раз в час я отвлекаюсь минут на 5, но не каждый начальник это поймёт.
-
-
Я не побуждаю всех следить за всеми, но считаю, что работодатель может контролировать, как расходуются его деньги, которые уходят на оплату интернет-трафика и стационарного телефона.
-
-
По поводу 5 минут - это правило перекура, сам не курю, но на перекур всё равно периодически выхожу поскольку организму нужен отдых.
А для того чтобы НЕ следить на расход трафика настраивается политика раздачи интернета. У нас в конторе есть один комп отданный в голом виде в инет. Хоть порнуху смотри, если не стыдно перед всеми. И на результат после этого просмотра... А для всех остальных прокся с лимитом и резалкой.
И прослушка в любом виде это уголовное преступление.
-
есть безлимитный мобильный интернет за 200 рэ в месяц. по крайней мере в дефолтСити. можно слить все что угодно и общаться с кем угодно - даже жена не заметит ;)
-
А работники подписывают какие-либо документы? Или слежка без их ведома? Дело пахнет керосином.
Тоже не стал бы у вас работать. Лучше оценивать работу по достигнутому результату.
-
-
К сожалению не все работодатели это понимают.
-
-
Так в случае чего - виноватым будешь ты, а не работодатель %)
-
-
у кого связи лучше, тот и не виноват:-)
-
Я принципиально на таких не работаю.
-
я просто не понимаю доколе чем руководствуется начальство? Не нравятся личные переговоры? Делаем как у меня на работе: все рабочие станции в домене, права на установку софта только у айти отдела. Всё остальное на тонких клиентах, которые кроме как подключаться к серверу терминалов ничего не умеют.
Плюс: админы занимаются своим делом, а не чтением личной переписки персонала.
-
-
Skype не надо права админа для установки... что меня честно говоря очень удивило, но факт, поставил себе на работе скайп не прибегая к помощи админа. Вот такая "хакерская" говорилка. И этот скрипт с ним наверняка тоже ничего не сделает...
-
-
Ога, скайп можно ставить без админа, если чесно, я ждал, что кто-то об этом напишет. Использование скайпа можно запретить через групповые политики и он работать не будет. Проверено.
-
Мне не интерестно читать кто кому и что пишет, для меня интерестна реализация, а читать... пусть читают те для кого это писалось. Для меня было интерестно узнать что, не смотря на то, что прописанно в документации по протоколу, "Агент" может слать сообщения и в CP-1251(по описанию единственная кодировка) и в UTF-8(понятно каким боком, но, исходя из описания, его быть не должно). Мне интерестно решать задачи.
PS: В штате конторы я не числюсь. начальство предупрежденно(правда не под роспись).
-
Подскажите, почему не запускается?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# python imsniff.py -b
/var/lib/python-support/python2.6/MySQLdb/__init__.py:34: DeprecationWarning: the sets module is deprecated
from sets import ImmutableSet
Traceback (most recent call last):
File "imsniff.py", line 337, in <module>
main()
File "imsniff.py", line 334, in main
sniff.run()
File "imsniff.py", line 321, in run
self.bind()
File "imsniff.py", line 271, in bind
self.q.bind(socket.AF_INET)
File "/usr/lib/python2.6/dist-packages/nfqueue.py", line 79, in bind
def bind(*args): return _nfqueue.queue_bind(*args)
TypeError: queue_bind() takes exactly 1 argument (2 given)
|
Ubuntu 9.04 x64
python 2.6.2
Все зависимости установлены.
Помогите!!
-
Исправьте:
def callback(self, payload):
на
def callback(self, dummy, payload):
Честно говоря сам не разобрался какого ч]рта в разных дистрах разное число аргементов передается.
-
Dini, спасибо за совет, но не помогло.
Ошибка с callback ушла, но остальные остались.
Что еще можно сделать? Я не пишу на питоне (((
-
-
Извеняюсь, не с начала прочитал...
Открываем /var/lib/python-support/python2.6/MySQLdb/__init__.py, закоменчиваем 34 строку и вставляем после нее
add after that line: ImmutableSet = frozenset
, коментим 41 строку(
from sets import BaseSet
) и вставляем посля нее
BaseSet = set
Должно проканать.
Проблема описана здесь.
-
-
Мля... чет все поломалось...
34 строку меняем на ImmutableSet = frozenset, а 41 на BaseSet = set
После этого должно заработать.
-
-
dini, исправил, но не помогло (((
Видимо не судьба и нужно учить питон...
-
-
Так, но теперь мне самому интерестно чего, где и как...
Можете скинуть чего теперь в консоли кричит?
-
А точнее сказать ничего не изменилось (((((
-
да ничего и не изменилось ((
вот вывод:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
python imsniff.py -b
Traceback (most recent call last):
File "imsniff.py", line 337, in <module>
main()
File "imsniff.py", line 334, in main
sniff.run()
File "imsniff.py", line 321, in run
self.bind()
File "imsniff.py", line 271, in bind
self.q.bind(socket.AF_INET)
File "/usr/lib/python2.6/dist-packages/nfqueue.py", line 79, in bind
def bind(*args): return _nfqueue.queue_bind(*args)
TypeError: queue_bind() takes exactly 1 argument (2 given) |
-
-
Ну почемуж, терь на мускул не матюгается.
Так, а вот с биндом нада разобраться... ща покумекаю и отпишу...
|
|
|
Последние посты
|
|
Последние комментарии
|
|
Изменения
|
|
Черновики (все)
|
|
Избранное (всё)
|
|
|