【注意】このサイトに記載されていることを他人に試すことは「不正アクセス禁止法」に該当する場合があります。詳しくはこちらから

ハッカーはhping3で任意のTCP/IPパケットを送信する(Kali Linuxツール説明)

ホワイトハッカーの知識座学,Kali Linuxツール,hping3

任意の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応答を強制的に返して攻撃に備えます。

whitemarkn
whitemarkn
hping3を利用するためにはTCP、UDP、ICMP、RAW-IPプロトコルの流れを理解する必要があります。
流れさえ覚えていれば鬼に金棒ですね。