Network ¡reconnaissance ¡ and ¡IDS ¡ CS642: ¡ ¡ Computer ¡Security ¡ Professor ¡Ristenpart ¡ h9p://www.cs.wisc.edu/~rist/ ¡ rist ¡at ¡cs ¡dot ¡wisc ¡dot ¡edu ¡ University ¡of ¡Wisconsin ¡CS ¡642 ¡
Let’s ¡play ¡over ¡the ¡network ¡… ¡ ¡ Target ¡acquisiNon ¡ Port ¡scanning ¡ Host ¡fingerprinNng, ¡NMAP ¡ Network ¡IDS ¡basics ¡ Avoiding ¡IDS ¡ University ¡of ¡Wisconsin ¡CS ¡642 ¡
Target ¡acquisiNon ¡ ISP ¡ OrganizaNon ¡ ¡ X ¡ backbone ¡ How ¡do ¡we ¡find ¡vulnerable ¡server(s) ¡within ¡a ¡target ¡organizaNon? ¡ StarNng ¡point: ¡one ¡or ¡more ¡publicly ¡routable ¡IP ¡addresses ¡ -‑ ¡WHOIS ¡queries ¡are ¡good ¡way ¡to ¡find ¡them ¡ -‑ ¡Can ¡be ¡used ¡to ¡idenNfy ¡blocks ¡of ¡IP ¡addresses ¡owned ¡
WHOIS ¡fun ¡
We’ve ¡idenNfied ¡target ¡(range ¡of) ¡IPs, ¡ now ¡what? ¡ • Host ¡discovery ¡ – Narrow ¡broad ¡swath ¡of ¡potenNal ¡IPs ¡to ¡ones ¡that ¡have ¡ hosts ¡associated ¡with ¡them ¡ • Service ¡discovery ¡ – For ¡a ¡parNcular ¡host, ¡idenNfy ¡running ¡services ¡ – E.g., ¡is ¡it ¡accepNng ¡SSH ¡connecNons ¡(22) ¡or ¡HTTP ¡(80)? ¡ • OS ¡fingerprinNng ¡ – IdenNfy ¡the ¡OS ¡so_ware ¡version ¡running ¡ ¡ – E.g., ¡Windows ¡vs ¡Linux? ¡ • ApplicaNon ¡fingerprinNng ¡ – same ¡at ¡higher ¡level ¡ ¡ – Apache ¡version ¡1.3 ¡or ¡2.0+? ¡
Port ¡scanners ¡ • NMAP ¡(network ¡map ¡tool) ¡ – De-‑facto ¡standard ¡for ¡network ¡reconnaissance, ¡tesNng ¡ – Numerous ¡built ¡in ¡scanning ¡methods ¡ ¡ • Increasingly ¡common ¡to ¡perform ¡scans ¡of ¡enNre ¡ IPv4 ¡address ¡space ¡ – Zmap ¡provides ¡more ¡efficient ¡scanning ¡of ¡certain ¡ limited ¡forms ¡than ¡NMAP ¡ • 1 ¡machine ¡=> ¡scan ¡enNre ¡IPv4 ¡range ¡in ¡~45 ¡minutes ¡ • AcNve ¡scanning ¡now ¡used ¡frequently ¡for ¡research ¡
nmap ¡–PN ¡–sT ¡–p ¡22 ¡ ¡192.168.1.0/24 ¡
Some ¡of ¡the ¡NMAP ¡status ¡messages ¡ • open ¡ – host ¡is ¡accepNng ¡connecNons ¡on ¡that ¡port ¡ • closed ¡ – host ¡responds ¡to ¡NMAP ¡probes ¡on ¡port, ¡but ¡does ¡ not ¡accept ¡connecNons ¡ • filtered ¡ – NMAP ¡couldn’t ¡get ¡packets ¡through ¡to ¡host ¡on ¡ that ¡port. ¡ ¡ – Firewall? ¡
Port ¡scan ¡of ¡host ¡
Service ¡detecNon ¡
nmap ¡–PN ¡–sT ¡–p ¡22 ¡ ¡192.168.1.0/24 ¡
Port ¡scan ¡of ¡host ¡
Service ¡detecNon ¡ Firewall ¡so_ware ¡ What ¡is ¡tcpwrapped ¡? ¡ “man ¡tcpd” ¡
OS ¡fingerprinNng ¡
Another ¡example ¡
Network ¡DMZ ¡ Web ¡server ¡ Internet ¡ Inner ¡ Outer ¡ firewall ¡ firewall ¡ Customer ¡ IDS ¡ databases ¡ DMZ ¡(demilitarized ¡zone) ¡helps ¡isolate ¡public ¡network ¡ ¡ components ¡from ¡private ¡network ¡components ¡ Firewall ¡rules ¡to ¡disallow ¡traffic ¡from ¡Internet ¡to ¡internal ¡services ¡
Firewalls ¡ IP ¡packets ¡or ¡ fragments ¡ Internet ¡ Outer ¡ IP ¡ TCP ¡ Appl ¡ firewall ¡ user ¡data ¡ hdr ¡ hdr ¡ hdr ¡ Firewalls ¡apply ¡rules ¡to ¡packets ¡to ¡determine ¡rouNng ¡acNons ¡ • Stateless: ¡decision ¡must ¡be ¡made ¡looking ¡at ¡single ¡ packet ¡(fragment) ¡ • Stateful: ¡reconstruct ¡packets ¡from ¡fragments, ¡maybe ¡ even ¡TCP ¡messages ¡ • Host ¡based ¡or ¡network ¡based ¡
Port ¡scanning ¡behind ¡firewalls: ¡ ¡ Idle ¡scans ¡ • We ¡want ¡to ¡avoid ¡sending ¡any ¡non-‑spoofed ¡ packets ¡to ¡the ¡target, ¡but ¡sNll ¡want ¡to ¡port ¡ scan ¡it ¡ Web ¡server ¡ Internet ¡ Inner ¡ Outer ¡ firewall ¡ firewall ¡ Customer ¡ IDS ¡ databases ¡ Can ¡send ¡to ¡Web ¡server ¡ Cannot ¡send ¡to ¡Databases ¡ Can ¡send ¡spoofed ¡as ¡Web ¡server ¡
Idle ¡scans ¡ • We ¡want ¡to ¡avoid ¡sending ¡any ¡non-‑spoofed ¡ packets ¡to ¡the ¡target, ¡but ¡sNll ¡want ¡to ¡port ¡scan ¡it ¡ • Salvatore ¡(AnNrez) ¡Sanfilippo ¡1998 ¡ • So-‑called ¡idle ¡scan ¡can ¡enable ¡this ¡ 1) Determine ¡IPID ¡of ¡a ¡zombie ¡via ¡SYN/ACK ¡ 2) Send ¡SYN ¡spoofed ¡from ¡zombie ¡ 3) Determine ¡new ¡IPID ¡of ¡zombie ¡via ¡SYN/ACK ¡ ¡ • Old ¡systems: ¡IPID ¡incremented ¡with ¡each ¡IP ¡ packet ¡sent ¡ ¡
IPv4 ¡ Ethernet ¡frame ¡ ¡ ENet ¡ IP ¡ ENet ¡ data ¡ containing ¡ ¡ hdr ¡ hdr ¡ tlr ¡ IP ¡datagram ¡ 4-‑bit ¡ 4-‑bit ¡ 8-‑bit ¡ ¡ 16-‑bit ¡ ¡ version ¡ hdr ¡len ¡ type ¡of ¡service ¡ total ¡length ¡(in ¡bytes) ¡ 16-‑bit ¡ ¡ 3-‑bit ¡ 13-‑bit ¡ ¡ idenNficaNon ¡ flags ¡ fragmentaNon ¡offset ¡ 8-‑bit ¡ ¡ 8-‑bit ¡ ¡ 16-‑bit ¡ ¡ Nme ¡to ¡live ¡(TTL) ¡ protocol ¡ header ¡checksum ¡ 32-‑bit ¡ ¡ source ¡IP ¡address ¡ 32-‑bit ¡ ¡ desNnaNon ¡IP ¡address ¡ opNons ¡(opNonal) ¡
Idle ¡scans ¡ • We ¡want ¡to ¡avoid ¡sending ¡any ¡non-‑spoofed ¡ packets ¡to ¡the ¡target, ¡but ¡sNll ¡want ¡to ¡port ¡ scan ¡it ¡ Web ¡server ¡ TCP ¡SYN/ACK ¡ TCP ¡SYN/ACK ¡ RST ¡IPID ¡= ¡12345 ¡ TCP ¡SYN/ACK ¡ RST ¡IPID ¡= ¡12346 ¡ RST ¡IPID ¡= ¡12347 ¡ Internet ¡ SYN ¡spoofed ¡as ¡from ¡ ¡ Inner ¡ Outer ¡ Web ¡Server ¡ firewall ¡ firewall ¡ Customer ¡ IDS ¡ databases ¡ Can ¡send ¡to ¡Web ¡server ¡ Cannot ¡send ¡to ¡Databases ¡ If ¡port ¡open ¡final ¡IPID ¡= ¡first ¡+ ¡2 ¡ Can ¡send ¡spoofed ¡as ¡Web ¡server ¡ If ¡port ¡closed ¡final ¡IPID ¡= ¡?? ¡
Idle ¡scans ¡ • We ¡want ¡to ¡avoid ¡sending ¡any ¡non-‑spoofed ¡ packets ¡to ¡the ¡target, ¡but ¡sNll ¡want ¡to ¡port ¡ scan ¡it ¡ Web ¡server ¡ RST ¡ TCP ¡SYN/ACK ¡ RST ¡IPID ¡= ¡12345 ¡ TCP ¡SYN/ACK ¡ RST ¡IPID ¡= ¡12346 ¡ Internet ¡ SYN ¡spoofed ¡as ¡from ¡ ¡ Inner ¡ Outer ¡ Web ¡Server ¡ firewall ¡ firewall ¡ Customer ¡ IDS ¡ databases ¡ Can ¡send ¡to ¡Web ¡server ¡ Cannot ¡send ¡to ¡Databases ¡ If ¡port ¡open ¡final ¡IPID ¡= ¡first ¡+ ¡2 ¡ Can ¡send ¡spoofed ¡as ¡Web ¡server ¡ If ¡port ¡closed ¡final ¡IPID ¡= ¡first ¡+ ¡1 ¡
Idle ¡scans ¡ From ¡h9p://nmap.org/book/idlescan.html ¡
Idle ¡scan ¡ From ¡h9p://nmap.org/book/idlescan.html ¡
PrevenNng ¡idle ¡scans ¡ • How ¡can ¡we ¡prevent ¡our ¡system ¡from ¡being ¡a ¡ zombie? ¡
Other ¡idle ¡scan ¡type ¡methods? ¡ • Ensafi ¡et ¡al. ¡“Idle ¡Port ¡Scanning ¡and ¡Non-‑ Interference ¡Analysis ¡of ¡Network ¡Protocol ¡ Stacks ¡Using ¡Model ¡Checking”, ¡USENIX ¡ Security ¡2010 ¡ • IPID ¡is ¡a ¡side ¡channel ¡– ¡maybe ¡there ¡are ¡ others? ¡ – RST ¡rate ¡ – SYN ¡cache ¡size ¡
Idle ¡scan: ¡RST ¡rate ¡limit ¡ From ¡ ¡Ensafi ¡et ¡al. ¡ ¡2010 ¡
SYN ¡caches ¡and ¡SYN ¡cookies ¡ • SYN ¡cache ¡maintains ¡state ¡for ¡outstanding ¡TCP ¡ SYN ¡requests ¡received ¡ – Finite ¡amount ¡of ¡memory ¡ • SYN ¡cookie ¡is ¡mechanism ¡for ¡dealing ¡with ¡DoS ¡ – When ¡SYN ¡cache ¡is ¡full, ¡calculate ¡response’s ¡ISN ¡ (iniNal ¡sequence ¡number) ¡ 3 ¡bits ¡ 5 ¡bits ¡ Max ¡Seg ¡ 24 ¡bits ¡ Nmestamp ¡t ¡ ¡ Size ¡ ¡ MD5(serverIP,serverPort,clientIP,clientPort,t) ¡ mod ¡32 ¡ encoding ¡
Idle ¡scan: ¡SYN ¡cache ¡ From ¡ ¡Ensafi ¡et ¡al. ¡ ¡2010 ¡
Recommend
More recommend