Translated ['src/generic-methodologies-and-resources/phishing-methodolog

This commit is contained in:
Translator 2025-07-28 10:13:22 +00:00
parent b08a28deae
commit 505ceec4dc
3 changed files with 135 additions and 26 deletions

View File

@ -32,6 +32,7 @@
- [Clone a Website](generic-methodologies-and-resources/phishing-methodology/clone-a-website.md)
- [Detecting Phishing](generic-methodologies-and-resources/phishing-methodology/detecting-phising.md)
- [Discord Invite Hijacking](generic-methodologies-and-resources/phishing-methodology/discord-invite-hijacking.md)
- [Homograph Attacks](generic-methodologies-and-resources/phishing-methodology/homograph-attacks.md)
- [Mobile Phishing Malicious Apps](generic-methodologies-and-resources/phishing-methodology/mobile-phishing-malicious-apps.md)
- [Phishing Files & Documents](generic-methodologies-and-resources/phishing-methodology/phishing-documents.md)
- [Basic Forensic Methodology](generic-methodologies-and-resources/basic-forensic-methodology/README.md)

View File

@ -6,7 +6,7 @@
1. 피해자 조사
1. **피해자 도메인** 선택.
2. 피해자가 사용하는 **로그인 포털**을 찾기 위해 기본 웹 열거 수행 후 **어떤 것을** **가장 비슷하게** **모방할지 결정**.
2. 피해자가 사용하는 **로그인 포털**을 찾기 위해 기본 웹 열거 수행하고 **어떤 것을** **가장할지 결정**.
3. **OSINT**를 사용하여 **이메일 찾기**.
2. 환경 준비
1. 피싱 평가에 사용할 **도메인 구매**.
@ -24,14 +24,18 @@
- **키워드**: 도메인 이름에 원래 도메인의 중요한 **키워드**가 포함됨 (예: zelster.com-management.com).
- **하이픈 서브도메인**: 서브도메인의 **점**을 **하이픈**으로 변경 (예: www-zelster.com).
- **새 TLD**: **새 TLD**를 사용하는 동일 도메인 (예: zelster.org).
- **호모글리프**: 도메인 이름의 글자를 **비슷하게 보이는 글자**로 **대체** (예: zelfser.com).
- **전치**: 도메인 이름 내에서 **두 글자**를 **교환** (예: zelsetr.com).
- **호모글리프**: 도메인 이름의 문자를 **비슷하게 보이는 문자**로 **대체** (예: zelfser.com).
{{#ref}}
homograph-attacks.md
{{#endref}}
- **전치**: 도메인 이름 내에서 두 문자를 **교환** (예: zelsetr.com).
- **단수화/복수화**: 도메인 이름 끝에 “s”를 추가하거나 제거 (예: zeltsers.com).
- **생략**: 도메인 이름에서 **하나의 글자**를 **제거** (예: zelser.com).
- **반복**: 도메인 이름에서 **하나의 글자**를 **반복** (예: zeltsser.com).
- **대체**: 호모글리프와 비슷하지만 덜 은밀함. 도메인 이름의 글자 중 하나를 원래 글자와 키보드에서 가까운 글자로 대체 (예: zektser.com).
- **생략**: 도메인 이름에서 문자를 **하나 제거** (예: zelser.com).
- **반복**: 도메인 이름에서 문자를 **하나 반복** (예: zeltsser.com).
- **대체**: 호모글리프와 비슷하지만 덜 은밀함. 도메인 이름의 문자를 원래 문자와 키보드에서 가까운 문자로 대체 (예: zektser.com).
- **서브도메인화**: 도메인 이름 내에 **점**을 추가 (예: ze.lster.com).
- **삽입**: 도메인 이름에 **자 삽입** (예: zerltser.com).
- **삽입**: 도메인 이름에 **자 삽입** (예: zerltser.com).
- **누락된 점**: 도메인 이름에 TLD 추가 (예: zelstercom.com).
**자동 도구**
@ -51,7 +55,7 @@
이 개념이 **DNS 요청에 적용될 때**, **DNS 서버에서 수신된 도메인**이 처음 요청한 도메인과 다를 수 있습니다.
예를 들어, "windows.com" 도메인에서 단일 비트 수정이 "windnws.com"으로 변경될 수 있습니다.
예를 들어, "windows.com"의 단일 비트 수정은 "windnws.com"으로 변경할 수 있습니다.
공격자는 **피해자의 도메인과 유사한 여러 비트 플리핑 도메인을 등록하여 이를 이용할 수 있습니다**. 그들의 의도는 합법적인 사용자를 자신의 인프라로 리디렉션하는 것입니다.
@ -73,8 +77,8 @@
- [https://hunter.io/](https://hunter.io)
- [https://anymailfinder.com/](https://anymailfinder.com)
**더 많은** 유효한 이메일 주소를 **발견하거나** 이미 발견한 이메일 주소를 **검증**하기 위해 피해자의 SMTP 서버를 브루트 포스할 수 있는지 확인할 수 있습니다. [여기에서 이메일 주소를 검증/발견하는 방법을 배우세요](../../network-services-pentesting/pentesting-smtp/index.html#username-bruteforce-enumeration).\
또한 사용자가 **메일에 접근하기 위해 웹 포털을 사용하는 경우**, 해당 포털이 **사용자 이름 브루트 포스**에 취약한지 확인하고 가능하다면 취약점을 용하는 것을 잊지 마세요.
**더 많은** 유효한 이메일 주소를 **발견하거나** 이미 발견한 이메일 주소를 **검증**하기 위해 피해자의 SMTP 서버를 브루트포스할 수 있는지 확인할 수 있습니다. [여기에서 이메일 주소를 검증/발견하는 방법을 배우세요](../../network-services-pentesting/pentesting-smtp/index.html#username-bruteforce-enumeration).\
또한 사용자가 **메일에 접근하기 위해 웹 포털을 사용하는 경우**, 해당 포털이 **사용자 이름 브루트포스**에 취약한지 확인하고 가능하다면 취약점을 용하는 것을 잊지 마세요.
## GoPhish 구성
@ -83,7 +87,7 @@
[https://github.com/gophish/gophish/releases/tag/v0.11.0](https://github.com/gophish/gophish/releases/tag/v0.11.0)에서 다운로드할 수 있습니다.
다운로드 후 `/opt/gophish`에 압축을 풀고 `/opt/gophish/gophish`를 실행하세요.\
출력에서 포트 3333의 관리자 사용자 비밀번호가 제공됩니다. 따라서 해당 포트에 접근하고 자격 증명을 사용하여 관리자 비밀번호를 변경하세요. 해당 포트를 로컬로 터널링해야 할 수도 있습니다.
출력에서 포트 3333의 관리자 사용자 비밀번호가 제공됩니다. 따라서 해당 포트에 접근하고 해당 자격 증명을 사용하여 관리자 비밀번호를 변경하세요. 해당 포트를 로컬로 터널링해야 할 수도 있습니다.
```bash
ssh -L 3333:127.0.0.1:3333 <user>@<ip>
```
@ -91,7 +95,7 @@ ssh -L 3333:127.0.0.1:3333 <user>@<ip>
**TLS 인증서 구성**
이 단계 전에 **사용할 도메인을 이미 구매해야** 하며, 해당 도메인은 **gophish**를 구성하고 있는 **VPS의 IP**를 **가리켜야** 합니다.
이 단계 전에 **사용할 도메인을 이미 구매**해야 하며, 해당 도메인은 **gophish**를 구성하고 있는 **VPS의 IP**를 **가리키고** 있어야 합니다.
```bash
DOMAIN="<domain>"
wget https://dl.eff.org/certbot-auto
@ -124,7 +128,7 @@ cp "/etc/letsencrypt/live/$DOMAIN/fullchain.pem" /opt/gophish/ssl_keys/key.crt
마지막으로 **`/etc/hostname`** 및 **`/etc/mailname`** 파일을 도메인 이름으로 수정하고 **VPS를 재시작합니다.**
이제 **DNS A 레코드**를 `mail.<domain>`으로 생성하여 **VPS의 IP 주소**를 가리키고, **DNS MX** 레코드를 `mail.<domain>`으로 설정합니다.
이제 **DNS A 레코드**를 `mail.<domain>`으로 생성하고 **VPS의 IP 주소**를 가리키며, **DNS MX** 레코드를 `mail.<domain>`으로 설정합니다.
이제 이메일을 보내는 테스트를 해봅시다:
```bash
@ -134,7 +138,7 @@ echo "This is the body of the email" | mail -s "This is the subject line" test@e
**Gophish 구성**
gophish의 실행을 중지하고 구성합시다.\
`/opt/gophish/config.json`을 다음과 같이 수정합니다 (https 사용에 유의하세요):
`/opt/gophish/config.json`을 다음과 같이 수정합니다 (https 사용에 유의):
```bash
{
"admin_server": {
@ -161,7 +165,7 @@ gophish의 실행을 중지하고 구성합시다.\
```
**gophish 서비스 구성**
gophish 서비스를 자동으로 시작하고 관리할 수 있도록 하려면 다음 내용을 포함하는 파일 `/etc/init.d/gophish`를 생성할 수 있습니다:
gophish 서비스를 자동으로 시작하고 관리할 수 있도록 하려면 다음 내용을 포함 파일 `/etc/init.d/gophish`를 생성할 수 있습니다:
```bash
#!/bin/bash
# /etc/init.d/gophish
@ -223,7 +227,7 @@ service gophish stop
### 기다리고 합법적으로 행동하기
도메인이 오래될수록 스팸으로 잡힐 가능성이 낮아집니다. 따라서 피싱 평가 전에 가능한 한 오랫동안 기다려야 합니다(최소 1주일). 또한, 평판이 좋은 분야에 대한 페이지를 만들면 얻는 평판이 더 좋습니다.
도메인이 오래될수록 스팸으로 잡힐 가능성이 줄어듭니다. 따라서 피싱 평가 전에 가능한 한 오랫동안 기다려야 합니다(최소 1주일). 또한, 평판이 좋은 분야에 대한 페이지를 만들면 얻는 평판이 더 좋습니다.
1주일을 기다려야 하더라도 지금 모든 구성을 마칠 수 있다는 점에 유의하세요.
@ -305,7 +309,7 @@ dkim=pass header.i=@example.com;
- 피싱 이메일을 보낼 계정을 결정합니다. 제안: _noreply, support, servicedesk, salesforce..._
- 사용자 이름과 비밀번호는 비워둘 수 있지만, 인증서 오류 무시를 체크하는 것을 잊지 마세요.
![](<../../images/image (253) (1) (2) (1) (1) (2) (2) (3) (3) (5) (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (10) (15) (2).png>)
![](<../../images/image (253) (1) (2) (1) (1) (2) (2) (3) (3) (5) (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (10) (15) (2).png>)
> [!TIP]
> "**테스트 이메일 보내기**" 기능을 사용하여 모든 것이 작동하는지 테스트하는 것이 좋습니다.\
@ -349,7 +353,7 @@ WRITE HERE SOME SIGNATURE OF SOMEONE FROM THE COMPANY
### 랜딩 페이지
- **이름**을 작성합니다.
- 웹 페이지의 **HTML 코드를 작성**합니다. 웹 페이지를 **가져올** 있습니다.
- 웹 페이지의 **HTML 코드를 작성**합니다. 웹 페이지를 **가져올** 있습니다.
- **제출된 데이터 캡처** 및 **비밀번호 캡처**를 선택합니다.
- **리디렉션**을 설정합니다.
@ -378,7 +382,7 @@ WRITE HERE SOME SIGNATURE OF SOMEONE FROM THE COMPANY
![](<../../images/image (192).png>)
> [!TIP]
> 테스트 이메일을 **10분 메일 주소**로 보내는 것이 좋습니다. 테스트를 하면서 블랙리스트에 올라가는 것을 피할 수 있습니다.
> 테스트 이메일을 **10분 메일 주소**로 보내는 것을 권장합니다. 테스트를 하면서 블랙리스트에 오르는 것을 피할 수 있습니다.
모든 준비가 완료되면 캠페인을 시작하세요!
@ -403,13 +407,13 @@ phishing-documents.md
### 프록시 MitM를 통한
이전 공격은 실제 웹사이트를 가장하고 사용자가 설정한 정보를 수집하는 매우 영리한 방법입니다. 불행히도 사용자가 올바른 비밀번호를 입력하지 않거나 가장한 애플리케이션이 2FA로 구성된 경우, **이 정보로 속 사용자를 가장할 수 없습니다**.
이전 공격은 실제 웹사이트를 가장하고 사용자가 설정한 정보를 수집하는 매우 영리한 방법입니다. 불행히도 사용자가 올바른 비밀번호를 입력하지 않거나 가장한 애플리케이션이 2FA로 구성된 경우, **이 정보로 속 사용자를 가장할 수 없습니다**.
이럴 때 [**evilginx2**](https://github.com/kgretzky/evilginx2)**,** [**CredSniper**](https://github.com/ustayready/CredSniper) 및 [**muraena**](https://github.com/muraenateam/muraena)와 같은 도구가 유용합니다. 이 도구는 MitM과 같은 공격을 생성할 수 있게 해줍니다. 기본적으로 공격은 다음과 같은 방식으로 작동합니다:
1. 실제 웹페이지의 로그인 양식을 **가장합니다**.
2. 사용자가 **자신의 자격 증명**을 가짜 페이지로 **전송**하고 도구는 이를 실제 웹페이지로 전송하여 **자격 증명이 작동하는지 확인합니다**.
3. 계정이 **2FA**로 구성된 경우, MitM 페이지는 이를 요청하고 사용자가 **입력**하면 도구 이를 실제 웹페이지로 전송합니다.
2. 사용자가 **자신의 자격 증명**을 가짜 페이지로 **보내고**, 도구는 이를 실제 웹페이지로 전송하여 **자격 증명이 작동하는지 확인합니다**.
3. 계정이 **2FA**로 구성된 경우, MitM 페이지는 이를 요청하고 사용자가 **입력**하면 도구 이를 실제 웹페이지로 전송합니다.
4. 사용자가 인증되면 공격자는 **자격 증명, 2FA, 쿠키 및 도구가 MitM을 수행하는 동안의 모든 상호작용 정보를 캡처**하게 됩니다.
### VNC를 통한
@ -420,15 +424,15 @@ phishing-documents.md
## 탐지 감지
당연히 자신이 발각되었는지 아는 가장 좋은 방법 중 하나는 **블랙리스트에서 도메인을 검색하는 것입니다**. 만약 목록에 나타난다면, 어떤 식으로든 당신의 도메인이 의심스럽다고 감지된 것입니다.\
도메인이 블랙리스트에 나타나는지 확인하는 쉬운 방법은 [https://malwareworld.com/](https://malwareworld.com) 를 사용하는 것입니다.
도메인이 어떤 블랙리스트에 나타나는지 확인하는 쉬운 방법은 [https://malwareworld.com/](https://malwareworld.com) 를 사용하는 것입니다.
그러나 피해자가 **야생에서 의심스러운 피싱 활동을 적극적으로 찾고 있는지 아는 다른 방법도 있습니다**:
그러나 피해자가 **활발히 의심스러운 피싱 활동을 찾고 있는지** 아는 다른 방법도 있습니다. 이는 다음과 같이 설명됩니다:
{{#ref}}
detecting-phising.md
{{#endref}}
피해자의 도메인과 **매우 유사한 이름의 도메인을 구매**하거나 **당신이 제어하는 도메인의 서브도메인에 대한 인증서를 생성**할 수 있습니다. 피해자의 도메인의 **키워드**를 포함하는 경우, 피해자가 그들과 어떤 종류의 **DNS 또는 HTTP 상호작용**을 수행하면 **그가 의심스러운 도메인을 적극적으로 찾고 있다는 것을 알 수 있습니다**. 이 경우 매우 은밀해야 합니다.
피해자의 도메인과 **매우 유사한 이름의 도메인을 구매**하거나 **당신이 제어하는 도메인의 서브도메인에 대한 인증서를 생성**할 수 있습니다. 피해자의 도메인의 **키워드**를 포함하는 경우, 피해자가 그들과 어떤 종류의 **DNS 또는 HTTP 상호작용**을 수행하면 **그가 의심스러운 도메인을 활발히 찾고 있다는 것을 알 수 있습니다**. 이 경우 매우 은밀해야 합니다.
### 피싱 평가
@ -436,7 +440,7 @@ detecting-phising.md
## 클립보드 하이재킹 / 붙여넣기 해킹
공격자는 손상된 웹 페이지나 오타가 있는 웹 페이지에서 피해자의 클립보드에 악성 명령을 조용히 복사한 다음 사용자를 속여 **Win + R**, **Win + X** 또는 터미널 창에 붙여넣게 하여 다운로드나 첨부 없이 임의의 코드를 실행할 수 있습니다.
공격자는 손상된 웹 페이지나 오타가 있는 웹 페이지에서 피해자의 클립보드에 악성 명령을 조용히 복사한 다음 사용자**Win + R**, **Win + X** 또는 터미널 창에 붙여넣도록 속여서 다운로드나 첨부 없이 임의의 코드를 실행할 수 있습니다.
{{#ref}}
clipboard-hijacking.md

View File

@ -0,0 +1,104 @@
# Homograph / Homoglyph Attacks in Phishing
{{#include ../../banners/hacktricks-training.md}}
## 개요
하모그래프(또는 호모글리프) 공격은 많은 **비라틴 스크립트의 유니코드 코드 포인트가 ASCII 문자와 시각적으로 동일하거나 매우 유사하다는 사실을 악용합니다**. 하나 이상의 라틴 문자를 그들의 유사한 문자로 대체함으로써 공격자는 다음을 만들 수 있습니다:
* 인간의 눈에는 합법적으로 보이지만 키워드 기반 탐지를 우회하는 표시 이름, 주제 또는 메시지 본문.
* 피해자가 신뢰할 수 있는 사이트를 방문하고 있다고 믿게 만드는 도메인, 서브 도메인 또는 URL 경로.
모든 글리프는 **유니코드 코드 포인트**로 내부적으로 식별되기 때문에, 단일 대체 문자가 순진한 문자열 비교를 무너뜨리기에 충분합니다 (예: `"Παypal.com"` vs. `"Paypal.com"`).
## 전형적인 피싱 워크플로우
1. **메시지 내용 작성** impersonated 브랜드 / 키워드의 특정 라틴 문자를 다른 스크립트(그리스어, 키릴 문자, 아르메니아어, 체로키어 등)에서 시각적으로 구별할 수 없는 문자로 대체합니다.
2. **지원 인프라 등록** 선택적으로 호모글리프 도메인을 등록하고 TLS 인증서를 얻습니다(대부분의 CA는 시각적 유사성 검사를 수행하지 않습니다).
3. **이메일 / SMS 전송** 메시지에는 다음 위치 중 하나 이상에 호모글리프가 포함되어 있습니다:
* 발신자 표시 이름 (예: `Ηеlрdеѕk`)
* 제목 줄 (`Urgеnt Аctіon Rеquіrеd`)
* 하이퍼링크 텍스트 또는 완전한 도메인 이름
4. **리디렉션 체인** 피해자는 자격 증명을 수집하거나 악성 코드를 전달하는 악성 호스트에 도착하기 전에 겉보기에는 무해한 웹사이트나 URL 단축기를 통해 이동합니다.
## 일반적으로 악용되는 유니코드 범위
| 스크립트 | 범위 | 예시 글리프 | 유사 문자 |
|--------|-------|---------------|------------|
| 그리스어 | U+0370-03FF | `Η` (U+0397) | 라틴 `H` |
| 그리스어 | U+0370-03FF | `ρ` (U+03C1) | 라틴 `p` |
| 키릴 문자 | U+0400-04FF | `а` (U+0430) | 라틴 `a` |
| 키릴 문자 | U+0400-04FF | `е` (U+0435) | 라틴 `e` |
| 아르메니아어 | U+0530-058F | `օ` (U+0585) | 라틴 `o` |
| 체로키어 | U+13A0-13FF | `` (U+13A2) | 라틴 `T` |
> 팁: 전체 유니코드 차트는 [unicode.org](https://home.unicode.org/)에서 확인할 수 있습니다.
## 탐지 기술
### 1. 혼합 스크립트 검사
영어를 사용하는 조직을 목표로 하는 피싱 이메일은 여러 스크립트의 문자를 혼합하는 경우가 드뭅니다. 간단하지만 효과적인 휴리스틱은 다음과 같습니다:
1. 검사하는 문자열의 각 문자를 반복합니다.
2. 코드 포인트를 해당 유니코드 블록에 매핑합니다.
3. 하나 이상의 스크립트가 존재하거나 비라틴 스크립트가 예상치 못한 곳(표시 이름, 도메인, 주제, URL 등)에 나타나면 경고를 발생시킵니다.
Python 개념 증명:
```python
import unicodedata as ud
from collections import defaultdict
SUSPECT_FIELDS = {
"display_name": "Ηоmоgraph Illusion", # example data
"subject": "Finаniаl Տtatеmеnt",
"url": "https://xn--messageconnecton-2kb.blob.core.windows.net" # punycode
}
for field, value in SUSPECT_FIELDS.items():
blocks = defaultdict(int)
for ch in value:
if ch.isascii():
blocks['Latin'] += 1
else:
name = ud.name(ch, 'UNKNOWN')
block = name.split(' ')[0] # e.g., 'CYRILLIC'
blocks[block] += 1
if len(blocks) > 1:
print(f"[!] Mixed scripts in {field}: {dict(blocks)} -> {value}")
```
### 2. Punycode 정규화 (도메인)
국제화 도메인 이름 (IDN)은 **punycode** (`xn--`)로 인코딩됩니다. 모든 호스트 이름을 punycode로 변환한 다음 다시 유니코드로 변환하면 화이트리스트와 일치시키거나 유사성 검사를 수행할 수 있습니다 (예: Levenshtein 거리) **문자열이 정규화된 후**.
```python
import idna
hostname = "Ρаypal.com" # Greek Rho + Cyrillic a
puny = idna.encode(hostname).decode()
print(puny) # xn--yl8hpyal.com
```
### 3. 동형 문자 사전 / 알고리즘
**dnstwist** (`--homoglyph`) 또는 **urlcrazy**와 같은 도구는 시각적으로 유사한 도메인 변형을 나열할 수 있으며, 사전적 차단 / 모니터링에 유용합니다.
## 예방 및 완화
* 엄격한 DMARC/DKIM/SPF 정책을 시행하여 무단 도메인에서의 스푸핑을 방지합니다.
* **Secure Email Gateways****SIEM/XSOAR** 플레이북에 위의 탐지 로직을 구현합니다.
* 표시 이름 도메인 ≠ 발신자 도메인인 메시지를 플래그하거나 격리합니다.
* 사용자 교육: 의심스러운 텍스트를 유니코드 검사기에 복사-붙여넣기하고, 링크에 마우스를 올리며, URL 단축기를 절대 신뢰하지 마십시오.
## 실제 사례
* 표시 이름: `Сonfidеntiаl ikеt` (키릴 문자 `С`, `е`, `а`; 체로키 ``; 라틴 소문자 대문자 ``).
* 도메인 체인: `bestseoservices.com` ➜ municipal `/templates` 디렉토리 ➜ `kig.skyvaulyt.ru` ➜ 커스텀 OTP CAPTCHA로 보호된 가짜 Microsoft 로그인 `mlcorsftpsswddprotcct.approaches.it.com`.
* Spotify 사칭: 링크가 `redirects.ca` 뒤에 숨겨진 `Sρօtifŭ` 발신자.
이 샘플은 Unit 42 연구(2025년 7월)에서 유래되었으며, 동형 문자 남용이 URL 리디렉션 및 CAPTCHA 회피와 결합되어 자동 분석을 우회하는 방법을 보여줍니다.
## 참고 문헌
- [The Homograph Illusion: Not Everything Is As It Seems](https://unit42.paloaltonetworks.com/homograph-attacks/)
- [Unicode Character Database](https://home.unicode.org/)
- [dnstwist domain permutation engine](https://github.com/elceef/dnstwist)
{{#include ../../banners/hacktricks-training.md}}