NAME pswd_serv - Простенький сервер, раздающий пароли/логины для перебора. SYNOPSIS pswd_serv [-c config_file] Формат конфига - перл, должна быть процедура init(). init на входе получает ссылку на хеш, в которую и надо прописать переменые. DESCRIPTION Настройка. CFG_HOME_DIR Домашняя директория. В ней должна быть поддиректория 'PASSWORDS' в которой лежат файлы с паролями/логинами. Имена файлов - цифры. ( 1, 2, 3, ... 248, etc ). Перебор начинается с меньшего числа. Количество паролей отдаваемое за раз клиенту зависит как раз от содержимого этих файлов. CFG_ECHO Эхо. 1 - включено, 0 - выключено. CFG_SERVICE 1 - подбирается пароль по логину, 0 - подбирается логин по паролю. CFG_MAX_LISTEN Число экземпляров сервера. CFG_LOG_FILE Лог файл. CFG_LOCAL_PORT Локальный порт, на который вешается сервер. CFG_PROTO Протокол. ( tcp, udp, etc ) CFG_TIMEOUT Время отводящееся клиенту на перебор одного файла паролей/логинов. По истечении этого времени, не получа от клиента ответа о подборе/не_подборе пароля/логина файл ставится снова в очередь. CFG_TARGET Адрес для перебора пароля/логина. NAME@HOST - если CFG_SERVICE = 1, то NAME - логин, иначе NAME - пароль. CFG_ACCESS Ссылка на массив, с шаблонами IP адресов которым разрешен доступ к серверу. CFG_DENY Ссылка на массив, с шаблонами IP адресов которым запрещен доступ к серверу. CFG_HANDLERS Для расширения возможностей. Ссылка на хеш. Ключ команда, значение ссылка на массив из двух элементов, первый ссылка на процедуру, второй - описание процедуры. Коды возврата на запрос. После каждого запроса возвращается код выполнения запрося. Формат: Два целых числа через пробел. Первое число собственно статус, второе - число строк данных в ответе. 200 Все Ok. 400 Неизвестная команда. 501 Пароль/логин подобран. 502 Закончились файлы с данными пля перебора. 503 Ошибка открытия файла данных. 504 Ошибка в формате данных, передаваемых при найденном пароле/логине. Формат такой: found file_name pswd type. Последние три параметра - передаются в hex виде. type - как подобран пароль/логин, т.е. POP3, FTP, etc. 505 Ошибка при сохранении найденного пароля/логина на стороне сервера. 506 Говорит клиенту, что все Ok, найденный пароль сохранен на стороне сервера. Стандартные команды. quit Отсоединится от сервера. help Вывести список доступных комманд. get_pswd Запросить пароли. При статусе 200: Первая строка - имя файла, вторая - для кого подбираем пароль/логин, третья тип, т.е. CFG_SERVICE. found Сказать, что нашелся пароль/логин. not_found Сказать, что пароль/логин не найден. echo Эхо On/Off. ping Пинг... Прочее. * При подборе пароля/логина в ${CFG_HOME_DIR} создается файл .crack, с инфой о пароле логине и пр. который выдается всем вновь законектившимся к серверу. * При разборе ACCESS && DENY, сначала проверяется массив ACCESS. * Сервер отрабатывает сигналлы: INT, STOP, QUIT, KILL, ABRT, USR1, HUP, TSTP, при получении которых сохраняет текущее состояние в файл ${CFG_HOME_DIR}/.last_session. При следующем запуске состояние восстанавливается. AUTHOR Okunev Igor V. mailto:igor@prv.mts-nn.ru http://www.mts-nn.ru/~gosha NAME clients.pm - клиентский интерфейс для pswd_serv. DESCRIPTION $self = spswd::clients->new( SERVER => 'localhost', # Имя сервера pswd_serv PORT => 5999, # порт сервера PROTO => 'tcp', # протокол TIMEOUT => 90, # тайм аут DEBUG => 0 # отладка ) || die; Методы: error Вывести сообщение об ошибке. Аргументов нет. found Передать серверу найденный пароль/логин. Аргумент пароль/логин. Перед вызовом должна быть проинициализированна переменная $self->{_TYPE} - чем проверялся пароль/логин (POP3, FTP, etc...) get_pswd Запросить у сервера пароли/логины. Аргумент ссылка на массив для хранения паролей/логинов. При успешном выполнении инициализирует переменные: $self->{_FILE_NAME} - имя файла паролей/логинов $self->{_TARGET} - логин/пароль и сервер для перевбора. $self->{_SERVICE} - что подбирать. 1 - пароль, 0 - логин. not_found Сказать серверу, что пароля/логина не найдено. Аргументов нет. ping Проверить сервер. Аргументов нет. Все кроме error при неудачном завершении возвращают 0, при удачном статус ответа сервера. Статус хранится в переменной $self->{_STATUS}. $self->{_MSG_INFO} - текстовое сообщение сервера. Дополнительную информацию об использовании можно почерпнуть из примеров. AUTHOR Okunev Igor V. mailto:igor@prv.mts-nn.ru http://www.mts-nn.ru/~gosha NAME ftp.pm - клиент для проверки ftp паролей/логинов. DESCRIPTION $self = spswd::clients::ftp->new( TARGET => 'root@localhost',# ЛОГИН/ПАРОЛЬ@СЕРВЕР PORT => 21, # порт FTP сервера PROTO => 'tcp', # протокол TIMEOUT => 90, # тайм аут SERVICE => 1, # Чего подбирать # 1 - пароль, 0 - логин DEBUG => 0 # отладка ) || die; Методы: check_ftp_pswd Проверят пароль/логин. Аргумент пароль/логин. Возвращает -1 при неудачном запросе USER ..., 1 - При подборе логина/пароля, 0 - при некорректном пароле/логине. connect_to_ftp Коннектится к ftp серверу. Аргументов нет. При инициализации ( ....->ftp->new ) ftp соединение создается. Сделано для по тому, что в процессе перебора, после нескольких неудачных попыток регистрации соединение разрывается FTP сервером. AUTHOR Okunev Igor V. mailto:igor@prv.mts-nn.ru http://www.mts-nn.ru/~gosha NAME pop3.pm - клиент для проверки pop3 паролей/логинов. DESCRIPTION $self = spswd::clients::pop3->new( TARGET => 'root@localhost',# ЛОГИН/ПАРОЛЬ@СЕРВЕР PORT => 110, # порт POP3 сервера PROTO => 'tcp', # протокол TIMEOUT => 90, # тайм аут SERVICE => 1, # Чего подбирать # 1 - пароль, 0 - логин DEBUG => 0 # отладка ) || die; Методы: check_pop3_pswd Проверят пароль/логин. Аргумент пароль/логин. Возвращает -1 при неудачном запросе USER ..., 1 - При подборе логина/пароля, 0 - при некорректном пароле/логине. connect_pop3 Коннектится к pop3 серверу. Аргументов нет. При инициализации ( ....->pop3->new ) pop3 соединение создается. Сделано для по тому, что в процессе перебора, после нескольких неудачных попыток регистрации соединение разрывается POP3 сервером. AUTHOR Okunev Igor V. mailto:igor@prv.mts-nn.ru http://www.mts-nn.ru/~gosha