
DÉPRÉCIÉ, wifipumpkin3 -> https://github.com/P0cL4bs/wifipumpkin3

WiFi-Pumpkin - Framework pour attaque de point d'accès Wi-Fi malveillant
WiFi-Pumpkin est un framework de point d'accès malveillant (rogue AP) permettant de créer facilement ces faux réseaux, tout en redirigeant le trafic légitime depuis et vers la cible sans méfiance. Il est truffé de fonctionnalités, notamment les points d'accès Wi-Fi malveillants, les attaques de désauthentification sur les points d'accès clients, un moniteur de requêtes probe et de mots de passe, un proxy transparent, l'attaque de mise à jour Windows, le gestionnaire de phishing, le proxy ARP, l'usurpation DNS, Pumpkin-Proxy, et la capture d'images à la volée. De plus, WiFi-Pumpkin est un framework très complet pour auditer la sécurité Wi-Fi – la liste des fonctionnalités est assez large.

git clone https://github.com/P0cL4bs/WiFi-Pumpkin.git
cd WiFi-Pumpkin
./installer.sh --install
ou téléchargez le fichier .deb pour l'installer
sudo dpkg -i wifi-pumpkin-0.8.8-all.deb
sudo apt-get -f install # force l'installation des dépendances si elles ne sont pas installées normalement
reportez-vous au wiki pour l'Installation
1HBXz6XX3LcHqUnaca5HRqq6rPUmA3pf6f

Les proxys transparents (mitmproxy) que vous pouvez utiliser pour intercepter et manipuler le trafic HTTP en modifiant les requêtes et les réponses, ce qui permet d'injecter des scripts JavaScript dans les sites visités par les cibles. Vous pouvez facilement implémenter un module pour injecter des données dans les pages en créant un fichier Python dans le répertoire "plugins/extension/" ; il sera automatiquement listé dans l'onglet 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 sur le wiki
Un proxy que vous pouvez placer entre les flux TCP. Il filtre les flux de requêtes et de réponses avec le module (scapy) et modifie activement les paquets d'un protocole TCP intercepté par WiFi-Pumpkin. Ce plugin utilise des modules pour visualiser ou modifier les données interceptées ; l'implémentation d'un module est possible simplement en ajoutant votre module personnalisé dans "plugins/analyzers/" ; il sera automatiquement listé dans l'onglet 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 sur le wiki
Le plugin Portail captif permet à l'attaquant de monter un point d'accès sans fil utilisé conjointement avec un serveur web et des règles de capture de trafic iptables pour créer le portail de phishing. Les utilisateurs peuvent se connecter librement à ces réseaux sans mot de passe et seront souvent redirigés vers une page de connexion où un mot de passe est requis avant d'être autorisés à naviguer sur le web.
Captive-portals sur le wiki
Screenshot sur le wiki
FAQ sur le wiki
Que vous souhaitiez signaler un bug, envoyer un correctif ou donner des suggestions sur ce projet, n'hésitez pas à nous contacter ou à ouvrir des pull requests
| Plugin | Description |
|---|
| Dns2proxy | Cet outil offre différentes fonctionnalités pour la post-exploitation une fois que vous avez changé le serveur DNS de la victime. |
| Sstrip2 | Sslstrip est un outil MITM qui implémente les attaques de dégradation SSL de Moxie Marlinspike basées sur un fork de @LeonardoNve/@xtr4nge. |
| Sergio_proxy | Sergio Proxy (un super enregistreur efficace des entrées et sorties) est un proxy HTTP écrit en Python pour le framework Twisted. |
| BDFProxy | Corrige les binaires via MITM : BackdoorFactory + mitmProxy, bdfproxy-ng est un fork et une révision du BDFProxy original @secretsquirrel. |
| Responder | Responder, un empoisonneur LLMNR, NBT-NS et MDNS. Auteur : Laurent Gaffie |
| PumpkinProxy | Interception des données HTTP, ce serveur proxy permet d'intercepter les requêtes et les réponses à la volée. |
| CaptivePortals | Le portail captif permet à l'attaquant de bloquer l'accès Internet des utilisateurs jusqu'à ce qu'ils ouvrent la page de connexion où un mot de passe est requis avant d'être autorisés à naviguer sur le web. |