Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Nmapの真実

13,909 views

Published on

Nmap

Published in: Engineering
  • Be the first to comment

Nmapの真実

  1. 1. 100年後にまた会いましょう Nmapの真実
  2. 2. 自己紹介 小河 哲之 Twitter:abend ISOG-WG1 Burp Suite Japan ユーザグループ
  3. 3. 言いたい事 100年後、Nmapにまた会いたい。
  4. 4. why なぜ、その結論に至ったのか。 その真実をご紹介します。
  5. 5. Nmap Network Mapperの略。ポートスキャン、ホスト 探索、セキュリティチェックを行うためのソフト ウエア。オープンソース。
  6. 6. きっかけは 1通のメッセージから始まった。
  7. 7. きっかけは Software DesignでNmapなど記事書 いてみませんか?
  8. 8. きっかけは ええっ!?オレ??
  9. 9. きっかけは July Tech Festaで講演聞いたんですよ。
  10. 10. きっかけは http://www.slideshare.net/zaki4649 /free-securitycheck
  11. 11. きっかけは そう、きっかけはJuly Tech Festaで登 壇したから。
  12. 12. 記事を書く 初めて記事を書くことになった。
  13. 13. 誰向け? 対象読者はインフラエンジニア
  14. 14. 記事を書く しかも、8ページも。 1200文字×8ページ=9600文字
  15. 15. 流れを考えてみた Nmapがどんなもんか説明して、オプ ションいくつか説明して終わる。
  16. 16. なので なんとかなるかと思い、二つ返事で 受諾した。
  17. 17. まずは とりあえず、リファレンスを読み返して みた。
  18. 18. リファレンス
  19. 19. ウェーイ 日本語のリファレンスって、嬉しいよ ね。
  20. 20. だが、しかし これが、真実とは限らない。
  21. 21. Ping Scan -sP (Ping スキャン)って、Ping打つよ ね?
  22. 22. Ping Scan
  23. 23. Ping Scan Pingだけではなかった。
  24. 24. Ping Scan 80/TCPへのアクセスもあるって。
  25. 25. だが、しかし 真実は異なる。
  26. 26. Wow
  27. 27. 見えてきた ICMP、80/TCP、443/TCPへパケット を送る。
  28. 28. パケットの真実 同セグメントの場合、ARPも送る。
  29. 29. リファレンスの真実
  30. 30. リファレンスは語る -sPは以前のオプションで、今は-snオ プション。
  31. 31. 古いんだよ 日本語のリファレンスには-snオプショ ンの記載はない。
  32. 32. そう、真実は 日本語のリファレンスより英語のリファ レンス読め。
  33. 33. 次の真実 -Tオプションでタイミングの調整がで きる。
  34. 34. 設定値は -T0から-T5の6段階で制御可能。 Nmapは-T3がデフォルト。
  35. 35. どんな制御? 具体的にどのような調整がされるの だろうか。
  36. 36. リファレンス
  37. 37. ほぅ -T0だと5分に1回パケットを送る。 -T1だと15秒、-T2は0.4秒に1回。
  38. 38. 他にもいろいろある -T4は失敗時の再送回数6回、-T5は2 回などなど・・・。
  39. 39. これだけ? -T0とかの再送回数は?
  40. 40. リファレンスでも 英語のリファレンスにも書かれていな い。
  41. 41. そう、真実は ソースの中にしかない。
  42. 42. いろいろあった 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); }
  43. 43. そう、真実は -T0は平行処理数は1で、遅延時間は 5分に1回、再送回数は10回 (抜粋)
  44. 44. そう、真実は -T1は平行処理数は1で、遅延時間は 15秒、再送回数は10回 (抜粋)
  45. 45. そう、真実は -T2は平行処理数は1で、遅延時間は 0.4秒、再送回数は10回 (抜粋)
  46. 46. そう、真実は -T3は平行処理数および遅延時間は ネットワーク状況に応じて変動、再送 回数は10回 (抜粋)
  47. 47. そう、真実は -T4は平行処理数はネットワーク状況 により変動、応答時間の最大タイムア ウトは1250ミリ秒、遅延時間は10ミリ秒、 再送回数は6回 (抜粋)
  48. 48. そう、真実は -T5は平行処理数はネットワーク状況 により変動、応答時間の最大タイムア ウトは300ミリ秒、遅延時間は5ミリ秒、 再送回数は2回 (抜粋)
  49. 49. そう、真実は ソースの中にしかない。
  50. 50. では scan-delayは遅延時間を指定可能
  51. 51. リファレンスには
  52. 52. というわけで --scan-delay 100ms で0.1秒間に1パ ケット
  53. 53. キャプチャしてみる Time
  54. 54. ふむ 約0.1秒間に1パケット送っている。
  55. 55. ふむ portscan servicescan Time
  56. 56. 真実 Service Scanは、0.1秒ではない。
  57. 57. 真実 ガンガン、パケット出している。
  58. 58. メールした dev@nmap.orgにバグ報告した。
  59. 59. 回答きた Nmap「タイミングはtime.ccで実装して いるんだよ。」
  60. 60. 回答きた オレ「うん、そうっぽいね」
  61. 61. 回答きた Nmap「Service Scanはそれ実装してい なかった。」
  62. 62. 回答きた オレ「やっぱ!!」
  63. 63. 回答きた Nmap「次のプロジェクトで実装する よ。」
  64. 64. 回答きた オレ「・・・。」
  65. 65. ソース読んでいたんです。 他にバグがないか、ソース見てたん です。
  66. 66. X T H E X F I L E S
  67. 67. X Xは、Xmas ScanのX
  68. 68. Xmas Scan Xmas Scanは、NmapだとFIN、PSH、 URGのフラグ設定し投げる。
  69. 69. Xmas Scan RSTが帰ってくるかどうかでポートの 状況を判断する。
  70. 70. 由来 色々なフラグがONになっているから Xmasツリーがライトアップされている みたいだからだそう。
  71. 71. XでもXmas 2016年のXmasは日曜日。
  72. 72. XでもXmas そんな日に、Nmapかけるんなら
  73. 73. XでもXmas -v( Verbosオプション)をつけて。
  74. 74. Message from Nmap Nmapがこんなことを言ってくれる。
  75. 75. Merry Christmas Nmap wishes you a merry Christmas! Specify -sX for Xmas Scan (https://nmap.org/book/man-port- scanning-techniques.html).
  76. 76. よく見て XmasだからXmas Scanに何かを起こ るわけではないが
  77. 77. Merry Christmas チキンとケーキがなくてもNmapが祝って くれる。
  78. 78. オレ、使ったことないけど。 -sXも使ってあげて。 活用できるか不明だけど。
  79. 79. Xmasだけじゃない Nmapが祝うのは、Xmasだけではな い。
  80. 80. 他にもある 2016年9月1日に-vを付けて試してみ よう。
  81. 81. Message from Nmap Nmapがこんなことを言ってくれる。
  82. 82. 2016/9/1 Happy 19th Birthday to Nmap, may it live to be 119!
  83. 83. 2016/9/1 Nmapは自分自身を祝う。
  84. 84. 2116/9/1 そして、100年後のNmapも。
  85. 85. 結論 なので、
  86. 86. Happy Birthday!! 100年後、Nmapにまた会いたい。
  87. 87. 宣伝 オプションの説明とかはSoftware Designに紙面の許される限り記載し ています(初心者向け)。
  88. 88. 宣伝 続きはSoftware Design5月号で。

×