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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ssh-chatter — ssh-chat (현대 C 언어로 구현) | Kitploit
도구/GitHubGitHub/gosuda/ssh-chatter
Encryption/Decryption ToolsScripting & AutomationNetwork SecurityCTFPrivacyUtilities & FrameworksAuthenticationLearning & EducationAI Security
GitHubgosuda/ssh-chatter

ssh-chatter

ssh-chat (현대 C 언어로 구현)

332174시간 19분 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기

SSH-Chatter: TUI 게시판 시스템 (C 언어)

Logo

ssh [email protected]

일반 BBS 소프트웨어

SSH-Chatter는 Go ssh-chat 서버의 C 재구현에서 시작되었습니다. 현대적인 C 패턴과 소규모의 테스트 가능한 코어를 사용하면서 원래 동작을 반영/확장합니다. 이 서버는 SSH/TELNET 연결을 수신 대기하며, 인증된 모든 사용자를 공유 채팅방에 배치하여 Go 참조 구현과 동일한 명령 표면을 제공합니다.

C를 이해하는 데 왜 그렇게 오래 걸리는지 아시나요? 그것은 본능이기 때문입니다.

최근 개선 사항

  • 터미널 친화적인 RSS 리더: /rss list, /rss read <tag> 명령어로 접근 가능하며, /rss add <url> <tag> 및 /rss del <tag> (운영자 전용)를 통해 방에서 함께 헤드라인을 탐색할 수 있습니다.
  • Gemini/Ollama 중재 백엔드를 사용하여 범죄나 유해 자료를 광고하는 게시물을 제거하는 백그라운드 BBS 감시 스레드, 그리고 특정 채팅 기록 정리를 위한 /delete-msg 명령어.
  • /bbs 명령어는 태그, 댓글, 부밍, 다중 줄 편집기를 갖춘 몰입형 레트로 게시판 시스템을 잠금 해제합니다.
    • 동적 정렬 (Reddit/Discord 스타일): list [hot|top|new|bumped|all] 명령어를 사용하여 bumped (최근 활동), hot (점수 및 댓글 기준 트렌드), top (가장 높은 순 추천 점수), 또는 new (생성 날짜)로 정렬된 게시물을 봅니다.
    • 검색 (Google 검색 방식): search <query>로 게시물 제목, 본문, 작성자, 태그를 대소문자 구분 없이 즉시 검색합니다.
    • 추천/댓글 배지 (Reddit/Discord 스타일): 목록에 순 추천 점수와 댓글 수를 색상화된 상태 배지(▲ 12 💬 5)로 직접 표시합니다.
    • 원활한 탐색: 게시물 읽기 중 Enter를 누르면 대시보드 목록으로 즉시 돌아가고, 목록 화면에서 Enter를 누르면 목록을 새로 고칩니다. BBS 모드 내에서 /bbs 접두사 없이 명령어를 자동으로 라우팅합니다.
  • /asciiart 라이브 편집기: 640줄 제한, IP당 10분 쿨다운, 여러 줄 출력, Ctrl+A로 취소, Ctrl+S 또는 로캘 인식 기본값 >/__ARTWORK_END>로 제출하는 키보드 단축키 제공.
  • 생일 등록을 위한 /birthday, LAN 운영자가 주소별로 권한을 위임할 수 있는 /grant <ip>, 그리고 최상위 LAN 관리자가 권한을 회수할 수 있는 /revoke <ip> 명령어.
  • 채팅 UI 새로 고침: 기록과 입력 사이의 깔끔한 구분선, 전송 후 즉시 입력 지우기, 친숙한 "잠시만 기다려주세요..." 배너.
  • 쉬운 비교와 언어 기반 이름 개수를 특징으로 하는 친숙한 다국어 캡차.
  • 비라틴 문자에 대한 닉네임 지원 확장 및 사용자 이름과 함께 원시 IP 주소를 허용하는 /ban 업그레이드.
  • 빠른 글로벌 일기 예보를 위한 /weather <city>.
  • 투표, 상태 메시지, Eliza 중재자가 제거되어 간소화된 경험.

미리보기

Preview

Preview

저장소 구조

코드베이스는 의도적으로 간결하게 구성되어 있어 새로운 기여자가 빠르게 탐색할 수 있습니다:

경로설명
src/main.c명령줄 파싱 및 프로세스 부트스트랩 (바인드 주소, 포트, MOTD, 호스트 키 디렉토리).
src/host_aggregate.c, include/ssh_chatter/host.h채팅 호스트 구현 – 세션 수명 주기, MOTD 처리, 향후 메시지 브로드캐스트 로직을 위한 훅.
src/host모듈식 호스트 서브시스템으로 src/host_aggregate.c를 통해 단일 번역 단위로 컴파일됩니다.
include/ssh_chatter데몬, 스트레스 도구, 번역 백엔드를 위한 공유 헤더.
include/ssh_chatter/contexts연결별 상태를 캡슐화하는 session_ctx_t 및 관련 구조체의 정의.
data/banner/bannerCHATTER_WELCOME_BANNER로 지정할 수 있는 샘플 환영 배너.
scripts/install_chatter_service.sh편리한 설치 스크립트로 바이너리를 빌드하고 /usr/local/bin 아래에 설치하며 systemd 유닛(chatter.service)을 연결합니다.
scripts/install_dependencies.shDebian/Ubuntu 시스템에서 빌드 전제 조건을 위한 최소 패키지 설치 프로그램.

아키텍처

Architecture

main 브랜치와 최신 상태 유지

work 브랜치는 업스트림 개발과 정기적으로 분기되어 대규모 기능이 프로덕션 트래픽을 방해하지 않고 배양될 수 있도록 합니다. main과 동기화할 때가 되면 최신 트리를 풀(pull)하고 로컬에서 병합한 후 풀 리퀘스트를 여십시오:```bash git fetch origin main git checkout work git merge --no-ff origin/main

충돌을 제자리에서 해결하고 (`src/host_aggregate.c` 헬퍼 루틴은 이미 `main`의 레이아웃을 반영하므로 일반적으로 병합은 간단합니다) `make`를 실행하여 푸시하기 전에 빌드가 여전히 성공하는지 확인하세요.

## 자동화 훅

- `host_snapshot_last_captcha`는 가장 최근에 생성된 캡챠 프롬프트와 답변을 타임스탬프와 함께 노출하여 외부 클라이언트가 무인 자동화를 대신하여 챌린지를 전달할 수 있도록 합니다.

## 보안 강화

- `scripts/safe_permission.sh`는 런타임 데이터 파일(BBS 상태, 투표 상태, 쿨다운 스냅샷, 일반 채터 상태)의 소유권과 모드를 강화합니다. 배포 후 실행하여 데이터 디렉토리를 `ssh-chatter`로 제한하고 각 파일이 `0600`으로 설정되도록 합니다. 명시적 경로를 전달하거나 실행 전에 `STATE_ROOT` 또는 해당 `CHATTER_*_FILE` 환경 변수를 내보내 대상을 재정의합니다.
- 백그라운드 BBS 와치독은 주기적으로 게시물과 댓글을 AI 중재 파이프라인(기본 Gemini, Ollama 대체)에 전달합니다. 플래그된 게시물은 자동으로 제거되고 방에 공지가 전송됩니다.
- 채팅 메시지, ASCII 아트, BBS 게시물/댓글은 AI 중재 파이프라인을 통해 흐릅니다. `CHATTER_SECURITY_AI=on`으로 활성화합니다 (Gemini의 경우 `GEMINI_API_KEY` 설정; 데몬은 자동으로 `http://127.0.0.1:11434`의 로컬 Ollama 엔드포인트로 대체합니다). `CHATTER_SECURITY_FILTER=off`로 모든 것을 비활성화합니다. 모든 공급자가 실패하면 필터는 자동으로 비활성화되어 콘텐츠를 자동으로 삭제하는 대신 대화가 계속 흐르도록 합니다.
- SSH 전송은 최신 키 교환, 암호화, MAC으로 고정되며 모든 브리지 페이로드는 삼중 AES-256-GCM 양파로 감싸져 중계기는 암호문만 볼 수 있습니다.
- 계층형 필터를 작동시키는 의심스러운 제출은 이제 IP별로 추적됩니다. 반복된 적중 시 활성화되면 자동 킥 및 밴이 트리거되는 반면, 빠른 재연결 감지기는 더 긴 복구 기간을 허용하여 불안정한 네트워크 세션이 불이익 없이 다시 참여할 수 있습니다. 자동 밴 항목은 **기본적으로 꺼져 있습니다**. 활성화하려면 `CHATTER_AUTO_BAN=on` (또는 `true`/`1`)을 설정하거나 변수를 설정하지 않은 상태로 두어 자동 밴 항목을 기록하지 않고 경고 및 제한을 유지합니다.
- 운영자는 `CHATTER_PROTECTED_IPS`로 신뢰할 수 있는 진입점(VPN 출구, 리버스 프록시, localhost)을 표시할 수 있습니다 (쉼표로 구분, 기본값 `127.0.0.1,::1,192.168.0.1`). 이로 인해 긴급 밴이 데몬을 자체 제어 평면에서 잠그지 않습니다.

## 파일 저장 및 전송

- 모든 사용자 관리 파일은 이제 `/etc/ssh-chatter/user-files`에 있습니다 (`CHATTER_FILESTORE_PATH`로 재정의, 레거시 대체: `CHATTER_FILE_STORAGE_ROOT`). 데몬은 필요한 경우 디렉토리를 생성하고 업로드를 해당 디렉토리로 제한합니다.
- SSH 클라이언트는 사용자 정의 래퍼 없이 표준 `scp`를 사용합니다. `/name.ext`를 저장소 트리의 루트로 간주합니다: `scp my.zip user@host:/demos/my.zip`은 `/etc/ssh-chatter/user-files/demos/my.zip`에 쓰고, `scp user@host:/readme.txt ./`는 `/etc/ssh-chatter/user-files/readme.txt`를 다운로드합니다.
- TELNET 클라이언트는 새로운 `/filestore` 명령을 사용합니다. `/filestore`는 사용 가능한 파일을 나열하고, `/filestore-upload`는 `rz` 세션을 시작하며, `/filestore-download <name>`은 `sz` 세션을 시작합니다. 서버에 `lrzsz` (또는 `rz`/`sz`를 제공하는 패키지)를 설치하여 ZMODEM 백엔드가 해당 헬퍼를 생성할 수 있도록 합니다.
- `/filestore-upload`는 선택적 대상을 허용합니다 (예: `/filestore-upload /kitten/meow.png`). SSH-Chatter는 `/kitten` 디렉터리를 자동으로 생성하고 업로드된 파일을 그곳에 배치하며, 이는 SCP가 `user@host:/kitten/meow.png`와 같은 경로를 사용하는 방식을 반영합니다.
- 두 전송 방식은 혼합하여 사용할 수 있습니다: 무인 스크립트 전송에는 SSH, 내장 ZMODEM 도구가 있는 복고풍 BBS 클라이언트에는 TELNET.

## 모스 릴레이
SSH-Chatter는 아마추어 햄 라디오 중계를 지원합니다.
이는 전역 모스 신호를 보여줍니다.
보려면 `/morse on`, 보내려면 `/morse-reply`.

### 프로토콜 세부사항

구현은 Binkp 프로토콜 사양을 따릅니다:
- 2바이트 헤더가 있는 표준 Binkp 프레임 구조
- 세션 비밀번호 인증 (CMD\_PWD/CMD\_OK)
- 60초마다 킵얼라이브 메커니즘 (CMD\_NUL)
- 메시지 동기화를 위한 사용자 지정 CHAT 명령 (CMD\_CHAT, 확장)

## 전제 조건

프로젝트를 빌드하려면 다음이 포함된 POSIX 환경이 필요합니다:

- C23 호환 컴파일러 (예: `gcc` 또는 `clang`)
- `make`
- `libssh` 개발 헤더 및 라이브러리 (Debian/Ubuntu에서는 `libssh-dev`)
- `libcurl` 개발 헤더 및 라이브러리 (Debian/Ubuntu에서는 `libcurl4-openssl-dev`)
- `uchardet` 개발 헤더 및 라이브러리 (Debian/Ubuntu에서는 `libuchardet-dev`)
- `icu` (International Components for Unicode) 개발 헤더 및 라이브러리 (Debian/Ubuntu에서는 `libicu-dev`)
- `lz4` 압축 라이브러리 및 개발 헤더 (Debian/Ubuntu에서는 `liblz4-dev`)
- POSIX 스레드 (일반적으로 시스템 `libpthread`에서 제공)
- `python3-pygments` (Tetris 위장 화면을 위한 `pygmentize` 하이라이터 제공)

Debian/Ubuntu에서는 다음 명령으로 의존성을 설치할 수 있습니다:```bash
sudo apt-get update
sudo apt-get install build-essential libssh-dev libcurl4-openssl-dev libuchardet-dev libicu-dev liblz4-dev

소스에서 빌드하기

리포지토리를 클론하고 제공된 Makefile을 사용하십시오:```bash make

This produces an `ssh-chatter` binary in the repository root and a `libssh_chatter_backend.so` shared object that exposes the
translation helpers for reuse in other applications.  Clean intermediate artifacts with `make clean`.

### 공유 번역 백엔드 사용하기

The shared object reuses the server's C translation pipeline (including ANSI placeholder preservation) so other processes can
obtain translations without spawning the full SSH host.  Link against `libssh_chatter_backend.so` and include
`include/ssh_chatter/ssh_chatter_backend.h`:```c
#include "ssh_chatter/ssh_chatter_backend.h"

int main(void) {
  char translated[4096];
  char detected[64];

  if (ssh_chatter_backend_translate_line("Hello, world!", "ko", translated, sizeof(translated), detected, sizeof(detected))) {
    printf("Detected %s -> %s\n", detected, translated);
  }
}

환경 변수에 GEMINI_API_KEY (선택적으로 GEMINI_API_BASE 또는 GEMINI_MODEL)를 설정하여 헬퍼가 Google Generative Language API에 접근할 수 있도록 합니다. 이는 주 데몬의 런타임 요구 사항을 반영합니다. 채팅 서버를 시작하기 전에 ./scripts/test_gemini_connection.sh를 실행하여 자격 증명이 아웃바운드 호출을 허용하는지 확인할 수 있습니다. 이 스크립트는 원시 Gemini 응답을 출력하므로 요청이 성공했는지 확인할 수 있습니다.

수동으로 서버 실행하기

도구 다운로드