Online video hd

Смотреть гиг видео

Официальный сайт itartass-sib 24/7/365

Смотреть видео бесплатно

02.02.11 14:30 dini

PythonСледим за народом

Как-то начальство поставило задачу узнать чем занимаются люди на рабочем месте и не сливают ли чего конкурентам. После раскопок ответов Гугла было принято решение писать своё. Описание сего чуда под катом.

Из возможностей:
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: Снифер снифает только кто кому и когда написал, никаких паролей!!!


Теги:

zz 02.02.11 16:25 # +1
Тема поста интересна, но скудно описана. Не хочется все это устанавливать, только что бы узнать о возможностях. Добавьте, пожалуйста, информацию о самой системе (какую информацию она собирает) и скриншоты веб-интерфейса. Так же интересно про последовательность "EF BE AD DE": она встречается только в ICQ и MRIM? в каждом сообщении им-клиентов или только при авторизации? а ssl в ICQ и MRIM не может использоваться?
k1b 02.02.11 16:54 # +0
Смотрите ниже.
jh 02.02.11 16:47 # +13
не хотел бы у вас работать.
k1b 02.02.11 16:53 # +5
1. Прозрачный перехват сообщений icq и mrim
2. Если вы видели таблицу на html - вы видели веб интерфейс. Украшательств нет. Сугубо инфа кто кому и когда что написал, и что ему написали в ответ.
3. Последовательность EF BE AD DE встречается в mrim. За подробностями в гугл и tcpdump.
4. SSL может использоваться, но отлавливаться не будет. Курим ssldump и мат.часть.
dini 02.02.11 17:14 # +1
Красивый ответ, честно говоря более объёмно трудно ответить. Спасибо!!!
jh 03.02.11 08:07 # +0
Курим ssldump и мат.часть.

т.е. jabber не спасет?
andreas 03.02.11 07:37 # +3
Последовательность EF BE AD DE есть ничто иное как 0xDEADBEEF в big endian порядке (т.е. dead beef, "мёртвая говядина") и используется очень часто как magic number, просто потому что красиво звучит/выглядит в дампе. Так что по идее этот скрипт должен ловить не только icq но и довольно много других протоколов...

P.S. не стал бы у вас работать
DEViANCE 03.02.11 10:52 # +1
ИМХО, если кто-то поставит перед собой цель слить инфу, врядли он будет делать это посредством мессенджеров. Гораздо проще скопировать на флешку или отправить почтой... А вообще, параноики сложные люди. Не хотел бы работать в конторе, в которой постоянно за мной следят. А вдруг я с женой о личном общаюсь? Зачем это кому-то знать?
Dark_SS 03.02.11 11:07 # +1
А зачем вы это делаете в рабочее время?
PS Я тоже на работе о личном общаюсь, но возможность слежки учитываю.
DEViANCE 03.02.11 16:37 # +0
Я не писал, что я этим на работе занимаюсь :) Всего лишь предположил. На работе работать нужно :)
s47 03.02.11 20:49 # +0
А зачем Вам родственники? Ведь у них беда может быть в рабочее время!
То что некоторые не умеют работать и занимаются в рабочее время личными делами никому не даёт право лишать личной жизни и "прослушивать", это элементарно неприлично!!!
Да и степень КПД зависит не от того сколько он проговорил на личные темы! Можно сколько угодно потратить на личное время и потом своей работой в разы перекрыть это "потерянно" время.
Кстати, зачастую те кто занимаются контролем других или малополезны (потому и придумывают себе работу вместо полезных занятий) или у них комплекс 20/80 (причём они себя точно относят к категории 20 и не могут объективно взглянуть на действительность)
Dark_SS 03.02.11 20:56 # +1
Если беда - позвонят. Хорошо хоть на моей работе не надо отключать мобильник. Да, неприлично, но таковы некоторые работодатели, и кроме увольнения выходов не видно. Я точно знаю, что моя производительность возрастает, если раз в час я отвлекаюсь минут на 5, но не каждый начальник это поймёт.
Dark_SS 03.02.11 20:58 # +0
Я не побуждаю всех следить за всеми, но считаю, что работодатель может контролировать, как расходуются его деньги, которые уходят на оплату интернет-трафика и стационарного телефона.
s47 03.02.11 22:22 # +0
По поводу 5 минут - это правило перекура, сам не курю, но на перекур всё равно периодически выхожу поскольку организму нужен отдых.
А для того чтобы НЕ следить на расход трафика настраивается политика раздачи интернета. У нас в конторе есть один комп отданный в голом виде в инет. Хоть порнуху смотри, если не стыдно перед всеми. И на результат после этого просмотра... А для всех остальных прокся с лимитом и резалкой.

И прослушка в любом виде это уголовное преступление.
dront78 03.02.11 11:37 # +2
есть безлимитный мобильный интернет за 200 рэ в месяц. по крайней мере в дефолтСити. можно слить все что угодно и общаться с кем угодно - даже жена не заметит ;)
vkotovv 03.02.11 17:39 # +5
А работники подписывают какие-либо документы? Или слежка без их ведома? Дело пахнет керосином.
Тоже не стал бы у вас работать. Лучше оценивать работу по достигнутому результату.
kstep 03.02.11 18:52 # +0
К сожалению не все работодатели это понимают.
derfenix 03.02.11 19:03 # +1
Так в случае чего - виноватым будешь ты, а не работодатель %)
jh 04.02.11 06:14 # +0
у кого связи лучше, тот и не виноват:-)
kstep 04.02.11 16:39 # +1
Я принципиально на таких не работаю.
warchief 06.02.11 01:34 # +3
я просто не понимаю доколе чем руководствуется начальство? Не нравятся личные переговоры? Делаем как у меня на работе: все рабочие станции в домене, права на установку софта только у айти отдела. Всё остальное на тонких клиентах, которые кроме как подключаться к серверу терминалов ничего не умеют.
Плюс: админы занимаются своим делом, а не чтением личной переписки персонала.
andreas 09.02.11 19:21 # +0
Skype не надо права админа для установки... что меня честно говоря очень удивило, но факт, поставил себе на работе скайп не прибегая к помощи админа. Вот такая "хакерская" говорилка. И этот скрипт с ним наверняка тоже ничего не сделает...
warchief 09.02.11 21:35 # +0
Ога, скайп можно ставить без админа, если чесно, я ждал, что кто-то об этом напишет. Использование скайпа можно запретить через групповые политики и он работать не будет. Проверено.
dini 07.02.11 21:03 # +1
Мне не интерестно читать кто кому и что пишет, для меня интерестна реализация, а читать... пусть читают те для кого это писалось. Для меня было интерестно узнать что, не смотря на то, что прописанно в документации по протоколу, "Агент" может слать сообщения и в CP-1251(по описанию единственная кодировка) и в UTF-8(понятно каким боком, но, исходя из описания, его быть не должно). Мне интерестно решать задачи.
PS: В штате конторы я не числюсь. начальство предупрежденно(правда не под роспись).
levin-a 09.02.11 13:41 # +0
Подскажите, почему не запускается?

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
Все зависимости установлены.

Помогите!!
dini 09.02.11 18:05 # +1
Исправьте:
def callback(self, payload):

на
def callback(self, dummy, payload):

Честно говоря сам не разобрался какого ч]рта в разных дистрах разное число аргементов передается.
levin-a 09.02.11 18:28 # +0
Dini, спасибо за совет, но не помогло.
Ошибка с callback ушла, но остальные остались.

Что еще можно сделать? Я не пишу на питоне (((
dini 09.02.11 20:45 # +0
Извеняюсь, не с начала прочитал...
Открываем /var/lib/python-support/python2.6/MySQLdb/__init__.py, закоменчиваем 34 строку и вставляем после нее
add after that line: ImmutableSet = frozenset
, коментим 41 строку(
from sets import BaseSet
) и вставляем посля нее
BaseSet = set

Должно проканать.
Проблема описана здесь.
dini 09.02.11 20:48 # +0
Мля... чет все поломалось...
34 строку меняем на ImmutableSet = frozenset, а 41 на BaseSet = set
После этого должно заработать.
levin-a 10.02.11 15:09 # +0
dini, исправил, но не помогло (((
Видимо не судьба и нужно учить питон...
dini 10.02.11 16:43 # +0
Так, но теперь мне самому интерестно чего, где и как...
Можете скинуть чего теперь в консоли кричит?
levin-a 09.02.11 18:31 # +0
А точнее сказать ничего не изменилось (((((
levin-a 10.02.11 16:45 # +0
да ничего и не изменилось ((
вот вывод:
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)

dini 10.02.11 17:13 # +0
Ну почемуж, терь на мускул не матюгается.
Так, а вот с биндом нада разобраться... ща покумекаю и отпишу...

Посты Комментарии
Последние посты
    Посты Комментарии
    Последние комментарии
      Посты Комментарии
      Изменения
        Посты Комментарии Изменения Черновики Избранное
        Черновики (все)
          Посты Комментарии Изменения Черновики Избранное
          Избранное (всё)
            Посты Комментарии Изменения Черновики Избранное
            Лучшие блоги (все 159)
            Топ пользователей Топ блогов
            Топ пользователей Топ блогов
            Элита (все 3280 из 235 городов)
            Топ пользователей Топ блогов

            Новенькие: aenimus, Mad_Hat, satagik, ZeroOne, h1nt
            welinux.ru

            В хорошем качестве hd видео

            Онлайн видео бесплатно


            Смотреть русское с разговорами видео

            Online video HD

            Видео скачать на телефон

            Русские фильмы бесплатно

            Full HD video online

            Смотреть видео онлайн

            Смотреть HD видео бесплатно

            School смотреть онлайн