Articles

Informationsindsamling [opdateret 2019]

Introduktion til informationsindsamling

penetrationstest begynder med en pre-engagement-fase, hvor pennetesteren bliver bekendt med klienten, målene, begrænsningerne og omfanget af penetrationstesten. Derefter begynder pennetesteren den faktiske penetrationstest og fortsætter normalt med en informationsindsamlingsindsats, hvor pennetesteren lokaliserer offentligt tilgængelig information relateret til klienten og søger måder, der kan udnyttes til at komme ind i systemerne. I denne fase bruger pennetesteren også værktøjer som portscannere, som kan hjælpe ham/hende med at få en forståelse af systemerne i netværket og det program, der er på dem. Ved hjælp af disse oplysninger kan pennetesteren finde ud af, hvilken indflydelse de forskellige fund kan have på klienten, og sårbarhedsanalysedelen kan fortsætte, hvor de fundne oplysninger bruges til at lokalisere mulige sårbarheder i systemerne og den efterfølgende udnyttelsesfase, hvor sårbarhederne forsøges udnyttet til at komme ind i systemet. Således uden god informationsindsamling – ville der ikke være nogen sårbarheder at finde og udnytte.

nu er det tid til at foretage en vigtig sondring – det mellem passiv og aktiv informationsindsamling. Passiv informationsindsamling refererer til at indsamle så mange oplysninger som muligt uden at etablere kontakt mellem pennetesteren (dig selv) og det mål, som du indsamler oplysninger om. Aktiv informationsindsamling involverer kontakt mellem pennetesteren og det faktiske mål. Når du aktivt spørger systemer for at få oplysningerne, flytter du til en mørk juridisk situation, da de fleste lande forbyder forsøg på at bryde ind i systemer uden den nødvendige tilladelse. Således, hvis du ikke har tilladelse til at teste et system (Et get-out-of-jail-free-kort), er det ikke en god ide at udføre aktiv forespørgsel mod det. For eksempel, hvis du bruger Nmap til at finde åbne porte og applikationer på et ønsket fjernsystem, interagerer du aktivt med dette system i et forsøg på at finde svagheder, og hvis du laver et opslag, gennemser virksomhedens hjemmeside eller spørger søgemaskinerne for information om det firma, indsamler du passivt oplysninger. Et eksempel på aktiv informationsindsamling er at ringe til virksomhedens personale og forsøge at narre dem til at videregive privilegeret information.

pre-attack-fasen kan beskrives på følgende måde:

  1. passiv informationsindsamling for at finde foreløbige oplysninger om systemerne, deres programmer og de personer, der er involveret i målet.
  2. passivt bestemmelse af netværksområdet for at finde ud af de maskiner i netværket, som du kan fokusere på.
  3. pennetesteren kontrollerer aktivt, hvilke af de lokaliserede maskiner der er i live for at vide, hvad de skal målrette mod.
  4. pen-testeren søger aktivt efter åbne porte og applikationerne på dem for hver af maskinerne i netværket for at finde ud af den optimale måde at bryde ind på.
  5. pennetesteren bruger værktøjer som traceroute og Cheops til at fingeraftryk operativsystemet bag hver af maskinerne.
  6. pennetesteren kortlægger netværket ved at skrive ned og visualisere alle de indsamlede data og starter med angrebsfasen…

Passive Informationsindsamlingsværktøjer

theHarvester

Vi kan bruge høstmaskinen til at indsamle e-mails om målrettede domæner. Vi kan derefter bruge disse e-mails til at indlede social engineering eller starte andre angreb. Harvester er et værktøj bygget i Python, så for at køre det skal du bruge Python på din maskine og helst tilføjet til din PATH-miljøvariabel. Du kan hente Python fra https://www.python.org/downloads/. Hvis du har git på din maskine, kan du åbne din Terminal, navigere til en ønsket mappe og skrive git clone https://github.com/laramies/theHarvester.git
for at hente værktøjet. Ellers skal du bare åbne GitHub-depotet, klikke på “klon eller hent” og hente kildekoden som lynlås. Når du har installeret det, kan du åbne din kommandolinje / Terminal og navigere til den mappe, hvor du har installeret Harvester og skriv python theHarvester.py for at få hjælp skærmen.

Figur 1: Høstmaskinens hjælpeskærm skal se sådan ud

nu, hvis vi vil kigge efter e-mails i domænet dimoff.biz vi kan udføre en forespørgsel som denne:

python theHarvester.py -d dimoff.biz -l 100-B google

Dette vil søge efter e-mails i Google placeret i dimoff.vil begrænse søgningen til de første 100 forespørgselsresultater i Google.

figur 2: Ingen e-mails fundet i mit domæne, da jeg har tilsløret dem

lad os prøve at søge efter e-mails inden for InfoSec instituttets hjemmeside. Vi skriver den samme forespørgsel, men ændrer domænet: python theHarvester.py -d infosecinstitute.com -l 100-B google

figur 3: Forespørgslen efter e-mails i InfoSec Institute kom med fire e-mails, som vi potentielt kan drage fordel af

for at forbedre vores forskning kan vi prøve søgningen med forskellige søgemaskiner. Hvis vi søger efter e-mails inden for de første 30 resultater af Yahoos søgemaskine, ender vi med kun en e-mail, men den er anderledes end de fire, vi har samlet med Google. Vi skriver python theHarvester.py -d infosecinstitute.com -l 20-B yahoo og ender med følgende output:

figur 4: Harvester-søgning med Yahoo gav et andet resultat

som du måske har bemærket, udover at spytte e-mails inden for dette domæne, viser Harvester alle de underdomæner, som det lykkedes at finde tilknyttet det givne domæne og kortlægger dem til deres respektive IP-adresse. Disse oplysninger er nyttige såvel som de forskellige underdomæner kan bruge forskellige serverprogrammer, programudviklingsrammer og kan endda være på forskellige maskiner, hvilket ville betyde, at disse underdomæner kan være tilbøjelige til forskellige sårbarheder og kan have forskellige niveauer af udnyttelighed.

Netcraft

Netcraft er et internetprogram, der giver os mulighed for at se detaljerede oplysninger om programmet, internetserveren og internetværten, der er involveret i en vilkårlig hjemmeside. Netcraft gør indsamling af disse oplysninger smertefri, da det tager millisekunder at lære programmet bag hjemmesiden at kende. For eksempel kan det være nyttigt at vide, hvem hostingudbyderen af hjemmesiden er, hvis du beslutter dig for at starte et social engineering-angreb. Derefter kan du skrive en e-mail til en administrator, der ser ud til at stamme fra deres hostingfirma, og bede ham/hende om at åbne et link og ændre en indstilling. Desuden kan de forskellige programudviklingsrammer, som hjemmesiden bruger, som du kan finde med Netcraft, have deres egne sårbarheder, som du derefter kan forsøge at udnytte. Billedet nedenfor viser et opslag på InfoSec Institute i http://www.netcraft.com/

figur 5: Søgning efter oplysninger om InfoSec Institute i Netcraft

Vi kan se, at InfoSec instituttets hostingudbyder er Digital Ocean, så vi kan bemærke det et eller andet sted. Vi kan også se, at hjemmesiden bruger et Content Management System (CMS) kaldet Ekspressionsmotor, en programmeludviklingsramme kaldet CodeIgniter, at back-end-sproget er PHP og så videre. Vi kan se efter fejl i de teknologier, der ville udsætte hjemmesiden for sårbarheder. Vi kan også se, at internetserverprogrammet for nylig blev ændret fra Apache/2.2.31. At kende den nøjagtige version af serverprogrammet er nyttigt, da sårbarheder for forskellige serverprogrammer offentliggøres regelmæssigt online og lappes med nyere versioner af programmet, som ofte ikke implementeres i tide af de fleste hjemmesider. Desuden begrænser kendskab til serverprogrammet omfanget af forskning. Hvis vi ved, at serveren kører Apache, ville vi ikke søge efter sårbarheder for Microsoft IIS-serveren. Selvom nogle gange serveroplysningerne fra hjemmesiden kan være en agn / honeypot.

Maltego

Maltego er et data mining værktøj, der kan hjælpe os med at få og visualisere intelligens indsamling. Den har flere versioner, hvoraf den ene er gratis at lege med. Den gratis version er den såkaldte “Community Edition”, og du kan hente den fra https://www.paterva.com/web7/downloads.php#tab-3. Alt hvad du skal gøre for at køre det er at registrere en konto hos Paterva. Den gratis version begrænser dog antallet af minerede resultater, der kan vises til dig.

figur 6: Maltegos forudbyggede maskiner begrænser resultaterne til 12 enheder i den gratis version

Maltego Primer

når du har installeret Maltego, skal du oprette din konto og logge ind, skal du se et sidste trin som vist nedenfor:

Figur 7: installeret Maltego

Klik på “Åbn en tom graf, og klik på” Åbn en tom graf og lad mig lege.”

i paletfeltet til venstre kan du se de forskellige enheder, som du kan indarbejde i dine søgninger. Træk og slip Domæneenheden i paletten til grafen. Du skal se et enkelt Jordikon med siden paterva.com som et mærke.

figur 8: tilføjelse af en domæneenhed til grafen

nu skal du ændre domænenavnet til det domæne, som du vil erhverve nye oplysninger for. For at gøre dette skal du dobbeltklikke på domænenavnet og skrive dit ønskede domænenavn.

når du har forberedt domænet til at udforske, kan du køre transformationer eller forespørgsler efter forskellige oplysninger for domænet ved at højreklikke på domæneenheden og vælge den ønskede forespørgsel.

figur 9: Et udsnit af de forskellige transformationer, der er tilgængelige i Maltego

for at illustrere, hvordan disse transformationer fungerer, hvis du vælger at omdanne enheden til telefonnumre ved hjælp af søgemaskiner, får du et par telefonnumre til InfoSec Institute. Du kan bruge disse telefonnumre til at gøre dit social engineering-angreb mere overbevisende, ansætte vishing, påskud og så videre.

Figur 10: transformationen til telefonnumre ved hjælp af søgemaskiner anvendes på InfoSec Institute, og fem telefonnumre visualiseres.

nu, hvis vi anvender en anden transformation – vil vores resultater Bare stige. Endnu bedre kan vi anvende nye transformationer på de resultater, der opstår fra vores tidligere transformationer.

for at illustrere dette, hvis vi højreklikker på det første returnerede telefonnummer – ville vi få forskellige transformationer, som vi kan anvende på det. Lad os sige, at vi vælger at omdanne telefonnummeret til URL ‘er (hvilket betyder, Få URL’ erne, hvor telefonnummeret er nævnt). Det ville få os et niveau dybere ind i hierarkiet/forholdet mellem resultaterne og vil vise os et par URL ‘ er, hvor man manuelt kan kontrollere, hvem der besvarer telefonnummeret og så videre.

Figur 11: går et niveau dybere i Maltego. At få URL ‘ erne, hvor et af telefonnumrene, der er knyttet til InfoSec Institute, nævnes

som du kan se, er der en hel del enheder og transformationer at udforske.

aktive Informationsindsamlingsværktøjer

Nmap gør det muligt at køre scanninger på målrettede maskiner for at se, hvilke porte der er åbne på dem, og dermed hvilke applikationer der kører på dem. Forskellen fra de ovennævnte værktøjer er, at du aktivt interagerer med den givne maskine ved at sende specielt udformede pakker til den. Desuden opdager åbne porte Nmap giver os potentielt at opdage operativsystemet af maskinen og opdage de tjenester, der kører på de åbnede porte.

Du kan hente Nmap frahttps://nmap.org/download.htmlellerhttp://nmap.en.softonic.com/. Du kan bruge Nmap fra din CLI eller fra en GUI-applikation.

efter installationen skal du bare skrive nmap og trykke på Enter for at se de forskellige måder, hvorpå du kan bruge nmap.

Figur 12: Nmaps hjælpeskærm

en simpel check for åbne porte og de tilsvarende tjenester på dem er nmap-sS-Pn<IP-adresse>. Dette vil forsøge en stealth opdagelse og behandle maskinen som levende.

for at registrere det operativsystem, som maskinen kører på, kan du bruge-O-flagget og så videre.

Hvis Nmap virker som et værktøj, som du vil udforske mere, kan du besøge Irfan Shakeels artikel om nmap.

konklusion

Vi har demonstreret det grundlæggende i penetrationstestprocessen, informationsindsamlingens rolle i denne proces, og vi har demonstreret nogle af de mest populære værktøjer til indsamling af information derude. Brug af disse værktøjer kan ikke kun hjælpe dig med at indsamle tilstrækkelig information til en frugtbar informationsindsamling, men de kan også hjælpe dig med at øge effektiviteten og effektiviteten af hele penetrationstestprocessen.