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

ハッカーは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プロトコルの流れを理解する必要があります。
流れさえ覚えていれば鬼に金棒ですね。