Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
webscan — ブラウザベースのネットワークスキャナー & ローカルIP検出 | Kitploit
ツール/GitHubGitHub/samyk/webscan
OSINT (オープンソースインテリジェンス)偵察ネットワークマッピング情報収集
GitHubsamyk/webscan

webscan

ブラウザベースのネットワークスキャナー & ローカルIP検出

リポジトリを見るウェブサイト
472675年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

webscan

webscan は、ブラウザベースのネットワークIPスキャナ兼ローカルIP検出ツールです。WebRTC経由でRTPデータチャネルをリッスンし、生存している任意のIPのポートにループバックすることで、ユーザー/被害者にバインドされたIPを検出します。また、有効なサブネット上のIPアドレスを、fetch() 呼び出しや、有効なサブネット/IPを指す非表示のimgタグから即座のタイムアウト(TCP RSTパケットの返送)を監視することで、すべての生存IPアドレスを発見します。モバイルおよびデスクトップの主要ブラウザとOSで動作します。ベータ版は拡張可能で、複数の手法を追加できます。

webscanは、応答しないimgタグのソケットを閉じてブラウザおよびネットワークベースのレート制限を回避できることを利用しています。これは、src属性をソケット以外のURIに変更する(DOMから削除しても皮肉にもソケットは閉じません)か、AbortController() インターフェースのfetch()のシグナルサポートを使用することで実現します。

webscan をライブで試す
ベータ版はこちら

by @SamyKamkar
リリース日 2020/11/07
その他の楽しいプロジェクトは samy.pl

webscanは以下のように動作します

  1. webscanは最初に、一般的なゲートウェイIPアドレスのリストを反復処理します
  2. 各IPに対して、fetch() を使用して http://common.gateway.ip:1337 への偽のHTTP接続を行います
  3. TCP RSTが返された場合、fetch() のプロミスは拒否されるか、imgタグの onerror がタイムアウト前にトリガーされ、生存IPを示します
  4. ブラウザまたはネットワークのレート制限を防ぐため、応答しない fetch() ソケットは AbortController() シグナルで閉じられ、imgタグのsrcはソケット以外のURIにリダイレクトされてソケットが閉じられます
  5. 生存ゲートウェイが検出されると、ステップ1~3がサブネット上のすべてのIP(例:192.168.0.[1-255])に対して再実行されます
  6. ブラウザ上でWebRTCデータチャネルが開かれ、被害者のマシン上にランダムなポートが開かれます
  7. サブネット上で生存しているIPが検出された場合、そのホストに対してWebRTCデータチャネル接続が行われます
  8. WebRTCデータチャネルが成功した場合、自分自身のローカルIPに接続が確立されたことがわかります

implementation

root@kitploit:~
// wait for scan to finish
let scanResults = await webScanAll()
 
// or get callbacks when ips are found with a promise
let ipsToScan = undefined // scans all pre-defined networks if null
let scanPromise = webScanAll(
  ipsToScan, // array. if undefined, scan major subnet gateways, then scan live subnets. supports wildcards
  {
    rtc: true,   // use webrtc to detect local ips
    logger: l => console.log(l),  // logger callback
    noRedirect: false, // if true, doesn't redirect from http to http - Chrome doesn't scan detect network IPs proprly on https atm
    localCallback:   function(ip) { console.log(`local ip callback: ${ip}`)   },
    subnetCallback:  function(ip) { console.log(`router ip callback: ${ip}`)  },
    networkCallback: function(ip) { console.log(`network ip callback: ${ip}`) },
  }
)

returns

root@kitploit:~
scanResults = {
  "local": ["192.168.0.109"], // local ip address
  "network": { // other hosts on the network and how fast they respond
    "192.168.0.1": 97,
    "192.168.0.2": 82,
    "192.168.0.100": 46,
    "192.168.0.109": 0,
    "192.168.0.117": 74,
    "192.168.0.113": 17,
    "192.168.0.112": 21,
    "192.168.0.114": 25,
    "192.168.0.116": 25,
    "192.168.0.115": 25,
    "192.168.0.105": 57,
    "192.168.0.107": 63,
    "192.168.0.103": 64,
    "192.168.0.108": 31
  }
}

Todo

  • iframeを使用してブロック単位でスキャンを実行する
    • フレームが破棄されると、接続も確実に破棄されることを想定
    • 複数のブロックをスキャンする複数のiframeはどのように機能するか?これによりブラウザの接続レート制限を回避できる可能性がある
  • fetch()とimgの両方をスキャナーコアとしてサポート(betaで完了)
    • Safari
      • 注:imgタグはSafariなどの一部のブラウザで非常にうまく機能する
      • 注意点:.srcを変更しても接続が中断されない
      • 潜在的な解決策:上記のiframeに関する注意を参照
    • Chrome
      • 注意点:ChromeはimgをDOMから削除しても接続を中断しない
      • 解決策:Chromeはimgの.srcを変更すると接続を中断する。これは優れている!
      • 注意点:img.srcを'#'に変更すると、同じ親ページへのリクエストが再度発生する
      • 注意点:img.srcを'about:'に変更するとコンソールに警告が表示される。リクエストを発生させない別の方法はないか?
  • ローカルIP検出メカニズムとしてimgのタイミングを使用する

Tested on

  • Chrome 87.0.4280.47 (macOS)
  • Edge 86.0.622.63 (Windows)
  • Firefox 82.0.2 (macOS)
  • Firefox 82.0.2 (Windows 10)
  • Safari 13.1.2 (macOS)
  • mobile Safari (iOS)
  • mobile Chrome (iOS)
ツールをダウンロード