スクリプトの基礎
変数とループ
「スクリプトの基礎」はCoddyKit上の無料Ethical Hacking Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはEthical Hacking Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ethical Hacking Academyコースには全4レッスンが含まれています。
セキュリティでBashを使う理由
Bash はLinuxのデフォルトシェルであり、ペネトレーションテスターが関わるほぼすべての環境に存在します。スクリプトを使えば、繰り返し行う偵察を自動化し、ツールを連結し、コマンドを手作業で書き直すことなく出力を処理できます。
このレッスンでは、シェバン、変数、条件分岐、ループという基本要素を扱います。
シェバン
すべてのスクリプトは、使用するインタープリターをシステムに伝えるシェバンから始まります。その後、ファイルを実行可能にして実行します。
#!/bin/bash
echo 'Hello from a script'
# chmod +x script.sh
# ./script.sh変数
= の前後にスペースを入れずに代入します。ドル記号を付けて値を読み取ります。予期しないワード分割を避けるため、変数は引用符で囲みます。
target=192.168.56.10
port=80
echo "Scanning $target on port $port"コマンド置換
$( ) を使うと、コマンドの出力を変数に格納できます。これにより、スクリプトがツールの結果に応じて動作できるようになります。
host=$(hostname)
count=$(ls /etc | wc -l)
echo "$host has $count files in /etc"引数の読み取り
スクリプトは引数を $1、$2 のように受け取ります。$# は引数の数、$0 はスクリプト名です。
#!/bin/bash
target=$1
echo "Target is $target"
# run: ./scan.sh 10.0.0.5条件分岐
if とテスト用の角括弧を使って分岐します。数値のテストには -eq、-gt、文字列のテストには =、ファイルのテストには -f、-d を使用します。
if [ "$#" -eq 0 ]; then
echo 'Usage: scan.sh <target>'
exit 1
fiForループ
for ループはリストを反復処理します。ポートやホストを一括調査するのに最適です。
for port in 21 22 80 443; do
echo "Checking port $port"
done範囲のループ処理
ブレース展開と seq でシーケンスを生成できます。IP範囲のスキャンに便利です。
for i in {1..10}; do
echo "192.168.56.$i"
doneWhileループ
while は、条件が成立している間、処理を繰り返します。ホストやワードリストを処理する際、ファイルを1行ずつ読み込むのが一般的なパターンです。
while read line; do
echo "Host: $line"
done < hosts.txt関数と終了コード
再利用可能なロジックを関数にまとめます。すべてのコマンドは $? に終了コードを設定します。0は成功を意味します。スクリプトはこの値を使って次の処理を決定します。
check() {
ping -c1 "$1" >/dev/null 2>&1
if [ $? -eq 0 ]; then echo "$1 up"; fi
}
check 192.168.56.10静かで安全なスクリプト
本番品質のスクリプトでは、不要な出力をリダイレクトし、問題があればすぐに終了します。
2>/dev/nullはエラーを隠します。set -eは最初に失敗したコマンドで終了します。set -uは未定義の変数をエラーにします。
#!/bin/bash
set -euo pipefailクイックチェック
スクリプトでコマンドの出力を取得する方法を思い出してください。
まとめ
Bashスクリプトの基礎を学びました。
- 実行可能なスクリプトを作るには、シェバンと
chmod +xを使用します。 - 変数、引数(
$1)、$( )によるコマンド置換。 - 制御フローには if、for、while を使用します。
- 堅牢なスクリプトには、終了コード(
$?)とset -euo pipefailを使用します。
次は、偵察の自動化です。
よくある質問
「スクリプトの基礎」レッスンは無料ですか?
はい。「スクリプトの基礎」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ethical Hacking Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ethical Hacking Academyコースには全4レッスンが含まれています。
「スクリプトの基礎」で何を学びますか?
変数とループ ブラウザで直接実行するハンズオンコードでEthical Hacking Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Ethical Hacking Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのEthical Hacking Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「スクリプトの基礎」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このEthical Hacking Academyレッスンでコードを書いて実行できますか?
はい。すべてのEthical Hacking Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。