Доброго времени суток!
Совсем недавно вспомнил про свой скрипт на python для работы с мыльниками. Подправив пару багов решил опубликовать. Думаю, что некоторым он будет полезен

О том как запускать python скрипты можно найти в гугле. Ну или на крайняк я документацию написал. Но кому не понятно лучше в гугл

Что он может:
- Подсчёт (не совсем нужная функция, описывать не буду)
- Сортировка
- Именование
- Парсинг доменов
- Парсинг доменных зон
- Формат
Подробнее о каждой приблуде написано в документации. Я лишь опишу кратно (кроме первой) и добавлю несколько годных примеров. Я буду указывать примеры для
Linux. Для
Windows параметры можно указывать аналогично. Отличается только запуск скрипта.
Сортировка
Из «грязного» файла достает мыльники в нужном формате. Из одной строки достает только 1 мыльник. В выходном файле нет повторов и каждый мыльник записан в одну строку (потом с этим файлов можно работать для парсинга, именовать емейлы и т.д.).
Пример «грязного» файла:
John:
mailto:[email protected] – email
my email : smith @ web, de
Hello world
V: rolf (at> yahoo dot de
ewewe999@ mail.google <punkt> com
ssdjfk @ yahoo.cc
blabla@exploit dot im
fkfkfkf
fas;
;;; -- > email: sksksks <at dfjfjf .de
dkdkdk
()()()
last@mail(dot)com
Результат обработки. Выходной файл:
[email protected]
mailto:[email protected]
mailto:[email protected]
mailto:[email protected]
mailto:[email protected]
mailto:[email protected]
mailto:[email protected]
mailto:[email protected]
Я указал слишком уродливый файл. В большинстве случает они выглядят как-то иначе. Например, это может быть
.SQL или
.LOG файл. Или файл где указан мыльник в каждоый строке, но "окружает" его какая-то дичь.
Пример:
Из файла
emails.txt достать все «хорошие» мыльники и записать их в файл
emails_valid.txt. А «плохие» записать в
emails_errors.txt:
python3 wwe.py sort -f ./data/emails.txt -r ./data/emails_valid.txt -e ./data/emails_errors.txt
Присвоение имён
Одна из интересных для меня приблуд. Пытается дать имя мыльнику из списка.
При рассылке спама можно указывать это имя, чтобы обратится к жертве по имени например.
Указываете в качестве входного файла - отсортированный файл (одна строка — один мыльник). Указываете выходной файл, куда будут записаны мыльники по шаблону (для создания шаблона используются параметры:
{email},
{name}). Указываете как он будет проверять на наличие имени:
жёстко или нет:
Жёстко: Имя должно быть явно указано и разделяться знаками или цифрами. Например:
smith[email protected],
john[email protected],
mr.john[email protected].
Не жёстко: Этой проверке достаточно наличие имени в адресе э/п. Например:
smith[email protected],
elitjohn@aol.com.
* В документации написано как работать с русскими мыльниками.
Пример:
У нас есть файл с адресами из Германии (
emails_DE.txt). Нужно «проименовать» их немецкими именами. Немецкие имена лежат в файлах:
names_DE_male.txt и
names_DE_female.txt. Мы будем использовать
жёсткую проверку на имя. Полученные имена мы сохраним в файл
emails_DE_with_names.txt. Шаблон для сохранения будем использовать следующий:
"Mr. {name}" <{email}>
python3 wwe.py names -f ./data/emails_DE.txt -r ./data/emails_DE_with_names.txt -t "\"Mr. {name}\" <{email}>" @./data/names_DE_male.txt @./data/names_DE_female.txt -s
Как видите пришлось экранизировать символ
". Кто не знает, что такое поищите инфу в сети
Парсинг доменов
Достает адреса из файла с мыльниками по указанным доменам (файл должен быть отсортирован: один мыльник — одна строка). Можно указывать домены без доменной зоны. Текстовые файлы с доменами сохраняются в указанной папке.
Пример:
У нас есть файл с отсортированными адресами (
emails.txt). Нужно достать из него все адреса от:
yahoo,
google и только
alo.com. Сохраним все файлы в папку «
result»:
python3 wwe.py domains -f ./data/emails.txt -p ./data/result -g yahoo,gmail,aol.com,mail*google
Парсинг доменных имён
Достает адреса из файла с мыльниками по указанным доменными зонами (файл должен быть отсортирован: мыльник — одна строка). Текстовые файлы с доменами сохраняются в указанной папке.
Пример:
У нас есть файл с отсортированными адресами (
emails.txt). Нужно достать несколько евпропейских адресов:
de,
fr,
be,
co.uk,
gb,
nl,
es. Сохраним все файлы в папку «
result»:
python3 wwe.py zones -f ./data/emails.txt -p ./data/result -g de,fr,co.uk,gb,nl,es
Формат
Достает мыльник из форматированного файла и записывает его в выходной файл с помощью определенного шаблона. В шаблоне обязательно указывать
{email}. В место него вставится мыльник из исходного файла:
Пример исходного файла:
[email protected]
mailto:[email protected]
mailto:[email protected]
Результат обработки. Выходной файл:
(Шаблон:
INSERT INTO `emails`(`e`) VALUES ("{email}");)
INSERT INTO `emails`(`e`) VALUES ("
[email protected]");
INSERT INTO `emails`(`e`) VALUES ("
[email protected]");
INSERT INTO `emails`(`e`) VALUES ("
[email protected]");
* Результат - SQL-запрос в базу данных
Пример:
У нас есть файл с мэйлер-демонами (
emails_md.txt). Эти адреса нам не нужны. Создадим
.SQL файл (
delete_md.sql), чтобы удалить их из нашей
MySQL базы:
python3 wwe.py format -f ./data/emails_md.txt -r ./data/delete_md.sql -t "DELETE FROM `emails` WHERE `e` = '{email}';"
---
Если нет желания разбираться в аргументах, то просто запускайте скрипт и дальше следуйте инструкциям. Я рекомендую указывать полные адреса файлов и папок (особенно для пользователей Windows), так будет меньше проблем у не опытных пользователей.
---
* Кому нужны файлы с именами некоторых стран могу скинуть сюда
Возможно в скрипте есть баги. Если не составит труда, то напишите о них сюда или в жб.
Может у кого-то есть интересные предложения по доработке, тоже пишите
Архив:
СКРИПТ УТЕРЯН!