SlideShare uma empresa Scribd logo
1 de 88
100年後にまた会いましょう
Nmapの真実
自己紹介
小河 哲之
Twitter:abend
ISOG-WG1
Burp Suite Japan ユーザグループ
言いたい事
100年後、Nmapにまた会いたい。
why
なぜ、その結論に至ったのか。
その真実をご紹介します。
Nmap
Network Mapperの略。ポートスキャン、ホスト
探索、セキュリティチェックを行うためのソフト
ウエア。オープンソース。
きっかけは
1通のメッセージから始まった。
きっかけは
Software DesignでNmapなど記事書
いてみませんか?
きっかけは
ええっ!?オレ??
きっかけは
July Tech Festaで講演聞いたんですよ。
きっかけは
http://www.slideshare.net/zaki4649
/free-securitycheck
きっかけは
そう、きっかけはJuly Tech Festaで登
壇したから。
記事を書く
初めて記事を書くことになった。
誰向け?
対象読者はインフラエンジニア
記事を書く
しかも、8ページも。
1200文字×8ページ=9600文字
流れを考えてみた
Nmapがどんなもんか説明して、オプ
ションいくつか説明して終わる。
なので
なんとかなるかと思い、二つ返事で
受諾した。
まずは
とりあえず、リファレンスを読み返して
みた。
リファレンス
ウェーイ
日本語のリファレンスって、嬉しいよ
ね。
だが、しかし
これが、真実とは限らない。
Ping Scan
-sP (Ping スキャン)って、Ping打つよ
ね?
Ping Scan
Ping Scan
Pingだけではなかった。
Ping Scan
80/TCPへのアクセスもあるって。
だが、しかし
真実は異なる。
Wow
見えてきた
ICMP、80/TCP、443/TCPへパケット
を送る。
パケットの真実
同セグメントの場合、ARPも送る。
リファレンスの真実
リファレンスは語る
-sPは以前のオプションで、今は-snオ
プション。
古いんだよ
日本語のリファレンスには-snオプショ
ンの記載はない。
そう、真実は
日本語のリファレンスより英語のリファ
レンス読め。
次の真実
-Tオプションでタイミングの調整がで
きる。
設定値は
-T0から-T5の6段階で制御可能。
Nmapは-T3がデフォルト。
どんな制御?
具体的にどのような調整がされるの
だろうか。
リファレンス
ほぅ
-T0だと5分に1回パケットを送る。
-T1だと15秒、-T2は0.4秒に1回。
他にもいろいろある
-T4は失敗時の再送回数6回、-T5は2
回などなど・・・。
これだけ?
-T0とかの再送回数は?
リファレンスでも
英語のリファレンスにも書かれていな
い。
そう、真実は
ソースの中にしかない。
いろいろあった
case 'T':
if (*optarg == '0' || (strcasecmp(optarg, "Paranoid") == 0)) {
o.timing_level = 0;
o.max_parallelism = 1;
o.scan_delay = 300000;
o.setInitialRttTimeout(300000);
} else if (*optarg == '1' || (strcasecmp(optarg, "Sneaky") == 0)) {
o.timing_level = 1;
o.max_parallelism = 1;
o.scan_delay = 15000;
o.setInitialRttTimeout(15000);
} else if (*optarg == '2' || (strcasecmp(optarg, "Polite") == 0)) {
o.timing_level = 2;
o.max_parallelism = 1;
o.scan_delay = 400;
} else if (*optarg == '3' || (strcasecmp(optarg, "Normal") == 0)) {
} else if (*optarg == '4' || (strcasecmp(optarg, "Aggressive") == 0)) {
o.timing_level = 4;
o.setMinRttTimeout(100);
o.setMaxRttTimeout(1250);
o.setInitialRttTimeout(500);
o.setMaxTCPScanDelay(10);
o.setMaxSCTPScanDelay(10);
o.setMaxRetransmissions(6);
} else if (*optarg == '5' || (strcasecmp(optarg, "Insane") == 0)) {
o.timing_level = 5;
o.setMinRttTimeout(50);
o.setMaxRttTimeout(300);
o.setInitialRttTimeout(250);
o.host_timeout = 900000;
o.setMaxTCPScanDelay(5);
o.setMaxSCTPScanDelay(5);
o.setMaxRetransmissions(2);
}
そう、真実は
-T0は平行処理数は1で、遅延時間は
5分に1回、再送回数は10回
(抜粋)
そう、真実は
-T1は平行処理数は1で、遅延時間は
15秒、再送回数は10回
(抜粋)
そう、真実は
-T2は平行処理数は1で、遅延時間は
0.4秒、再送回数は10回
(抜粋)
そう、真実は
-T3は平行処理数および遅延時間は
ネットワーク状況に応じて変動、再送
回数は10回
(抜粋)
そう、真実は
-T4は平行処理数はネットワーク状況
により変動、応答時間の最大タイムア
ウトは1250ミリ秒、遅延時間は10ミリ秒、
再送回数は6回
(抜粋)
そう、真実は
-T5は平行処理数はネットワーク状況
により変動、応答時間の最大タイムア
ウトは300ミリ秒、遅延時間は5ミリ秒、
再送回数は2回
(抜粋)
そう、真実は
ソースの中にしかない。
では
scan-delayは遅延時間を指定可能
リファレンスには
というわけで
--scan-delay 100ms で0.1秒間に1パ
ケット
キャプチャしてみる
Time
ふむ
約0.1秒間に1パケット送っている。
ふむ
portscan servicescan
Time
真実
Service Scanは、0.1秒ではない。
真実
ガンガン、パケット出している。
メールした
dev@nmap.orgにバグ報告した。
回答きた
Nmap「タイミングはtime.ccで実装して
いるんだよ。」
回答きた
オレ「うん、そうっぽいね」
回答きた
Nmap「Service Scanはそれ実装してい
なかった。」
回答きた
オレ「やっぱ!!」
回答きた
Nmap「次のプロジェクトで実装する
よ。」
回答きた
オレ「・・・。」
ソース読んでいたんです。
他にバグがないか、ソース見てたん
です。
X
T H E X F I L E S
X
Xは、Xmas ScanのX
Xmas Scan
Xmas Scanは、NmapだとFIN、PSH、
URGのフラグ設定し投げる。
Xmas Scan
RSTが帰ってくるかどうかでポートの
状況を判断する。
由来
色々なフラグがONになっているから
Xmasツリーがライトアップされている
みたいだからだそう。
XでもXmas
2016年のXmasは日曜日。
XでもXmas
そんな日に、Nmapかけるんなら
XでもXmas
-v( Verbosオプション)をつけて。
Message from Nmap
Nmapがこんなことを言ってくれる。
Merry Christmas
Nmap wishes you a merry Christmas!
Specify -sX for Xmas Scan
(https://nmap.org/book/man-port-
scanning-techniques.html).
よく見て
XmasだからXmas Scanに何かを起こ
るわけではないが
Merry Christmas
チキンとケーキがなくてもNmapが祝って
くれる。
オレ、使ったことないけど。
-sXも使ってあげて。
活用できるか不明だけど。
Xmasだけじゃない
Nmapが祝うのは、Xmasだけではな
い。
他にもある
2016年9月1日に-vを付けて試してみ
よう。
Message from Nmap
Nmapがこんなことを言ってくれる。
2016/9/1
Happy 19th Birthday to Nmap, may it
live to be 119!
2016/9/1
Nmapは自分自身を祝う。
2116/9/1
そして、100年後のNmapも。
結論
なので、
Happy Birthday!!
100年後、Nmapにまた会いたい。
宣伝
オプションの説明とかはSoftware
Designに紙面の許される限り記載し
ています(初心者向け)。
宣伝
続きはSoftware Design5月号で。

Mais conteúdo relacionado

Mais procurados

今さらだけどMySQLとライセンス
今さらだけどMySQLとライセンス今さらだけどMySQLとライセンス
今さらだけどMySQLとライセンス
Hidenori Ishii
 

Mais procurados (20)

CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料
 
Glibc malloc internal
Glibc malloc internalGlibc malloc internal
Glibc malloc internal
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
ネットワークでなぜ遅延が生じるのか
ネットワークでなぜ遅延が生じるのかネットワークでなぜ遅延が生じるのか
ネットワークでなぜ遅延が生じるのか
 
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
 
ロードバランスへの長い道
ロードバランスへの長い道ロードバランスへの長い道
ロードバランスへの長い道
 
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudyネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
 
Nmap 9つの真実
Nmap 9つの真実Nmap 9つの真実
Nmap 9つの真実
 
フリーでできるセキュリティチェック OpenVAS CLI編
フリーでできるセキュリティチェック OpenVAS CLI編フリーでできるセキュリティチェック OpenVAS CLI編
フリーでできるセキュリティチェック OpenVAS CLI編
 
今さらだけどMySQLとライセンス
今さらだけどMySQLとライセンス今さらだけどMySQLとライセンス
今さらだけどMySQLとライセンス
 
パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501
 
mTCP使ってみた
mTCP使ってみたmTCP使ってみた
mTCP使ってみた
 
[CB19] Autopsyで迅速なマルウェアのスキャンとディスク内の簡単調査 by ターナー・功
[CB19] Autopsyで迅速なマルウェアのスキャンとディスク内の簡単調査 by ターナー・功[CB19] Autopsyで迅速なマルウェアのスキャンとディスク内の簡単調査 by ターナー・功
[CB19] Autopsyで迅速なマルウェアのスキャンとディスク内の簡単調査 by ターナー・功
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
 
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
 
とある診断員とAWS
とある診断員とAWSとある診断員とAWS
とある診断員とAWS
 
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
 
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
 
Network miner 使ってみた
Network miner 使ってみたNetwork miner 使ってみた
Network miner 使ってみた
 

Destaque

診断ツールを作ってみようと思う
診断ツールを作ってみようと思う診断ツールを作ってみようと思う
診断ツールを作ってみようと思う
abend_cve_9999_0001
 
フリーでできるWebセキュリティ(burp編)
フリーでできるWebセキュリティ(burp編)フリーでできるWebセキュリティ(burp編)
フリーでできるWebセキュリティ(burp編)
abend_cve_9999_0001
 
ハニーポットで見る攻撃手法(特に結論はありません)
ハニーポットで見る攻撃手法(特に結論はありません)ハニーポットで見る攻撃手法(特に結論はありません)
ハニーポットで見る攻撃手法(特に結論はありません)
abend_cve_9999_0001
 
Cybozu.com security challengeに参加したよ
Cybozu.com  security challengeに参加したよCybozu.com  security challengeに参加したよ
Cybozu.com security challengeに参加したよ
abend_cve_9999_0001
 
フリーでできるセキュリティ インフラ(Nessus)編
フリーでできるセキュリティ インフラ(Nessus)編フリーでできるセキュリティ インフラ(Nessus)編
フリーでできるセキュリティ インフラ(Nessus)編
abend_cve_9999_0001
 
クリエイティブコーディングのための数学 JavaScript 入門 [三角関数と行列]
クリエイティブコーディングのための数学 JavaScript 入門 [三角関数と行列]クリエイティブコーディングのための数学 JavaScript 入門 [三角関数と行列]
クリエイティブコーディングのための数学 JavaScript 入門 [三角関数と行列]
Nobuhiro Takahashi
 

Destaque (20)

Your hash is.
Your hash is.Your hash is.
Your hash is.
 
診断ツールを作ってみようと思う
診断ツールを作ってみようと思う診断ツールを作ってみようと思う
診断ツールを作ってみようと思う
 
Burp番外編~バープ、チョトニホンゴデキル~
Burp番外編~バープ、チョトニホンゴデキル~Burp番外編~バープ、チョトニホンゴデキル~
Burp番外編~バープ、チョトニホンゴデキル~
 
フリーでできるWebセキュリティ(burp編)
フリーでできるWebセキュリティ(burp編)フリーでできるWebセキュリティ(burp編)
フリーでできるWebセキュリティ(burp編)
 
ハニーポットで見る攻撃手法(特に結論はありません)
ハニーポットで見る攻撃手法(特に結論はありません)ハニーポットで見る攻撃手法(特に結論はありません)
ハニーポットで見る攻撃手法(特に結論はありません)
 
Proxy War
Proxy WarProxy War
Proxy War
 
Nmap 9 truth "Nothing to say any more"
Nmap 9 truth "Nothing to say  any more"Nmap 9 truth "Nothing to say  any more"
Nmap 9 truth "Nothing to say any more"
 
SECCON2014 crypt200
SECCON2014 crypt200SECCON2014 crypt200
SECCON2014 crypt200
 
Trend Micro CTF Asia Pacific & Japan -defensive100-
Trend Micro CTF Asia Pacific & Japan -defensive100-Trend Micro CTF Asia Pacific & Japan -defensive100-
Trend Micro CTF Asia Pacific & Japan -defensive100-
 
Burpで指定文字列を検索
Burpで指定文字列を検索Burpで指定文字列を検索
Burpで指定文字列を検索
 
The vulnerabilities never bothered me anyway
The vulnerabilities never bothered me anywayThe vulnerabilities never bothered me anyway
The vulnerabilities never bothered me anyway
 
もしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したら
もしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したらもしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したら
もしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したら
 
とある診断員のSECCONオンライン予選
とある診断員のSECCONオンライン予選とある診断員のSECCONオンライン予選
とある診断員のSECCONオンライン予選
 
RuCTFEに参加したよ
RuCTFEに参加したよRuCTFEに参加したよ
RuCTFEに参加したよ
 
おちこんだりもしたけど、私は元気です。
おちこんだりもしたけど、私は元気です。おちこんだりもしたけど、私は元気です。
おちこんだりもしたけど、私は元気です。
 
Not CVE-2013-xxxx
Not CVE-2013-xxxxNot CVE-2013-xxxx
Not CVE-2013-xxxx
 
Cybozu.com security challengeに参加したよ
Cybozu.com  security challengeに参加したよCybozu.com  security challengeに参加したよ
Cybozu.com security challengeに参加したよ
 
フリーでできるセキュリティ インフラ(Nessus)編
フリーでできるセキュリティ インフラ(Nessus)編フリーでできるセキュリティ インフラ(Nessus)編
フリーでできるセキュリティ インフラ(Nessus)編
 
最近のBurp Suiteについて調べてみた
最近のBurp Suiteについて調べてみた最近のBurp Suiteについて調べてみた
最近のBurp Suiteについて調べてみた
 
クリエイティブコーディングのための数学 JavaScript 入門 [三角関数と行列]
クリエイティブコーディングのための数学 JavaScript 入門 [三角関数と行列]クリエイティブコーディングのための数学 JavaScript 入門 [三角関数と行列]
クリエイティブコーディングのための数学 JavaScript 入門 [三角関数と行列]
 

Semelhante a Nmapの真実

5分でわかるPgcafe
5分でわかるPgcafe5分でわかるPgcafe
5分でわかるPgcafe
kuippa
 
私は如何にしてUpl
私は如何にしてUpl私は如何にしてUpl
私は如何にしてUpl
Tohru Shinohara
 

Semelhante a Nmapの真実 (11)

5分でわかるPgcafe
5分でわかるPgcafe5分でわかるPgcafe
5分でわかるPgcafe
 
私は如何にしてUpl
私は如何にしてUpl私は如何にしてUpl
私は如何にしてUpl
 
Delphi開発者のためのSencha入門
Delphi開発者のためのSencha入門Delphi開発者のためのSencha入門
Delphi開発者のためのSencha入門
 
@nifty エンジニアサポートの使い方
@nifty エンジニアサポートの使い方@nifty エンジニアサポートの使い方
@nifty エンジニアサポートの使い方
 
nalgo-botができるまで
nalgo-botができるまでnalgo-botができるまで
nalgo-botができるまで
 
Zapier ppap-share
Zapier ppap-shareZapier ppap-share
Zapier ppap-share
 
プログラマーとの出会い - Hello, Programmer! at PyCon Kyushu 2022
プログラマーとの出会い - Hello, Programmer! at PyCon Kyushu 2022プログラマーとの出会い - Hello, Programmer! at PyCon Kyushu 2022
プログラマーとの出会い - Hello, Programmer! at PyCon Kyushu 2022
 
お手軽作業自動化入門
お手軽作業自動化入門お手軽作業自動化入門
お手軽作業自動化入門
 
もしAppiumとディープラーニングを組み合わせたら
もしAppiumとディープラーニングを組み合わせたらもしAppiumとディープラーニングを組み合わせたら
もしAppiumとディープラーニングを組み合わせたら
 
プレゼンテーション用資料作成のプレゼンテーション資料
プレゼンテーション用資料作成のプレゼンテーション資料プレゼンテーション用資料作成のプレゼンテーション資料
プレゼンテーション用資料作成のプレゼンテーション資料
 
ペアプロどうでしょう?
ペアプロどうでしょう?ペアプロどうでしょう?
ペアプロどうでしょう?
 

Mais de abend_cve_9999_0001 (12)

Bypassing anti virus using powershell
Bypassing anti virus using powershellBypassing anti virus using powershell
Bypassing anti virus using powershell
 
ポートスキャンを擬人化してみた
ポートスキャンを擬人化してみたポートスキャンを擬人化してみた
ポートスキャンを擬人化してみた
 
Bypassing Windows Security Functions(ja)
Bypassing Windows Security Functions(ja)Bypassing Windows Security Functions(ja)
Bypassing Windows Security Functions(ja)
 
Bypassing Windows Security Functions(en)
Bypassing Windows Security Functions(en)Bypassing Windows Security Functions(en)
Bypassing Windows Security Functions(en)
 
Burp Suite Japanユーザグループ紹介
Burp Suite Japanユーザグループ紹介Burp Suite Japanユーザグループ紹介
Burp Suite Japanユーザグループ紹介
 
バックアップファイルの管理
バックアップファイルの管理バックアップファイルの管理
バックアップファイルの管理
 
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)フリーでできるセキュリティWeb編(SQLMあpを楽しもう)
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)
 
Cve 2013-2251
Cve 2013-2251Cve 2013-2251
Cve 2013-2251
 
クリックジャッキング
クリックジャッキングクリックジャッキング
クリックジャッキング
 
CVE-2010-1870
CVE-2010-1870CVE-2010-1870
CVE-2010-1870
 
Webアプリって奥が深いんです
Webアプリって奥が深いんですWebアプリって奥が深いんです
Webアプリって奥が深いんです
 
Cve 2013-0422
Cve 2013-0422Cve 2013-0422
Cve 2013-0422
 

Nmapの真実