1 簡介

 _   __
|#| /#/    輕量級資產測繪工具 by:kv2 
|#|/#/   _____  _____     *     _   _
|#.#/   /Edge/ /Forum|   /#\   |#\ |#|
|##|   |#|___  |#|      /###\  |##\|#|
|#.#\   \#####\|#|     /#/_\#\ |#.#.#|
|#|\#\ /\___|#||#|____/#/###\#\|#|\##|
|#| \#\\#####/ \#####/#/     \#\#| \#|

Kscan是一款純go開發的全方位掃描器,具備端口掃描、協議檢測、指紋識別,暴力破解等功能。支持協議1200+,協議指紋10000+,應用指紋2000+,暴力破解協議10余種。

2 寫在前面

目前類似的資產掃描、指紋識別、漏洞檢測的工具其實已經非常多了,也不乏有很棒的工具,但是Kscan其實有很多不同的想法。

  • Kscan希望能夠接受多種輸入格式,無需在使用之前對掃描對象進行分類,比如區分為IP,還是URL地址等,這對于使用者來說無疑是徒增工作量,所有的條目,均能正常輸入和識別,若是URL地址,則會保留路徑進行檢測,若只是IP:PORT,則會優先對該端口進行協議識別。目前Kscan支持三種輸入方式(-t,--target|-f,--fofa|--spy)。
  • Kscan沒有為了追求效率,而根據端口號與常見協議進行比對來確認端口協議,也不是只檢測WEB資產,在這方面,Kscan則更加看重準確性和全面性,只有高準確性的協議識別,才能為后續的應用層識別,提供良好的檢測條件。
  • Kscan不是采用模塊化的方式做單純的功能堆疊,比如某個模塊單獨獲取標題,某個模塊單獨獲取SMB信息等等,獨立運行,獨立輸出,而是以端口為單位輸出資產信息,比如端口協議為HTTP,則會自動化進行后續的指紋識別、標題獲取,端口協議為RPC,則會嘗試獲取主機名等等。

3 編譯手冊

編譯手冊

https://github.com/lcvvvv/kscan/wiki/%E7%BC%96%E8%AF%91

4 開始吧

Kscan目前具備3種輸入目標的方式

  • -t/--target 可添加--check參數,只對指定的目標端口進行指紋識別,否則將對目標進行端口掃描和指紋識別
IP地址:114.114.114.114
IP地址段:114.114.114.114-115.115.115.115
URL地址:https://www.baidu.com
文件地址:file:/tmp/target.txt
  • --spy 可添加--scan參數可對存活C段進行端口掃描和指紋識別,否則將只檢測存活的網段
[空]:將檢測本機IP地址,對本機IP所在B段進行探測
[all]:將對所有私網地址(192.168/172.32/10等)進行探測
IP地址:將對指定IP地址所在B段進行探測
  • -f/--fofa 可添加--check將對檢索結果進行存活性驗證,添加--scan參數將對檢索結果進行端口掃描和指紋識別,否則將只返回fofa檢索結果
fofa搜索關鍵字:將直接返回fofa搜索結果

5 使用方法

usage: kscan [-h,--help,--fofa-syntax] (-t,--target,-f,--fofa,--touch,--spy) [-p,--port|--top] [-o,--output] [-oJ] [--proxy] [--threads] [--path] [--host] [--timeout] [-Pn] [-Cn] [-sV] [--check] [--encoding] [--hydra] [hydra options] [fofa options]
optional arguments:
  -h , --help     show this help message and exit
  -f , --fofa     從fofa獲取檢測對象,需提前配置環境變量:FOFA_EMAIL、FOFA_KEY
  -t , --target   指定探測對象:
                  IP地址:114.114.114.114
                  IP地址段:114.114.114.114/24,不建議子網掩碼小于12
                  IP地址段:114.114.114.114-115.115.115.115
                  URL地址:https://www.baidu.com
                  文件地址:file:/tmp/target.txt
  --spy           網段探測模式,此模式下將自動探測主機可達的內網網段可接收參數為:
                  (空)、192、10、172、all、指定IP地址(將探測該IP地址B段存活網關)
  --check         針對目標地址做指紋識別,僅不會進行端口探測
  --scan          將針對--fofa、--spy提供的目標對象,進行端口掃描和指紋識別
  --touch         獲取指定端口返回包,可以使用此次參數獲取返回包,完善指紋庫,格式為:IP:PORT
  -p , --port     掃描指定端口,默認會掃描TOP400,支持:80,8080,8088-8090
  -o , --output   將掃描結果保存到文件
  -oJ             將掃描結果使用json格式保存到文件
  -Pn             使用此參數后,將不會進行智能存活性探測,現在默認會開啟智能存活性探測,提高效率
  -Cn             使用此參數后,控制臺輸出結果將不會帶顏色
  -Dn             使用此參數后,將關閉CDN識別功能
  -sV             使用此參數后,將對所有端口進行全探針探測,此參數極度影響效率,慎用!
  --top           掃描經過篩選處理的常見端口TopX,最高支持1000個,默認為TOP400
  --proxy         設置代理(socks5|socks4|https|http)://IP:Port
  --threads       線程參數,默認線程100,最大值為2048
  --path          指定請求訪問的目錄,只支持單個目錄
  --host          指定所有請求的頭部Host值
  --timeout       設置超時時間
  --encoding      設置終端輸出編碼,可指定為:gb2312、utf-8
  --match         對資產返回banner進行檢索,存在關鍵字的,才會顯示,否則不會顯示
  --hydra         自動化爆破支持協議:ssh,rdp,ftp,smb,mysql,mssql,oracle,postgresql,mongodb,redis,默認會開啟全部
hydra options:
   --hydra-user   自定義hydra爆破用戶名:username or user1,user2 or file:username.txt
   --hydra-pass   自定義hydra爆破密碼:password or pass1,pass2 or file:password.txt
                  若密碼中存在使用逗號的情況,則使用\,進行轉義,其他符號無需轉義
   --hydra-update 自定義用戶名、密碼模式,若攜帶此參數,則為新增模式,會將用戶名和密碼補充在默認字典后面。否則將替換默認字典。
   --hydra-mod    指定自動化暴力破解模塊:rdp or rdp,ssh,smb
fofa options:
   --fofa-syntax  將獲取fofa搜索語法說明
   --fofa-size    將設置fofa返回條目數,默認100條
   --fofa-fix-keyword 修飾keyword,該參數中的{}最終會替換成-f參數的值

功能不復雜,其他的自行探索

6 演示

6.1 端口掃描模式

6.2 存活網段探測

6.3 Fofa結果檢索

6.3 暴力破解

6.4 CDN檢測、歸屬地識別

下載地址:

https://github.com/lcvvvv/kscan