Je recherche un outil de ligne de commande pouvant intercepter les demandes HTTP/HTTPS, extraire des informations telles que: (contenu, destination, etc.), effectuer diverses tâches d'analyse et déterminer enfin si la demande doit être supprimée ou non. Les demandes juridiques doivent être transmises à la demande.
Un outil de nature similaire à tcpdump
, Wireshark , ou snort , mais fonctionne au niveau HTTP.
Essayez mitmproxy .
mitmProxy est une proxy d'homme-in-the-the-in-the-intermédiaire SSL pour HTTP. Il fournit une interface de console qui permet d'inspecter et de modifier les flux de trafic à la volée.
mitmdump est la version de ligne de commande de MitmProxy, avec la même fonctionnalité, mais sans l'interface utilisateur. Pensez tcpdump pour http.
I Configurez un exemple JEKYLL BOOTSTRAP application qui écoute sur le port 4000 sur mon localhost. Pour intercepter le trafic, je ferais ce qui suit:
% mitmproxy --mode reverse:http://localhost:4000 -p 4001
Ensuite, connectez-vous à mon mitmproxy sur le port 4001 de mon navigateur Web (http://localhost:4001
), en résultant dans cela en mitmproxy:
Vous pouvez ensuite sélectionner l'un des résultats GET
pour voir les informations d'en-tête associées à ce GET
:
Pour certaines situations, vous pouvez utiliser un proxy qui accepte les demandes HTTP entrantes et permet aux demandes HTTPS sortantes. À titre d'exemple, je voulais capturer le trafic entre git
et github.com. J'ai utilisé mitmproxy :
mitmproxy -s httpser.py
où httpser.py
est:
def request(context, flow):
flow.request.scheme = 'https'
flow.request.port = 443
J'ai ensuite couru git
comme si:
export http_proxy="http://127.0.0.1:8080/"
git clone http://github.com/oxplot/difftr
Maintenant, en utilisant wireshark
écoutant sur localhost
, on peut capturer le trafic ordinaire. Sans le proxy, GitHub redirierait git
pour utiliser HTTPS.
mitmproxy
/mitmdump
Equaltivant à tcpdump
pour HTTPS est mitmdump
. Voici les étapes:
mitmproxy
paquet (MacOS: brew install mitmproxy
).Installation certificat de ca mitmproxy ca par les commandes suivantes:
$ mitmdump --mode reverse:http://mitm.it/ -p 8080
$ wget --content-disposition http://localhost:8080/cert/pem
$ open mitmproxy-ca-cert.pem
# Open, install and mark the certificate as trusted.
Maintenant, voici le test simple sur la manière de tester le proxy inverse:
mitmdump --mode reverse:https://example.com/ -p 4433
.Dans une autre coquille, courez: curl https://localhost:4433
.
Maintenant, vous devriez voir la page Source de la page et mitmdump
_ doit produire la sortie comme suit:
Proxy server listening at http://*:4433
[::1]:49446: clientconnect
[::1]:49446: GET https://example.com/ HTTP/2.0
<< 200 1.24k
[::1]:49446: clientdisconnect
Pour tout le trafic, il suffit de courir: mitmdump
ou mitmproxy
.
Voir: mitmproxy
docs page Pour plus de détails.
Si vous êtes sur MacOS, il existe également Charles proxy App (GUI) qui permet de visualiser tout le trafic HTTP et SSL/HTTPS entre les hôtes.