WSH 2.1.0
=========

================================================================================

GRAY-WORLD.NET / WSH
====================

  Le programme WSH est partie intgrante des projets Gray-World.net.

  Notre quipe  prsente  sur  le  site  http://gray-world.net  les  projets  et
  publications sur lesquels nous travaillons. Ces projets et  publications  sont
  relatifs au contournement  des  systmes  de  contrle  d'accs  rseau  (NACS
  bypassing) ainsi qu' la scurit des systmes et rseaux.

================================================================================
  
  WSH (Web Shell) - Shell distant UNIX/WIN sur un flux HTTP/HTTPS.
  
FONCTIONNALITES
---------------

  + Support SSL (*);
  + Support historique de ligne de commande (**);
  + Emission/rception de fichiers;
  + Protection du script serveur par une cl secrte dans les messages HTTP;
  + Codage du flux de donnes par Xor;
  + Peut utiliser un serveur proxy HTTP (pour cacher l'ip  du  client ou  passer
    au travers d'un firewall);

    (*) Le package Net::SSLeay est requis pour l'hte client:
    Tlchargez le sur:
    http://search.cpan.org/author/SAMPO/Net_SSLeay.pm-1.22/

    (**) - Les packages suivants sont requis sur l'hte client:
    1) readline-4.2a.tar.gz ou superieur sur
       http://www.gnu.org/directory/readline.html
    2) ReadLine-Gnu-1.12.tar.gz ou superieur sur
       http://search.cpan.org/search?dist=Term-ReadLine-Gnu

FONCTIONNEMENT
--------------

  +----------+        +------------+    |   +-------------------+
  | CLIENT   |<-HTTP->| proxy http |<-HTTP->| SERVEUR WEB       |
  | wsh-c.pl |        |(optionnel) |    |   | /cgi-bin/wsh-s.pl |
  +----------+        +------------+    |   +-------------------+
                                        |
                                     Firewall?

  wsh-c.pl offre un prompt shell, encapsule les commandes dans des requtes HTTP
  POST et les envoie au script wsh-s.pl localis sur le serveur Web distant soit
  directement, soit via un serveur proxy HTTP. wsh-s.pl extrait et  excute  les
  commandes des requtes HTTP POST et renvoie les sorties STDOUT et STDERR  dans
  des messages de reponse HTTP. Par dfaut, les deux script codent le flux  avec
  l'opration Xor.

INSTALLATION
------------

  1. Vrifiez le chemin vers Perl dans le fichier "config.pl";
  2. Excutez "config.pl" : `./config.pl`
     OPTIONNEL -----------------------------------------------------------------
     Vrifiez le fichier "wsh-c.conf", et si vous voulez utiliser un proxy HTTP;
        use_proxy	1
        proxy_ip	<ip>
        port            <port>
     ---------------------------------------------------------------------------
  3. Vrifiez le chemin vers Perl et les permissions du fichier "wsh-c.pl" cr;
  4a. Version Perl du serveur : Positionnez wsh-s.pl dans le rpertoire  cgi-bin
      et vrifiez le chemin vers Perl;
  4b. Version C du serveur : Positionnez wsh-s.c dans le rpertoire  cgi-bin  et
      compilez-le (supprimez le source par la suite).
        * Sous *Nix               : gcc -g2 -Wall -o wsh-s wsh-s.c
        * Sous Win32 (Visual C++) : cl /W3 wsh-s.c ws2_32.lib
        * Sous Win32 Cygwin       : Positionnez la variable  WIN32_RUN  dans  le
          code source et compilez le comme pour la version *Nix.

  A propos de SSL :

  a. Si vous utilisez un client SSL wsh-c.pl, vous pouvez configurer  ce  client
     pour qu'il vrifie le CN du certificat du serveur (Notez que ceci peut tre
     dtourn !):
	my $ssl_set_check=1;            # (0 || 1) don't or check the  webserver
					#          ssl certificate with internal
					#          ssl_crt_subject.
	my $ssl_crt_subject="/C=Fr/ST=Paris/L=Paris/O=XXX/OU=XXX/CN=XXX";
     => Vous pouvez le faire en excutant une fois  le  client  wsh-c.pl  et  en
        rcuperant le CN affich par le message d'erreur.

  b. Nous n'avons pas test le client wsh-c-SSL.pl sur un systme Win32. Si vous
     avez la possibilit d'installer  Net:SSLeay  sur  Win32  et  de  tester  le
     client, envoyez-nous un mail.

USAGE
-----

  sh# client/wsh-c.pl targethost.com/cgi-bin/wsh-s.pl <Key>
  ..ou
  sh# client/wsh-c.pl targethost.com/cgi-bin/wsh-s <Key>
  ..si vous utilisez la version C wsh-s.

  <Key> est la cl par dfaut, si vous ne  la  changez  pas  avec  config.pl  ou
  manuellement dans les fichiers wsh-c.conf et wsh-s.pl/wsh-s.c.

  Commandes WSH:
    exit           comme son nom l'indique;
    history        afficher l'historique des commandes;
    !<number>      excute la commande <number> dans l'historique;
    wshget <file>  reoit  le   fichier  <file>   du  serveur  distant  dans  le
		   rpertoire local courant;
    wshput <file>  envoie le fichier  <file>  du  rpertoire  local  courant  au
		   serveur distant;
    lect <lecter:> change de lecteur sous Win32 (ex: "lect d:");

LICENCE
-------
  
  WebShell est distribu sous les termes de  la  licence  GNU  -  General Public
  Licence  version  2.0  et   est    copyright   (c)  2002,2003   Alex   Dyatlov
  <alex [at] gray-world.net> et Simon Castro <scastro [at] entreelibre.com>.
  Consultez le fichier COPYING pour plus de details.

AUTEURS
-------

  Alex Dyatlov <alex [at] gray-world.net>     - Code principal de WSH.
  Simon Castro <scastro [at] entreelibre.com> - Support WIN et SSL,
                                                version C wsh-s.

  La dernire version de WSH est disponible sur le site officiel gray-world.net:
  http://gray-world.net/
  ou sur son miroir :
  http://www.entreelibre.com/gray-world.net/

  Le forum de discussion WSH est disponible sur:
  http://gray-world.net/board/
