Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

Portr – Tunnelisez facilement vos connexions HTTP et TCP

Vous êtes en train de bosser sur votre dernier projet révolutionnaire qui va changer la face du monde (ou pas), mais vous avez besoin de le montrer à votre équipe ou à des testeurs externes… Sauf que voilà, votre serveur est bien au chaud sur votre machine locale et personne n’y a accès. C’est là que Portr entre en scène tel un chevalier blanc sur son destrier étincelant !

Cet outil permet grâce à une solution de tunnel, d’exposer des connexions HTTP et TCP locales à l’internet mondial \o/. Et tout ça en utilisant le transfert de port à distance SSH. En gros, ça permet de créer un tunnel sécurisé entre votre machine et un serveur distant, et de rediriger le trafic vers votre serveur local.

Bon, Portr est principalement conçu pour les petites équipes qui ont besoin d’exposer des serveurs de développement sur une URL publique donc si vous comptez l’utiliser pour héberger le prochain Facebook, passez votre chemin. Mais ça offre :

  • Tunnelisation facile des connexions HTTP et TCP
  • Tableau de bord d’administration pour gérer les équipes et les utilisateurs
  • Inspecteur Portr pour analyser et rejouer les requêtes HTTP

Et si vous voulez voir à quoi ça ressemble en vrai, je vous ai dégoté 2 petites vidéo de démo :

Si ça vous dit d’essayer, direction le repo GitHub du projet. Vous y trouverez tout ce qu’il faut pour installer et configurer Portr. Ah et j’oubliais (décidemment…), Portr est open source et distribué sous licence GNU Affero General Public License v3.0 (AGPL-3.0) donc vous pouvez l’utiliser, le modifier et le redistribuer à votre guise.

Bon allez, je vous laisse, j’ai un tunnel à creuser moi.

Graftcp – Un petit tool capable de proxifier n’importe quel programme

Voici un outil bien pratique pour faire passer vos connexions TCP par un proxy SOCKS5 ou HTTP. Ça s’appelle graftcp et grâce à lui, vous pouvez dire adieu à vos galères pour proxifier certains outils.

Comparé à des solutions comme tsocks, proxychains ou proxychains-ng, graftcp n’utilise pas la méthode LD_PRELOAD qui ne fonctionne que pour les programmes liés dynamiquement. Par exemple, les applications construites avec Go ne peuvent pas être « accrochées » par proxychains-ng. Alors que Graftcp, lui, peut suivre et modifier les connexions de n’importe quel programme, ce qui le rend très versatile.

Pour l’essayer, c’est fastoche. Sur Linux, compilez graftcp et graftcp-local avec Go ou téléchargez directement les binaires Debian ou Arch.

Voici comment faire :

  1. Clonez le dépôt : git clone https://github.com/hmgle/graftcp.git cd graftcp make
  2. Après compilation, utilisez les binaires résultants dans local/graftcp-local et graftcp. Vous pouvez aussi les installer dans le système :
    sudo make install
    sudo make install_systemd
    sudo make enable_systemd
  3. Lancez graftcp-local avec l’adresse de votre proxy SOCKS5, genre 127.0.0.1:1080.
    Par exemple : local/graftcp-local -socks5 127.0.0.1:1080
  4. Utilisez ensuite graftcp pour encapsuler vos programmes afin qu’ils passent par le proxy sans broncher. Exemple pour installer un package Go : ./graftcp go get -v golang.org/x/net/proxy

Ou pour surfer pépouze avec Chromium ou Firefox : ./graftcp chromium-browser

Même votre shell préféré peut surfer incognito si vous le lancez avec graftcp :
./graftcp bash
wget https://www.google.com

Sous le capot, Graftcp fork et trace le programme avec ptrace. À chaque appel connect, il attrape l’adresse de destination et la transmet par pipe à graftcp-local. Ensuite, il la modifie pour pointer vers graftcp-local avant de relancer le syscall. L’appli croit alors qu’elle cause à sa destination mais en fait, elle parle à graftcp-local qui se charge de tunneler le trafic dans le proxy SOCKS. Malin non ?

Evidemment, vous pouvez personnaliser le comportement de graftcp en utilisant divers paramètres, comme spécifier des fichiers de configuration pour gérer une liste noire d’IPs (blacklist) ou une liste blanche (whitelist). Par défaut, localhost passe en direct :

$ graftcp -h Usage: graftcp [options] prog [prog-args] Options: -c --conf-file=<path> -a --local-addr=<IP> -p --local-port=<port> -n --not-ignore-local -b --blackip-file=<path> -w --whiteip-file=<path> -V --version -h --help

Pour plus de détail et options, consultez GitHub.

Notez que Graftcp est limité au TCP… pas d’UDP donc. Pour le DNS, il faudra donc passer par un proxy dédié comme ChinaDNS ou dnscrypt-proxy. Pour les performances, bien que les chiffres précis varient en fonction des configurations, graftcp est assez connu pour offrir une alternative robuste aux solutions comme proxychains.

Bref, c’est un outil polyvalent pour la proxification puisqu’il est léger, compatible avec tout et surtout facile à utiliser…

Source

❌