Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
wolfssh — C로 작성된 작고 휴대 가능한 임베디드 SSHv2 클라이언트 및 서버 라이브러리로, 임베디드 및 IoT 시스템을 위한 SCP, SFTP, 포트 포워딩, 포스트 양자 키 교환을 지원합니다. | Kitploit
도구/GitHubGitHub/wolfssl/wolfssh
Defensive ToolsEmbedded Systems SecurityEncryption/Decryption ToolsIoT SecurityNetwork SecurityCryptographyUtilities & FrameworksHardware & IoT SecurityAuthenticationRemote Access Tool
GitHub
50512413410일 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
wolfssl/wolfssh

wolfssh

C로 작성된 작고 휴대 가능한 임베디드 SSHv2 클라이언트 및 서버 라이브러리로, 임베디드 및 IoT 시스템을 위한 SCP, SFTP, 포트 포워딩, 포스트 양자 키 교환을 지원합니다.

저장소 보기웹사이트

WOLFSSH

wolfSSL의 임베디드 SSH 서버 wolfSSH 매뉴얼

종속성

wolfSSH는 wolfSSL의 일부로 제공되는 wolfCrypt에 의존합니다. 다음은 wolfSSH를 활성화하기 위한 wolfSSL의 가장 간단한 구성입니다.

$ cd wolfssl
$ ./configure [OPTIONS] --enable-ssh
$ make check
$ sudo make install

일부 시스템에서는 설치 후 선택적인 ldconfig 명령이 필요합니다.

wolfSSH에서 키 생성 기능을 사용하려면 wolfSSL을 keygen으로 구성해야 합니다: --enable-keygen.

사용자 인증에 X.509 인증서를 사용할 때는 wolfSSL이 TLS가 활성화된 상태로 빌드되어야 합니다. wolfSSH는 OCSP 조회를 포함한 X.509에 wolfSSL의 인증서 관리자 시스템을 사용합니다. OCSP를 허용하려면 wolfSSL configure에 --enable-ocsp를 추가하십시오.

wolfSSL 코드의 대부분이 필요하지 않다면 wolfSSL을 crypto 전용 옵션으로 구성할 수 있습니다: --enable-cryptonly.

wolfSSL의 추가 빌드 옵션은 wolfSSH 매뉴얼의 2장에 있습니다.

빌드

wolfSSH 소스 디렉터리에서 다음을 실행하십시오:

$ ./autogen.sh (GitHub에서 복제한 경우)
$ ./configure --with-wolfssl=[/usr/local]
$ make
$ make check

autogen.sh 스크립트는 저장소를 복제한 후 처음 한 번만 실행하면 됩니다. 이미 실행했거나 소스 아카이브의 코드를 사용하는 경우에는 건너뛰어야 합니다.

Visual Studio를 사용하여 Windows에서 빌드하는 방법은 "ide/winvs/README.md" 파일을 참조하십시오.

참고: 리소스가 제한된 장치에서는 DEFAULT_WINDOW_SZ를 더 작은 크기로 설정해야 할 수 있습니다. 데스크톱 사용 사례에서는 대용량 파일 전송을 돕기 위해 이를 늘릴 수도 있습니다. 기본적으로 채널은 채널 윈도우 조정 메시지를 보내기 전에 최대 128kB의 데이터를 수신하도록 설정됩니다. 새 채널의 윈도우 크기를 설정하는 예는 다음과 같습니다: ./configure CPPFLAGS="-DDEFAULT_WINDOW_SZ=16384"

32비트 Linux 플랫폼에서는 CFLAGS=-D_FILE_OFFSET_BITS=64로 컴파일하여 2GB보다 큰 파일에 대한 지원을 추가할 수 있습니다.

예제

examples 디렉터리에는 어떤 클라이언트든 연결할 수 있는 echoserver가 포함되어 있습니다. 터미널에서 다음을 실행하십시오:

$ ./examples/echoserver/echoserver -f

-f 옵션은 echo 전용 모드를 활성화합니다. 다른 터미널에서 다음을 실행하십시오:

$ ssh jill@localhost -p 22222

비밀번호를 묻는 메시지가 표시되면 "upthehill"을 입력하십시오. 서버는 클라이언트에 미리 준비된 배너를 보냅니다:

wolfSSH Example Echo Server

클라이언트에 입력한 문자는 서버에 의해 화면에 에코됩니다. 문자가 두 번 에코되면 클라이언트에 로컬 에코가 활성화된 것입니다. echoserver는 적절한 터미널이 아니므로 CR/LF 변환이 예상대로 작동하지 않습니다.

다음 제어 문자는 echoserver에서 특별한 동작을 트리거합니다:

  • CTRL-C: 연결을 종료합니다.
  • CTRL-E: 일부 세션 통계를 출력합니다.
  • CTRL-F: 새로운 키 교환을 트리거합니다.

테스트 참고 사항

저장소를 복제한 후에는 테스트용 개인 키를 사용자에 대해 읽기 전용으로 설정해야 합니다. 그렇지 않으면 ssh가 그렇게 하라고 알려줄 것입니다.

$ chmod 0600 ./keys/gretel-key-rsa.pem ./keys/hansel-key-rsa.pem \
             ./keys/gretel-key-ecc.pem ./keys/hansel-key-ecc.pem

예제 echoserver에 대한 인증은 비밀번호 또는 공개 키로 수행할 수 있습니다. 비밀번호를 사용하려면 다음 명령줄을 사용하십시오:

$ ssh -p 22222 USER@localhost

여기서 USER와 비밀번호 쌍은 다음과 같습니다:

jill:upthehill
jack:fetchapail

공개 키 인증을 사용하려면 다음 명령줄을 사용하십시오:

$ ssh -i ./keys/USER-key-TYPE.pem -p 22222 USER@localhost

여기서 USER는 gretel 또는 hansel이고, TYPE은 rsa 또는 ecc입니다.

명심해야 할 점은, echoserver의 wsUserAuth() 콜백 함수에 몇 개의 가짜 계정(jack, jill, hansel, gretel)이 있다는 것입니다. 셸 지원이 활성화되면 이러한 가짜 계정은 작동하지 않습니다. 이들은 시스템의 passwd 파일에 존재하지 않습니다. 사용자는 인증되지만, 시스템에 존재하지 않기 때문에 서버에서 오류가 발생합니다. echoserver의 비밀번호 또는 공개 키 목록에 자신의 사용자 이름을 추가할 수 있습니다. 해당 계정은 echoserver를 실행하는 사용자의 권한으로 echoserver가 시작한 셸에 로그인됩니다.

예제 도구

wolfSSH는 테스트 목적과 다른 SSH 구현과의 상호 운용성을 시연하기 위해 몇 가지 예제 도구와 함께 패키지로 제공됩니다.

echoserver

echoserver는 wolfSSH의 핵심 도구입니다. 원래는 미리 준비된 계정 중 하나로 인증하는 것만 허용했으며 입력된 문자를 반복했습니다. 셸 지원을 활성화하면 사용자 셸을 생성할 수 있습니다. 이를 위해서는 머신에 실제 사용자 이름이 필요하고 자격 증명을 검증하기 위한 사용자 인증 콜백 함수가 업데이트되어야 합니다. echoserver는 SCP 및 SFTP 연결도 처리할 수 있습니다.

echoserver 도구는 다음 명령줄 옵션을 허용합니다:

-1             단일(하나의) 연결 후 종료
-e             클라이언트로부터 ECC 공개 키 기대
-E             ECC 개인 키 사용
-f             입력 에코
-p <num>       수락할 포트, 기본값 22222
-N             비차단 소켓 사용
-d <string>    SFTP 연결을 위한 홈 디렉터리 설정
-j <file>      피어로부터 수락할 공개 키 로드

client

client는 SSH 서버에 연결을 설정합니다. 가장 단순한 모드에서는 서버에 "Hello, wolfSSH!" 문자열을 보내고 응답을 출력한 후 종료합니다. 의사 터미널 옵션을 사용하면 client는 실제 클라이언트가 됩니다.

client 도구는 다음 명령줄 옵션을 허용합니다:

-h <host>      연결할 호스트, 기본값 127.0.0.1
-p <num>       연결할 포트, 기본값 22222
-u <username>  인증할 사용자 이름 (필수)
-P <password>  사용자 이름의 비밀번호, 생략 시 프롬프트
-e             사용자에 대해 샘플 ecc 키 사용
-i <filename>  사용자의 개인 키 파일 이름
-j <filename>  사용자의 공개 키 파일 이름
-x             읽기/쓰기 없이 성공적인 연결 후 종료
-N             비차단 소켓 사용
-t             의사 터미널 사용
-c <command>   원격 명령을 실행하고 stdin/stdout을 파이프
-a             SSH-AGENT 사용 시도

portfwd

portfwd 도구는 SSH 서버에 연결을 설정하고 로컬 포트 포워딩을 위한 리스너를 설정하거나 원격 포트 포워딩을 위한 리스너를 요청합니다. 연결 후 도구는 종료됩니다.

portfwd 도구는 다음 명령줄 옵션을 허용합니다:

-h <host>      연결할 호스트, 기본값 127.0.0.1
-p <num>       연결할 포트, 기본값 22222
-u <username>  인증할 사용자 이름 (필수)
-P <password>  사용자 이름의 비밀번호, 생략 시 프롬프트
-F <host>      포워딩할 출발 호스트, 기본값 0.0.0.0
-f <num>       포워딩할 출발 호스트 포트 (필수)
-T <host>      포워딩할 대상 호스트, 기본값은 host
-t <num>       포워딩할 대상 포트 (필수)

scpclient

scpclient, wolfscp는 SSH 서버에 연결을 설정하고 지정된 파일을 로컬 머신으로 또는 로컬 머신에서 복사합니다.

scpclient 도구는 다음 명령줄 옵션을 허용합니다:

-H <host>      연결할 호스트, 기본값 127.0.0.1
-p <num>       연결할 포트, 기본값 22222
-u <username>  인증할 사용자 이름 (필수)
-P <password>  사용자 이름의 비밀번호, 생략 시 프롬프트
-L <from>:<to> 로컬에서 서버로 복사
-S <from>:<to> 서버에서 로컬로 복사

sftpclient

sftpclient, wolfsftp는 SSH 서버에 연결을 설정하고 디렉터리 탐색, 파일 가져오기 및 넣기, 디렉터리 생성 및 제거 등을 허용합니다.

sftpclient 도구는 다음 명령줄 옵션을 받습니다:

-h <host>      연결할 호스트, 기본값 127.0.0.1
-p <num>       연결할 포트, 기본값 22222
-u <username>  인증할 사용자 이름 (필수)
-P <password>  사용자 이름의 비밀번호, 생략하면 프롬프트 표시
-d <path>      기본 로컬 경로 설정
-N             비차단 소켓 사용
-e             ECC 사용자 인증 사용
-l <filename>  로컬 파일 이름
-r <filename>  원격 파일 이름
-g             로컬 파일 이름을 원격 파일 이름으로 지정
-G             원격 파일 이름을 로컬 파일 이름으로 지정

SCP

wolfSSH는 scp에 대한 서버 측 지원을 포함하며, 여기에는 서버로 파일을 '복사해 넣는' 것과 서버로부터 파일을 '복사해 오는' 것 모두에 대한 지원이 포함됩니다. 기본 송신 및 수신 콜백으로 단일 파일 복사와 재귀 디렉터리 복사가 모두 지원됩니다.

scp 지원으로 wolfSSH를 컴파일하려면 --enable-scp 빌드 옵션을 사용하거나 WOLFSSH_SCP를 정의하십시오:

$ ./configure --enable-scp
$ make

전체 API 사용법과 구현 세부 사항은 wolfSSH 사용자 매뉴얼을 참조하십시오.

wolfSSH 예제 서버는 단일 scp 요청을 수락하도록 설정되어 있으며, wolfSSH 라이브러리를 컴파일할 때 기본적으로 컴파일됩니다. 예제 서버를 시작하려면 다음을 실행하십시오:

$ ./examples/server/server

클라이언트 측에서는 표준 scp 명령을 사용할 수 있습니다. 다음은 몇 가지 예이며, 여기서 scp는 사용 중인 ssh 클라이언트를 나타냅니다.

기본 예제 사용자 "jill"을 사용하여 단일 파일을 서버로 복사하려면:

$ scp -P 22222 <local_file> [email protected]:<remote_path>

타임스탬프와 함께 상세 모드로 동일한 단일 파일을 서버로 복사하려면:

$ scp -v -p -P 22222 <local_file> [email protected]:<remote_path>

디렉터리를 서버로 재귀적으로 복사하려면:

$ scp -P 22222 -r <local_dir> [email protected]:<remote_dir>

단일 파일을 서버에서 로컬 클라이언트로 복사하려면:

$ scp -P 22222 [email protected]:<remote_file> <local_path>

디렉터리를 서버에서 로컬 클라이언트로 재귀적으로 복사하려면:

$ scp -P 22222 -r [email protected]:<remote_dir> <local_path>

포트 포워딩

wolfSSH는 포트 포워딩을 지원합니다. 이를 통해 사용자는 다른 서버로의 암호화된 터널을 설정할 수 있으며, SSH 클라이언트는 소켓에서 수신 대기하고 해당 소켓의 연결을 서버의 다른 소켓으로 포워딩합니다.

포트 포워딩 지원으로 wolfSSH를 컴파일하려면 --enable-fwd 빌드 옵션을 사용하거나 WOLFSSH_FWD를 정의하십시오:

$ ./configure --enable-fwd
$ make

전체 API 사용법과 구현 세부 사항은 wolfSSH 사용자 매뉴얼을 참조하십시오.

portfwd 예제 도구는 "direct-tcpip" 스타일 채널을 생성합니다. 다음 지침은 포트 포워딩이 활성화된 OpenSSH 서버가 백그라운드에서 실행 중이라고 가정합니다. 이 예제는 애플리케이션으로서 wolfSSL 클라이언트의 포트를 서버로 포워딩합니다. 모든 프로그램이 서로 다른 터미널에서 동일한 머신에서 실행된다고 가정합니다.

src/wolfssl$ ./examples/server/server
src/wolfssh$ ./examples/portfwd/portfwd -p 22 -u <username> \
             -f 12345 -t 11111
src/wolfssl$ ./examples/client/client -p 12345

기본적으로 wolfSSL 서버는 포트 11111에서 수신 대기합니다. 클라이언트는 포트 12345에 연결을 시도하도록 설정되어 있습니다. portfwd는 사용자 "username"으로 로그인하고, 포트 12345에서 리스너를 열고, 포트 11111의 서버에 연결합니다. 패킷은 클라이언트와 서버 사이에서 앞뒤로 라우팅됩니다. "Hello, wolfSSL!"

portfwd의 소스는 wolfSSH에서 포트 포워딩 지원을 설정하고 사용하는 방법에 대한 예제를 제공합니다.

echoserver는 로컬 및 원격 포트 포워딩을 처리합니다. ssh 도구로 연결하려면 다음 명령줄 중 하나를 사용하십시오. 어느 ssh 명령줄이든 어디서나 실행할 수 있습니다:

도구 다운로드