22 - Pentesting SSH/SFTP
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Bug bounty wenk: meld aan vir Intigriti, 'n premium bug bounty platform geskep deur hackers, vir hackers! Sluit by ons aan by https://go.intigriti.com/hacktricks vandag, en begin verdien bounties tot $100,000!
SSH (Secure Shell of Secure Socket Shell) is 'n netwerkprotokol wat 'n veilige verbinding met 'n rekenaar oor 'n onveilige netwerk moontlik maak. Dit is noodsaaklik om die vertroulikheid en integriteit van data te handhaaf wanneer toegang tot afstandstelsels verkry word.
Standaard poort: 22
SSH bedieners:
openSSH – OpenBSD SSH, verskaf in BSD, Linux verspreidings en Windows sedert Windows 10
Dropbear – SSH implementering vir omgewings met lae geheue en verwerker hulpbronne, verskaf in OpenWrt
PuTTY – SSH implementering vir Windows, die kliënt word algemeen gebruik maar die gebruik van die bediener is selde
CopSSH – implementering van OpenSSH vir Windows
SSH biblioteke (wat bediener-kant implementeer):
wolfSSH – SSHv2 bediener biblioteek geskryf in ANSI C en gemik op ingebedde, RTOS, en hulpbron-beperkte omgewings
Apache MINA SSHD – Apache SSHD java biblioteek is gebaseer op Apache MINA
paramiko – Python SSHv2 protokol biblioteek
ssh-audit is 'n hulpmiddel vir ssh bediener & kliënt konfigurasie ouditering.
https://github.com/jtesta/ssh-audit is 'n opgedateerde vurk van https://github.com/arthepsy/ssh-audit/
Kenmerke:
SSH1 en SSH2 protokol bediener ondersteuning;
analiseer SSH kliënt konfigurasie;
gryp banner, herken toestel of sagteware en bedryfstelsel, detecteer kompressie;
versamel sleutel-uitruil, gasheer-sleutel, enkripsie en boodskap verifikasiekode algoritmes;
voer algoritme-inligting uit (beskikbaar sedert, verwyder/uitgeskakel, onveilig/swak/oud, ens.);
voer algoritme aanbevelings uit (voeg by of verwyder gebaseer op herkenbare sagteware weergawe);
voer sekuriteitsinligting uit (verwante kwessies, toegewyde CVE lys, ens.);
analiseer SSH weergawe kompatibiliteit gebaseer op algoritme-inligting;
historiese inligting van OpenSSH, Dropbear SSH en libssh;
loop op Linux en Windows;
geen afhanklikhede
Dit word standaard ontdek deur nmap. Maar jy kan ook sslcan of sslyze gebruik.
ssh
In sommige weergawes van OpenSSH kan jy 'n tydaanval maak om gebruikers te enumerate. Jy kan 'n metasploit-module gebruik om dit te benut:
Sommige algemene ssh geloofsbriewe hier en hier en hieronder.
As jy van sommige ssh private sleutels weet wat gebruik kan word... kom ons probeer dit. Jy kan die nmap skrip gebruik:
Of die MSF bykomende module:
Or gebruik ssh-keybrute.py
(natuurlike python3, liggewig en het erfenis algoritmes geaktiveer): snowdroppe/ssh-keybrute.
Sommige stelsels het bekende foute in die random saad wat gebruik word om kriptografiese materiaal te genereer. Dit kan lei tot 'n dramaties verminderde sleutelruimte wat gebruteforced kan word. Voor-gegenerate stel sleutels wat op Debian stelsels wat deur swak PRNG geraak is, gegenereer is, is hier beskikbaar: g0tmi1k/debian-ssh.
Jy moet hier kyk om geldige sleutels vir die slagoffer masjien te soek.
crackmapexec wat die ssh
protokol gebruik, kan die opsie --kerberos
gebruik om te autentiseer via kerberos.
Vir meer inligting, voer crackmapexec ssh --help
uit.
Verskaffer | Gebruikersname | Wagwoorde |
APC | apc, toestel | apc |
Brocade | admin | admin123, wagwoord, brocade, fibranne |
Cisco | admin, cisco, enable, hsa, pix, pnadmin, ripeop, root, shelladmin | admin, Admin123, standaard, wagwoord, secur4u, cisco, Cisco, _Cisco, cisco123, C1sco!23, Cisco123, Cisco1234, TANDBERG, change_it, 12345, ipics, pnadmin, diamond, hsadb, c, cc, aanval, blender, changeme |
Citrix | root, nsroot, nsmaint, vdiadmin, kvm, cli, admin | C1trix321, nsroot, nsmaint, kaviza, kaviza123, freebsd, publiek, rootadmin, wanscaler |
D-Link | admin, gebruiker | privaat, admin, gebruiker |
Dell | root, gebruiker1, admin, vkernel, cli | calvin, 123456, wagwoord, vkernel, Stor@ge!, admin |
EMC | admin, root, sysadmin | EMCPMAdm7n, Wagwoord#1, Wagwoord123#, sysadmin, changeme, emc |
HP/3Com | admin, root, vcx, app, spvar, bestuur, hpsupport, opc_op | admin, wagwoord, hpinvent, iMC123, pvadmin, passw0rd, besgroup, vcx, nice, toegang, konfig, 3V@rpar, 3V#rpar, procurve, badg3r5, OpC_op, !bestuur, !admin |
Huawei | admin, root | 123456, admin, root, Admin123, Admin@storage, Huawei12#$, HwDec@01, hwosta2.0, HuaWei123, fsp200@HW, huawei123 |
IBM | USERID, admin, bestuurder, mqm, db2inst1, db2fenc1, dausr1, db2admin, iadmin, stelsel, toestel, ufmcli, klant | PASSW0RD, passw0rd, admin, wagwoord, Passw8rd, iadmin, apc, 123456, klant0mer |
Juniper | netscreen | netscreen |
NetApp | admin | netapp123 |
Oracle | root, oracle, oravis, applvis, ilom-admin, ilom-operator, nm2user | changeme, ilom-admin, ilom-operator, welcome1, oracle |
VMware | vi-admin, root, hqadmin, vmware, admin | vmware, vmw@re, hqadmin, standaard |
As jy in die plaaslike netwerk is as die slagoffer wat gaan aansluit by die SSH bediener met gebruikersnaam en wagwoord, kan jy probeer om 'n MitM-aanval uit te voer om daardie kredensiale te steel:
Aanvalspad:
Verkeersherleiding: Die aanvaller lei die slagoffer se verkeer na hul masjien, wat effektief die verbinding poging na die SSH bediener afvang.
Afvang en Teken: Die aanvaller se masjien funksioneer as 'n proxy, wat die gebruiker se aanmeldbesonderhede vang deur voor te gee om die wettige SSH bediener te wees.
Opdraguitvoering en Relay: Laastens, die aanvaller se bediener registreer die gebruiker se kredensiale, stuur die opdragte na die werklike SSH bediener, voert dit uit, en stuur die resultate terug na die gebruiker, wat die proses naatloos en wettig laat voorkom.
SSH MITM doen presies wat hierbo beskryf is.
Om die werklike MitM uit te voer, kan jy tegnieke soos ARP spoofing, DNS spoofing of ander wat in die Netwerk Spoofing aanvalle beskryf is, gebruik.
As jy 'n netwerk wil deurkruis met ontdekte SSH privaat sleutels op stelsels, wat elke privaat sleutel op elke stelsel vir nuwe gaste gebruik, dan is SSH-Snake wat jy nodig het.
SSH-Snake voer die volgende take outomaties en herhalend uit:
Op die huidige stelsel, vind enige SSH privaat sleutels,
Op die huidige stelsel, vind enige gaste of bestemmings (gebruiker@gas) wat die privaat sleutels mag aanvaar,
Probeer om SSH in al die bestemmings in te gaan met al die ontdekte privaat sleutels,
As 'n bestemming suksesvol gekoppel is, herhaal stappe #1 - #4 op die gekoppelde stelsel.
Dit is heeltemal self-repliserend en self-propagasies -- en heeltemal fileloos.
Dit is algemeen dat SSH bedieners root gebruiker aanmelding standaard toelaat, wat 'n beduidende sekuriteitsrisiko inhou. Deaktiveer root aanmelding is 'n kritieke stap in die beveiliging van die bediener. Ongeoorloofde toegang met administratiewe regte en bruteforce-aanvalle kan verminder word deur hierdie verandering te maak.
Om Root Aanmelding in OpenSSH te Deaktiveer:
Wysig die SSH konfigurasie lêer met: sudoedit /etc/ssh/sshd_config
Verander die instelling van #PermitRootLogin yes
na PermitRootLogin no
.
Herlaai die konfigurasie met: sudo systemctl daemon-reload
Herbegin die SSH bediener om veranderinge toe te pas: sudo systemctl restart sshd
Daar is 'n algemene oorsig wat plaasvind met SFTP opstellings, waar administrateurs bedoel dat gebruikers lêers moet uitruil sonder om afstandshell toegang te aktiveer. Ten spyte van die instelling van gebruikers met nie-interaktiewe shells (bv. /usr/bin/nologin
) en hulle te beperk tot 'n spesifieke gids, bly 'n sekuriteitslek. Gebruikers kan hierdie beperkings omseil deur die uitvoering van 'n opdrag (soos /bin/bash
) onmiddellik na aanmelding aan te vra, voordat hul aangewese nie-interaktiewe shell oorgeneem word. Dit stel ongeoorloofde opdraguitvoering in staat, wat die beoogde sekuriteitsmaatreëls ondermyn.
Hier is 'n voorbeeld van 'n veilige SFTP-konfigurasie (/etc/ssh/sshd_config
– openSSH) vir die gebruiker noraj
:
Hierdie konfigurasie sal slegs SFTP toelaat: dit deaktiveer skulp toegang deur die beginopdrag af te dwing en deaktiveer TTY toegang, maar ook alle vorme van poort forwarding of tunneling.
As jy toegang tot 'n SFTP bediener het, kan jy ook jou verkeer deur hierdie tunneling, byvoorbeeld deur die algemene poort forwarding, stuur:
Die sftp het die opdrag "symlink". Daarom, as jy skryfregte in 'n sekere gids het, kan jy symlinks van ander gidse/lêers skep. Aangesien jy waarskynlik gevang is binne 'n chroot, sal dit nie spesiaal nuttig vir jou wees nie, maar as jy die geskepte symlink vanaf 'n no-chroot diens kan toegang (byvoorbeeld, as jy die symlink vanaf die web kan toegang), kan jy die symlinked lêers deur die web oopmaak.
Byvoorbeeld, om 'n symlink van 'n nuwe lêer "froot" na "/" te skep:
If you can access the file "froot" via web, you will be able to list the root ("/") folder of the system.
In 'n hoë sekuriteit omgewing is dit 'n algemene praktyk om slegs sleutel-gebaseerde of twee-faktor verifikasie in te skakel eerder as die eenvoudige faktor wagwoord-gebaseerde verifikasie. Maar dikwels word die sterker verifikasie metodes ingeskakel sonder om die swakkeres te deaktiveer. 'n Gereelde geval is om publickey
op openSSH-konfigurasie in te skakel en dit as die standaard metode in te stel, maar nie password
te deaktiveer nie. So deur die uitgebreide modus van die SSH-kliënt te gebruik, kan 'n aanvaller sien dat 'n swakker metode geaktiveer is:
Byvoorbeeld, as 'n outentikasiefoutgrens gestel is en jy nooit die kans kry om die wagwoordmetode te bereik nie, kan jy die PreferredAuthentications
opsie gebruik om te dwing om hierdie metode te gebruik.
Review die SSH-bediener konfigurasie is nodig om te kontroleer dat slegs verwagte metodes geoutoriseer is. Om die uitgebreide modus op die kliënt te gebruik, kan help om die doeltreffendheid van die konfigurasie te sien.
Jy kan interessante gidse vind oor hoe om SSH te versterk in https://www.ssh-audit.com/hardening_guides.html
Bug bounty tip: meld aan vir Intigriti, 'n premium bug bounty platform geskep deur hackers, vir hackers! Sluit by ons aan by https://go.intigriti.com/hacktricks vandag, en begin om bounties tot $100,000 te verdien!
Leer & oefen AWS Hacking:HackTricks Opleiding AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Opleiding GCP Red Team Expert (GRTE)