
evilginx3 + gophish

이 저장소는 공개 무료 버전이며, 최신 버전이 아닙니다. 저는 GitHub Sponsors를 통해 저를 후원하는 사람들을 위해 의도적으로 이 공개 버전을 제 버전보다 뒤처지게 유지하고 있습니다. 이는 이 버전에 버그 수정이나 기능이 부족할 수 있으며, 여기서 버그 수정, 기능 추가 또는 지원을 기대해서는 안 된다는 것을 의미합니다. 후원자가 되십시오 최신 버전에 액세스하려면.
시작하기 전에, 저는 Kuba Gretzky와 그의 작업을 비난하는 것이 아님을 말씀드리고 싶습니다. 그가 evilginx3를 대중에게 공개한 것에 대해 개인적으로 감사드립니다. 사실, 그의 작업 없이는 이 작업도 존재하지 않았을 것입니다. 또한 놀라운 GoPhish 툴킷을 개발/유지 관리해 주신 Jordan Wright에게도 감사드립니다. Kuba의 Gophish 포크는 자신의 통합을 만든 후 이 프로젝트의 일부 부분에 영감으로 사용되었습니다.
GoPhish와 evilginx3 사용에 대한 기본적인 이해가 있어야 합니다.
이 소프트웨어의 오용 또는 불법 사용에 대해 저는 어떠한 책임도 지지 않습니다. 이 소프트웨어는 운영자가 사회 공학을 수행할 명시적인 서면 허가를 받은 공인된 침투 테스트 또는 레드 팀 작업에서만 사용되어야 합니다.
침투 테스터 또는 레드 팀원으로서 evilginx3가 2단계/다단계 인증을 우회할 수 있는 프록시 중간자 공격 프레임워크라는 것을 들어보셨을 것입니다. 적어도 이것은 우리에게 매우 매력적이지만, 사회 공학 작업에 사용하려고 하면 몇 가지 문제점이 있습니다.
추적 부족 - evilginx3는 피해자별 고유 추적 통계(예: 이메일 열림, 링크 클릭 등)를 제공하지 않습니다. 이는 사회 공학 작업에 등록할 때 이러한 통계를 원하거나 필요로 하거나 비용을 지불하는 고객에게 문제가 됩니다.
완전한 사회 공학 툴킷이 아님 - evilginx3는 프록시 중간자 공격 기능만 제공하며, 이메일/SMS를 통한 사회 공학 캠페인에 필요한 모든 기능을 제공하지 않습니다. 예를 들어, 대상자에게 이메일을 보내거나 이러한 기능을 제공하지 않습니다.
GUI 없음 - 이 부분을 더 설명해야 할까요? 우리 모두 GUI를 좋아하며, 사회 공학 캠페인을 위한 데이터의 시각적 표현은 매우 가치 있습니다. 운영자는 데이터의 시각적 표현을 볼 수 있음으로써 사회 공학 캠페인의 성공에 대한 철저한 이해를 얻을 수 있습니다.
이 설정에서 GoPhish는 이메일을 보내고 evilginx3 캠페인 통계를 위한 대시보드를 제공하는 데 사용되지만, 랜딩 페이지에는 사용되지 않습니다. GoPhish에서 보낸 피싱 링크는 evilginx3 루어 경로를 가리키며, evilginx3는 랜딩 페이지에 사용됩니다. 이를 통해 소중한 통계를 잃지 않으면서 evilginx3로 2FA/MFA를 여전히 우회할 수 있습니다. 제가 개발한 로컬 웹소켓/HTTP 서버를 통해 실시간 캠페인 이벤트 알림이 제공되며, evilginx3의 토큰/쿠키를 포함한 완전한 사용 가능한 JSON 문자열이 GoPhish GUI(및 피드)에 직접 표시됩니다.


evilginx3는 포트 443(또는 evilginx3 구성에서 선택한 포트)에서 외부에서 접근 가능한 주소에서 수신 대기합니다.GoPhish는 로컬에서 포트 8080과 3333에서 수신 대기합니다(포트 8080의 피싱 서버는 사용되지 않음).Cloudflare Turnstile 서버는 로컬에서 포트 80에서 수신 대기합니다.setup.sh는 필요한 구성을 자동화하기 위해 제공되었습니다. 이 스크립트를 실행하고 올바른 값을 입력하면 시작할 준비가 된 것입니다. 아래는 설정 도움말입니다.
Usage:
./setup <root domain> <subdomain(s)> <root domain bool> <feed bool> <rid replacement>
- root domain - the root domain to be used for the campaign
- subdomains - a space separated list of evilginx3 subdomains, can be one if only one
- root domain bool - true or false to proxy root domain to evilginx3
- feed bool - true or false if you plan to use the live feed
- rid replacement - replace the gophish default "rid" in phishing URLs with this value
Example:
./setup.sh example.com "accounts myaccount" false true user_id
Cloudflare Turnstile 통합은 Apache2를 사용한 리디렉션 규칙 및 IP 블랙리스트를 대체했습니다. Apache2 접근 방식은 사전 정의된 리디렉션 규칙 목록과 IP 블랙리스트에 의존했습니다. 특정 사용자 에이전트, 호스트 또는 IP 주소가 우리 인프라를 탐지하는 경우를 놓칠 수 있습니다. 이는 일반적으로 피싱 인프라를 스캔하는 봇과 자동화 소프트웨어를 통해 수행됩니다. Cloudflare Turnstile 기술은 현재 시점에서 봇에 대한 최고의 방어 수단 중 하나이며, 실제 사용자가 사이트에 접속하고 있는지 확인합니다.
Turnstile 탭 선택evilginx3/templates/forbidden.html 및 evilginx3/templates/turnstile.html 파일을 자신의 변경 사항으로 편집evilginx3를 시작할 때 turnstile 플래그에 공개/개인 키를 :로 구분하여 포함합니다. 예:./evilginx3 -feed -g ../gophish/gophish.db -turnstile <PUBLIC_KEY>:<PRIVATE_KEY>
블로그 게시물은 여기에서 확인하세요.
Cloudflare Turnstile 기능을 위해 정적 HTML 페이지를 포함한다면, 모든 사람의 피싱 인프라가 동일한 페이지를 가지게 되어 정적 HTML 코드 탐지로 이어질 것입니다. 바로 Go HTML 템플릿의 등장입니다. 지침으로 evilginx3/templates/turnstile.html에 시작 템플릿을 포함했습니다. 이것을 변경해야 합니다. 템플릿 코드 설정 방법에 대한 규칙은 다음과 같습니다. 이러한 규칙을 따르지 않으면 Cloudflare Turnstile 기능이 손상될 가능성이 높습니다.
{{.FormActionURL}}, {{.ErrorMessage}}, {{.TurnstilePublicKey}} 템플릿 변수를 포함해야 합니다.Turnstile 챌린지를 제출하기 위한 양식 액션 URL은 {{.FormActionURL}} 템플릿 변수여야 합니다.cf-turnstile div 클래스의 data-sitekey 값은 {{.TurnstilePublicKey}} 템플릿 변수여야 합니다.evilginx3/templates/turnstile.html에 저장해야 합니다.button이어야 합니다.setup.sh를 한 번 실행하고 이미 프로젝트 전체에서 기본 RId 값을 대체한 경우, replace_rid.sh는 RId 값을 다시 대체하기 위해 생성되었습니다.
Usage:
./replace_rid <previous rid> <new rid>
- previous rid - the previous rid value that was replaced
- new rid - the new rid value to replace the previous
Example:
./replace_rid.sh user_id client_id
setup.sh가 실행되면 다음 단계는 다음과 같습니다.
GoPhish를 시작하고 이메일 템플릿, 이메일 발송 프로필 및 그룹을 구성합니다.evilginx3를 시작하고 phishlet 및 lure를 구성합니다(-g 플래그로 GoPhish sqlite3 데이터베이스의 전체 경로를 지정해야 함).GoPhish에서 캠페인을 시작하고 랜딩 URL을 evilginx3 phishlet의 lure 경로로 설정합니다.QR 코드 생성기 기능을 사용하면 QR 코드를 생성하여 QR 코드 사회 공학 캠페인을 배포할 수 있습니다. 사용 단계는 다음과 같습니다.
{{.QR}} 템플릿 변수를 포함할 수 있습니다.


이 기능은 현재 이메일 캠페인 및 HTML 이메일 템플릿에서만 지원됩니다
블로그 게시물은 여기에서 확인하세요.
Twilio를 사용한 SMS 캠페인 지원을 제공하기 위해 GoPhish의 전체 재작업이 수행되었습니다. 새로운 evilgophish 대시보드는 아래와 같습니다.

setup.sh를 실행한 후 다음 단계는 다음과 같습니다.
SMS 메시지 템플릿을 구성합니다. SMS 메시지 템플릿을 만들 때는 Text만 사용하고, 추적 링크는 SMS 메시지에 나타나므로 포함하지 않아야 합니다. 아래와 같이 Envelope Sender와 Subject를 비워 둡니다.
SMS 발송 프로필을 구성합니다. Twilio의 전화번호, Account SID, Auth Token을 입력합니다.
CSV 템플릿 값이 동일하게 유지되었으므로 CSV 열 이름을 동일하게 유지하고 대상 전화번호를 Email 열에 넣습니다. Twilio는 다음 전화번호 형식을 허용하므로 이 세 가지 중 하나여야 합니다.
evilginx3를 시작하고 phishlet 및 lure를 구성합니다(-g 플래그로 GoPhish sqlite3 데이터베이스의 전체 경로를 지정해야 함).GoPhish에서 캠페인을 시작하고 랜딩 URL을 evilginx3 phishlet의 lure 경로로 설정합니다.블로그 게시물은 여기에서 확인하세요.
실시간 캠페인 이벤트 알림은 로컬 웹소켓/HTTP 서버 및 라이브 피드 앱에 의해 처리됩니다. 설정하려면:
setup.sh를 실행할 때 feed bool에 대해 true를 선택합니다.evilfeed 디렉토리로 cd하고 ./evilfeed로 앱을 시작합니다.evilginx3를 시작할 때 -feed 플래그를 제공하여 피드를 활성화합니다. 예:./evilginx3 -feed -g /opt/evilgophish/gophish/gophish.db
http://localhost:1337/에서 라이브 피드를 보기 시작할 수 있습니다. 피드 대시보드는 아래와 같습니다.
중요 사항
JavaScript를 사용하여 이벤트에 대한 웹소켓을 연결하며 페이지를 새로 고칠 필요가 없습니다. 페이지를 새로 고치면 그 시점까지의 모든 이벤트가 손실됩니다.phishlet은 제 재량에 따라 이 저장소에 추가할 예정입니다. 이 저장소의 일부로 제가 phishlet을 만들 것이라는 기대는 하지 마십시오. 직접 만드셔야 합니다. PHISHLET 관련 이슈를 이 저장소에 열지 마십시오
2023년 5월 10일, Kuba Gretzky가 evilginx 2.4.0을 버전 3.0.0으로 업데이트했습니다. 도구 변경 사항에 대한 자세한 블로그 게시물은 여기에서 확인할 수 있습니다: evilginx3+mastery. 가장 주목할 점은 phishlet 파일 형식의 변경으로 인해 버전 3.0.0 이전의 phishlet이 손상될 가능성이 높으며 다시 작성해야 한다는 것입니다. 다시 작성하는 작업이 필요할 수 있지만, 새로운 phishlet 파일 형식에는 추가적인 이점이 있습니다. 버전 3.0.0에 대한 phishlet 형식 문서는 여기에서 찾을 수 있습니다: Phishlet Format v3.0.0. 레거시 형식의 Phishlet은 여전히 이 저장소의 evilginx3/legacy_phishlets 폴더에 보관됩니다. 버전 3.0.0과 호환되는 Phishlet은 에 저장됩니다. 모든 레거시 이 아직 버전 형식으로 변환된 것은 아닙니다. 시간이 허락하는 한 계속 업데이트하겠습니다!
설치 스크립트는 Ubuntu Focal/Jammy에서 테스트되었으며 소스에서 최신 버전의 Go를 설치합니다. Go 환경과 설치된 항목(예: 이 프로젝트가 결합하는 원래 버전을 설치한 후 이 버전을 설치하려는 경우)에 따라 바이너리 빌드가 실패할 수 있습니다. 또한 evilginx3가 DNS를 인계받을 수 있도록 DNS를 변경합니다. 이에 대한 영향을 이해하고 검토해야 합니다. 새로운 환경을 권장하며 다른 운영 체제는 테스트되지 않았습니다.
캠페인을 시작하기 전에 추적을 테스트하는 것은 드문 일이 아니며 권장합니다. 다만 경고를 드리겠습니다. evilginx3는 각 새로운 피해자의 브라우저에 대해 쿠키를 생성하고 세션을 설정합니다. 동일한 브라우저에서 여러 캠페인과 여러 피싱 링크를 계속 테스트하면 RId 값이 요청에서 추출되어 새 세션 시작 시 설정되므로 추적 프로세스가 혼란스러워집니다. 이렇게 하면 실제로 피해자를 시뮬레이션하는 것이 아닙니다. 피해자는 자신의 링크 외에 다른 피싱 링크에 접근할 수 없으며, 실제 캠페인 중에는 이런 일이 절대 발생하지 않는다는 것은 말할 필요도 없습니다. 이는 도구를 의도된 방식으로 사용하지 않는 경우 이에 대한 이슈를 열지 않도록 공정히 경고하는 것입니다. 새로운 피해자를 시뮬레이션하려면 시크릿 모드의 새 브라우저/탭을 사용하여 추적 프로세스를 테스트할 수 있습니다.
GoPhish는 실제 피싱 페이지에서 전혀 사용되지 않으며 이메일 헤더가 제거되었으므로 내부의 IOC에 대해 걱정할 필요가 없습니다.
rid 문자열은 setup.sh에서 운영자가 선택합니다.SMS 캠페인 지원 추가evilginx3 세션/토큰에 대한 추가 Captured Session 캠페인 이벤트 추가초기 릴리스 이후 변경 사항은 CHANGELOG.md 파일을 참조하십시오.
이 저장소의 공개 버전에서 이슈에 응답할 것이라는 기대는 하지 마십시오. 저를 후원하거나 프로젝트 개발에 자금을 지원하지 않으므로 지원을 기대해서는 안 됩니다. 향상된 지원을 위해 후원해 주십시오.
evilginx 3.x.x 형식으로 변환이 프로젝트가 시간이 지남에 따라 개선되고 성장하기를 바랍니다. 개선 아이디어, 새로운 리디렉션 규칙, 블랙리스트에 추가할 새로운 IP 주소/블록, phishlet 또는 제안이 있으시면 풀 리퀘스트를 열어 주십시오.
evilginx3/phishletsphishlet3.x.x