Cntlm est un proxy HTTP authentifiant NTLM/NTLM Session Response/NTLMv2 destiné à vous aider à vous libérer des chaînes du monde propriétaire de Microsoft.
J'ai l'URL du proxy au format suivant:
http://user:passwords@my_proxy_server.com:80
Et je dois fournir cette information à cntlm
. Son fichier de configuration cntlm.ini
a la structure et les paramètres suivants:
Username
Domain
Password
Proxy
Je ne sais pas trop comment diviser ma propriété de proxy d'origine pour remplir ces quatre options?
Mettez à jour vos informations d'utilisateur, de domaine et de proxy dans cntlm.ini
, puis testez votre proxy avec cette commande (exécutée dans votre dossier d'installation Cntlm):
cntlm -c cntlm.ini -I -M http://google.ro
Il vous demandera votre mot de passe et, si possible, imprimera les informations d'authentification requises, qui devront être enregistrées dans votre cntlm.ini
Exemple cntlm.ini
:
Username user
Domain domain
# provide actual value if autodetection fails
# Workstation pc-name
Proxy my_proxy_server.com:80
NoProxy 127.0.0.*, 192.168.*
Listen 127.0.0.1:54321
Listen 192.168.1.42:8080
Gateway no
SOCKS5Proxy 5000
# provide socks auth info if you want it
# SOCKS5User socks-user:socks-password
# printed authentication info from the previous step
Auth NTLMv2
PassNTLMv2 98D6986BCFA9886E41698C1686B58A09
Remarque: sur linux, le fichier de configuration est cntlm.conf
La solution prend deux étapes!
Commencez par compléter les champs utilisateur, domaine et proxy dans cntlm.ini
. Le nom d'utilisateur et le domaine doivent probablement correspondre à ceux que vous utilisez pour vous connecter à Windows dans votre bureau, par exemple.
Username employee1730
Domain corporate
Proxy proxy.infosys.corp:8080
Puis testez cntlm avec une commande telle que
cntlm.exe -c cntlm.ini -I -M http://www.bbc.co.uk
Il vous demandera votre mot de passe (encore une fois ce que vous utiliserez pour vous connecter à Windows_). J'espère qu'il imprimera «http 200 ok» quelque part et imprimera vos informations d'authentification de jetons cryptiques. Ajoutez maintenant ceux-ci à cntlm.ini
, par exemple:
Auth NTLM
PassNT A2A7104B1CE00000000000000007E1E1
PassLM C66000000000000000000000008060C8
Enfin, définissez la variable d’environnement http_proxy
dans Windows (en supposant que vous n’ayez pas changé avec le champ Listen
qui est défini par défaut sur 3128
) comme suit:
http://localhost:3128
http://forum.kde.org/viewtopic.php?f=83&t=119352
Voilà mon propre fil. J'ai clairement montré là.
Je ne peux rien y changer, je ne peux plus accéder à mon compte, idk pourquoi, mais lorsque vous définissez tout dans le fichier cntlm.conf (le mot de passe n'est pas obligatoire), enregistrez le fichier et accédez à torminal. commande type:
cntlm -H
et entrez votre mot de passe proxy. ensuite, il imprimera 3 lignes de hachage - copiez-les toutes et collez-les dans le fichier cntlm.conf au lieu de la ligne "mot de passe".
Donc, vous aurez un mot de passe chiffré et les utilisateurs ne le trouveront pas avec ettercap;)
Sans configuration, vous pouvez simplement lancer la commande suivante (en modifiant myusername
et mydomain
avec vos propres informations):
cntlm -u myusername -d mydomain -H
ou
cntlm -u myusername@mydomain -H
Il vous demandera le mot de passe de myusername
et vous donnera le résultat suivant:
PassLM 1AD35398BE6565DDB5C4EF70C0593492
PassNT 77B9081511704EE852F94227CF48A793
PassNTLMv2 A8FC9092D566461E6BEA971931EF1AEC # Only for user 'myusername', domain 'mydomain'
Créez ensuite le fichier cntlm.ini
(ou cntlm.conf
sous Linux avec le chemin par défaut) avec le contenu suivant (en remplaçant votre myusername
, mydomain
et A8FC9092D566461E6BEA971931EF1AEC
par vos informations et le résultat de la commande précédente):
Username myusername
Domain mydomain
Proxy my_proxy_server.com:80
NoProxy 127.0.0.*, 192.168.*
Listen 127.0.0.1:5865
Gateway yes
SOCKS5Proxy 5866
Auth NTLMv2
PassNTLMv2 A8FC9092D566461E6BEA971931EF1AEC
Ensuite, vous aurez un proxy ouvert local sur le port local 5865
et un autre comprenant le protocole SOCKS5 sur le port local 5866
.
Juste pour ajouter, si vous effectuez une opération "pip", vous devrez peut-être ajouter un "--proxy = localhost: port_number" supplémentaire
par exemple pip install --proxy=localhost:3128 matplotlib
Visitez ce link pour voir tous les détails.
Voici un guide sur la façon d'utiliser cntlm
cntlm est un proxy HTTP authentifiant NTLM/NTLMv2
Il prend l’adresse de votre proxy et ouvre un socket d’écoute en transmettant chaque demande au proxy parent.
Cntlm nous permet d’exécuter des outils tels que choro, pip3, apt-get
à partir d’une ligne de commande
pip3 install requests
choco install git
Le principal avantage de cntlm est la protection par mot de passe.
Avec cntlm, vous pouvez utiliser des hachages de mots de passe.
Donc NO PLAINTEXT PASSWORD dans les variables d'environnement %HTTP_PROXY%
et %HTTPS_PROXY%
Vous pouvez obtenir la dernière version de cntlm sur sourceforge
Mon nom d'utilisateur est zezulinsky
Mon domaine est local
Quand j'exécute des commandes, j'utilise zezulinsky@local
Placez votre nom d'utilisateur lorsque vous exécutez des commandes
Lancer une commande
cntlm -u zezulinsky@local -H
Tapez votre mot de passe:
Password:
En conséquence, vous obtenez un mot de passe haché:
PassLM AB7D42F42QQQQ407552C4BCA4AEBFB11
PassNT PE78D847E35FA7FA59710D1231AAAF99
PassNTLMv2 46738B2E607F9093296AA4C319C3A259
Lancer une commande
cntlm -u zezulinsky@local -M http://google.com
Tapez votre mot de passe
Password:
Le résultat obtenu
Config profile 1/4... OK (HTTP code: 301)
----------------------------[ Profile 0 ]------
Auth NTLMv2
PassNTLMv2 46738B2E607F9093296AA4C319C3A259
------------------------------------------------
Remarque! Vérifiez que le hachage PassNTLMv2 est le même Le hachage résultant est le même pour les deux commandes.
PassNTLMv2 46738B2E607F9093296AA4C319C3A259
Placez les hachages générés dans le fichier de configuration cntlm.ini
C:\Program Files (x86)\Cntlm\cntlm.ini
Voici à quoi devrait ressembler votre cntlm.ini
Username zezulinsky
Domain local
PassLM AB7D42F42QQQQ407552C4BCA4AEBFB11
PassNT PE78D847E35FA7FA59710D1231AAAF99
PassNTLMv2 46738B2E607F9093296AA4C319C3A259
Proxy PROXYSERVER:8080
NoProxy localhost, 127.0.0.*
Listen 3128
Il est important d’ajouter une nouvelle ligne à la fin du fichier de configuration cntlm.ini
.
HTTPS_PROXY=http://localhost:3128
HTTP_PROXY=http://localhost:3128
Arrêtez tous les processus nommés cntlm.exe
avec Process Explorer.
Lancer la commande
cntlm -u zezulinsky@local -H
La sortie ressemble à
cygwin warning:
MS-DOS style path detected: C:\Program Files (x86)\Cntlm\cntlm.ini
Preferred POSIX equivalent is: /Cntlm/cntlm.ini
CYGWIN environment variable option "nodosfilewarning" turns off this warning.
Consult the user's guide for more details about POSIX paths:
http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
section: local, Username = 'zezulinsky'
section: local, Domain = 'local'
section: local, PassLM = 'AB7D42F42QQQQ407552C4BCA4AEBFB11'
section: local, PassNT = 'PE78D847E35FA7FA59710D1231AAAF99'
section: local, PassNTLMv2 = '46738B2E607F9093296AA4C319C3A259'
section: local, Proxy = 'PROXYSERVER:8080'
section: local, NoProxy = 'localhost, 10.*, 127.0.0.*
section: local, Listen = '3128'
Default config file opened successfully
cntlm: Proxy listening on 127.0.0.1:3128
Adding no-proxy for: 'localhost'
Adding no-proxy for: '10.*'
Adding no-proxy for: '127.0.0.*'
cntlm: Workstation name used: MYWORKSTATION
cntlm: Using following NTLM hashes: NTLMv2(1) NT(0) LM(0)
cntlm: PID 1234: Cntlm ready, staying in the foreground
Ouvrez une nouvelle cmd et lancez une commande:
pip3 install requests
Vous devez avoir le paquet de requêtes python installé
Félicitations, cntlm est maintenant installé et configuré
Une fois que vous avez généré le fichier et modifié votre mot de passe, vous pouvez le lancer comme suit:
cntlm -H
Le nom d'utilisateur sera le même. il vous demandera un mot de passe, donnez-le, puis copiez le PassNTLMv2, modifiez le fichier cntlm.ini, puis exécutez simplement
cntlm -v