NetCat - den schweiziska armékniven |
Netcat är ett program för att tex fjärrstyra datorer. Det brukar liknas vid TCP/IP-världens schweiziska armékniv och utvecklades av någon som kallar sig Hobbit på Atstake. Den senaste versionen för Windows är 1.11 till Linux 1.10. Förutom att fjärrstyra kan man även bla portscanna med Netcat. Netcat är naturligtvis ett bra verktyg för administratörer, men även för hackare. Svårigheten för en hackare är att man förutom att installera Netcat på sin egen dator (kallas A i fortsättningen) även måste installera Netcat på den dator som man vill fjärrstyra (kallas B i fortsättningen) och öppna i brandväggen för den porten man vill använda. De olika flaggorna som kan användas i Netcat är:Beroende på om man kör Linux eller Windows finns olika flaggor att använda. Bilden ovan är för Windows. Den största skillnaden är att i Linux finns inte flaggan -e default, som gör att man får en kommandotolk att köra kommandon i som om man satt lokalt. Däremot kan man hämta hem källkoden och kompilera om Netcat för att få med den flaggan också. Det beror förmodligen på att det är en säkerhetsrisk att ha med den flaggan. För att köra Netcat behöver man alltså installera samma program både på A (om man inte vill köra Telnet) och B. För att kunna ansluta till B startar man först en lyssnare med följande kommando:
-L startar lyssnaren. -d gör så att lyssnaren fortsätter även om man stänger kommandotolken. Man måste gå in i aktivitetshanteraren för att stänga av den. -t gör att man kan ansluta mha telnet. Man behöver då inte ha Netcat installerat på A. -p anger porten. Vilken port som helst kan användas. -e anger vad som ska köras. I det här exemplet startas kommandotolken när man ansluter. För att ansluta från A till B körs följande kommando:
Om annan port än 23 valts på lyssnaren, som är standardporten för telnet, måste även porten anges. Och i nästa bild är vi inne på dator B som administratör, vilken är samma användare som startade lyssnaren på dator B.
För att komma runt problemet med att öppna portar i brandväggen för att kunna ansluta kan man binda netcat till tex port 139 (NetBIOS) som alltid är öppen om inte NetBIOS är avstängt. Då prioriteras Netcat framför NetBIOS. Det här fungerar bara fram tom Windows 2000. Lyssnare sätts igång så här: nc -v -L -e cmd.exe -p 139 -s xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx är B's IP-adress. För att göra Netcat ännu mer kraftfullt kan man naturligtvis kombinera det med andra kommandon m h a rörledning. T ex kan man utnyttja svagheter hos program som har problem med buffertspill eller för att förfalska e-post. Ett exempel som utnyttjar buffertspill är echo "vrfy `perl -e 'print "a" * 1000'`" | nc www.test.se 25 som skickar 1000 st 'a' till vrfy-kommandot i Sendmail, vilket bara klarar av att ta emot 128 byte. Sendmail kommer troligtvis att krascha. För att förfalska e-post kan man köra följande kommando som även finns i Martins papper om Netcat: type textfil.txt | nc -vv mail.openrelay.net 25 Kommandot kör innehållet i filen textfil.txt på smtp-servern. Netcat klarar som sagt även att portscanna. Här scannas port 80-81 på dator 62.88.180.96. Det är inte världens snabbaste portscan men den visar i alla fall vilka portar som är öppna.
Det går även att avlyssna trafiken. Följande kommando sparar trafiken i filen dump.
Efter att ha kört kommandot dir fås följande innehåll i filen dump: < 00000000 4d 69 63 72 6f 73 6f 66 74 20 57 69 6e 64 6f 77 # Microsoft Window < 00000010 73 20 58 50 20 5b 56 65 72 73 69 6f 6e 20 35 2e # s XP [Version 5. < 00000020 31 2e 32 36 30 30 5d 0d 0a 28 43 29 20 43 6f 70 # 1.2600]..(C) Cop < 00000030 79 72 69 67 68 74 20 31 39 38 35 2d 32 30 30 31 # yright 1985-2001 < 00000040 20 4d 69 63 72 6f 73 6f 66 74 20 43 6f 72 70 6f # Microsoft Corpo < 00000050 72 61 74 69 6f 6e 0d 0a 0d 0a 44 3a 5c 6e 65 74 # ration....D:\net < 00000060 63 61 74 3e # cat> < 00000064 64 69 72 0d 0a 20 56 6f 6c 79 6d 65 6e 20 69 20 # dir.. Volymen i < 00000074 65 6e 68 65 74 20 44 20 68 61 72 20 65 74 69 6b # enhet D har etik < 00000084 65 74 74 65 6e 20 57 69 6e 64 6f 77 73 20 58 50 # etten Windows XP < 00000094 20 50 72 6f 66 65 73 73 69 6f 6e 61 6c 0d 0a 20 # Professional.. < 000000a4 56 6f 6c 79 6d 65 6e 73 20 73 65 72 69 65 6e 75 # Volymens serienu < 000000b4 6d 6d 65 72 20 84 72 20 34 38 30 43 2d 34 31 35 # mmer .r 480C-415 < 000000c4 36 0d 0a 0d 0a 20 49 6e 6e 65 68 86 6c 6c 20 69 # 6.... Inneh.ll i < 000000d4 20 6b 61 74 61 6c 6f 67 65 6e 20 44 3a 5c 6e 65 # katalogen D:\ne < 000000e4 74 63 61 74 0d 0a 0d 0a 32 30 30 35 2d 30 34 2d # tcat....2005-04- < 000000f4 32 35 20 20 31 34 3a 30 39 20 20 20 20 3c 4b 41 # 25 14:09
...2 Ett liknande verktyg är psexec från SysInternals. Psexec finns bara för Windows men om man använder det så behöver man inte installera något alls på dator B och inte heller öppna något i brandväggen. Det innebär inte att en hackare kan promenera rakt in i systemet eftersom man måste ha ett användarkonto med tillhörande lösenord. Sidan gjord av: Erik Lundgren och Tony Aronsson - Grafit 8 säkerhet 2005