
DEPRECATED, wifipumpkin3 -> https://github.com/P0cL4bs/wifipumpkin3

WiFi-Pumpkin — фреймворк для атак с использованием поддельных точек доступа Wi-Fi
WiFi-Pumpkin — это фреймворк для создания поддельных точек доступа (Rogue AP), позволяющий легко создавать такие фейковые сети, одновременно перенаправляя легитимный трафик от ничего не подозревающей жертвы. Он оснащён множеством функций, включая поддельные точки доступа Wi-Fi, deauth-атаки на клиентские точки доступа, мониторинг probe-запросов и учётных данных, прозрачный прокси, атаку на обновления Windows, менеджер фишинга, ARP-спуфинг, DNS-спуфинг, Pumpkin-Proxy и захват изображений на лету. Кроме того, WiFi-Pumpkin — это очень полный фреймворк для аудита безопасности Wi-Fi; список возможностей довольно обширен.

git clone https://github.com/P0cL4bs/WiFi-Pumpkin.git
cd WiFi-Pumpkin
./installer.sh --install
или скачайте .deb файл для установки
sudo dpkg -i wifi-pumpkin-0.8.8-all.deb
sudo apt-get -f install # принудительная установка зависимостей, если они не установились обычным образом
обратитесь к вики по Установке
1HBXz6XX3LcHqUnaca5HRqq6rPUmA3pf6f

Прозрачные прокси (mitmproxy), которые можно использовать для перехвата и манипуляции HTTP-трафиком, модифицируя запросы и ответы, что позволяет внедрять JavaScript-код в посещаемые цели. Вы можете легко реализовать модуль для инъекции данных в страницы, создав файл Python в директории "plugins/extension/", который автоматически появится на вкладке Pumpkin-Proxy.
from mitmproxy.models import decoded # для декодирования содержимого HTML
from plugins.extension.plugin import PluginTemplate
class Nameplugin(PluginTemplate):
meta = {
'Name' : 'Nameplugin',
'Version' : '1.0',
'Description' : 'Краткое описание нового плагина',
'Author' : 'от разработчика'
}
def __init__(self):
for key,value in self.meta.items():
self.__dict__[key] = value
# если вы хотите задать аргументы, обратитесь к вики за дополнительной информацией.
self.ConfigParser = False # Аргументы не требуются
def request(self, flow):
print flow.__dict__
print flow.request.__dict__
print flow.request.headers.__dict__ # заголовки запроса
host = flow.request.pretty_host # получить домен на лету
versionH = flow.request.http_version # получить версию HTTP
# пример перенаправления доменов
# pretty_host учитывает заголовок "Host" запроса,
if flow.request.pretty_host == "example.org":
flow.request.host = "mitmproxy.org"
# пример получения всех заголовков запроса
self.send_output.emit("\n[{}][ЗАГОЛОВКИ HTTP-ЗАПРОСА]".format(self.Name))
for name, valur in flow.request.headers.iteritems():
self.send_output.emit('{}: {}'.format(name,valur))
print flow.request.method # показать метод запроса
# модель для вывода данных
self.send_output.emit('[NamePlugin]:: это модель для сохранения логов')
def response(self, flow):
print flow.__dict__
print flow.response.__dict__
print flow.response.headers.__dict__ # преобразовать заголовки в словарь Python
print flow.response.headers['Content-Type'] # получить тип содержимого
# каждый HTTP-ответ перед возвратом клиенту
with decoded(flow.response):
print flow.response.content # содержимое HTML
flow.response.content.replace('</body>','<h1>внедрено</h1></body>') # заменить тег содержимого
del flow.response.headers["X-XSS-Protection"] # удалить защитный заголовок
flow.response.headers["newheader"] = "foo" # добавить новый заголовок
# новый заголовок будет добавлен ко всем ответам, проходящим через прокси
плагины на вики
Прокси, который можно разместить между TCP-потоками. Он фильтрует потоки запросов и ответов с помощью модуля (scapy) и активно модифицирует пакеты TCP-протокола, перехваченные WiFi-Pumpkin. Этот плагин использует модули для просмотра или изменения перехваченных данных. Реализация модуля проста: достаточно добавить свой пользовательский модуль в директорию "plugins/analyzers/", и он автоматически появится на вкладке TCP-Proxy.
from scapy.all import *
from scapy_http import http # для HTTP-уровня
from default import PSniffer # базовый класс плагина
class ExamplePlugin(PSniffer):
_activated = False
_instance = None
meta = {
'Name' : 'Example',
'Version' : '1.0',
'Description' : 'Краткое описание нового плагина',
'Author' : 'ваше имя',
}
def __init__(self):
for key,value in self.meta.items():
self.__dict__[key] = value
@staticmethod
def getInstance():
if ExamplePlugin._instance is None:
ExamplePlugin._instance = ExamplePlugin()
return ExamplePlugin._instance
def filterPackets(self,pkt): # объект (pkt) для модификации данных на лету
if pkt.haslayer(http.HTTPRequest): # фильтровать только HTTP-запросы
http_layer = pkt.getlayer(http.HTTPRequest) # получить HTTP-поля как словарь
ip_layer = pkt.getlayer(IP)# получить заголовки IP как словарь
print http_layer.fields['Method'] # показать метод HTTP-запроса
# показать все элементы заголовка HTTP-запроса
for item in http_layer.fields['Headers']:
print('{} : {}'.format(item,http_layer.fields['Headers'][item]))
print ip_layer.fields['src'] # показать исходный IP-адрес
print ip_layer.fields['dst'] # показать целевой IP-адрес
print http_layer # показать элемент типа dict
print ip_layer # показать элемент типа dict
return self.output.emit({'name_module':'отправить вывод на вкладку TCP-Proxy'})
TCP-Proxy на вики
Плагин Captive-Portal позволяет атакующему развернуть беспроводную точку доступа, которая используется совместно с веб-сервером и правилами захвата трафика iptables для создания фишингового портала. Пользователи могут свободно подключаться к таким сетям без пароля и часто будут перенаправлены на страницу входа, где требуется ввести пароль перед тем, как им будет разрешено просматривать веб-страницы.
Captive-portals на вики
Скриншоты на вики
FAQ на вики
Если вы хотите сообщить об ошибке, отправить патч или внести предложения по этому проекту, сообщите нам или создайте pull request
| Плагин | Описание |
|---|
| Dns2proxy | Этот инструмент предоставляет различные возможности для пост-эксплуатации после того, как вы смените DNS-сервер жертвы. |
| Sstrip2 | Sslstrip — это MITM-инструмент, реализующий атаки с удалением SSL Мокси Марлинспайка, основанный на форке @LeonardoNve/@xtr4nge. |
| Sergio_proxy | Sergio Proxy (Super Effective Recorder of Gathered Inputs and Outputs) — это HTTP-прокси, написанный на Python для фреймворка Twisted. |
| BDFProxy | Патч бинарных файлов через MITM: BackdoorFactory + mitmProxy, bdfproxy-ng — это форк и переработка оригинального BDFProxy от @secretsquirrel. |
| Responder | Responder — отравитель LLMNR, NBT-NS и MDNS. Автор: Laurent Gaffie |
| PumpkinProxy | Перехват HTTP-данных, этот прокси-сервер позволяет перехватывать запросы и ответы на лету |
| CaptivePortals | Captive-Portal позволяет атакующему блокировать доступ в Интернет для пользователей, пока они не откроют страницу входа, где требуется ввести пароль перед тем, как им будет разрешено просматривать веб-страницы. |