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

WiFi-Pumpkin - Framework para Ataque de Ponto de Acesso Wi-Fi Falso
O WiFi-Pumpkin é um framework de AP falso para criar facilmente essas redes falsas, tudo enquanto encaminha tráfego legítimo de e para o alvo desavisado. Ele vem repleto de funcionalidades, incluindo pontos de acesso Wi-Fi falsos, ataques de desautenticação em APs de clientes, um monitor de solicitações de probe e credenciais, proxy transparente, ataque de atualização do Windows, gerenciador de phishing, envenenamento ARP, Spoofing DNS, Pumpkin-Proxy e captura de imagens em tempo real. Além disso, o WiFi-Pumpkin é um framework muito completo para auditoria de segurança Wi-Fi. A lista de funcionalidades é bastante ampla.

git clone https://github.com/P0cL4bs/WiFi-Pumpkin.git
cd WiFi-Pumpkin
./installer.sh --install
ou baixe o arquivo .deb para instalar
sudo dpkg -i wifi-pumpkin-0.8.8-all.deb
sudo apt-get -f install # force install dependencies if not install normally
consulte a wiki para Instalação
1HBXz6XX3LcHqUnaca5HRqq6rPUmA3pf6f

Proxies transparentes (mitmproxy) que você pode usar para interceptar e manipular tráfego HTTP, modificando requisições e respostas, que permitem injetar JavaScript nos alvos visitados. Você pode facilmente implementar um módulo para injetar dados em páginas criando um arquivo Python no diretório "plugins/extension/" que será listado automaticamente na aba Pumpkin-Proxy.
from mitmproxy.models import decoded # for decode content html
from plugins.extension.plugin import PluginTemplate
class Nameplugin(PluginTemplate):
meta = {
'Name' : 'Nameplugin',
'Version' : '1.0',
'Description' : 'Brief description of the new plugin',
'Author' : 'by dev'
}
def __init__(self):
for key,value in self.meta.items():
self.__dict__[key] = value
# if you want set arguments check refer wiki more info.
self.ConfigParser = False # No require arguments
def request(self, flow):
print flow.__dict__
print flow.request.__dict__
print flow.request.headers.__dict__ # request headers
host = flow.request.pretty_host # get domain on the fly requests
versionH = flow.request.http_version # get http version
# get redirect domains example
# pretty_host takes the "Host" header of the request into account,
if flow.request.pretty_host == "example.org":
flow.request.host = "mitmproxy.org"
# get all request Header example
self.send_output.emit("\n[{}][HTTP REQUEST HEADERS]".format(self.Name))
for name, valur in flow.request.headers.iteritems():
self.send_output.emit('{}: {}'.format(name,valur))
print flow.request.method # show method request
# the model printer data
self.send_output.emit('[NamePlugin]:: this is model for save data logging')
def response(self, flow):
print flow.__dict__
print flow.response.__dict__
print flow.response.headers.__dict__ #convert headers for python dict
print flow.response.headers['Content-Type'] # get content type
#every HTTP response before it is returned to the client
with decoded(flow.response):
print flow.response.content # content html
flow.response.content.replace('</body>','<h1>injected</h1></body>') # replace content tag
del flow.response.headers["X-XSS-Protection"] # remove protection Header
flow.response.headers["newheader"] = "foo" # adds a new header
#and the new header will be added to all responses passing through the proxy
plugins na wiki
Um proxy que você pode colocar entre um fluxo TCP. Ele filtra os fluxos de requisição e resposta com o módulo (scapy) e modifica ativamente pacotes de um protocolo TCP que são interceptados pelo WiFi-Pumpkin. Este plugin utiliza módulos para visualizar ou modificar os dados interceptados, sendo possivelmente a implementação mais fácil de um módulo; basta adicionar seu módulo personalizado em "plugins/analyzers/" que será listado automaticamente na aba TCP-Proxy.
from scapy.all import *
from scapy_http import http # for layer HTTP
from default import PSniffer # base plugin class
class ExamplePlugin(PSniffer):
_activated = False
_instance = None
meta = {
'Name' : 'Example',
'Version' : '1.0',
'Description' : 'Brief description of the new plugin',
'Author' : 'your name',
}
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) object in order to modify the data on the fly
if pkt.haslayer(http.HTTPRequest): # filter only http request
http_layer = pkt.getlayer(http.HTTPRequest) # get http fields as dict type
ip_layer = pkt.getlayer(IP)# get ip headers fields as dict type
print http_layer.fields['Method'] # show method http request
# show all item in Header request http
for item in http_layer.fields['Headers']:
print('{} : {}'.format(item,http_layer.fields['Headers'][item]))
print ip_layer.fields['src'] # show source ip address
print ip_layer.fields['dst'] # show destiny ip address
print http_layer # show item type dict
print ip_layer # show item type dict
return self.output.emit({'name_module':'send output to tab TCP-Proxy'})
TCP-Proxy na wiki
O plugin Captive-Portal permite que o Atacante monte um ponto de acesso sem fio que é usado em conjunto com um servidor web e regras de captura de tráfego iptables para criar o portal de phishing. Os usuários podem se conectar livremente a essas redes sem senha e muitas vezes serão direcionados a uma página de login onde uma senha é exigida antes de serem autorizados a navegar na web.
Captive-portals na wiki
Captura de Tela na wiki
FAQ na wiki
Se você deseja reportar um bug, enviar um patch ou dar algumas sugestões sobre este projeto, entre em contato conosco ou abra pull requests
| Plugin | Descrição |
|---|
| Dns2proxy | Esta ferramenta oferece diferentes funcionalidades para pós-exploração depois que você altera o servidor DNS para uma Vítima. |
| Sstrip2 | Sslstrip é uma ferramenta MITM que implementa os ataques de stripping SSL de Moxie Marlinspike, baseada no fork de @LeonardoNve/@xtr4nge. |
| Sergio_proxy | Sergio Proxy (um Super Effective Recorder of Gathered Inputs and Outputs) é um proxy HTTP escrito em Python para o framework Twisted. |
| BDFProxy | Patch de Binários via MITM: BackdoorFactory + mitmProxy, bdfproxy-ng é um fork e revisão do BDFProxy original @secretsquirrel. |
| Responder | Responder, um envenenador LLMNR, NBT-NS e MDNS. Autor: Laurent Gaffie |
| PumpkinProxy | Interceptando dados HTTP, este servidor proxy permite interceptar requisições e respostas em tempo real |
| CaptivePortals | Captive-Portal permite que o Atacante bloqueie o acesso à Internet para os usuários até que eles abram a página de login onde uma senha é exigida antes de serem autorizados a navegar na web. |