137 lines
9.8 KiB
Markdown

# Pentesting Methodology
{{#include ../banners/hacktricks-training.md}}
## Pentesting Methodology
<figure><img src="../images/HACKTRICKS-logo.svg" alt=""><figcaption></figcaption></figure>
_Hacktricks 로고는_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_에 의해 디자인되었습니다._
### **0- 물리적 공격**
공격하고자 하는 기계에 **물리적 접근**이 있습니까? [**물리적 공격에 대한 몇 가지 트릭**](../hardware-physical-access/physical-attacks.md)과 [**GUI 애플리케이션에서 탈출하는 방법**](../hardware-physical-access/escaping-from-gui-applications.md)에 대해 읽어보세요.
### 1- [네트워크 내 호스트 발견](pentesting-network/index.html#discovering-hosts)/ [회사의 자산 발견](external-recon-methodology/index.html)
**테스트**가 **내부 테스트**인지 **외부 테스트**인지에 따라 **회사 네트워크 내 호스트**를 찾거나 **인터넷에서 회사의 자산**을 찾는 데 관심이 있을 수 있습니다.
> [!NOTE]
> 외부 테스트를 수행하는 경우, 회사의 내부 네트워크에 접근하게 되면 이 가이드를 다시 시작해야 합니다.
### **2-** [**네트워크와 함께 즐기기**](pentesting-network/index.html) **(내부)**
**이 섹션은 내부 테스트를 수행하는 경우에만 적용됩니다.**\
호스트를 공격하기 전에 **네트워크에서 일부 자격 증명을 훔치거나** **데이터를 스니핑**하여 **수동/능동적으로(MitM)** 네트워크 내에서 무엇을 찾을 수 있는지 알아보는 것이 좋습니다. [**Pentesting Network**](pentesting-network/index.html#sniffing)를 읽어보세요.
### **3-** [**포트 스캔 - 서비스 발견**](pentesting-network/index.html#scanning-hosts)
**호스트에서 취약점을 찾을 때** 가장 먼저 해야 할 일은 어떤 **서비스가 어떤 포트에서 실행되고 있는지** 아는 것입니다. [**호스트의 포트를 스캔하는 기본 도구**](pentesting-network/index.html#scanning-hosts)를 살펴보겠습니다.
### **4-** [서비스 버전 익스플로잇 검색](../generic-hacking/search-exploits.md)
어떤 서비스가 실행되고 있는지, 그리고 아마도 그 버전을 알게 되면 **알려진 취약점을 검색**해야 합니다. 운이 좋으면 쉘을 제공하는 익스플로잇이 있을 수 있습니다...
### **5-** Pentesting 서비스
실행 중인 서비스에 대한 멋진 익스플로잇이 없다면, 각 서비스에서 **일반적인 잘못된 구성**을 찾아야 합니다.
**이 책에서는 가장 일반적인 서비스에 대한 펜테스트 가이드를 찾을 수 있습니다** (그리고 그렇게 일반적이지 않은 서비스도 포함되어 있습니다). 왼쪽 인덱스에서 **_**PENTESTING**_ **섹션을 검색하세요** (서비스는 기본 포트에 따라 정렬되어 있습니다).
**특히** [**Pentesting Web**](../network-services-pentesting/pentesting-web/index.html) **부분에 특별히 언급하고 싶습니다 (가장 방대하기 때문입니다).**\
또한 [**소프트웨어에서 알려진 취약점을 찾는 방법**](../generic-hacking/search-exploits.md)에 대한 작은 가이드를 여기에서 찾을 수 있습니다.
**서비스가 인덱스에 없다면, Google에서 다른 튜토리얼을 검색하세요** 그리고 **추가해 달라고 알려주세요.** Google에서 **아무것도 찾을 수 없다면**, **자신의 블라인드 펜테스트를 수행하세요**, **서비스에 연결하고, 퍼징하고, 응답을 읽는 것**으로 시작할 수 있습니다 (있다면).
#### 5.1 자동 도구
**자동 취약점 평가**를 수행할 수 있는 여러 도구도 있습니다. **[**Legion**](https://github.com/carlospolop/legion)**을 시도해 보기를 권장합니다. 이 도구는 제가 만든 도구로, 이 책에서 찾을 수 있는 펜테스트 서비스에 대한 노트를 기반으로 합니다.**
#### **5.2 서비스 브루트 포스**
일부 시나리오에서는 **브루트 포스**가 **서비스를 타협하는 데 유용할 수 있습니다**. [**여기에서 다양한 서비스의 브루트 포싱 치트 시트를 찾으세요**](../generic-hacking/brute-force.md)**.**
### 6- [피싱](phishing-methodology/index.html)
이 시점에서 흥미로운 취약점을 찾지 못했다면, **네트워크에 들어가기 위해 피싱을 시도해야 할 수도 있습니다**. 제 피싱 방법론을 [여기](phishing-methodology/index.html)에서 읽어보세요:
### **7-** [**쉘 얻기**](../generic-hacking/reverse-shells/index.html)
어떻게든 **희생자에서 코드를 실행할 수 있는 방법을 찾아야 합니다**. 그런 다음, [시스템 내에서 리버스 쉘을 얻기 위해 사용할 수 있는 가능한 도구 목록이 매우 유용할 것입니다](../generic-hacking/reverse-shells/index.html).
특히 Windows에서는 **안티바이러스를 피하는 데 도움이 필요할 수 있습니다**: [**이 페이지를 확인하세요**](../windows-hardening/av-bypass.md)**.**
### 8- 내부
쉘에 문제가 있는 경우, 펜테스터에게 가장 유용한 명령어의 작은 **모음**을 여기에서 찾을 수 있습니다:
- [**리눅스**](../linux-hardening/useful-linux-commands.md)
- [**윈도우 (CMD)**](../windows-hardening/basic-cmd-for-pentesters.md)
- [**윈도우 (PS)**](../windows-hardening/basic-powershell-for-pentesters/index.html)
### **9-** [**탈출**](../generic-hacking/exfiltration.md)
희생자로부터 **데이터를 추출해야 하거나** 심지어 **무언가를 도입해야 할 수도 있습니다** (예: 권한 상승 스크립트). **여기에서 이러한 목적에 사용할 수 있는** [**일반적인 도구에 대한 게시물을 찾을 수 있습니다**](../generic-hacking/exfiltration.md)**.**
### **10- 권한 상승**
#### **10.1- 로컬 권한 상승**
박스 내에서 **root/Administrator**가 아니라면, **권한을 상승시키는 방법을 찾아야 합니다.**\
여기에서 [**리눅스**](../linux-hardening/privilege-escalation/index.html) **및** [**윈도우**](../windows-hardening/windows-local-privilege-escalation/index.html) **에서 로컬 권한을 상승시키는 방법에 대한 가이드를 찾을 수 있습니다.**\
또한 **Windows가 어떻게 작동하는지**에 대한 이 페이지를 확인해야 합니다:
- [**인증, 자격 증명, 토큰 권한 및 UAC**](../windows-hardening/authentication-credentials-uac-and-efs/index.html)
- [**NTLM이 어떻게 작동하는지**](../windows-hardening/ntlm/index.html)
- Windows에서 [**자격 증명을 훔치는 방법**](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/broken-reference/README.md)
- [_**Active Directory**_에 대한 몇 가지 트릭](../windows-hardening/active-directory-methodology/index.html)
**Windows 및 Linux 로컬 권한 상승 경로를 열거하는 최고의 도구를 확인하는 것을 잊지 마세요:** [**Suite PEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)
#### **10.2- 도메인 권한 상승**
여기에서 [**Active Directory에서 권한을 열거하고 상승시키고 지속하는 가장 일반적인 작업을 설명하는 방법론**](../windows-hardening/active-directory-methodology/index.html)을 찾을 수 있습니다. 이것은 섹션의 하위 섹션일 뿐이지만, 이 과정은 **펜테스팅/레드 팀 과제에서 매우 섬세할 수 있습니다.**
### 11 - POST
#### **11**.1 - 약탈
호스트 내에서 더 많은 **비밀번호**를 찾거나 **사용자의 권한**으로 **다른 기계에 접근할 수 있는지 확인하세요.**\
여기에서 [**Windows에서 비밀번호를 덤프하는 다양한 방법**](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/broken-reference/README.md)을 찾으세요.
#### 11.2 - 지속성
**시스템을 다시 공격할 필요가 없도록 2~3가지 다른 유형의 지속성 메커니즘을 사용하세요.**\
**여기에서** [**Active Directory에서의 지속성 트릭**](../windows-hardening/active-directory-methodology/index.html#persistence)**을 찾을 수 있습니다.**
TODO: Windows 및 Linux에서 지속성 게시물 완료
### 12 - 피벗팅
**수집된 자격 증명**으로 다른 기계에 접근할 수 있거나, **새로운 호스트를 발견하고 스캔해야 할 수도 있습니다** (희생자가 연결된 새로운 네트워크 내에서 펜테스팅 방법론을 다시 시작하세요).\
이 경우 터널링이 필요할 수 있습니다. [**터널링에 대한 게시물**](../generic-hacking/tunneling-and-port-forwarding.md)을 여기에서 찾을 수 있습니다.\
또한 [Active Directory 펜테스팅 방법론](../windows-hardening/active-directory-methodology/index.html)에 대한 게시물을 확인해야 합니다. 거기에서 수평 이동, 권한 상승 및 자격 증명 덤프를 위한 멋진 트릭을 찾을 수 있습니다.\
[**NTLM**](../windows-hardening/ntlm/index.html)에 대한 페이지도 확인하세요. Windows 환경에서 피벗하는 데 매우 유용할 수 있습니다.
### MORE
#### [안드로이드 애플리케이션](../mobile-pentesting/android-app-pentesting/index.html)
#### **익스플로잇**
- [**기본 리눅스 익스플로잇**](broken-reference/index.html)
- [**기본 윈도우 익스플로잇**](../binary-exploitation/windows-exploiting-basic-guide-oscp-lvl.md)
- [**기본 익스플로잇 도구**](../binary-exploitation/basic-stack-binary-exploitation-methodology/tools/index.html)
#### [**기본 파이썬**](python/index.html)
#### **암호 트릭**
- [**ECB**](../crypto-and-stego/electronic-code-book-ecb.md)
- [**CBC-MAC**](../crypto-and-stego/cipher-block-chaining-cbc-mac-priv.md)
- [**패딩 오라클**](../crypto-and-stego/padding-oracle-priv.md)
{{#include ../banners/hacktricks-training.md}}