Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
apache__mina-sshd_CVE-2023-35887_2-9-2 — Pure Java SSH 클라이언트/서버 라이브러리로, SSH-2 프로토콜을 구현하며 여러 암호화 방식, 키 교환, 인증 방법, SFTP, SCP 및 보안 원격 접속을 위한 포트 포워딩을 지원합니다. | Kitploit
도구/GitHubGitHub/shoucheng3/apache__mina-sshd_cve-2023-35887_2-9-2
Encryption/Decryption ToolsVulnerability AnalysisNetwork SecurityCryptographyPenetration TestingUtilities & FrameworksAuthenticationRemote Access Tool

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
shoucheng3/apache__mina-sshd_cve-2023-35887_2-9-2

apache__mina-sshd_CVE-2023-35887_2-9-2

Pure Java SSH 클라이언트/서버 라이브러리로, SSH-2 프로토콜을 구현하며 여러 암호화 방식, 키 교환, 인증 방법, SFTP, SCP 및 보안 원격 접속을 위한 포트 포워딩을 지원합니다.

저장소 보기
21년 전아직 검토되지 않음

Apache MINA SSHD

Apache MINA SSHD

Apache MINA SSHD는 클라이언트 및 서버 측에서 SSH 프로토콜을 지원하는 100% 순수 자바 라이브러리입니다. Unix 운영 체제의 SSH 클라이언트 또는 SSH 서버를 대체하는 것을 목표로 하지 않으며, SSH 지원이 필요한 Java 기반 애플리케이션을 위한 지원을 제공합니다.

이 라이브러리는 여러 I/O 백엔드를 활용할 수 있습니다:

  • 기본 전송은 내장되어 있으며 Java의 AsynchronousSocketChannels를 사용합니다.
  • 확장 가능하고 고성능의 비동기 I/O 라이브러리인 Apache MINA를 대신 사용할 수 있으며,
  • 비동기 이벤트 기반 네트워크 프레임워크인 Netty도 지원됩니다.

지원 표준

참조 구현 문서

  • RFC 4251 - SSH(Secure Shell) 프로토콜 아키텍처
  • RFC 4252 - SSH(Secure Shell) 인증 프로토콜
  • RFC 4253 - SSH(Secure Shell) 전송 계층 프로토콜
  • RFC 4254 - SSH(Secure Shell) 연결 프로토콜
  • RFC 4256 - SSH(Secure Shell) 프로토콜을 위한 일반 메시지 교환 인증
  • RFC 4335 - SSH(Secure Shell) 세션 채널 중단 확장
  • RFC 4344 - SSH(Secure Shell) 전송 계층 암호화 모드
  • RFC 4345 - SSH(Secure Shell) 전송 계층 프로토콜을 위한 개선된 Arcfour 모드
  • RFC 4419 - SSH(Secure Shell) 전송 계층 프로토콜을 위한 Diffie-Hellman 그룹 교환
  • RFC 4716 - SSH(Secure Shell) 공개 키 파일 형식
  • RFC 5208 - 공개 키 암호화 표준(PKCS) #8 - 버전 1.2
  • RFC 5480 - 타원 곡선 암호화 주체 공개 키 정보
  • RFC 5647 - SSH 전송 계층 프로토콜을 위한 AES Galois 카운터 모드
  • RFC 5656 - SSH 전송 계층에서 타원 곡선 알고리즘 통합
  • RFC 5915 - 타원 곡선 개인 키 구조
  • RFC 6668 - SSH(Secure Shell) 전송 계층 프로토콜을 위한 SHA-2 데이터 무결성 검증
  • RFC 8160 - SSH(Secure Shell)의 IUTF8 터미널 모드
  • RFC 8268 - SSH(Secure Shell)를 위한 추가 모듈러 지수(MODP) Diffie-Hellman(DH) 키 교환(KEX) 그룹
  • RFC 8308 - SSH(Secure Shell) 프로토콜의 확장 협상
    • 참고: - 코드에는 RFC 구현을 위한 후크가 포함되어 있으며 server-sig-algs 확장에 대한 기본 클라이언트 및 서버 구현도 제공합니다.
  • RFC 8332 - SSH(Secure Shell) 프로토콜에서 SHA-256 및 SHA-512와 함께 RSA 키 사용
    • 참고: - 서버 측은 기본적으로 이러한 서명을 지원합니다. 클라이언트 측은 특정 초기화가 필요합니다 - 섹션 3.3 및 위에서 언급한 RFC 8308용 후크를 참조하세요.
  • RFC 8731 - Curve25519 및 Curve448을 사용하는 SSH(Secure Shell) 키 교환 방법
  • SSH를 위한 키 교환(KEX) 방법 업데이트 및 권장 사항
  • U2F/FIDO 보안 키에 대한 OpenSSH 지원
    • 참고: 서버 측은 기본적으로 이러한 키를 지원합니다. 클라이언트 측은 특정 초기화가 필요합니다
  • SSH에서 사용하는 OpenSSH 공개 키 인증서 인증 시스템
  • SSH 프록시 점프
  • SFTP 버전 3-6 + 확장
    • supported - DRAFT 05 - 섹션 4.4
    • supported2 - DRAFT 13 섹션 5.4
    • versions - DRAFT 09 섹션 4.6
    • vendor-id - DRAFT 09 - 섹션 4.4
    • acl-supported - DRAFT 11 - 섹션 5.4
    • newline - DRAFT 09 섹션 4.3
    • md5-hash, md5-hash-handle - DRAFT 09 - 섹션 9.1.1
    • check-file-handle, check-file-name -
  • 무한 타르핏(Endless tarpit) - HOWTO(s) 섹션을 참조하세요.

구현/지원 기능

인증 방법

  • hostbased, publickey, OpenSSH 호스트 기반 공개 키, keyboard-interactive, password

암호화

  • aes128cbc, aes128ctr, aes192cbc, aes192ctr, aes256cbc, aes256ctr, arcfour128, arcfour256, blowfish-cbc, [email protected], [email protected], [email protected], 3des-cbc

다이제스트

  • md5, sha1, sha224, sha256, sha384, sha512

MAC

  • hmacmd5, hmacmd596, hmacsha1, hmacsha196, hmacsha256, hmacsha512, [email protected] , [email protected], [email protected]

키 교환

  • diffie-hellman-group1-sha1, diffie-hellman-group-exchange-sha256, diffie-hellman-group14-sha1, diffie-hellman-group14-sha256 , diffie-hellman-group15-sha512, diffie-hellman-group16-sha512, diffie-hellman-group17-sha512, diffie-hellman-group18-sha512 , ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, curve25519-sha256, [email protected], curve448-sha512
    • Java 11 이전 Java 버전에서는 curve25519-sha256, [email protected] 또는 curve448-sha512에 Bouncy Castle이 필요합니다.

압축

  • none, zlib, [email protected]

서명/키

  • ssh-dss, ssh-rsa, rsa-sha2-256, rsa-sha2-512, nistp256, nistp384, nistp521 , ssh-ed25519 (eddsa 선택 모듈 필요), [email protected], [email protected] , [email protected], [email protected], [email protected] , [email protected], [email protected], [email protected]

참고: 위 목록에는 코드에서 지원되는 모든 보안 설정이 포함되어 있습니다. 그러나 최신 권장 사항에 따라 기본 클라이언트/서버 설정에는 현재 안전하다고 간주되는 보안 설정만 포함됩니다. 안전하지 않은 설정을 포함하려는 사용자는 명시적으로 포함시켜야 합니다. 다음 설정은 더 이상 사용되지 않으며 기본 설정에 포함되지 않습니다:

  • RFC 8758 - SSH(Secure Shell)에서 RC4 사용 중단
  • RFC 8429 - Kerberos에서 Triple-DES(3DES) 및 RC4 사용 중단
    • Kerberos에 관한 내용이지만 DES의 취약점도 언급합니다.
  • OpenSSH 릴리스 노트 - 일반적으로 실제 관행을 잘 보여주는 지표
  • SHA-1 기반 키 교환 및 서명
  • MD5 기반 및 잘린(truncated) HMAC 알고리즘
  • RFC 8270 - SSH의 권장 최소 Diffie-Hellman 모듈러스 크기를 2048비트로 증가 참고: 값을 프로그래밍 방식으로 또는 시스템 속성을 통해 초기화하면 여전히 1024를 사용할 수 있습니다 - 보안 공급자 설정을 참조하세요. 코드에는 여전히 1024용 모듈러스가 포함되어 있으며, 사용자가 기본 최소값을 명시적으로 낮추면 이를 사용합니다.

주의사항:: RFC 8332 - 섹션 3.31에 따르면

구현 경험에 따르면 SSH 서버가 지원하지 않는 공개 키 알고리즘을 시도하는 클라이언트에게 인증 패널티를 적용하는 서버가 있습니다.

"server-sig-algs" 확장을 구현하지 않는 서버에 대해 RSA 키로 인증할 때, 클라이언트는 인증 패널티를 피하기 위해 기본적으로 "ssh-rsa" 서명을 사용할 수 있습니다(MAY). 새로운 rsa-sha2-* 알고리즘이 "ssh-rsa"를 비활성화할 만큼 충분히 널리 채택되면, 클라이언트는 새 알고리즘 중 하나를 기본값으로 사용할 수 있습니다(MAY).

즉, 이러한(및 관련) 문제가 발생하는 사용자는 문제를 피하기 위해 지원되는 보안 설정을 명시적으로 수정해야 합니다.

특별 공지: ssh-rsa는 여전히 많은 시스템/사용자가 사용하고 있기 때문에 기본 설정의 일부로 남아 있습니다. 그러나 향후 버전에서는 기본 설정에서 제거될 예정입니다. 따라서 사용자들이 가능한 한 빨리 다른 키(예: ECDSA, ED25519)로 전환할 것을 강력히 권장합니다.

릴리스 노트

이슈 보고

버그 보고 및 개선 사항이나 기능 요청은 GitHub 이슈 트래커 또는 Apache 이슈 트래커에 등록할 수 있습니다.

보안 취약점과 같은 민감한 이슈는 두 이슈 트래커 중 어느 곳을 통해서도 보고하지 말고 비공개 채널을 통해 보고해야 합니다.

핵심 요구 사항

  • Java 8+ (버전 1.3 기준)

  • Slf4j

코드는 핵심 추상 slf4j-api 모듈만 필요로 합니다. 로깅 API의 실제 구현은 다양한 기존 어댑터 중에서 선택할 수 있습니다.

기본 아티팩트 구조

  • sshd-common - 프로젝트 전반에서 사용되는 기본 클래스와 클라이언트 또는 서버 네트워크 지원이 필요하지 않은 코드를 포함합니다.

  • sshd-core - 연결, 전송, 채널, 포워딩 등을 구현하는 기본 SSH 클라이언트/서버 코드를 포함합니다.

    • sshd-mina, sshd-netty - 각각 MINA 및/또는 Netty 라이브러리를 사용하여 네트워크 연결을 설정하고 관리하는 데 사용되는 기본 NIO2 커넥터를 대체합니다.
  • sshd-sftp - 서버 측 SFTP 서브시스템과 SFTP 클라이언트 코드를 포함합니다.

    • sshd-spring-sftp - Spring Integration 호환 SFTP 어댑터를 포함합니다
  • sshd-scp - 서버 측 SCP 명령 처리기와 SCP 클라이언트 코드를 포함합니다.

  • sshd-ldap - LDAP 서버를 사용하는 서버 측 암호 및 공개 키 인증기를 포함합니다.

  • sshd-git - JGit SSH 세션 팩토리 대체 구현을 포함합니다.

  • sshd-osgi - sshd-common과 sshd-core를 결합한 아티팩트로, OSGi 환경에 배포할 수 있습니다.

  • sshd-putty - PUTTY 키 파일을 파싱할 수 있는 코드를 포함합니다.

  • sshd-openpgp - OpenPGP 키 파일을 파싱할 수 있는 코드를 포함합니다(일부 제한 사항 있음 - 관련 섹션 참조)

  • sshd-cli - 명령줄 클라이언트/서버용 간단한 템플릿을 포함합니다 - Linux ssh/sshd 명령과 유사한 룩앤필(look-and-feel)을 제공하는 데 사용됩니다.

  • sshd-contrib - 현재 검토 중이며 다른 아티팩트 중 하나로 편입되거나 완전히 새로운 아티팩트가 될 수 있는 실험적 코드입니다 (예: sshd-putty가 이렇게 발전했습니다).

선택적 종속성

빠른 참조

코드 빌드

테스트 포함

root@kitploit:~
mvn clean install

테스트 제외

root@kitploit:~
mvn -Pquick clean install

5분 만에 SSH 클라이언트 설정하기

5분 만에 SSHD 서버 인스턴스 내장하기

SSH 기능 분류

보안 공급자 설정

명령 인프라

SCP

SFTP

포트 포워딩

내부 지원 클래스

이벤트 리스너 및 핸들러

명령줄 클라이언트

GIT 지원

구성/데이터 파일 파싱 지원

확장 모듈

HOWTO(s)

기술 문서

SSH 키 교환

TCP/IP 포트 포워딩

전역 요청

도구 다운로드
DRAFT 09 - 섹션 9.1.2
  • copy-file, copy-data - DRAFT 00 - 섹션 6, 7
  • space-available - DRAFT 09 - 섹션 9.2
  • filename-charset, filename-translation-control - DRAFT 13 - 섹션 6 - 클라이언트 측 전용
  • 여러 OpenSSH SFTP 확장