22 - Pentesting SSH/SFTP
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Bug bounty tip: jiandikishe kwa Intigriti, jukwaa la bug bounty la kiwango cha juu lililotengenezwa na hackers, kwa hackers! Jiunge nasi kwenye https://go.intigriti.com/hacktricks leo, na uanze kupata zawadi hadi $100,000!
SSH (Secure Shell au Secure Socket Shell) ni protokali ya mtandao inayowezesha muunganisho salama kwa kompyuta kupitia mtandao usio salama. Ni muhimu kwa kudumisha usiri na uadilifu wa data unapofikia mifumo ya mbali.
Default port: 22
SSH servers:
openSSH – OpenBSD SSH, iliyopelekwa katika BSD, usambazaji wa Linux na Windows tangu Windows 10
Dropbear – Utekelezaji wa SSH kwa mazingira yenye rasilimali chache za kumbukumbu na mchakato, iliyopelekwa katika OpenWrt
PuTTY – Utekelezaji wa SSH kwa Windows, mteja hutumiwa mara nyingi lakini matumizi ya seva ni nadra
CopSSH – utekelezaji wa OpenSSH kwa Windows
SSH libraries (implementing server-side):
wolfSSH – maktaba ya seva ya SSHv2 iliyoandikwa kwa ANSI C na kulenga mazingira yaliyo na vifaa vya ndani, RTOS, na rasilimali chache
Apache MINA SSHD – maktaba ya java ya Apache SSHD inategemea Apache MINA
paramiko – maktaba ya protokali ya Python SSHv2
ssh-audit ni chombo cha ukaguzi wa usanidi wa seva na mteja wa ssh.
https://github.com/jtesta/ssh-audit ni toleo lililosasishwa kutoka https://github.com/arthepsy/ssh-audit/
Features:
Msaada wa protokali ya SSH1 na SSH2;
changanua usanidi wa mteja wa SSH;
pata bango, tambua kifaa au programu na mfumo wa uendeshaji, gundua ufinyu;
kusanya funguo za kubadilishana, funguo za mwenyeji, algorithms za usimbaji na msimbo wa uthibitishaji wa ujumbe;
toa taarifa za algorithm (zinapatikana tangu, zimeondolewa/zimemwishwa, hatari/dhaifu/mzee, nk);
toa mapendekezo ya algorithm (ongeza au ondoa kulingana na toleo la programu lililotambuliwa);
toa taarifa za usalama (masuala yanayohusiana, orodha ya CVE iliyotolewa, nk);
changanua ulinganifu wa toleo la SSH kulingana na taarifa za algorithm;
taarifa za kihistoria kutoka OpenSSH, Dropbear SSH na libssh;
inafanya kazi kwenye Linux na Windows;
haina utegemezi
Hii inagundulika kwa default na nmap. Lakini unaweza pia kutumia sslcan au sslyze.
ssh
Katika baadhi ya matoleo ya OpenSSH unaweza kufanya shambulio la muda ili kuhesabu watumiaji. Unaweza kutumia moduli ya metasploit ili kutumia hili:
Baadhi ya akisi za kawaida za ssh hapa na hapa na hapa chini.
Ikiwa unajua baadhi ya funguo za kibinafsi za ssh ambazo zinaweza kutumika... hebu jaribu. Unaweza kutumia skripti ya nmap:
Au moduli wa msaada wa MSF:
Or use ssh-keybrute.py
(native python3, lightweight and has legacy algorithms enabled): snowdroppe/ssh-keybrute.
Baadhi ya mifumo yana kasoro zinazojulikana katika mbegu za nasibu zinazotumika kuunda vifaa vya kificho. Hii inaweza kusababisha kupungua kwa kiwango cha funguo ambacho kinaweza kufanywa kwa nguvu. Seti za funguo zilizoundwa awali kwenye mifumo ya Debian iliyoathiriwa na PRNG dhaifu zinapatikana hapa: g0tmi1k/debian-ssh.
Unapaswa kutafuta hapa ili kutafuta funguo halali za mashine ya mwathirika.
crackmapexec kutumia itifaki ya ssh
inaweza kutumia chaguo --kerberos
ili kujiandikisha kupitia kerberos.
Kwa maelezo zaidi, endesha crackmapexec ssh --help
.
Vendor
Usernames
Passwords
APC
apc, device
apc
Brocade
admin
admin123, password, brocade, fibranne
Cisco
admin, cisco, enable, hsa, pix, pnadmin, ripeop, root, shelladmin
admin, Admin123, default, password, secur4u, cisco, Cisco, _Cisco, cisco123, C1sco!23, Cisco123, Cisco1234, TANDBERG, change_it, 12345, ipics, pnadmin, diamond, hsadb, c, cc, attack, blender, changeme
Citrix
root, nsroot, nsmaint, vdiadmin, kvm, cli, admin
C1trix321, nsroot, nsmaint, kaviza, kaviza123, freebsd, public, rootadmin, wanscaler
D-Link
admin, user
private, admin, user
Dell
root, user1, admin, vkernel, cli
calvin, 123456, password, vkernel, Stor@ge!, admin
EMC
admin, root, sysadmin
EMCPMAdm7n, Password#1, Password123#, sysadmin, changeme, emc
HP/3Com
admin, root, vcx, app, spvar, manage, hpsupport, opc_op
admin, password, hpinvent, iMC123, pvadmin, passw0rd, besgroup, vcx, nice, access, config, 3V@rpar, 3V#rpar, procurve, badg3r5, OpC_op, !manage, !admin
Huawei
admin, root
123456, admin, root, Admin123, Admin@storage, Huawei12#$, HwDec@01, hwosta2.0, HuaWei123, fsp200@HW, huawei123
IBM
USERID, admin, manager, mqm, db2inst1, db2fenc1, dausr1, db2admin, iadmin, system, device, ufmcli, customer
PASSW0RD, passw0rd, admin, password, Passw8rd, iadmin, apc, 123456, cust0mer
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, default
Ikiwa uko kwenye mtandao wa ndani kama mwathirika ambaye atajiunga na seva ya SSH kwa kutumia jina la mtumiaji na nenosiri, unaweza kujaribu kufanya shambulio la MitM ili kuiba akreditivu hizo:
Njia ya shambulio:
Uelekezaji wa Trafiki: Mshambuliaji anahamisha trafiki ya mwathirika kwenye mashine yao, kwa ufanisi akikamata jaribio la kuungana na seva ya SSH.
Kukamata na Kurekodi: Mashine ya mshambuliaji inafanya kazi kama proxy, ikikamata maelezo ya kuingia ya mtumiaji kwa kujifanya kuwa seva halali ya SSH.
Utendaji wa Amri na Uhamasishaji: Hatimaye, seva ya mshambuliaji inakumbuka akreditivu za mtumiaji, inasambaza amri kwa seva halisi ya SSH, inafanya hizo, na inatuma matokeo nyuma kwa mtumiaji, ikifanya mchakato huo kuonekana kuwa wa kawaida na halali.
SSH MITM inafanya kile kilichoelezwa hapo juu.
Ili kukamata kufanya MitM halisi unaweza kutumia mbinu kama ARP spoofing, DNS spoofing au nyingine zilizoelezwa katika Mashambulizi ya Spoofing ya Mtandao.
Ikiwa unataka kupita mtandao kwa kutumia funguo za kibinafsi za SSH zilizogunduliwa kwenye mifumo, ukitumia kila funguo ya kibinafsi kwenye kila mfumo kwa ajili ya mwenyeji mpya, basi SSH-Snake ndiyo unayohitaji.
SSH-Snake inatekeleza kazi zifuatazo kiotomatiki na kwa kurudiarudia:
Kwenye mfumo wa sasa, pata funguo zozote za kibinafsi za SSH,
Kwenye mfumo wa sasa, pata mwenyeji au marudio yoyote (mtumiaji@host) ambayo funguo za kibinafsi zinaweza kukubaliwa,
Jaribu kuungana na SSH kwenye marudio yote kwa kutumia funguo zote za kibinafsi zilizogunduliwa,
Ikiwa marudio yameunganishwa kwa mafanikio, rudia hatua #1 - #4 kwenye mfumo uliounganishwa.
Ni ya kujirudia kabisa na kujiendeleza - na haina faili kabisa.
Ni kawaida kwa seva za SSH kuruhusu kuingia kwa mtumiaji wa root kwa default, ambayo inatoa hatari kubwa ya usalama. Kuzima kuingia kwa root ni hatua muhimu katika kulinda seva. Upatikanaji usioidhinishwa na mamlaka ya usimamizi na mashambulizi ya nguvu yanaweza kupunguziliwa mbali kwa kufanya mabadiliko haya.
Kuzima Kuingia kwa Root katika OpenSSH:
Hariri faili ya usanidi ya SSH kwa: sudoedit /etc/ssh/sshd_config
Badilisha mipangilio kutoka #PermitRootLogin yes
hadi PermitRootLogin no
.
Reload usanidi kwa kutumia: sudo systemctl daemon-reload
Restart seva ya SSH ili kutekeleza mabadiliko: sudo systemctl restart sshd
Kuna makosa ya kawaida yanayotokea na mipangilio ya SFTP, ambapo wasimamizi wanakusudia kwa watumiaji kubadilishana faili bila kuwezesha ufikiaji wa shell ya mbali. Licha ya kuweka watumiaji na shells zisizoingiliana (k.m., /usr/bin/nologin
) na kuwafunga kwenye saraka maalum, kuna pengo la usalama. Watumiaji wanaweza kupita vizuizi hivi kwa kuomba utekelezaji wa amri (kama /bin/bash
) mara tu baada ya kuingia, kabla shell yao isiyoingiliana kuchukua. Hii inaruhusu utekelezaji wa amri zisizoidhinishwa, ikikandamiza hatua za usalama zilizokusudiwa.
Hapa kuna mfano wa usanidi salama wa SFTP (/etc/ssh/sshd_config
– openSSH) kwa mtumiaji noraj
:
Hii usanidi itaruhusu tu SFTP: kuzuia ufikiaji wa shell kwa kulazimisha amri ya kuanza na kuzuia ufikiaji wa TTY lakini pia kuzuia aina zote za upitishaji bandari au tunneling.
Ikiwa una ufikiaji wa seva ya SFTP unaweza pia kupitisha trafiki yako kupitia hii kwa mfano ukitumia upitishaji bandari wa kawaida:
The sftp have the command "symlink". Therefore, if you have writable rights in some folder, you can create symlinks of other folders/files. As you are probably trapped inside a chroot this won't be specially useful for you, but, if you can access the created symlink from a no-chroot service (for example, if you can access the symlink from the web), you could open the symlinked files through the web.
For example, to create a symlink from a new file "froot" to "/":
Ikiwa unaweza kufikia faili "froot" kupitia wavuti, utaweza kuorodhesha folda ya mzizi ("/") ya mfumo.
Katika mazingira ya usalama wa juu, ni kawaida kuwezesha uthibitishaji wa msingi wa funguo pekee au uthibitishaji wa hatua mbili badala ya uthibitishaji wa msingi wa nenosiri rahisi. Lakini mara nyingi njia za uthibitishaji zenye nguvu zinawezeshwa bila kuzima zile dhaifu. Kesi ya kawaida ni kuwezesha publickey
kwenye usanidi wa openSSH na kuipatia kama njia ya chaguo-msingi lakini bila kuzima password
. Hivyo kwa kutumia hali ya verbose ya mteja wa SSH, mshambuliaji anaweza kuona kwamba njia dhaifu imewezeshwa:
Kwa mfano, ikiwa kikomo cha kushindwa kwa uthibitishaji kimewekwa na hujapata nafasi ya kufikia njia ya nywila, unaweza kutumia chaguo la PreferredAuthentications
kulazimisha kutumia njia hii.
Kagua usanidi wa seva ya SSH ni muhimu ili kuhakikisha kwamba ni mbinu pekee zinazotarajiwa ndizo zimeidhinishwa. Kutumia hali ya verbose kwenye mteja kunaweza kusaidia kuona ufanisi wa usanidi.
Unaweza kupata miongozo ya kuvutia juu ya jinsi ya kuimarisha SSH katika https://www.ssh-audit.com/hardening_guides.html
Bug bounty tip: jiandikishe kwa Intigriti, jukwaa la bug bounty la kiwango cha juu lililotengenezwa na hackers, kwa hackers! Jiunge nasi katika https://go.intigriti.com/hacktricks leo, na anza kupata zawadi hadi $100,000!
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)