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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
revsuit — RevSuit는 침투 테스트 중 대상 호스트로부터 연결을 수신하도록 설계된 유연하고 강력한 리버스 커넥션 플랫폼입니다. | Kitploit
도구/GitHubGitHub/li4n0/revsuit
Penetration Testing FrameworksReconnaissanceVulnerability AnalysisExploitationInformation GatheringWeb SecurityPenetration TestingDNS Analysis
GitHubli4n0/revsuit

revsuit

RevSuit는 침투 테스트 중 대상 호스트로부터 연결을 수신하도록 설계된 유연하고 강력한 리버스 커넥션 플랫폼입니다.

저장소 보기
564693년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

RevSuit - 유연하고 강력한 역방향 연결 플랫폼

영어 |简体中文

개요

RevSuit는 침투 테스트 시 대상 호스트로부터 연결을 수신하기 위해 설계된 유연하고 강력한 역방향 연결 플랫폼입니다. 현재 HTTP, DNS, RMI, LDAP, MySQL 및 FTP 프로토콜을 지원합니다.

유연함:

  1. RevSuit는 다양한 연결을 포착하기 위해 유연한 규칙을 설정할 수 있습니다.
  2. 바이너리를 통해 배포 및 실행하여 까다로운 종속성 오류를 걱정할 필요가 없습니다.

강력함:

  1. 규칙을 통해 다양한 연결에 대한 응답을 사용자 정의하고 템플릿 변수를 사용하여 동적 응답 생성을 지원합니다.
  2. 다양한 프로토콜을 지원하며, DNS 리바인딩, MySQL Load Local Data, JDBC Deserialize Exploit, FTP 수동 모드 SSRF 등 일부 프로토콜의 심층 활용을 지원합니다.
  3. 스캐너와 함께 사용할 수 있도록 기본 지원합니다.
  4. 인기 있는 업무용 소프트웨어로 푸시 알림을 지원합니다.
  5. 기타 세심하고 상세한 기능들.

기본 사용법

설치 및 구성

최신 릴리스를 직접 다운로드하거나 다음 단계에 따라 빌드하세요:

root@kitploit:~
git clone https://github.com/Li4n0/revsuit.git
cd revsuit/frontend && yarn install && yarn build
cd ../ && go build ./cmd/revsuit/revsuit.go

RevSuit는 첫 실행 시 기본 설정 파일을 생성합니다. 필요에 따라 설정 파일을 수정한 후 다시 실행하세요. 설정 파일에 대한 자세한 설명은 설정 노트에서 확인할 수 있습니다.

실행

IP 위치를 확인하려면 IP 위치 데이터베이스를 사용해야 합니다. 기본적으로 QQwry가 데이터 소스로 사용되며, GeoIP를 사용하도록 설정을 수정할 수도 있습니다. 선택한 데이터베이스가 현재 디렉토리에 없거나 업데이트된 지 일주일이 넘으면 RevSuit가 자동으로 최신 데이터베이스를 다운로드합니다. 다운로드가 실패하면 IpArea 필드는 항상 null이 됩니다.

root@kitploit:~
$ ./revsuit   
2021/05/16 22:55:10 [ INFO] Downloading qqwry.dat...

    ____            _____       _ __ 
   / __ \___ _   __/ ___/__  __(_) /_
  / /_/ / _ \ | / /\__ \/ / / / / __/
 / _, _/  __/ |/ /___/ / /_/ / / /_  
/_/ |_|\___/|___//____/\__,_/_/\__/    
                                   vBeta0.1
     https://revsuit.pro
2021/05/16 22:55:22 [ INFO] Starting HTTP Server at :80, token:your_token
2021/05/16 22:55:22 [ INFO] Start to listen FTP PASV port at :2020, PasvIP is 10.9.8.7
2021/05/16 22:55:22 [ INFO] Starting FTP Server at :21
2021/05/16 22:55:22 [ INFO] Starting MySQL Server at :3306
2021/05/16 22:55:22 [ INFO] Starting RMI Server at :1099
2021/05/16 22:55:22 [ INFO] Starting DNS Server at :53

실행 후, HTTP 서버의 /revsuit/admin/ 경로에 접속하여 토큰을 입력하면 제어판에 액세스할 수 있습니다.

규칙 생성 및 연결 수신

HTTP 규칙 생성을 예로 들어 설명합니다:

몇 가지 참고 사항은 다음과 같습니다:

  1. 규칙의 name과 flagFormat은 고유합니다.
  2. FlagFormat은 정규 표현식 구문을 사용하며, 프로토콜에 따라 flagFormat이 일치하는 필드가 다릅니다. 규칙을 생성할 때 해당 힌트를 확인하여 세부 정보를 얻을 수 있습니다.
  3. 순위가 높은 규칙이 먼저 적용됩니다.
  4. 다양한 프로토콜 규칙에 대해 다양한 사용자 정의 응답을 만들 수 있으며, 일부 프로토콜의 경우 템플릿 변수를 사용할 수 있습니다.
  5. flagFormat에서 정규 표현식의 명명된 그룹을 설정할 수 있으며, 일치하는 그룹의 결과도 템플릿 변수로 사용됩니다.

아래와 같이 http 프로토콜의 내장 템플릿 변수와 사용자 정의 템플릿 변수를 사용하는 규칙을 생성하고 이름을 test_create_rule로 지정합니다:

img.png

그런 다음 규칙을 만족하는 요청을 보내고 응답을 확인합니다.

img.png

요청은 동시에 플랫폼에 기록됩니다.

img.png

알림

업무용 소프트웨어에서 새 연결에 대한 알림을 받으려면 설정 파일에서 해당 소프트웨어의 웹후크 주소를 구성하고 해당 규칙의 Notice 스위치를 켜면 됩니다. 현재 4가지 소프트웨어 유형만 지원합니다: dingtalk, wechat, lark, slack. (Discord 및 Telegram 지원은 계획 중입니다.)

규칙 가져오기/내보내기

플랫폼을 마이그레이션하거나 데이터를 제거할 때 규칙을 다시 만드는 것이 번거로울 수 있습니다. 따라서 플랫폼은 규칙 가져오기 및 내보내기를 지원합니다.

이 기능의 진입점은 Settings > RULES에 있습니다.

규칙은 가져오기 및 내보내기를 위해 yaml 형식으로 저장되며, 다음과 같습니다:

root@kitploit:~
http:
  - name: test_create_rule
    flag_format: (?P<what>\w+)\?
    rank: 0
    push_to_client: false
    notice: false
    response_status_code: "302"
    response_headers:
      Location: ${query.url}
    response_body: ${header.say} ${what}
  - name: other_rule
    flag_format: other
    rank: 1
    push_to_client: false
    notice: true
    response_status_code: "200"
    response_headers: { }
    response_body: Hello Revsuit!
dns:
  ... ...

고급 사용법

스캐너와 함께 사용

RevSuit는 제 스캐너 프로젝트에서 분리되었기 때문에 기본적으로 스캐너와 함께 작동합니다.

RevSuit의 관점에서 스캐너를 클라이언트라고 부릅니다.

연결 설정

RevSuit는 HTTP Server-sent Events (SSE)를 사용하여 클라이언트와 단방향 통신 채널을 설정합니다.

채널의 API는 /revsuit/api/events?message입니다. 클라이언트는 먼저 헤더에 Token: your token 헤더를 추가한 다음 API에 접근하여 채널을 설정해야 합니다. 플랫폼이 새 연결을 수신하면 규칙에 의해 캡처된 flag가 이 채널을 통해 클라이언트로 전달됩니다. img.png

다음은 Golang의 sse 라이브러리를 사용한 간단한 데모입니다.

다중 클라이언트

위와 같이 RevSuit는 여러 클라이언트를 지원하며, 연결 상태에 있는 각 클라이언트는 flag 푸시를 수신하므로 분산 스캐닝을 지원할 수 있습니다.

모든 클라이언트가 모든 flag 푸시를 수신하지 않도록 하려면 sse 연결을 생성할 때 Flag-Filter 요청 헤더를 사용하여 해당 클라이언트가 수신할 flag의 형식(정규 표현식)을 설정할 수 있습니다:

img.png

임시 저장 큐

RevSuit는 클라이언트 연결이 없을 때 flag를 큐에 임시로 저장하고 클라이언트가 연결되면 전송하므로, 클라이언트 연결이 끊어져 취약점을 놓칠 걱정이 없습니다. (이는 지연 트리거 취약점을 발견하는 데 특히 유용합니다.)

flagGroup 사용

실제 취약점 스캐닝 시나리오에서는 단일 취약점 지점에 대해 많은 수의 다양한 페이로드를 보낼 수 있으며, 이들 모두 유효할 수 있으므로 역방향 연결 플랫폼이 많은 요청을 수신하게 되지만, 동일한 취약점으로 인해 발생합니다. 동일한 취약점에 대해 클라이언트가 너무 많은 flag를 수신하지 않도록 하려면 규칙 flagFormat의 flagGroup 기능을 활용할 수 있습니다.

FlagGroup은 규칙의 flagFormat 필드에서 익명 그룹이 일치하는 내용입니다. 플랫폼은 그룹에서 일치하는 내용을 확인하고, 해당 내용(flagGroup)이 처음 캡처될 때만 클라이언트로 플래그가 푸시됩니다.

예를 들어, SSRF 스캐닝.

먼저 다음과 같은 규칙을 생성합니다:

root@kitploit:~
http:
  - name: ssrf
    flag_format: (ssrf[a-z0-9]{6})[0-9]{1,3}
    rank: 0
    push_to_client: false
    notice: false
    response_status_code: "200"
    response_headers: { }
    response_body: "Here is a SSRF!"

대상이 https://www.testvuln.com?url=api.com&p=useless이고 SSRF에 대해 5개의 페이로드가 있다고 가정합니다. 스캐너가 보내는 최종 요청은 ['https://www.testvuln.com?url=http://revsuit.com/ssrfa98oni1&p=useless','https://www.testvuln.com?url=http://revsuit.com/ssrfa98oni2&p=useless', ... ,'https://www.testvuln.com?url=//revsuit.com/ssrfa98oni5&p=useless']일 수 있습니다. 이들 모두 성공적으로 공격할 수 있습니다.

그러나 규칙의 flagFormat에 익명 그룹이 사용되었기 때문에 플랫폼은 연결된 flagGroup(이 경우 ssrfa98oni)을 쿼리하고, 처음 나타날 때만 클라이언트에 flag를 푸시하므로 클라이언트는 하나의 flag(ssrfa98oni1)만 수신합니다. 이는 이미 대상의 url 매개변수가 취약함을 증명합니다.

다중 모듈 조합

실제 침투 테스트 시나리오에서는 RevSuit의 다양한 모듈을 조합하여 특정 작업을 쉽고 빠르게 수행할 수 있습니다. 다음은 Java Web의 블라인드 XXE 예제로, RevSuit의 HTTP 및 FTP 모듈을 템플릿 변수와 함께 사용하여 포트 스캔을 빠르게 완료하는 방법을 보여줍니다.

먼저 evil.dtd를 반환하는 HTTP 규칙을 생성하고, DTD의 내용에 대한 응답을 사용자 정의하여 RevSuit의 FTP 서비스에 연결하도록 하고, 템플릿 변수를 사용하여 스캔할 호스트와 포트를 FTP의 사용자 및 비밀번호를 통해 FTP로 전달합니다.

create evil.dtd rule

그런 다음 사용자 및 비밀번호 템플릿 변수에서 스캔할 호스트와 포트를 수신하는 FTP 규칙을 생성하고, 이를 Pasv 주소로 설정합니다.

create ftp scan rule

그런 다음 BurpSuit를 사용하여 스캔을 실행하고, evil.dtd URL에 호스트 및 포트 매개변수를 설정하여 포트 스캔의 대상을 설정합니다.

xxe

실행 결과는 다음과 같습니다:

ftp-scan

이는 Passive Address에 접근할 수 없으면 FTP 연결이 중단되기 때문에, 연결이 정상적으로 종료되는지 여부를 통해 포트가 열려 있는지 확인할 수 있습니다. 이 예에서는 포트 8005와 8080이 열려 있음을 성공적으로 감지했습니다.

추가 사용법

더 자세한 위키가 준비 중입니다. 그 전에 직접 탐색해 보세요.

피드백, 제안 및 커뮤니케이션

이슈를 제출하거나 Weixin을 통해 연락해 주세요: TGk0bjA2Cg==

감사의 말

참고

이 프로젝트는 다음 뛰어난 프로젝트의 코드를 참고했습니다:

  • https://github.com/rmb122/rogue_mysql_server
  • https://github.com/256dpi/newdns
  • https://github.com/EmYiQing/JNDIScan

특별히

이 프로젝트 개발 기간 동안 도움과 조언을 아낌없이 주신 친구 @E99p1ant님께 감사드립니다.

라이선스

@Apache License 2.0

도구 다운로드