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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
mail-security-tester — 메일 보안 및 필터링 솔루션을 위한 테스트 프레임워크 | Kitploit
도구/GitHubGitHub/tkcert/mail-security-tester
Phishing ToolsVulnerability ScannersIDS/IPS EvasionPenetration TestingEmail Security
GitHubtkcert/mail-security-tester

mail-security-tester

메일 보안 및 필터링 솔루션을 위한 테스트 프레임워크

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Build Status

메일 보안 테스트 프레임워크

메일 보안 및 필터링 솔루션을 위한 테스트 프레임워크입니다.

중요: 이 도구로 악의적인 일을 하지 마십시오! 클라우드 또는 호스팅 솔루션에 대한 테스트는 항상 테스트 제공자의 승인을 받아야 합니다. 자신의 테스트 계정만 사용하고 테스트 메일로 다른 사람을 귀찮게 하지 마십시오.

설치

메일 보안 테스트 프레임워크는 Python >=3.5에서 작동합니다. 이 저장소를 pull 하고 바로 사용하십시오. 추가 종속성은 필요하지 않습니다.

사용법

mail-tester.py 스크립트가 테스트를 실행합니다. ./mail-tester.py --help로 도움말 메시지를 읽고 ./mail-tester.py -l로 테스트 및 회피 모듈 목록을 확인하여 기능과 스크립트 사용법을 파악하십시오. 몇 가지 힌트:

  • 최소한의 테스트 실행을 위해서는 --smtp-server 및 --to 매개변수를 제공해야 합니다.
  • 모든 매개변수는 -- 접두사 없이 설정 파일에 저장할 수 있습니다. 이러한 설정 파일은 ./mail-tester.py @tester.conf 명령으로 사용할 수 있습니다(tester.conf에 설정 포함).
  • --to를 사용하여 여러 수신자를 구성하여 다양한 필터 구성을 테스트할 수 있습니다.
  • 일부 메일 필터링 솔루션은 일정 시간 후에 메시지를 거부할 수 있습니다. 메일 자동 제한을 위해 --auto-delay를 사용하십시오. 이는 --delay-step, --delay-max 및 --delay로 세부 조정할 수 있습니다.
  • 일부 테스트(스팸 및 악성코드)에는 샘플이 필요합니다. 샘플을 디렉터리에 넣고 --spam-folder 및 --malware-folder 매개변수로 해당 디렉터리를 구성하십시오. 샘플은 이 저장소에 포함되어 있지 않습니다(앞으로도 포함되지 않습니다). 악성코드를 구할 수 있는 좋은 곳은 theZoo, Das Malwerk 또는 기타 컬렉션입니다. 스팸은 스팸 폴더에서 직접 내보낼 수 있지만 EML 형식이어야 합니다.
  • 블랙리스트는 --blacklist 매개변수로 제공할 수 있으며 발신자 주소로 사용됩니다.
  • Shellshock 및 subject XSS 테스트 케이스에는 유효한 백커넥트 도메인이 필요합니다. 이를 통해 백커넥트(특히 DNS 요청)를 확인할 수 있어야 합니다. 무료 Canary Tokens 서비스를 이 용도로 사용할 수 있습니다. 이 훌륭한 서비스를 제공해 주신 Thinkst에 감사드립니다!
  • --evasion content-disposition을 사용하면 몇 가지 멋진 첨부 파일 인식 회피 트릭을 활성화할 수 있습니다. 이 트릭은 과거에 AV/샌드박싱 솔루션을 혼란스럽게 하여 악성 메일을 통과시키는 데 사용되었습니다.
  • --log로 테스트 결과를 기록하는 것을 잊지 마십시오. 메일 필터링 제공자는 종종 SMTP 대화 상자에서 메일을 거부하며, 이는 생성된 로그에 반영됩니다.
  • 테스트 케이스는 --output을 사용하여 디렉터리에 일반 파일로, --mbox로 MBox 형식으로, 또는 --maildir로 MailDir 형식으로 덤프할 수 있습니다. 이는 메일 사용자 에이전트를 테스트할 때 메일을 보내지 않고도 유용하며, 생성된 테스트 케이스를 문서화하거나 검토하는 데에도 유용합니다.

개발 및 확장

테스트

자체 테스트는 tests/ 디렉터리의 기존 또는 새로 생성된 Python 파일에 클래스를 구현하여 추가할 수 있습니다. 클래스는 이 프로젝트의 tests.base 모듈에 있는 MailTestBase의 하위 클래스여야 합니다. 클래스 변수 active가 True로 설정되면 새로 구현된 테스트가 자동으로 검색됩니다. 또한 (메인 저장소에 테스트를 다시 기여할 계획이 있다면) 클래스 변수 identifier, name 및 description을 적절히 설정해야 합니다.

다음과 같은 기본 클래스가 있으며 재정의할 메서드 또는 클래스 변수가 있습니다.

  • MailTestBase: 일반적인 테스트를 위한 테스트 클래스.
    • generateTestCases(): 테스트 메시지를 생성합니다. 유효한 메일 메시지를 보장하기 위해 Python email.mime.* 패키지의 MIME* 클래스나 email.message의 Message 클래스를 사용하여 생성해야 합니다.
    • active: 테스트를 활성화할지 여부를 나타내는 부울 값.
    • identifier: 테스트의 짧은 식별자. 이 값은 매개변수에서 테스트를 활성화하거나 비활성화하는 데 사용됩니다.
    • name: 짧은 테스트 제목.
    • description: 긴 테스트 설명. 약 100자 이내여야 합니다.
    • delivery_sender 및 delivery_recipient: 부울 값. 기본값은 False입니다. 일반적으로 발신자와 수신자는 메시지에 설정되며 Python SMTP 모듈이 이를 가져옵니다. 때로는 SMTP 라이브러리에서 명시적으로 설정하는 것이 바람직할 수 있으며, 이 값을 True로 설정하여 구성할 수 있습니다.
    • finalizeMessage(msg): 기본적으로 기본 테스트 클래스는 및 헤더를 적절히 설정합니다. 이 동작은 테스트 케이스에 필요한 경우 재정의할 수 있습니다.

생성된 메시지의 Subject를 설정하여 수신 받은 편지함에서 테스트를 인식할 수 있도록 하는 것이 좋습니다.

회피

회피 클래스는 메일 보안 솔루션이 특정 메일 속성을 인식하지 못하도록 하는 기술을 구현합니다. 현재는 의도적으로 손상된 Content-Disposition 헤더를 사용하여 첨부 파일을 이러한 솔루션으로부터 숨기려는 회피 기술이 구현되어 있습니다.

새 회피 구현

회피는 팩토리 클래스 패턴으로 구현됩니다. DeliveryBase 클래스는 BaseEvasionFactory 클래스에서 파생된 팩토리 클래스를 인스턴스화합니다. 팩토리 생성자는 회피가 활성화되었는지 여부를 나타내는 플래그를 받습니다. 회피 팩토리 인스턴스는 테스트 클래스에 전달되며, 회피 식별자를 키로 하는 딕셔너리인 evasions 속성에 저장됩니다. 테스트 내에서 getEvasionGenerator()를 사용하여 회피 클래스(EvasionBase 기반)가 인스턴스화됩니다. 생성자 매개변수는 각 회피 기술별로 개별적으로 정의됩니다.

회피를 구현하는 데 사용되는 기본 클래스는 다음과 같습니다.

  • BaseEvasionFactory: 회피 팩토리는 이 클래스를 기반으로 해야 합니다. 일반적으로 다음 클래스 변수만 설정하면 됩니다.
    • active: 회피를 활성화하려면 True로 설정합니다.
    • identifier: 테스트 구성에서 활성화하는 데 사용되는 회피 모듈의 짧은 식별자.
    • name: 회피 기술의 짧은 제목.
    • description: 회피 기술의 긴 설명. 약 100자 이내여야 합니다.
    • generator_evasion: 회피가 활성화된 경우 인스턴스화되는 회피 클래스.
    • generator_default: 회피가 비활성화된 경우 인스턴스화되는 회피 클래스.
  • BaseEvasion: 회피 구현은 이 기본 클래스의 하위 클래스여야 합니다. 다음 메서드를 재정의해야 합니다.
    • __init__(): 회피 기술로 조작할 기본 메시지 또는 첨부 파일을 사용하여 클래스를 인스턴스화해야 합니다.
    • generate(): 생성자에 전달된 객체에 회피 기술을 적용하고 (설명, 회피가 적용된 객체) 튜플로 호출자에게 생성합니다.

일반적으로 회피 클래스는 모든 회피 변형을 생성하고 기본값을 전용 테스트 케이스로 전달해야 하며, 기본 회피 클래스는 주어진 객체를 전달하거나 헤더와 같은 필요한 데이터 구조만 생성합니다.

테스트 케이스에서 회피 기술 사용

회피 기술은 적용 가능한 테스트 케이스에서 사용됩니다. 예를 들어 회피 기술이 메일이나 첨부 파일의 헤더를 조작하는 경우 다음 단계를 구현해야 합니다.

  1. 회피를 고려하지 않고 기본 객체(메일 또는 첨부 파일)를 생성합니다.
  2. self.evasions의 회피 팩토리 인스턴스를 사용하여 적절한 회피 클래스를 인스턴스화합니다. 예: evasion_items = self.evasions["evasion_identifier"].getEvasionGenerator(message)
  3. 생성기를 반복하며 테스트 케이스를 생성합니다.
root@kitploit:~
for evasion_item in evasion_items:
    yield evasion_item

콘텐츠 배치 회피 기술 사용

콘텐츠 배치 회피 기술은 이미 프레임워크에 구현되어 있으며 악성 첨부 파일 인식을 목표로 하는 모든 테스트 케이스에 사용해야 합니다. 생성자는 첨부 파일과 의도된 파일 이름을 받습니다. 그런 다음 회피 클래스는 (회피 이름, 회피 기술이 적용된 첨부 파일) 튜플을 생성하며, 이는 테스트의 generateAttachments() 메서드에서 직접 생성할 수 있습니다.

도구 다운로드
From
To
  • MailAttachmentTestBase: 첨부 파일 테스트 케이스를 위한 테스트 클래스. Subject와 텍스트 부분이 포함된 완전한 유효한 메일을 생성하고 테스트 케이스를 첨부합니다. MailTestBase에서 파생되므로 여기서 해당 메서드/변수를 재정의할 수 있습니다.
    • generateAttachments(): 테스트 케이스를 (설명, 첨부 파일) 튜플로 생성합니다.
    • subject: Subject를 설정합니다. {} 자리 표시자는 generateAttachments()에서 생성된 설명으로 대체됩니다.
    • generateTestCases(): 위에서 설명한 메시지 생성 구현으로 이미 재정의되어 있지만, 필요에 따라 추가로 수정할 수 있습니다.