open_ports.sh Vet du vad din dator gör på nätet?
open_ports.sh (bash-script) tar reda på följande: Öppna förbindelser utåt: program port användare vilken dator man pratar med (DNS-namn) var i välden den finns (land & stad) IPv4 & IPv6* Vilka program lyssnar till inkommande förbindelser: IPv4/v6 program användare port (namn & nummer) servicerange *) IPv6 ännu så länge i IPv4-kompatibelt läge
Skapa data Scriptet kör varannan minut och genererar data när scriptet körs av root skapas data när det körs av en annan användare visas data Alla insamlade data läggs som textfiler i en katalog som alla kan läsa, /Library/cs.lth.se/ OpenPorts Den geografiska uppslagningen lagras av prestandaskäl i en växande fil (2400 IPadresser på 4 månader ) Den lokala maskinens IP-adress och lokation reds ut (d.v.s. om man sitter bakom NAT)
Presentation av data På skärmen (med programmet GeekTool) i Terminalfönster:
Kontroller Varannan timme kontrolleras checksumman för programmet lsof för att upptäcka ett eventuellt intrång. Accessrättigheterna på de ingående filerna Så att det finns datafiler alls (varnar annars) Så att launchd-komponenten kör (sköter körningen varannan minut) Så att datafilerna är yngre än 1 timme Så att man har en IP-adress alls
Cirka 500 rader med enkla standardkommandon awk case chgrp chmod curl cut diff dirname echo egrep exit find for grep *) Mac-specifika kommandon host hostname iconv if ifconfig launchctl* less ls lsof mkdir mv openssl printf ps rm route say* sed sort touch uniq wc while >
Ett annat sätt att se det: >
Exempel från verkligheten
Min egen Mac (10.6)
Mac OS X 10.6 Server
Mac OS X 10.5 Server
Intrång!! Så här ser det ut vid ett pågående intrångsförsök (via ssh):
vilket leder oss in på nästa script: breakins.sh håller reda på ssh Intrångsförsök: hur många? varifrån? Riktiga (?) inloggningar: vem? varifrån? interaktivt eller med sparad nyckel? fortfarande inloggad? su vem, när och till vem?
Breakins.sh Körs var femte minut När den körs av root genereras data När den körs av andra presenteras data (i teminal-fönster eller via GeekTool) Den sparar en dagbok över dagens värste försyndare: 2010-10-01: 101:222.169.224.67:China:Changchun 2010-10-02:2451:210.83.70.250:China:Ningbo 2010-10-03: 0::: 2010-10-04: 110:119.145.9.56:China:Guangzhou 2010-10-05: 70:195.14.50.8:Russian Federation:Moscow 2010-10-06: 0::: 2010-10-07:1509:211.144.207.75:China:Shanghai 2010-10-08: 861:211.144.207.75:China:Shanghai 2010-10-09: 43:66.11.115.138:United States:San Diego 2010-10-10: 0::: 2010-10-11: 184:58.235.251.95:Korea, Republic Of:Seoul 2010-10-12:4269:201.116.17.163:Mexico:Mexico 2010-10-13:26129: 118.142.57.222:: 2010-10-14: 194:211.140.122.199:China:Hangzhou 2010-10-15: 190:211.154.142.224:China:Shenzhen 2010-10-16: 228:210.75.215.5:China:Beijing 2010-10-17: 8:210.51.225.185:China:Wenzhou
breakins.sh har en kompis ban.sh Används för att förhindra trafik till tråkmånsar (använder route -nv add $IP/32 0.0.0.0 för detta) Sparar information i en fil Dessutom slår den upp vad för OS som används av angriparen (sparas) Vid systemstart laddas denna fil Körs det som vanlig användare visas vad som är spärrat
http://cs.lth.se/peter_moller