3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【備忘録】クラッキング使用ツールをまとめてみた

Last updated at Posted at 2025-02-24

はじめに

こんにちは! Saku0512です。
野溝のみぞう氏著の7日間でハッキングをはじめる本 TryHackMeを使って身体で覚える攻撃手法と脆弱性を読んで実際に行ってみました。
この書籍で実際に使ったツール等を備忘録としてまとめました。

セキュリティ初心者のため、内容が間違っている可能性が十分にあります。

この記事は公開ネットワーク上でのクラッキングを推奨するものではありません!!!
紹介しているツールによっては不用意に使用すると不正アクセス禁止法等の法律に抵触する可能性があります。
使用には十分に注意を払ってください。

ツール・サイト

ツール・サイト概要

ツール・サイト名 概要
ping ホストの応答確認
nmap ポートスキャン
grep テキストを検索
strings バイナリファイルの可読部分表示
find ファイル検索
exiftool EXIF情報取得
dirb 公開ディレクトリ調査
unzip zipファイル解凍
hydra パスワード攻撃ツール(ネットワークサービス)
john the ripper パスワード攻撃ツール(hash解析)
hascat パスワード攻撃ツール(hash解析)
Metasploit Framework エクスプロイト実行
xfreerdp リモートデスクトップ接続
burpsuite Webアプリケーション攻撃
steghide 画像や音声ファイル内の隠しファイルを探す
LinPEAS 権限昇格できる脆弱性調査
GTFOBins 特権昇格等に利用できるバイナリを閲覧できるサイト

ツール・サイト詳細説明

ping

pingは、IPアドレス(ドメイン)を指定して応答確認するコマンド。

$ ping <対象のIPアドレス(ドメイン)> 

ICMPの Echo Request を送信し、相手から Echo Reply が返ってくるかをチェックすることでホストが生きているか確認する。

出力例

$ ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.273 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.070 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.035 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.072 ms
^C
--- 127.0.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3019ms
rtt min/avg/max/mdev = 0.035/0.112/0.273/0.093 ms

-cを付けないと無限にリクエスト送信してしまうため途中で^Cで強制終了している。

主要なオプション

オプション 使用例 使用例の説明
-c ping -c 3 〇.〇.〇.〇 3回のリクエストを送信する
-i ping -i 1 〇.〇.〇.〇 1秒ごとにリクエストを送信する

nmap

nmapは、ホストのポートスキャンを行うツール。

$ nmap <対象のIPアドレス(ドメイン)> 

出力例

Starting Nmap 7.80 ( https://nmap.org ) at 2025-02-24 19:33 JST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00038s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http

Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds

主要なオプション

オプション 使用例 使用例の説明
-sV nmap -sV 〇.〇.〇.〇 検出したサービスのバージョンを表示する
-Pn nmap -Pn 〇.〇.〇.〇 スキャン対象ホストを全てスキャン
-oN nmap -oN nmap.txt 〇.〇.〇.〇 スキャン結果をnmap.txtに出力する
-v nmap -v 〇.〇.〇.〇 スキャン時の詳細情報を表示する
-A nmap -A 〇.〇.〇.〇 高度なスキャン(OS検出、サービス検出、トレースルート)
--script nmap --script vuln 〇.〇.〇.〇 指定したスクリプトを実行する
vulnは脆弱性スキャン
-p nmap -p 10-100 〇.〇.〇.〇 10から100までのポート番号をスキャンする

grep

grepは、テキストを検索するツール。

$ grep <検索する文字列> <ファイルやディレクトリ>

出力例

grep.txt

apple
banana
cacao
dragon fruit
$ grep apple grep.txt
apple

主要なオプション

オプション 使用例 使用例の説明
-i grep -i hoge test.txt 大文字小文字を区別しない
-v grep -v hoge test.txt パターンに一致しない行を出力する
-rまたは**-R** grep -r hoge test/ ディレクトリ内のファイルを再帰的に検索
-n grep -n hoge test.txt 行番号を出力する

strings

stringsは、主にバイナリファイルから文字列を抽出するツール。

$ strings <バイナリファイル>

出力例

$ strings test.bin
/lib64/ld-linux-x86-64.so.2
clock
__cxa_finalize
read
__libc_start_main
rand
tcgetattr
memset
system
tcsetattr
putchar
__stack_chk_fail
printf
libc.so.6
.
.
.

主要なオプション

オプション 使用例 使用例の説明
-a strings -a test.bin バイナリファイル全体から抽出
-f strings -f test1.bin test2.bin 複数ファイルをまとめて抽出
-e strings -e <エンコーディング> test.bin 指定したエンコーディングを使って抽出
-e SはUTF-8

find

findは、ファイル検索を行うツール。

$ find <検索ディレクトリ> <条件>

出力例

$ find / -name flag.txt
/home/kali/flag.txt

主要なオプション

オプション 使用例 使用例の説明
-name find / -name flag.txt 指定した名前のファイルを検索
-iname find / -iname Flag.txt 大文字小文字を区別しないで検索
-type find / -type l ファイルタイプで検索
f :通常ファイル
d :ディレクトリ
l :シンボリックリンク
-user find / -user <ユーザー> ファイルの所有者で検索
-exec find / -name flag.txt -exec <コマンド> 検索したファイルにコマンドを実行
-exec rm {} \; でファイル削除

exiftool

exiftoolはEXIF情報を表示するツール。

$ exiftool <ファイル名>

出力例

$ exiftool book.png
ExifTool Version Number         : 12.40
File Name                       : book.png
Directory                       : .
File Size                       : 15 KiB
File Modification Date/Time     : 2024:10:24 16:49:49+09:00
File Access Date/Time           : 2025:02:24 11:19:51+09:00
File Inode Change Date/Time     : 2025:02:07 14:09:28+09:00
File Permissions                : -rwxr-xr-x
File Type                       : PNG
File Type Extension             : png
MIME Type                       : image/png
Image Width                     : 500
Image Height                    : 500
Bit Depth                       : 8
Color Type                      : RGB with Alpha
Compression                     : Deflate/Inflate
Filter                          : Adaptive
Interlace                       : Noninterlaced
SRGB Rendering                  : Perceptual
Exif Byte Order                 : Big-endian (Motorola, MM)
Orientation                     : Horizontal (normal)
Pixels Per Unit X               : 2835
Pixels Per Unit Y               : 2835
Pixel Units                     : meters
Apple Data Offsets              : (Binary data 28 bytes, use -b option to extract)
Image Size                      : 500x500
Megapixels                      : 0.250

主要なオプション

オプション 使用例 使用例の説明
-s exiftool -s book.png 出力を簡潔に表示
-set exiftool -set "Author=Test" book.png メタデータの変更
book.pngのAuthorをTestに変更
-all= exiftool -all= book.png book.pngのメタデータを全て削除

dirb

dirbはウェブサーバー上のディレクトリやファイルをスキャンして、隠れたリソースや未公開のエンドポイントを発見するためのツール。
/usr/share/dirb/wordlists/common.txt がデフォルトの辞書ファイルになる。

$ dirb <URL> [辞書ファイル]

主要なオプション

オプション 使用例 使用例の説明
-w dirb <URL> -w [辞書ファイル] カスタム辞書ファイルを使用する
-t dirb <URL> -t 4 使用するスレッド数(平行リクエスト数)を指定する
デフォルトでは10
-r dirb <URL> -r リダイレクトを追跡する
-v dirb <URL> -v 詳細な出力を表示する

unzip

unzipはzipファイル解凍できるツール。
例外的に.odt等のOpenDocumentファイルや、docs等のOffice Open XMLファイルも解凍できる。
詳細は参考サイトを参照してもらいたい。

$ unzip <ZIPファイル名>

主要なオプション

オプション 使用例 使用例の説明
-d unzip sample.zip -d /path/to/directory 解凍先ディレクトリを指定
-x unzip sample.zip -x "*.log" 解凍時に特定のファイルを除外
-j unzip -j sample.zip ディレクトリ構造を無視して全てのファイルを平坦に解凍

hydra

hydraはネットワークサービスに対してパスワードクラッキング攻撃を実施するツール。
認証情報を試してログインの成功を目指す。

$ hydra -l <ユーザー名> -P <パスワードリストのディレクトリ> <プロトコル>://<IPアドレス>

主要なオプション

オプション 使用例 使用例の説明
-l hydra -l <ユーザー名> 単一のユーザー名を指定
-L hydra -L <ユーザー名のリストのディレクトリ> ユーザー名リストを指定
-P hydra -P <パスワードリストのディレクトリ> パスワードリストを指定
-t hydra -t 64 同時に接続する最大数を指定
-f hydra -f 最初の成功で攻撃を中止
-v hydra -v 詳細を表示
攻撃の進捗を表示する

主要な対象プロトコル

  • SSH
  • FTP
  • HTTP (Basic認証やフォーム認証にも対応)
  • SMTP
  • POP3
  • IMAP

john the ripper

john the ripperはパスワードクラッキングツールとして広く知られている。
主にハッシュ化されたパスワードを解析して復元することを目的としている。

$ john <解読対象のパスワードハッシュファイル>

主要なオプション

オプション 使用例 使用例の説明
--wordlist= john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt 使用する辞書を指定
--incremental john --incremental hashes.txt ブルートフォース攻撃(総当たり攻撃)を行う
--format= john --format=raw-md5 hashes.txt ハッシュアルゴリズムが判明している場合に指定
--show john --show hashes.txt 解析済みのパスワードを表示

hashcat

hashcatjohn the ripper同様にハッシュ化されたパスワードを解析するツール。
特にGPUによる並列計算に強いのが特徴。

$ hashcat -m <ハッシュタイプ> -a <攻撃モード> <ハッシュファイル> <辞書>

主要なハッシュタイプ

-mによりハッシュタイプを指定することができる

ハッシュ形式 -m
MD5 0
SHA1 100
NTLM 1000
SHA256 1400
WPA/WPA2 22000

主要な攻撃モード

-aにより攻撃モードを指定することができる

攻撃モード -a 説明
辞書攻撃 0 指定した辞書を使用して試す
組み合わせ攻撃 1 2つの辞書を組み合わせて使用して試す
マスク攻撃 3 文字パターンを指定して試す
ブルートフォース攻撃 3 全ての組み合わせを試す
ハイブリッド攻撃 6 / 7 辞書とマスクを組み合わせて試す

Metasploit Framework

Metasploit Frameworkは脆弱性診断・ペネトレーションテストのためのオープンソースの攻撃フレームワーク。
exploitを簡単に実行できる

$ msfconsole  # Metasploit Frameworkを起動

起動後に使用する基本的なコマンド

コマンド 説明
search <exploit> 指定した攻撃手法を検索
主にCVEで検索されることが多い
use <exploit> 使用するエクスプロイトを選択
show options 設定する必要があるオプションを表示
set <option> <value> オプションを指定
run / exploit 攻撃を実行

侵入後に使用する基本的なコマンド

コマンド 説明
sysinfo ターゲットのOS情報を表示
getuid 現在のユーザーを表示
shell ターゲットのコマンドプロンプトを開く
download <file> ターゲットからファイルをダウンロード
upload <file> ターゲットにファイルをアップロード
screenshot スクリーンショットを撮る
exit セッション終了

xfreerdp

xfreerdpはWindowsのリモートデスクトッププロトコル(RDP)を使用してリモートのWindowsマシンに接続するためのツール。

$ xfreerdp /v:<ターゲットIP> /u:<ユーザー名> /p:<パスワード>

主要なオプション

オプション 使用例 使用例の説明
/v: xfreerdp /v:<ターゲットIP> ターゲットのIPアドレスを指定
/u: xfreerdp /u:<ユーザー名> ログインするユーザー名を指定
/p: xfreerdp /p:<パスワード> ログインパスワードを指定
/port: xfreerdp /port:<ポート番号> RDPのポートを指定
デフォルトでは 3389
/size: xfreerdp /size:<幅>x<高さ> ウィンドウサイズを指定
/f xfreerdp /f フルスクリーンを指定

burpsuite

burpsuiteはWebアプリケーションのセキュリティテスト を行うための統合ツールセットです。
主にペネトレーションテストやバグハンディングに使用される。
詳細は参考サイトを参照してください。

steghide

steghideは画像や音声ファイルに 秘密のデータを埋め込んだり、取り出したりする ことができます。
JPEGBMPWAVAU をサポートしている。

基本的な使い方

1. データを埋め込む
$ steghide embed -cf <cover_file> -ef <secret_file>
2. データを抽出する
$ steghide extract -sf <stego_file>
3. 埋め込まれた情報の確認
$ steghide info image.jpg

LinPEAS

LinPEASはLinux環境での 権限昇格の可能性を調査するツールです。

$ ./linpeas.sh

主な機能

機能 説明
SUIDバイナリの検出 権限昇格の可能性があるSUIDを探す
権限のあるファイルの特定 /etc/passwd や shadow などアクセス可能な重要ファイルをリストアップ
Kernelの脆弱性チェック 既知の特権昇格用の脆弱性を調査

GTFOBins

GTFOBinsLinuxやUnix環境において権限昇格に悪用可能なバイナリのリストを集めたデータベースサイトです。
詳しくは公式サイトを参照してください。

主な機能

機能 説明
SUIDを悪用 SUIDが設定されたバイナリを使って権限昇格
sudo権限の悪用 sudoで実行可能なコマンドを利用してroot権限を取得
シェルの取得 制限された環境でも/bin/shや/bin/bashを起動
コマンド実行 制限された環境でコマンドを実行する手法

用語説明

Reverseshell

攻撃者がターゲットマシンからローカルマシンに向けた攻撃を行う仕組み。
ターゲットマシンからローカルマシンに接続するため、ファイヤーウォールを透過しやすい。

RCE

Remote Code Execution の略。
リモート(遠隔地)からターゲットシステムに対して任意のコードを実行させること。

SUID

Set User Id の略。
LinuxやUNIX系システムにおけるファイルの実行権限に関連する特別なアクセス権の一つ。
この権限を持つファイルを実行すると、実行ユーザーの権限ではなく、そのファイルの所有者の権限で実行される。

Active Directory

Microsoftが開発したディレクトリサービスで、企業や組織内でのネットワークリソースやユーザーアカウントを効率的に管理するためのシステム。
ユーザーID/パスワードの管理・ユーザー認証・システムへのアクセス制御・ログの集約などの機能を安全で便利に一元管理できる。

Kerberos認証

Active Directory で用いている認証方式。
ASにTGTを発行してもらい、TGTを使ってTGSにSTを発行して貰うという流れ。

AS (Authentication Service : 認証サービス)

認証を受け付け、認証に成功したらTGSにTGTを発行する。

TGS (Ticket-Grainting Service : チケット付与サービス)

ASが発行したTGTを確認してSTを発行する。

KDC (Key Distribution Center : キー配布センター)

ASとTGSの機能を含む Kerberos認証 のチケット発行サービス。

TGT (Ticket-Grainting Ticket : チケット付与チケット)

ASが発行するクライアントの身分証明書のようなもの。

ST (Service Ticket : サービスチケット)

TGSが発行するサービス仕様許可証のようなもの。

DCSync攻撃

Active Directory (AD) 環境における特権昇格攻撃の一つで、攻撃者がドメインコントローラー (DC) に対してユーザーのパスワードハッシュを同期させる方法を利用して、ドメイン管理者権限を取得する手法
特に、攻撃者がドメインコントローラーの管理権限を持っていない場合でも、特定の条件下でこの攻撃を実行できる。

DC (ドメインコントローラー)

AD環境においてネットワーク上のユーザーアカウント、グループアカウント、コンピュータ、リソースなどの管理を担当するサーバー。

Pass the Hash

認証プロセスにおいてパスワードのハッシュ値を直接使用して認証を通過させる攻撃手法。
攻撃者がターゲットシステムのパスワードハッシュを取得して、そのハッシュ値で他システムへの認証を試みる。
これにより、実際にパスワードを知らなくてもシステムへのアクセスが可能になる。

プロトコル

プロトコル概要

プロトコル名 概要
SSH リモートアクセス
ICMP ICMP通信
SMB Samba通信
FTP FTP通信
KERBEROS Kerberos通信

プロトコル詳細説明

SSH (Secure Shell)

SSHはネットワーク経由でリモートシステムに安全にアクセスするためのプロトコルおよびツール。
ユーザー名とパスワードを指定することによりリモートアクセスできる。

$ ssh username@hostname_or_ip

標準ポートは22

ICMP (Internet Control Message Protocol)

ICMPは主にネットワークの診断やエラーメッセージの伝達に使用されます。
pingコマンドではICMPのEcho Request / Echo Replyを使用している。

SMB (Server Message Block)

SMBはネットワーク上でファイルやプリンターを共有するために使用される通信プロトコル。
ファイル共有・プリンタ共有・リモートコマンド実行等の機能を持つ。
標準ポートは445
WindowsネットワークとLinux間でファイル操作を行うときに使われるsmbclientというコマンドラインツールがある。

smbclient

SMBサーバーに接続

$ smbclient //hostname_or_ip/share_name -U username

ファイルのリスト

smb: \> ls

アップロード・ダウンロード

smb: \> put localfile remotefile
smb: \> get remotefile localfile

ファイルの削除

smb: \> del filename

FTP (File Transfer Protocol)

FTPはファイル転送を目的としたネットワークプロトコルの一つで、ネットワーク間のコンピュータ間でファイルを転送するために使用される。
標準ポート

  • 20 : データ転送ポート(アクティブモードのFTPで使用される)。
  • 21 : コントロールポート(コマンドを送受信するために使われる)。

モード

1. アクティブモード(Active Mode):

データ転送のためにサーバー側からクライアントの指定したポートへ接続が試みられます。

2. パッシブモード(Passive Mode):

クライアントがサーバーに接続し、サーバーが動的にポートを開放して、そのポートを使ってデータ転送を行う。

FTPコマンド

接続

$ ftp <hostname_or_ip>

ログイン

Name (<hostname>:<username>): <username>
Password: <password>

設定によってはanonymousというユーザー名でパスワードなしでログインできてしまう場合がある。
これを匿名FTPという。

ファイルのアップロード

put localfile remotefile

ファイルのダウンロード

get remotefile localfile

Kerberos

Kerberosは通信のセキュリティを提供するために使用される。
Kerberosは、主にクライアント-サーバー型のネットワーク環境で使用され、KDCを中心に動作します。
このプロトコルは、特に大規模な企業ネットワークや、分散システムにおいて、シングルサインオン(SSO)を実現するために使用されます。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?