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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/tevora-threat/rt_redirectors
Cloud Infrastructure SecurityScripting & AutomationPenetration TestingDevSecOpsCommand and ControlRed Teaming
GitHubtevora-threat/rt_redirectors

rt_redirectors

레드 팀 C2를 위한 리다이렉터를 구성하는 Ansible 역할

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Ansible 역할로, mod_rewrite 프록시 규칙을 사용하여 기존 서버에 리다이렉터를 신속하게 배포할 수 있습니다.

Debian 및 Ubuntu를 지원하며, Digital Ocean 및 Azure에서 테스트되었습니다.

리다이렉터, Ansible 및 이 역할에 대한 심층 분석 블로그는 threat.tevora.com/automating-redirector-deployment-with-ansible 을 참조하세요.

시작하려면 이 리포지토리를 클론하고, Ansible을 설치한 후, 이 리포지토리를 roles 폴더에 넣으세요. 아래 샘플 플레이북은 리다이렉터 인스턴스 구성을 빌드하는 방법의 예시입니다.

인스턴스 플레이북 샘플 provision_redirector_example.yml

root@kitploit:~
- hosts: EnigmaticEmu
  gather_facts: False
  user: root
  pre_tasks:
  - name: Install python for Ansible
    raw: test -e /usr/bin/python || (apt -y update && apt install -y python-minimal)
    changed_when: False
  - setup: # aka gather_facts 
  tasks: 
  - include_role:
      name: redirectors
    vars:
      le_email: '[email protected]'
      hop_dir: hops/empire_hop
      vhosts: [
        {
          servername: 'fakeamazon.com',
          http_port: 80,
          https_port: 443,
          c2filters: [
            {
              rewritefilter: '^/orders/track/?$',
              host: '123.124.125.126'
            }
          ],
          configs: [ 
            'RewriteRule !\.php$ https://www.amazon.com/%{REQUEST_URI} [L,R=302]'
          ]
        },
 {
          servername: 'fakegoogle.com',
          http_port: 80,
          https_port: 443,
          config_files: [
            "redirectors.txt",
            "apache_tweaks.conf"
          ],
        }
      ] 

예제 설명:

  • - hosts: EnigmaticEmu 이는 플레이북이 실행될 호스트를 지정합니다. 이 플레이북이 올바르게 실행되려면, 엔그마틱 에뮤의 호스트명 또는 IP가 정의된 인벤토리 파일을 사용해야 합니다.

  • gather_facts: False Ansible의 gather_facts 태스크는 Python 2가 설치되지 않은 최신 Ubuntu 버전에서 깨집니다. gather_facts를 비활성화하여 Python 2를 먼저 설치할 수 있도록 합니다. 이는 호환성 부트스트랩을 위한 것입니다.

  • user: root 이는 원격 서버에 로그인할 사용자를 지정합니다. Ansible은 모든 구성을 SSH를 통해 수행합니다. 원하는 사용자로 변경하세요. *sudo가 필요한 경우, become: true를 추가하고 ansible-playbook을 --ask-become-pass와 함께 호출해야 할 수도 있습니다.

  • pre_tasks:

    • 이 줄들은 Python 2가 없으면 설치하고 gather_facts를 실행합니다. tasks: 이제 본론에 도달했습니다. 플레이북 태스크입니다!
  • - include_role: 예상대로, 이는 포함할 역할을 지정하며, 다음 줄 name: redirectors는 redirectors 역할을 포함하도록 지정합니다.

  • vars: 여기서 구성의 핵심 부분을 수행합니다. 서버에는 le_email, hop_dir, vhosts 세 가지 변수가 포함됩니다. le_email은 lets_encrypt에 사용할 이메일 주소를 지정하는 데 사용됩니다. 자신이 제어하는 이메일을 사용해야 합니다. 역할의 복사 태스크에서 사용했던 hop_dir을 기억하시나요? 여기서 정의됩니다! hop 디렉토리는 플레이북 자체의 위치를 기준으로 ./files/ 아래에 위치해야 합니다.

  • hosts: [...] vhosts 변수는 vhost 구성 딕셔너리의 리스트입니다. 이를 통해 서버별로 여러 도메인과 C2 프로필을 가진 여러 vhost를 설정할 수 있습니다. 이 변수는 리스트라는 점을 기억하세요. 이는 구성 파일을 템플릿화하는 방식과 redirectors 역할에서 이러한 변수를 사용하는 다른 방식에서 중요합니다.

  • servername: 'fakeamazon.com' 이는 서버의 호스트명이며, 이 호스트명이 서버의 IP를 가리키는 DNS 레코드가 반드시 있어야 합니다.

  • http_port 및 https_port는 매우 명확합니다. http와 https가 수신할 포트를 선택하세요.

  • 계속하기 전에 구성에서 mod_rewrite 규칙을 정의하는 여러 방법이 있음을 주목하세요. 이는 주로 실험과 이 플레이북을 Python API와 통합할 계획 때문입니다.

  • c2filters: [...] c2filter 딕셔너리의 리스트입니다. URI가 rewritefilter와 일치하는 모든 요청은 host로 프록시됩니다.

  • configs[...] 구성 문자열의 리스트입니다. 각 문자열이 파일에 추가됩니다.

  • config_files[...] 파일명 또는 경로 파일명 또는 경로의 리스트입니다. 각 파일의 내용이 Apache에 추가됩니다. @Inspired-Sec의 멋진 도구(https://blog.inspired-sec.com/archive/2017/04/17/Mod-Rewrite-Automatic-Setup.html)와 같은 mod_rewrite 자동화 도구 출력을 활용하는 데 유용합니다.

이 구성을 대부분 JSON으로 형식화했지만(YAML은 JSON의 상위 집합), 일치하는 한 원하는 대로 형식화할 수 있습니다.

구성에서 여러 vhost가 있고 각 vhost가 구성 템플릿에 삽입하는 방식을 지정하는 하나 이상의 방법을 사용할 수 있음을 확인하세요.

vhost당 하나의 구성 파일을 만드는 이유는 Letsencrypt, 특히 certbot-apache 구성 요소가 구성 파일당 하나의 vhost만 지원하기 때문입니다. 이로 인해 여러 구성 파일을 서버에 프로비저닝하게 됩니다.

플레이북 실행

역할을 실행하려면, 위에서 다루었던 예제 형태의 플레이북을 생성하고 ansible-playbook -i <your_hosts_file> <your_playbook>을 실행하세요. 이 역할이 플레이북과 동일한 경로의 roles 디렉토리에 있고, hop 및/또는 구성 파일이 올바르게 배치되었는지 확인하세요. 디렉토리 레이아웃은 다음과 같아야 합니다:

root@kitploit:~
├── my_playbook.yml
├── files
│   └── empire_hop
│       └── news
│           └── login.php
└── roles
    ├── redirectors
    │   ├── files
    │   ├── handlers
    │   │   └── main.yaml
    │   ├── meta
    │   ├── tasks
    │   │   ├── apache.yml
    │   │   ├── letsencrypt.yml
    │   │   └── main.yml
    │   ├── templates
    │   │   ├── apache_sslvhost.conf.j2
    │   │   └── apache_vhost.conf.j2
    │   └── vars
도구 다운로드