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
49912261일 전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 (if cloned from 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             exit after a single (one) connection
-e             expect ECC public key from client
-E             use ECC private key
-f             echo input
-p <num>       port to accept on, default 22222
-N             use non-blocking sockets
-d <string>    set the home directory for SFTP connections
-j <file>      load in a public key to accept from peer

client

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

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

-h <host>      host to connect to, default 127.0.0.1
-p <num>       port to connect on, default 22222
-u <username>  username to authenticate as (REQUIRED)
-P <password>  password for username, prompted if omitted
-e             use sample ecc key for user
-i <filename>  filename for the user's private key
-j <filename>  filename for the user's public key
-x             exit after successful connection without doing
               read/write
-N             use non-blocking sockets
-t             use pseudo terminal
-c <command>   executes remote command and pipe stdin/stdout
-a             Attempt to use SSH-AGENT

portfwd

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

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

-h <host>      host to connect to, default 127.0.0.1
-p <num>       port to connect on, default 22222
-u <username>  username to authenticate as (REQUIRED)
-P <password>  password for username, prompted if omitted
-F <host>      host to forward from, default 0.0.0.0
-f <num>       host port to forward from (REQUIRED)
-T <host>      host to forward to, default to host
-t <num>       port to forward to (REQUIRED)

scpclient

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

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

-H <host>      host to connect to, default 127.0.0.1
-p <num>       port to connect on, default 22222
-u <username>  username to authenticate as (REQUIRED)
-P <password>  password for username, prompted if omitted
-L <from>:<to> copy from local to server
-S <from>:<to> copy from server to local

sftpclient

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

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

-h <host>      host to connect to, default 127.0.0.1
-p <num>       port to connect on, default 22222
-u <username>  username to authenticate as (REQUIRED)
-P <password>  password for username, prompted if omitted
-d <path>      set the default local path
-N             use non blocking sockets
-e             use ECC user authentication
-l <filename>  local filename
-r <filename>  remote filename
-g             put local filename as remote filename
-G             get remote filename as local filename

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>

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

$ 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 클라이언트의 포트를 서버로 포워딩합니다. 모든 프로그램이 서로 다른 터미널에서 동일한 머신에서 실행된다고 가정합니다.

도구 다운로드