
SPF, DKIM, DMARC, DNSSEC, MTA-STS 및 DNS 위생을 감사하여 도메인의 이메일 스푸핑 및 피싱 노출도를 등급화하는 Bash 스크립트입니다.

spoofcheck에서 영감을 받았습니다.
메일 인증 검사기는 SPF, DKIM, DMARC, DNSSEC, MTA-STS 및 루트 도메인 해킹을 검증하여 도메인이 스푸핑 및 피싱으로부터 얼마나 잘 보호되는지 평가합니다.
기능:
pct, 보고 주소(외부 보고 승인 포함)-S 사용 시 SMTP 동작: 오픈 릴레이, 스머글링, NTLM, AUTH 표면bash mailAuthCheck.sh google.com
bash mailAuthCheck.sh google.com example.com github.com
여러 도메인을 한 번에 전달할 수 있으며, 각 도메인은 자체 박스형 헤더에 보고되고 검사는 도메인별로 차례로 실행됩니다. 배너는 한 번 출력되고, 대상 카드는 도메인마다 한 번씩 출력됩니다:
│ MAIL AUTHENTICATION CHECKER v1.1
│ The existence of a security record does not mean
│ it is actually implemented
│
╔══════════════════════════════════════════════════════════════════════╗
║ target example.com ║
║ resolver 8.8.8.8 2026-11-13T00:56:14Z ║
╚══════════════════════════════════════════════════════════════════════╝
배너와 카드는 하나의 너비를 공유하므로 버전이 카드의 오른쪽 가장자리 위에 위치합니다. 도메인이 기본 72열보다 길면 둘 다 넓어지며, 실행 중 모든 도메인에 동일한 너비가 사용되어 박스가 정렬됩니다.
옵션은 도메인 앞, 사이 또는 뒤에 올 수 있습니다:
-s SELECTOR 시도할 추가 DKIM 선택자 (반복 가능)-r LABEL 테스트할 Microsoft 365 테넌트 이름 (기본값: 각 도메인의 첫 번째 레이블)-d SERVER 쿼리할 DNS 리졸버 (기본값: 8.8.8.8, 또는 $DNS_SERVER)-v 원시 DNS 레코드와 세부 정보 표시-q 경고와 실패만 표시-S 침투적 SMTP 프로브(오픈 릴레이, 스머글링, NTLM, AUTH)도 실행; 아웃바운드 25/587 포트가 필요하며 MX 호스트당 1분 이상 소요종료 상태: 0 실패한 검사 없음, 1 하나 이상의 실패한 검사 (모든 도메인에서), 2 사용법 오류.
기본적으로 보고서는 AUTHENTICATION, DNS HYGIENE, MAIL DELIVERY, TRANSPORT SECURITY, ADDITIONAL 섹션으로 그룹화되며, 레코드는 각 검사 아래에 회색으로 표시됩니다.
모든 행은 고정된 3열 표입니다: 상태, 짧은 검사 이름(최대 12자, 예: DKIM, Wildcard, Root domain), 그리고 설명. DKIM 선택자, MX 호스트 또는 SPF include와 같은 검사별 한정자는 괄호 안에 설명 뒤에 추가되므로, 모든 섹션에서 열이 정렬됩니다:
OK DKIM secure (2048-bit RSA) (selector1._domainkey.example.com)
OK Wildcard no wildcard at the dns apex
심각도는 레코드만이 아니라 스푸핑에 미치는 영향을 따릅니다. SPF 정책이 ~all로 끝나는 경우, DMARC가 p=reject 또는 p=quarantine이면 OK이고(DMARC가 softfail을 보완함), DMARC가 p=none이거나 없으면 FAIL입니다. 그 경우 무단 발신자를 거부하는 것이 아무것도 없기 때문입니다. 엄격한 -all은 p=none이어도 OK로 유지되며, 그 노출은 DMARC 행에 보고됩니다.
include:sendgrid.net(또는 계정별 include:uXXXXXXX.wl.sendgrid.net)은 SendGrid의 공유 IP 대역이 해당 도메인을 대신해 발송하도록 승인합니다. SPF는 envelope sender를 기준으로 평가되므로, 공격자가 자신의 SendGrid 계정을 통해 발송해도 SPF를 통과하는 반면 표시되는 From은 귀하의 것입니다. 그 메일을 막는 것은 오직 DMARC뿐입니다. 이 검사는 중첩된 SPF include를 따라가며 다음을 보고합니다:
p=none이면 FAIL: 스푸핑된 From이 전달됨p=quarantine에 불과하면 WARN: 스푸핑된 메일이 스팸으로 분류됨p=reject이면 OK공유 플랫폼 목록은 SPF_SHARED_PROVIDERS에 있습니다. 모든 고객에 대해 From 도메인을 검증하지 않는 제공자만 추가하십시오.
아래 두 녹화 영상은 가독성을 높이기 위해 속도를 늦춘 것이며, 실제로는 실행에 1초도 걸리지 않았습니다.


git clone https://gitlab.com/brn1337/mailAuthCheck.git
cd mailAuthCheck
PowerShell이 아닌 WSL 내부에서 스크립트를 실행하고, 먼저 dig를 설치하세요:
sudo apt update && sudo apt install -y bind9-dnsutils
bash mailAuthCheck.sh google.com
저장소에는 *.sh에 대해 LF 줄바꿈을 강제하는 .gitattributes가 포함되어 있습니다.
해당 파일이 존재하기 전에 저장소를 복제했다면, 스크립트에 더 이상 Windows CRLF 줄바꿈이 남지 않도록
스크립트를 한 번 다시 체크아웃하세요 (CRLF 줄바꿈이 있으면 bash가 $'\r': command not found 오류로 실패합니다):
git checkout -- mailAuthCheck.sh
Mail Authentication Checker는 CC BY-NC-SA 4.0에 따라 라이선스가 부여됩니다.
CC-BY-NC-SA This license requires that reusers give credit to the creator.
It allows reusers to distribute, remix, adapt, and build upon the material in any medium or format, for noncommercial purposes only.
If others modify or adapt the material, they must license the modified material under identical terms.
- Credit must be given to you, the creator.
- Only noncommercial use of your work is permitted.
- Adaptations must be shared under the same terms.