Uitwerking opdrachten IDS week 1, Remco Hobo & Pieter de Boer ============================================================= Opdracht 1 ---------- traceroute to www.securityfocus.com (205.206.231.13), 30 hops max, 38 byte packets 1 145.92.26.1 1.902 ms 1.940 ms 1.857 ms 2 145.92.254.238 2.274 ms 2.230 ms 4.992 ms 3 145.145.18.241 2.109 ms 2.100 ms 2.121 ms ... Packet trace: 13:41:03.743585 IP (tos 0x0, ttl 1, id 36868, offset 0, flags [none], length: 38) 145.92.27.109.36867 > 205.206.231.13.33435: [udp sum ok] UDP, length: 10 13:41:03.745398 IP (tos 0x0, ttl 255, id 8874, offset 0, flags [none], length: 56) 145.92.26.1 > 145.92.27.109: icmp 36: time exceeded in-transit 13:41:03.749354 IP (tos 0x0, ttl 2, id 36871, offset 0, flags [none], length: 38) 145.92.27.109.36867 > 205.206.231.13.33438: [udp sum ok] UDP, length: 10 13:41:03.751560 IP (tos 0xc0, ttl 254, id 28459, offset 0, flags [none], length: 56) 145.92.254.238 > 145.92.27.109: icmp 36: time exceeded in-transit Een traceroute stuurt een 3-tal UDP packets uit met een TTL van 1. De eerste router zal die TTL verlagen met 1, waardoor het op 0 terecht komt. Een router hoort dan een ICMP TTL exceeded packet terug te sturen, wat dus ook gebeurd is. Traceroute ontvangt die packet en ziet aan het source adres van die packet welke router het gestuurd heeft en zal dat IP-adres laten zien op het scherm. De tijden in traceroute zijn de round-trip times van de packets. Een volgende 3-tal packets zal een TTL hebben van 2, zodat de tweede router op het pad van source naar destination die verlaagt van 1 naar 0 en dan een ICMP-packet stuurt. Daarna wordt de TTL verhoogd naar 3, zodat de 3e router reageert, enz. Zo kan het totale pad van begin tot eind duidelijk worden gemaakt. Uit de tijden kun je enigszins de geologische afstand tussen routers afleiden. Bij de traceroute naar www.securityfocus.com was duidelijk te zien wanneer een router in Londen werd bereikt en wanneer de oversteek naar de VS werd gemaakt. Londen was 10ms, de VS rond de 90. Opdracht 2 ---------- Commandline: % nmap -sT localhost 13:46:04.234337 IP 127.0.0.1.37341 > 127.0.0.1.631: S 57017411:57017411(0) win 32767 Er wordt een packet gestuurd met een SYN flag gezet. 13:46:04.234356 IP 127.0.0.1.631 > 127.0.0.1.37341: S 46725623:46725623(0) ack 57017412 win 32767 Er wordt geantwoord met een SYN/ACK flag combinatie. Acknowledgement nummer is 57017412 (1 hoger dan sequence nummer van vorige packet). 13:46:04.234366 IP 127.0.0.1.37341 > 127.0.0.1.631: . ack 1 win 256 De SYN/ACK wordt geacknowledged. Opdracht 3 ---------- 13:53:25.720483 IP 127.0.0.1.52975 > 127.0.0.1.631: S 3669504336:3669504336(0) win 4096 SYN wordt gestuurd. 13:53:25.720536 IP 127.0.0.1.631 > 127.0.0.1.52975: S 519139720:519139720(0) ack 3669504337 win 32767 Er komt een SYN/ACK terug. 13:53:25.720547 IP 127.0.0.1.52975 > 127.0.0.1.631: R 3669504337:3669504337(0) win 0 Het OS stuurt een packet met de RST flag, omdat er geen luisterende socket is op poort 52975 (het was een losse SYN packet die niet bij een connect() call hoorde). Opdracht 4 ---------- -sF FIN scan - Zet alleen de FIN flag. Dit is dus geen connectiepoging, maar hoort in principe bij een normale verbinding. Daardoor valt het minder op dan een SYN. -sN NULL scan - Geen flags gezet, kan bij een verbinding horen en valt daardoor dus niet heel erg op. Opdracht 5 ---------- ether host 00:0E:35:31:23:15 host 145.92.27.109 De ene filtert op ethernet (layer 2, dus) en de ander op layer 3, IP. Beide filteren op zowel destination als source. Opdracht 6 ---------- eth.dst eq 00:0E:35:31:23:15 || eth.src eq 0:0E:35:31:23:15 ip.src eq 145.92.27.109 or ip.dst eq 145.92.27.109 Capture als je veel data hebt, zodat je buffers niet overflowen en ethereal/tcpdump het nog aan kunnen. Display filters als je al een dump hebt en daar bepaald traffic uit wil halen om te bekijken. Opdracht 7 ---------- Capture filter: tcp and port 25 or 110 or 143 or 993 or 995 or 465 We capturen alleen TCP, omdat mail doorgaans niet over UDP of andere protocollen gaat. We capturen de SMTP-poort, POP3, IMAP en de secure versies ervan. Daarmee hebben we de meestgebruikte mailprotocollen te pakken. Opdracht 8 ---------- MSN: 0000 00 0e 35 31 23 15 00 30 48 2a d1 59 08 00 45 00 ..51#..0 H*.Y..E. 0010 00 f7 31 c6 00 00 74 06 2c 21 cf 2e 6c 22 91 5c ..1...t. ,!..l".\ 0020 1b 6d 07 47 92 39 56 97 aa 9b 7f c2 06 e0 80 18 .m.G.9V. ........ 0030 ff ca d7 d8 00 00 01 01 08 0a 00 c5 9d 16 00 ad ........ ........ 0040 2e fa 4d 53 47 20 72 65 6d 63 6f 5f 68 6f 62 6f ..MSG re mco_hobo 0050 40 68 6f 74 6d 61 69 6c 2e 63 6f 6d 20 48 6f 62 @hotmail .com Hob 0060 6f 20 31 35 38 0d 0a 4d 49 4d 45 2d 56 65 72 73 o 158..M IME-Vers 0070 69 6f 6e 3a 20 31 2e 30 0d 0a 43 6f 6e 74 65 6e ion: 1.0 ..Conten 0080 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 70 6c 61 t-Type: text/pla 0090 69 6e 3b 20 63 68 61 72 73 65 74 3d 55 54 46 2d in; char set=UTF- 00a0 38 0d 0a 55 73 65 72 2d 41 67 65 6e 74 3a 20 4b 8..User- Agent: K 00b0 6f 70 65 74 65 2f 30 2e 39 2e 32 0d 0a 58 2d 4d opete/0. 9.2..X-M 00c0 4d 53 2d 49 4d 2d 46 6f 72 6d 61 74 3a 20 46 4e MS-IM-Fo rmat: FN 00d0 3d 4d 53 25 32 30 53 65 72 69 66 3b 20 45 46 3d =MS%20Se rif; EF= 00e0 3b 20 43 4f 3d 30 30 30 30 30 30 3b 20 43 53 3d ; CO=000 000; CS= 00f0 30 3b 20 50 46 3d 30 0d 0a 0d 0a 70 69 65 74 65 0; PF=0. ...piete 0100 72 72 72 72 72 rrrrr Dit is een pakket die een MSN-berichtje van Remco aan Pieter bevat. De tekst is dus "pieterrrrr". Een URL waar het MSN protocol wordt uitgeled: http://www.hypothetic.org/docs/msn/ AFP: 14:23:30.251823 2001:610:158:4200::1:548.548 > 2001:610:158:1500:20a:95ff:fe9f:2868.49232: P [tcp sum ok] 3492:3615(123) ack 1634 win 32768 [flowlabel 0x8ceb4] (len 155, hlim 63) 0x0000: 6008 ceb4 009b 063f 2001 0610 0158 4200 ......?.....XB. 0x0010: 0000 0000 0001 0548 2001 0610 0158 1500 .......H.....X.. 0x0020: 020a 95ff fe9f 2868 0224 c050 ffc3 90f5 ......(h.$.P.... 0x0030: f2d4 e4a3 8018 8000 fe04 0000 0101 080a ................ 0x0040: 74fd cccd c98f eda2 0102 29c7 0000 0000 t.........)..... 0x0050: 0000 006b 0000 0000 e93f a33f 0000 0000 ...k.....?.?.... 0x0060: 0004 3a2d 09e3 fc92 09e3 fc92 4b6d 1a10 ..:-........Km.. 0x0070: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0x0080: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0x0090: 0012 15e9 0000 0000 0000 0000 005c 0000 .............\.. 0x00a0: 0000 0000 0000 0000 0000 0000 07fa 0000 ................ 0x00b0: 07d4 0000 8180 8600 0006 0000 0000 0003 ................ 0x00c0: 6d65 6b18 b6b4 73 mek...s Dit is een packet die gestuurd werd vanaf Pieter's iMac na een 'touch mek'. Een pagina over AFP: http://wiki.ethereal.com/AppleTalkProtocolFamily En nog een andere pagina: http://www.protocols.com/pbook/appletalk.htm#AFP Opdracht 9 ---------- RFC 1533 De DHCP-opties in de request: * Option 53: DHCP message type - This option is used to convey the type of the DHCP message. The code for this option is 53, and its length is 1. * Option 50: Requested IP address - This option is used in a client request (DHCPDISCOVER) to allow the client to request that a particular IP address be assigned. * Option 55: Parameter request list - This option is used by a DHCP client to request values for specified configuration parameters. The list of requested parameters is specified as n octets, where each octet is a valid DHCP option code as defined in this document. De DHCP-opties in de reply: * Option 53: DHCP message type - Zie boven * Option 54: Server Identifier - This option is used in DHCPOFFER and DHCPREQUEST messages, and may optionally be included in the DHCPACK and DHCPNAK messages. DHCP servers include this option in the DHCPOFFER in order to allow the client to distinguish between lease offers. DHCP clients indicate which of several lease offers is being accepted by including this option in a DHCPREQUEST message. The identifier is the IP address of the selected server. * Option 51: IP address lease time - This option is used in a client request (DHCPDISCOVER or DHCPREQUEST) to allow the client to request a lease time for the IP address. In a server reply (DHCPOFFER), a DHCP server uses this option to specify the lease time it is willing to offer. The time is in units of seconds, and is specified as a 32-bit unsigned integer. * Option 1: Subnet mask - The subnet mask option specifies the client's subnet mask as per RFC 950. * Option 3: Router - The router option specifies a list of IP addresses for routers on the client's subnet. Routers SHOULD be listed in order of preference. * Option 15: Domain name - This option specifies the domain name that client should use when resolving hostnames via the Domain Name System. * Option 6: Domain name server - The domain name server option specifies a list of Domain Name System (STD 13, RFC 1035 [8]) name servers available to the client. Servers SHOULD be listed in order of preference. Opdracht 10 ----------- Sessie 1: Gebruikte filter: TCP PORT 21 OR TCP PORT 22 Eerst zien we 13 202.459993 2001:610:158:2500:204:76ff:fe13:e8a0 2001:610:158:4200::67 TCP 1032 > ftp [SYN] Seq=0 Ack=0 Win=16384 Len=0 MSS=1440 en 14 202.460155 2001:610:158:4200::67 2001:610:158:2500:204:76ff:fe13:e8a0 TCP ftp > 1032 [RST, ACK] Seq=0 Ack=0 Win=0 Len=0 Er wordt dus een poging gedaan een FTP-connect op te bouwen met Firenze, over IPv6, maar er luistert geen FTP op IPv6 port 21, dus wordt er een TCP RST teruggestuurd. In de eerste scan zien we een FTP sessie, waar we 1 bestand gedownload zien worden. 34 216.276787 145.92.27.41 145.92.27.42 FTP Response: 220 vax-41.sicilia.os3.nl FTP server (tnftpd 20040810) ready. 36 219.037238 145.92.27.42 145.92.27.41 FTP Request: USER jaap 37 219.039966 145.92.27.41 145.92.27.42 FTP Response: 331 Password required for jaap 39 220.438788 145.92.27.42 145.92.27.41 FTP Request: PASS jaap We hebben nu dus een username en een pass voor deze FTP-server, hierna wordt een bestand gedownload. We zien een header: 43 221.366608 145.92.27.41 145.92.27.42 FTP Response: Welcome to Darwin! Een list: 47 223.140736 145.92.27.42 145.92.27.41 FTP Request: LIST Nieuwe verbinding voor de ls output wordt geopend: 48 223.145380 145.92.27.41 145.92.27.42 FTP Response: 150 Opening ASCII mode data connection for '/bin/ls' test wordt gedownload: 54 226.032076 145.92.27.42 145.92.27.41 FTP Request: RETR test Einde van de sessie: 61 227.948025 145.92.27.41 145.92.27.42 FTP Response: Data traffic for this session was 28 bytes in 1 file. Sessie 2: Gebruikte filter: ether host 00:03:93:1E:23:A0 or ether host 00:11:22:33:44:55 Eerst worden 2 ARP requests gedaan: 3 41.615450 145.92.26.1 AppleCom_1e:23:a0 ARP Who has 145.92.27.41? Tell 145.92.26.1 4 41.615559 145.92.26.1 Supermic_2a:d1:59 AR41P Who has 145.92.26.1? Tell 145.92.27.41 Er komen 2 ARP replies 5 41.615606 vax-41.sicilia.os3.nl 145.92.26.1 ARP 145.92.27.41 is at 00:03:93:1e:23:a0 6 41.615669 router.sicilia.os3.nl 145.92.26.1 ARP 145.92.26.1 is at 00:30:48:2a:d1:59 Hierna wil een kwaadwillende het verkeer voor deze 2 IP`s hebben, dus wordt het MAC-adres voor die IP's naar de eigen computer gezet: 7 41.615905 145.92.26.1 vax-41.sicilia.os3.nl ARP 145.92.26.1 is at 00:11:22:33:44:55 8 41.615965 145.92.26.1 router.sicilia.os3.nl ARP 145.92.27.41 is at 00:11:22:33:44:55 Deze gespoofde ARP replies worden steeds herhaald om zo ervoor te zorgen dat de ARP-caches de foutieve informatie blijven bevatten. Systemen op het lokale subnet zullen de informatie uit deze ARP replies overnemen en in vervolg traffic voor 145.92.26.1 naar MAC-adres 00:11:22:33:44:55 sturen. De aanvaller kan daarmee al het verkeer richting de router afvangen, lezen en eventueel veranderen. Verkeer vanaf de router naar specifieke andere systemen op het subnet worden niet afgevangen. Alleen traffic voor vax-41 wel, maar dat is het aanvallende systeem, waarschijnlijk. Sessie 3: Gebruikte filter: ether host 00:03:93:1E:23:A0 or ether host 00:11:22:33:44:55 Dit is een voorbeeld van een SSH-sessie. Door middel van diffie-helman wordt er een key-exchange gedaan, zodat een secure verbinding op kan worden gezet. Zodra dat is gebeurd is, is verkeer niet meer te ontcijferen. Extra: Van wie zijn deze ip`s en waar moet je klagen erover? 61.143.210.195 Is van: CHINANET Guangdong province network Locatie: China, Guangdong. Klagen kan bij: abuse@gddc.com.cn (als je chinees goed is) 212.204.20.157 Is van: Versatel Deutschland Dynamic Pool Locatie: Duitsland Klagen kan bij: abuse@versatel.de 145.18.168.50 Is van: Universiteit van Amsterdam Locatie: Nederland, Herengracht 182 Amsterdam Klagen kan bij: http://ic.uva.nl/cert/ of cert@uva.nl