ハッカーはhping3で任意のTCP/IPパケットを送信する(Kali Linuxツール説明)
任意のTCP/IPパケットを送信する方法を理解するためにまとめてみました。
このhping3の動作確認は自分のドメインでテストを行っています。
hping3とは
hping3ツールはコマンドライン指向のTCP/IPパケットアセンブラ/アナライザです。
簡単に言うと、TCP/IPメッセージを分析できるようにするツールで任意にネットワークパケットを組み立て、送信できるツールになります。(TCP、UDP、ICMP、RAW-IPプロトコルをサポートしています。)
機能
- ファイアウォールテスト
- 高度なポートスキャン
- ネットワークテスト(異なるプロトコル、TOS、フラグメントの使用)
- 手動でのパスMTU検出
- サポートされているすべてのプロトコルを使用した高度なトレースルート
- リモートOSフィンガープリント
- リモートアップタイムの推測
- TCP/IPスタックの監査
- TCP/IPの学習
ツールの場所
[Applications]→[01-Information Gathering]→[Live Host Identification]→[hping3]
ツールと使用方法
hping3 host [options]
例 hping3 –traceroute -V -1 www.yahoo.co.jp
【実行イメージ】少し端折って整形しています。
┌──(root__kali)-[/home/kali]
└─# hping3 --traceroute -V -1 ****.com using eth0, addr: 10.0.2.15, MTU: 1500
HPING ****.com (eth0 ***.***.***.***): icmp mode set, 28 headers + 0 data bytes
hop=1 TTL 0 during transit from ip=10.0.2.2 name=UNKNOWN
hop=1 hoprtt=7.2 ms
hop=2 TTL 0 during transit from ip=192.168.1.1 name=ntt.setup
hop=2 hoprtt=258.2 ms
hop=3 TTL 0 during transit from ip=153.153.246.226 name=UNKNOWN
hop=3 hoprtt=6.5 ms
hop=4 TTL 0 during transit from ip=153.153.246.9 name=UNKNOWN
:
len=46 ip=183.90.241.130 ttl=47 id=37 tos=0 iplen=28
icmp_seq=17 rtt=58.3 ms
len=46 ip=183.90.241.130 ttl=47 id=38 tos=0 iplen=28
icmp_seq=18 rtt=32.1 ms
:
--- bp-j.com hping statistic ---
89 packets transmitted, 89 packets received, 0% packet loss
round-trip min/avg/max = 6.1/32.9/258.2 ms
オプション(GENERAL OPTIONS)
-h –help
show this help.
このヘルプを表示する。
-v –version
show version.
バージョン表示。
-c –count
packet count.
パケット回数。
-i –interval
wait.(uX for X microseconds, for example -i u1000)
時間間隔。(uXはXマイクロ秒、例えば-i u1000)
–fast
alias for -i u10000.(10 packets for second)
-i u10000 (10パケット/秒)のエイリアス。
–faster
alias for -i u1000.(100 packets for second)
-i u1000(100パケット/秒)のエイリアス。
–flood
sent packets as fast as possible. Don’t show replies.
送信されたパケットを可能な限り高速に処理します。返事を表示しない。
-n –numeric
numeric output.
数値出力。
-q –quiet
quiet.
表示させません。
-I –interface
interface name. (otherwise default routing interface)
インターフェース名。(デフォルトのルーティングインターフェースの場合)
-V –verbose
verbose mode.
冗長モード。
-D –debug
debugging info.
デバッグ情報。
-z –bind
bind ctrl+z to ttl.(default to dst port)
ctrl+zをttlにバインドする。(デフォルトはdstポート)
-Z –unbind
unbind ctrl+z.
バインド解除 ctrl+z。
–beep
beep for every matching packet received.
一致するパケットを受信するたびにビープ音を鳴らす。
モード(Mode)
default mode TCP.
デフォルトモードはTCPです。
-0 –rawip
RAW IP mode.
RAW IPモード。
-1 –icmp
ICMP mode.
ICMPモード。
-2 –udp
UDP mode.
UDPモード。
-8 –scan
SCAN mode.
Example: hping –scan 1-30,70-90 -S www.target.host
SCANモード。
-9 –listen
listen mode.
リスニングモード。
IP
-a –spoof
spoof source address.
スプーフィング ソースアドレス。
–rand-dest
random destionation address mode. see the man.
ランダムデスティネーション アドレスモード。(マニュアルを参照のこと)
–rand-source
random source address mode. see the man.
ランダムソース アドレスモード。(マニュアルを参照のこと)
-t –ttl
ttl (default 64).
ttl (デフォルト64)。
-N –id
id (default random).
id (デフォルトはランダム)。
-W –winid
use win* id byte ordering.
win*のIDバイトオーダーを使用。
-r –rel
relativize id field.(to estimate host traffic)
idフィールドの相対化。(ホストのトラフィックを推定するため)
-f –frag
split packets in more frag. (may pass weak acl)
パケットをより細分化します。 (弱いaclを通過する可能性あり)
-x –morefrag
set more fragments flag.
more fragmentsフラグを設定する。
-y –dontfrag
set don’t fragment flag.
don’t fragmentフラグを設定する。
-g –fragoff
set the fragment offset.
フラグメントオフセットの設定。
-m –mtu
set virtual mtu, implies –frag if packet size > mtu.
仮想MTUを設定し、パケットサイズがMTUより大きい場合には –fragを意味する。
-o –tos
type of service (default 0x00), try –tos help.
サービスの種類(デフォルトは0x00)、–tos helpを試す。
-G –rroute
includes RECORD_ROUTE option and display the route buffer.
RECORD_ROUTEオプションを含み、ルートバッファを表示する。
–lsrr
loose source routing and record route.
ルースソースルーティングとレコードルート。
–ssrr
strict source routing and record route.
厳密なソースルーティングとレコードルート。
-H –ipproto
set the IP protocol field, only in RAW IP mode.
IPプロトコルフィールドの設定。(RAW IPモード時のみ)
ICMP
-C –icmptype
icmp type. (default echo request)
icmpタイプ。(デフォルトはエコーリクエスト)
-K –icmpcode
icmp code. (default 0)
icmpコード。(デフォルト0)
–force-icmp
send all icmp types. (default send only supported types)
すべてのicmpタイプを送信する。(デフォルトではサポートされているタイプのみを送信する)
–icmp-gw
set gateway address for ICMP redirect. (default 0.0.0.0)
ICMPリダイレクトのゲートウェイアドレスを設定する。(デフォルト0.0.0.0)
–icmp-ts
Alias for –icmp –icmptype 13. (ICMP timestamp)
–icmp –icmptype 13 (ICMPタイムスタンプ)のエイリアス。
–icmp-addr
Alias for –icmp –icmptype 17. (ICMP address subnet mask)
–icmp –icmptype 17(ICMPアドレス・サブネットマスク)の別名。
–icmp-help
display help for others icmp options.
他の icmp オプションのヘルプを表示する。
UDP/TCP
-s –baseport
base source port.(default random)
ベースとなるソースポート。(デフォルトはランダム)
-p –destport
[+][+]<port> destination port(default 0) ctrl+z inc/dec.
[+][+]<ポート> デスティネーションポート(デフォルト0) ctrl+z inc/dec。
-k –keep
keep still source port.
ソースポートを保ちます。
-w –win
winsize.(default 64)
winsize。(デフォルト64)
-O –tcpoff
set fake tcp data offset.(instead of tcphdrlen / 4)
偽のtcpデータのオフセットを設定します。(tcphdrlen / 4の代わり)。
-Q –seqnum
shows only tcp sequence number.
tcpのシーケンス番号のみ表示。
-b –badcksum
(try to) send packets with a bad IP checksum many systems will fix the IP checksum sending the packet so you’ll get bad UDP/TCP checksum instead.
多くのシステムはIPチェックサムを修正してパケットを送信するため、代わりにUDP/TCPのチェックサムが不正になります。
-M –setseq
set TCP sequence number.
TCPシーケンス番号を設定します。
-L –setack
set TCP ack.
TCPackを設定します。
-F –fin
set FIN flag
FINフラグを設定します。
-S –syn
set SYN flag.
FINフラグを設定します。
-R –rst
set RST flag.
RSTフラグを設定します。
-P –push
set PUSH flag.
PUSHフラグを設定します。
-A –ack
set ACK flag.
ACKフラグを設定します。
-U –urg
set URG flag.
URGフラグを設定します。
-X –xmas
set X unused flag (0x40).
X未使用フラグ(0x40)を設定します。
-Y –ymas
set Y unused flag (0x80).
Y未使用フラグ(0x40)を設定します。
–tcpexitcode
use last tcp->th_flags as exit code.
最後のtcp->th_flagsを出口コードとして使用します。
–tcp-mss
enable the TCP MSS option with the given value.
TCP MSSオプションを指定された値で有効にする。
–tcp-timestamp
enable the TCP timestamp option to guess the HZ/uptime.
HZ/uptimeを推測するためにTCP timestampオプションを有効にする。
Common
-d –data
data size.(default is 0)
データサイズ。(デフォルトは0)
-E –file
data from file.
ファイルからのデータ読み込み。
-e –sign
add 'signature’.
シグネチャーを追加。
-j –dump
dump packets in hex.
パケットを16進数でダンプ。
-J –print
dump printable characters.
印刷文字のダンプ。
-B –safe
enable 'safe’ protocol.
safeプロトコルを有効にする。
-u –end
tell you when –file reached EOF and prevent rewind.
ファイルがEOFに到達したことを知らせ、巻き戻しを防ぐ。
-T –traceroute
traceroute mode.(implies –bind and –ttl 1)
tracerouteモード。(–bindおよび–ttl 1を含む)。
–tr-stop
Exit when receive the first not ICMP in traceroute mode.
tracerouteモードで最初のnot ICMPを受信したときに終了する。
–tr-keep-ttl
Keep the source TTL fixed, useful to monitor just one hop.
ソースのTTLを固定しておき、1つのホップだけを監視するのに便利です。
–tr-no-rtt
Don’t calculate/show RTT information in traceroute mode.
tracerouteモードでRTT情報を計算/表示しない。
ARSパケットの記述(ARS packet description [new, unstable])
–apd-send
Send the packet described with APD (see docs/APD.txt).
APD(docs/APD.txt参照)で記述されたパケットの送信。
hping3ツールのまとめ
ブラックハットハッカーはセキュリティ上、ICMP応答を無効にしているサーバやデバイスが多くなってきたため、Hping3を使用してポートを調査して、ICMP応答を強制的に返して攻撃に備えます。
[word_balloon id="1″ size="M" position="L" name_position="under_avatar" radius="true" balloon="talk" balloon_shadow="true"]hping3を利用するためにはTCP、UDP、ICMP、RAW-IPプロトコルの流れを理解する必要があります。
流れさえ覚えていれば鬼に金棒ですね。[/word_balloon]