
Un outil pour établir des connexions SOCKS via des agents HTTP
Pivotez dans le réseau interne en déployant des agents HTTP. Pivotnacci vous permet de créer un serveur socks qui communique avec des agents HTTP. L'architecture ressemble à ceci :
Cet outil a été inspiré par le formidable reGeorg. Cependant, il inclut quelques améliorations :
Depuis les packages python :
pip3 install pivotnacci
Depuis le dépôt :
git clone https://github.com/blackarrowsec/pivotnacci.git
cd pivotnacci/
pip3 install -r requirements.txt # to avoid installing on the OS
python3 setup.py install # to install on the OS
$ pivotnacci -h
usage: pivotnacci [-h] [-s addr] [-p port] [--verbose] [--ack-message message]
[--password password] [--user-agent user_agent]
[--header header] [--proxy [protocol://]host[:port]]
[--type type] [--polling-interval milliseconds]
[--request-tries number] [--retry-interval milliseconds]
url
Serveur socks pour agents HTTP
positional arguments:
url L'URL de l'agent
optional arguments:
-h, --help afficher ce message d'aide et quitter
-s addr, --source addr
L'adresse d'écoute par défaut (par défaut : 127.0.0.1)
-p port, --port port Le port d'écoute par défaut (par défaut : 1080)
--verbose, -v
--ack-message message, -a message
Message renvoyé par la page web de l'agent (par défaut :
Server Error 500 (Internal Error))
--password password Mot de passe pour communiquer avec l'agent (par défaut : )
--user-agent user_agent, -A user_agent
L'en-tête User-Agent envoyé à l'agent (par défaut :
pivotnacci/0.0.1)
--header header, -H header
Envoyer un en-tête personnalisé. Spécifiez sous la forme 'Nom : Valeur'
(par défaut : None)
--proxy [protocol://]host[:port], -x [protocol://]host[:port]
Définir le proxy HTTP à utiliser. (Les variables d'environnement
HTTP_PROXY et HTTPS_PROXY sont également supportées)
(par défaut : None)
--type type, -t type Pour spécifier le type d'agent au cas où il ne serait pas
détecté automatiquement. Les options sont ['php', 'jsp', 'aspx'] (par défaut :
None)
--polling-interval milliseconds
Intervalle pour interroger les agents (pour les opérations recv)
(par défaut : 100)
--request-tries number
Le nombre de tentatives pour chaque requête à un agent. À utiliser
en cas de serveurs équilibrés (par défaut : 50)
--retry-interval milliseconds
Intervalle pour réessayer une requête échouée (en raison d'un
serveur équilibré) (par défaut : 100)
Utilisation d'un agent avec le mot de passe s3cr3t (la variable AGENT_PASSWORD doit également être modifiée côté agent) :
pivotnacci https://domain.com/agent.php --password "s3cr3t"
Utilisation d'un en-tête HTTP Host personnalisé et d'un User-Agent CustomAgent personnalisé :
pivotnacci https://domain.com/agent.jsp -H 'Host: vhost.domain.com' -A 'CustomAgent'
Définition d'un message d'agent différent 418 I'm a teapot (la variable ACK_MESSAGE doit également être modifiée côté agent) :
pivotnacci https://domain.com/agent.aspx --ack-message "418 I'm a teapot"
Réduire le taux de détection (ex. WAF) en réglant l'intervalle de polling à 2 secondes :
pivotnacci https://domain.com/agent.php --polling-interval 2000
Eloy Pérez (@Zer1t0) [ www.blackarrow.net - www.tarlogic.com ]
Tout le code inclus dans ce projet est sous licence GNU AGPLv3.