1、Linuxポートスキャン
nmap [オプション] IP-address
-A OSとバージョンスキャン -sL リストスキャン -sP Pingスキャン -sS TCP SYNスキャン/TCPハーフスキャン -sT TCPでポートに接続スキャン -sV ソフトウェア名とバージョンの表示を有効にする -sU UDPでポートに接続スキャン -sF TCP FINスキャン -sN TCP Nullスキャン -sX FIN/PSH/URGフラグXmasスキャン -sA TCP ACKスキャン -b FTP_HOST FTPバウンススキャン -O OSスキャン -P0 Pingスキャンを行わない -PS [PORTLIST] PORTLISTで指定したポート(デフォルトは80番)にSYNフラグ付きの空TCPパケットを送信する(TCP SYN Ping) -PA [PORTLIST] PORTLISTで指定したポート(デフォルトは80番)にACKフラグ付きの空TCPパケットを送信する(TCP ACK Ping) -PU [PORTLIST] PORTLISTで指定したポート(デフォルトは31338番)に空UDPパケットを送信する(UDP Ping) -PE ICMPタイプ8(エコー要求)パケットをターゲットに送信(ICMP Ping) -PR IPベースのスキャンより高速なARPスキャン(ARP Ping) -n DNSによる逆引き名前解決を行わない -R すべてのターゲットに対して常にDNSによる逆引き名前解決を行う -p PORT ポートスキャンのPORTを指定(1-1023、U:53,T:80)UはUDP、TはTCP -F 限定したポートのみ調べる(約1200ポート) -r 調べるポートの順番を無作為(デフォルト)ではなく順に選ぶ
例: ターゲットIPが192.168.1.10のポート24にUDPスキャンを行います。
# nmap -p 24 -sU 192.168.1.10
2、Linux、TCPポートダンプ
tcpdump [ オプション ] [ エクスプレーション]
オプション一覧
-a ネットワークアドレスとブロードキャストアドレスを名前解決 -c COUNT COUNT個のパケットを受信したら終了 -d コンパイル済みパケットマッチングコードを、人が読める形式で標準出力に出力し終了 -dd パケットマッチングコードをC言語プログラムの一部として使える形式でダンプ -e リンクレベルヘッダをそれぞれの出力行に表示 -f 外部のIPv4アドレスをシンボルではなく数値で表示 -i INTERFACE ネットワーク・インターフェースINTERFACEを監視 -l 標準出力をバッファリング -n IPアドレスやポート番号を名前に変換しない -m MODULE SMI MIBモジュールをファイルMODULEから読み込む -p プロミスキャスモード(無差別透過モード)にしない -q 簡易的な出力 -r FILE パケットをファイルFILEから読み込んで処理する(「-」なら標準入力から読み込む) -s SNAPLEN 出力するバイト数をSNAPLENバイトにする -t 時間情報を出力しない -tt 時間情報を整形せずUNIX時間で表示 -ttt 時間情報を直前の行との差分で表示 -v やや詳細に出力する(TTLやサービス種別なども表示される) -vv -vよりも詳細に出力する(NFS応答パケットの追加フィールドなども表示される) -vvv -vvよりも詳細に出力する(telnet SBオプションなども表示される) -w FILE 生パケットをそのままファイルFILEに出力(-rオプションで読み込める) -x パケットを16進数で表示(リンクレベルヘッダを除く) -A パケットをASCII文字で表示 -B BUFFERSIZE OSのバッファサイズをBUFFERSIZEとする -C FILESIZE 出力ファイルの最大サイズをFILESIZEメガバイト(MiB)とし、超えた場合は別ファイルにローテート -D tcpdumpで利用できるネットワークインターフェースをリスト表示 -F FILE 条件式が書かれたファイルFILEを読み込んで利用する(これ以後の引数の条件式は無視) -G ROTATE_SECONDS ファイル書き込みをROTATE_SECONDS秒でローテート -N ドメイン名を表示せずホスト名のみ表示 -S TCPシーケンス番号を絶対値で表示 -T TYPE 条件にマッチしたパケットをTYPE(rpc、rtp、rtcp、snmp、vat、wb)で指定したタイプで翻訳 -X パケットの16進数表示の際にASCII文字列も表示 -W FILECOUNT ローテート回数がFILECOUNTに達したら終了 -Z USER root権限ではなくユーザーUSER権限で動作 EXPRESSION パケットマッチングの条件式を指定
エクステンション一覧
dst host HOST パケットの宛先ホストがHOSTであれば真 src host HOST パケットの送信元ホストがHOSTであれば真 host HOST パケットの宛先もしくは送信元ホストがHOSTであれば真 ether dst EHOST Ethernetの宛先アドレスがEHOSTであれば真 ether src EHOST Ethernetの送信元アドレスがEHOSTであれば真 ether host EHOST Ethernetの宛先または送信元アドレスがEHOSTであれば真 gateway HOST パケットのゲートウェイがHOSTであれば真 dst net net パケットの宛先アドレスがネットワークNETを含んでいれば真 src net net パケットの送信元アドレスがネットワークNETを含んでいれば真 net NET パケットの宛先または送信元アドレスがネットワークNETを含めば真 net NET mask MASK パケットのアドレスをMASKでマスクしてNETになれば真 dst port PORT 宛先ポートがPORTであれば真 src port PORT 送信元ポートがPORTであれば真 port PORT 宛先もしくは送信元ポートがPORTであれば真 less LENGTH パケット長がLENGTH以下であれば真 greater LENGTH パケット長がLENGTH以上であれば真 [ip proto] PROTOCOL IPパケットのプロトコルがPROTOCOL(tcp, udp, icmp)であれば真 [ip6 proto] PROTOCOL IPv6パケットのプロトコルがPROTOCOL(tcp, udp, icmp)であれば真 ether broadcast パケットがEthernetのブロードキャストであれば真 ip broadcast パケットがIPブロードキャストであれば真 ether multicast パケットがEthernetのマルチキャストであれば真 ip multicast パケットがIPマルチキャストであれば真 ip6 multicast パケットがIPv6マルチキャストであれば真 [ether proto] PROTOCOL EthernetのプロトコルがPROTOCOL(ip、ip6、arp、rarp)であれば真
例: 送信元は192.168.1.8、送信先が192.168.1.9のwlan0インターフェース(カード)経由のTCPパッケートを表示する
# tcpdump -i wlan0 -x src 192.168.1.8 # tcpdump -i wlan0 -x dst 192.168.1.9