Hackernes værktøj #4
Scanner.
En scanner er altid aktiv, d.v.s. at scanneren
udsender en eller anden form for forespørgsel eller stimulation
og så opfanger svaret og aktive værktøjer kan altid opfanges på
den ene eller anden måde, selvom de kan anvendes sådan at
opfangelse bliver meget vanskelig Der findes et hav af
forskellige scannere, der scanner for stort set alle protokoller
og på alle OSI modellens lag. der findes port scannerer,
sårbarhedsscannere, virusscannerer, netværks nodescannere,
applikations skannere af forskellig art for blot at nævne nogle
få, herunder vil vi behandle nogle forskellige typer at
scannere, vi vil kikke lidt på hvordan de virker, hvad deres
svage og stærke sider er og hvordan de med fordel kan anvendes.
Portscannere.
Enhver enhed, hvad enten vi taler computer,
server, printer, router eller switch har en IP adresse på vores
netværk. Denne IP adresse er unik og bruges til at finde frem til de
enkelte enheder. Man kan nærmest sammenligne den med virksomhedernes
hovedtelefonnummer. Når man så har fat i den enkelte maskine, så
skulle man jo gerne kunne få fat i de relevante ting længere inde,
hvad enten det man har brug for at få fat i er en web server, en
mail server, nogle delte filer eller andet, og det er her porten
kommer ind i billedet. Du kan sammenligne port nummeret med et lokal
telefonnummer, skal du have fat i web serveren, så "ringer" du til
computerens IP nummer og beder om at tale med port 80. I Internet
verdenen har man været så smart at man har standardiseret "lokal
nummeret" til en lang række tjenester, næsten som at man altid kunne
få fat i salgschefen på nummer 50 eller hvis regnskab altid kunne
nås på nummer 30. når vi taler porte, så er numrene fra 1 til 1023
reserveret til den slags standard tjenester og alle herover kan frit
benyttes. Dette er dog i dag en sandhed med modifikationer, idet
også porte over 1034 i dag er reserveret til, eller benyttes af
velkendte standard applikationer som f.eks. VNC, der standard
benytter port 5900. En portscanner scanner maskinen for åbne porte.
Nmap
Portscanneren over alle portscannere er Nmap, der
opnåede almen berømmelse som det værktøj Triniti anvendte i Matrix
Reloaded da hun hackede sig ind i The Matrix. Værktøjet er udviklet
i gennem snart mange år af en Russer ved navn Fyodor og kan
downloades fra
http:www.insecure.org hvor der også ligger megen god info om
nmap. Nmap er også en del af flere andre scanner værktøjer der
bygger oven på nmap. Lad os kikke på hvordan Nmap virker.
Nmap er et fantastisk fleksibelt værktøj, der kan
scanne på et hav af forskellige måder, mange af disse måder og
metoder, er lavet for at kunne gennemføre scanninger for ikke at
blive opdaget, andre igen for at kunne bruge forskellige
protokoller. Vi vil her kikke på nogle af de mest anvendte
scannemetoder.
TCP connect port scan.
Kommandoen
Nmap -sT -p 1-65535 192.168.0.22
Teori
For at kunne forstå hvad der sker under denne
scanning, skal man kende TCP protokollens virkemåde og også gerne
lidt om hvorfor den virker således. TCP er det der kaldes connection
oriented. Dette betyder at den holder forbindelsen og sørger for at
alle pakker kommer sikkert frem og kan læses af modtageren. Den
bruges hvor det er nødvendigt at tilsikre at alle de sendte data kan
læses. Hvis du f. eks sender en lydfil, så gør det ikke så meget at
lyden falder ud i 1/1000 sekund, eller at kvaliteten et lille
øjeblik bliver dårligere, men hvis der f.eks. er tale om noget data
der skal kunne læses præcist, så nytter det ikke at en bit er
forkert eller mangler, for så ændres data. TCP er sikker, men
langsom da der er kontrol på det hele. Det første der sker når en
TCP forbindelse etableres er at der gennemføres et 3-way handshake.
I ovenstående eksempel forespørger hackeren en
hjemmeside fra en web server.
Det foregår ved at hackeren sender en TCP pakke
til web serveren på (destinations)port 80, hvor SYN flaget er sat og
hvor en source port er opgivet, dette kunne f.eks. være port 56700.
Web serveren svare ved at sende en TCP pakke til
hackerens maskine på port 56700, hvor ACK og SYN flaget er sat. Web
serveren bekræfter (Acknowledge) den syncroniserings pakke hackeren
har sendt og sender sin egen syncroniseringspakke.
Hackerens maskine svare endeligt ved at sende en
TCP pakke til web serveren på port 80, med SYN flaget sat. Hackerens
maskine har nu bekræftet syncroniseringen fra web serveren og de to
nødvendige kanaler er skabt.
Scanningen.
Når ovenstående kommando er afgivet, starter Nmap
på port 1 og afsender en SYN pakke til maskinen på IP adressen
192.168.0.22 og så gennemføres hele 3 way handshake, hvorefter der
fortsættes med port 2 osv. osv.
Det er klart at denne scanning er meget let at
opdage idet alle forespørgslerne kommer i rækkefølge, med
ovenstående kommando fra port 1 til port 65535. Man kan gennemføre
denne scanning som det der kaldes Xmas Tree scanning med switchen
-sX, dette gør at portene scannes i tilfældig rækkefølge, hvilket
gør det lidt svære at opdage. Man kan også sætte en -T switch på og
opgive et tidsinterval så der gennemføres en scanning f.eks. hvert
20 minut, hvorefter det tager tid, og nu bliver det ret svært at
opdage.
TCP SYN stealth port scan.
Kommandoen
Nmap -sS - vv -g 53 -p 1-1023 192.168.0.0/16 -O
Teori
Her bruger vi hvad der også kaldes Half scan
eller incomplete handshake idet det kun er den første SYN pakke der
afsendes, lige så snart målets SYN og ACK pakke er modtaget afsendes
den næste SYN pakke på næste port.
Scanningen
Det er klart at denne scanningsmetode er meget
hurtigere end ovenstående eksempel, men den "sviner" også meget mere
og er meget lettere at opdage, også selvom man bruger samme metoder
til at skjule. Det fulde 3 way handshake er en fuldt lovlig og
normal forespørgsel, hvorimod den halve ukomplette efterlader en
masse uafsluttede TCP forbindelser der står og hænger indtil de
timer ud. Det både belaster målet og sætte relativt tydelige aftryk
i både logs og overfor IDS.
Denne scanning er også anderledes på grund af et
par yderligere switche. -vv er en dobbelt verbose scanning og det
betyder at vi får flere informationer med, -O switchen betyder at
Nmap forsøger at finde ud af hvilket operativsystem vi scanner, -g
53 switchen er i virkeligheden relativt avanceret, idet vi her
tvinger Nmap til at sætte source porten til at være port 53. Det vi
her forsøger er, at se om målets firewall er løsere sat op end den
behøver at være. Port 53 er DNS porten og nogle firewalls er (fejlagtigt)konfigureret
til at lade alt der skal ud på port 53 slippe ud, da det jo er DNS
og derfor helt ufarligt. I vores tilfælde kan vi altså slippe af
sted med at spørge på alle portene og så få svaret ud på port 53,
hvor firewallen ellers havde blokeret trafikken. Endelig ser vi at
der i stedet for en enkelt IP adresse scannes et helt subnet.
UDP port scan
kommandoen
Nmap -sU -P0 - n -p 1-1023 192.168.0.0
Teori
UDP er i modsætning til TCP connection less. Dette
betyder at pakkerne bare uden videre skydes af mod målet uden hensyn
til om målet er åbent, klar eller i det hele taget eksisterer. UDP
er også ligeglad med om alle pakkerne når frem og om dem der når
frem overhoved kan læses. UDP er usikker men hurtig og bruges typisk
til streaming af lyd og video og andre kommunikations former hvor
sikkerheden ikke er vigtig.
Scanningen
Da UDP fungerer helt anderledes end TCP er
scanningen naturligvis også grundlæggende anderledes. Hvor TCP har
brug for et svar for at vide om en port er åben, er det modsat med
UDP. Hvis Nmap ikke modtager noget tilbage fra de udsendte UDP
pakker, så tolker Nmap det som om porten er åben. Dette skyldes at
systemet er lavet således at der under ideal omstændigheder ville
blive sendt en ICMP pakke tilbage, hvis porten er lukket (Port
Unreachable) og ligeså hvis målet ikke eksisterer (Host Unreachable).
Igen har vi lidt ekstra switches på. -PO switchen betyder at Nmap
undlader at pinge hosten og -n switchen gør at Nmap ikke foretager
navneopløsning
Afsluttende bemærkninger om Nmap.
Namp er hurtigt at komme i gang med, men næsten
umulig at blive færdig med, den kan simpelthen scanne på utroligt
mange forskellige måder. For at blive dus med dette værktøj skal det
bruges og den bedste effekt får man, hvis man bruger den sammen med
et sniffer værktøj, så man kan se trafikken også. Skal man gøre det
komplet, bør man også se effekten i firewallens logfiler og hvordan
det ser ud fra et IDS.
Sårbarhedsscannere.
Før vi kan snakke om scanneren, er vi nødt til at
kikke på hvad en sårbarhed egentlig er. I bredeste forstand er en
sårbarhed, alt der kan udnyttes af andre i onde hensigter, til at
gøre uhensigtsmæssige ting på og ved vores systemer. Det kan altså
være alt fra huller og fejl i systemer, manglende systemer eller
mangelfuld konfiguration, eller fejlbehæftede konfigurationer eller
procedurale ting der giver utilsigtede muligheder. Der findes et
antal forskellige sårbarhedsscannere der går efter forskellige dele
af sårbarhedsspektret.
Det er også vigtigt at forstå at ordet system,
skal forstås i bredest mulig forstand. System er alt det der er
installeret på computeren fra operativsystemet hen over alle
programmer og løsninger der er installeret til drivere og andre
system ting, alt kan udnyttes.
Sårbarhedsscannerens dilemma
Nogle sårbarheder kan man finde uden at skulle
udnytte dem, Hvis der f.eks. er en sårbarhed i en Microsoft IIS
server, der ikke er kommet en rettelse til, kan man finde
sårbarheden ved at hente banner informationer ud af serveren, der
fortæller hvilke version af IIS vi står overfor. Er det den rigtige
version, vil sårbarheden være der. Hvis nu der er kommet er
rettelse, vil sårbarheden kun være til stede på systemet, hvis web
masteren ikke har patchet sin server, og det kan vi kun finde ud af
ved at udnytte sårbarheden.
Hvis nu denne sårbarhed er en DOS (Denail of
service) sårbarhed, så vil det at vi udnytter den, betyde at
serveren går ned, hvorefter vi ikke kan taste og finde flere
sårbarheder. Dette dilemma betyder at vi er nødt til at foretage et
valg. Hvis vi tester hård og insisterer på at teste får
sårbarhederne så vi får høj sikkerhed for at de er tilstede, så vil
vi vælte serveren første gang vi rammer en DOS sårbarhed og derefter
ikke kunne finde flere ting. Hvis vi derimod vælger kun at teste for
sikre sårbarheder, d.v.s. sårbarheder vi er sikre på ikke vælter
serveren, vil vi stå med en masse sårbarheder der kun er
sandsynliggjorte, d.v.s. scanneren har fundet at der er tale om en
IIS der kan have denne sårbarhed. Dette valg ender normalt med at
man vælger de sikre sårbarheder og så foretager en manuel validering
af de fundne sårbarheder bagefter
Nessus.
Nessus er vel nærmest industristandard når vi
taler sårbarhedsscannere, den er dels meget kendt og meget brugt og
så har den indtil for et lille år siden været helt gratis at bruge.
Den kan stadig bruges gratis, hvis man kan leve med at være 7 dage
bagud med opdateringerne.
Nessus er en generel sårbarhedsscanner. Dette vil
sige at den tester for sårbarheder i både operativsystemer,
protokoller og applikationer. Modsætningen hertil kaldes normalt for
en applikations sårbarhedsscannet og disse kan f.eks. scanne for
sårbarheder i web applikationer, så der er altså ikke tale om at
applikations skal forstår meget smalt i denne sammenhæng.
Nessus fungerer på den måde at der skrives plugins
til at teste de forskellige sårbarheder. Disse plugins skrives i
scriptsproget Nessus Attack Scripting Language (NASL), der er en
slags perl clon eller perl forenkling, der er lavet specifikt til
denne opgave. Det er selvfølgelig nessus's egne folk der bestemmer
hvilke plugins der skal ligges ind i scanneren, men alle kan skrive
pluging og dermed deltage i udviklingen. Der findes pt. 13349
forskellige plugins og i skrivende stund er forskellen mellem den
betalte nessus og den gratis 1095 plugins (dette tal ændre sig dog
kontinuerligt). Alle nessus plugins ligger sig op ad en
offentliggjort sårbarhed, således at 6138 unikke CVE id'ere og 5230
Bugtraq ID'ere indehold i samlingen
Nessus installeres som en server, hvorefter den
tilgås fra en klient, begge dele fås til både Windows og Linux, hvor
det tidligere var sådan at Linux versionen var helt gratis og
Windows versionen koster kassen. Serveren kan sagtens betjene flere
klienter.
Værktøjet Nessus indeholder også uanede mængder af
muligheder for at konfigurere så scanningerne bliver svære at opdage
af f.eks. IDS. Standard indstillingerne larmer ganske voldsomt og
vil starte alarmerne på alle IDS. Det er klart at man også kan
redigere i hvilke sårbarheder der skal testes for, således at man
ikke behøver at bruge tid på teste der er åbenlyst spild af tid,
f.eks. Solaris tests når man ved at det er en IIS. Det er klart at
en administrator eller penetrations tester ikke vil bruge tid på den
slags, da der jo ikke er grund til at skjule noget og da
scanningerne kan køres for fuld speed, men der kan stadig være behov
for at fjerne plugins, f.eks. fordi disse har utilsigtede effekter.
Der findes en open source version af Nessus der
hedder OpenVAS tidligere GNessUs som selvfølgelig er gratis, hvordan
det går med dette projekt er svært at sige, den der kan downloades
fra freshmeat er baseret på en Nessus 2.2.5 packages fra GNU/Debian.
Brug af Nessus
- Først trin er ar starte Nessus serveren. Det
gøres med kommandoen "nessusd -D". I Linux terminologien kan en
Deamon sammenlignes med en Service og denne startes i Deamon
mode med -D
-
Herefter opdateres samlingen
af Nessus plugins med kommandoen "nessus-update-plugins
-v". Switchen -v er for at kunne se på skærmen når de
enkelte plugins kommer ned. Da der er relativt mange plugins,
kan denne opdatering godt tage lidt tid
-
Næste skridt er at logge ind
til Nessus serveren. Logonboksen fremkommer med kommandoen "nessus". Brugernavn
og password er en del at det man gør under installationen af
nessus
-
Såfremt man ønsker at sikre
sig mod at målet går ned under scanningen afkrydses "enable
all but dangerous plugins". Læs herover omkring
sårbarhedsscannerens dilemma
-
Man bør også sikre sig port
range er sat, evt. begrænset. Man skal dog vide at nessus i
vid udstrækning er i stand til at opdage, hvis f.eks. en FTP
server køre på en anden port end standarden. Det kræver dog
at nessus får lov at scanne den pågældende ikke standard
port
-
Overvej at slå optimize test
og safe checks fra da de langsommeliggør processen en del
uden rigtigt at give noget tilbage.
Efterbehandling af Nessus
rapporten
Nessus leverer sin
rapport som et antal web sider med statistik og grafer hvis man
øsnker dette, men som udgangspunkt er rapporten i sin rå form ganske
værdiløs. Alle de fundne sårbarheder bør valideres og kommenteres og
et antal løsningsmuligheder bør opstilles pr. sårbarhed. Det er
særligt rapportens mange indbyggede falske positiver, der udgør et
stort problem hvis man udleverer rapporten uredigeret til f.eks. en
ledelse. Disse vil indledningsvis blive unødigt forskrækkede når de
ser antallet af alvorlige sårbarheder der er fundet og senere miste
tiltroen til rapporten og den der rapporterer, når de opdager hvor
meget ikke relevant sluder der findes i den rå rapport.
Applikations
sårbarhedsscanneren.
En applikations
sårbarhedsscanner er en scanner der går efter en mere specifik type
af sårbarheder. Der er enten tale om sårbarhedsscannere der går
efter f.eks. sårbarheder i web applikationer eller der er tale om
scannere der går efter helt specifikke sårbarheder. F.eks. det
anerkendte web site
http://www.foundstone.com/, der i dag er opkøbt af Mcafee, der
som bekendt laver bl.a. virusscanner værktøjer , har en masse
forskellige meget specifikke scannerværktøjer liggende under
ressourcer - Free Tools. Man kan bl.a. hente SuperScan™, MS05-051
Scan, MS05-039 Scan, NetSchedScan, DSScan, MydoomScanner,
MessengerScan, SQLScan, BOPing™, ScanLine™, Trout™, DDosPing™,
SNScan™, CIScan, RPCScan samt en masse andre værktøjer.
En anden meget kendt
applikationsscanner er Nikto, der er en hurtig kommandolinie
scanner, der leverer resultaterne i en noget mere rå form end f.eks.
Nessus. Igen kan man ikke anvende scanningsresultaterne direkte, men
er nødt til at validerer og forholde sig til hver enkelt funden
sårbarhed.
Afsluttende bemærkninger.
Internet miljøet er
en dynamisk verden i evig hastig udvikling på alle områder. Dette
gælder både sårbarheder og scannere, hvorfor man er nødt til hele
tiden at følge med aktivt. Det at følge med aktivt indebær at man
faktisk anvender de forskellige scannere, dels for at finde de
sårbarheder de kan scanne for, men også for proaktivt at se hvordan
det ser ud når den slags værktøjer anvendes mod os. Man siger at der
kræver en tyv at fange en tyv og selvom man ikke bør begå
ulovligheder, så er man nødt til at vide hvilke muligheder der
findes i miljøet. Brug disse værktøjer med forsigtighed og altid i
lukkede miljøer, hvor skaderne er begrænset mest muligt.
Hackere, Hacking med mere
Hacking - Hvordan gøres det
Hacking - Hvilke typer findes der
Hacking – Hvorfor hackes der, Hvad vil de opnå.
Hacking - Kendte hackere
Hacking - Hacker emblemet
Hacking
- Hackernes værktøj #1. Google
Hacking - Hackernes værktøj #2. Rootkits
Hacking - Hackernes værktøj #3. Sniffer
Hacking - Hackernes værktøj #4. Scanner
Hacking -
Tænk som en hacker
Hacking - Via Social Engineering
Hacking - Hacking for Managers, del 1
Hacking - Hacking for Managers, del 2
Gør
noget dumt og Hack dig selv
Hvordan hacker man. Den indirekte vej ind Læs
også disse serier
Søgemaskineoptimering
Søgemaskinepositionering
Søgemaskinemarkedsføring
Webpromotion
IT sikkerhed
Google
Hacking
SEO -
Blackhat Teckniques
|