Xray簡單使用教程
0X00下載
xray 為單檔案二進制檔案,無依賴,也無需安裝,下載后直接使用,
下載地址為:
Github: https://github.com/chaitin/xray/releases (國外速度快)
網盤: https://yunpan.360.cn/surl_y3Gu6cugi8u (國內速度快)
注意: 不要直接 clone 倉庫,xray 并不開源,倉庫內不含源代碼,直接下載構建的二進制檔案即可,
xray 跨平臺支持,請下載時選擇需要的版本下載,
0X01版本選擇
windows_amd64 Windows x64
windows_386 Windows x86
系統版本要求大于等于 Windows 7 或大于等于 Windows Server 2008 R2, 不支持 Windows XP、Windows 2003 等低版本系統,
對于 release 中的其他檔案,說明如下:
sha256.txt 校驗檔案,內含個版本的 sha256 的哈希值,請下載后自行校驗以防被劫持投毒,
Source Code Github 自動打包的,無意義,請忽略,
0X02運行
下載對應系統的版本后,來查看下 xray 的版本號,
以下載到 C:\Users\$User\Downloads 為例,右鍵解壓,就可以得到 xray_windows_amd64.exe 檔案了(有的解壓軟體還會創建一個 xray_windows_amd64.exe 的檔案夾,不要和最終的可執行檔案混淆了),
使用桌面左下方的的搜索框,輸入 PowerShell,點擊 Windows PowerShell,進入命令終端,
然后 cd 到下載目錄,運行 .\xray_windows_amd64.exe version 即可查看 xray 的版本號,

0X03基礎命令
.\xray_windows_amd64.exe –h
通過-h命令發現xray命令有

GLOBAL OPTIONS
先來看一個界面中的這三個全域配置項,全域配置的意思是如果在這指定了,那么所有命令執行的時候都會生效,
--config 用于指定組態檔的位置,默認加載同目錄的 config.yaml,關于組態檔請看下一節檔案的內容
--log_level 用于指定全域的日志配置,默認為 info, 可以通過設定為 debug 來查看更詳細的請求資訊、運行時日志資訊,
全域配置的使用時需要緊跟二進制程式,如:
.\xray_windows_amd64.exe --log_level debug --config 1.yaml webscan --url xxx
.\xray_windows_amd64.exe --log_level debug reverse
而下面這種方式是不生效的,使用時需要注意下:
.\xray_windows_amd64.exe webscan --log_level debug
commands
xray 的命令有 6 個,拋開 version 和 help 這兩個資訊展示型的命令,還有 webscan, reverse, genca, subdomain 四個,
reverse 命令用于啟動單獨的盲打平臺服務,盲打平臺用于處理沒有回顯或延遲觸發的問題,如果你挖過存盤型 XSS,一定對這個不陌生,這部分內容相對獨立,單獨用一節來介紹,
genca 用于快速生成一個根證書,主要用于被動代理掃描 HTTPS 流量時用到,
subdomain 是子域名掃描的命令,僅高級版才有,
webscan 是 xray 的重頭戲,
subdomain子域名掃描
掃描 example.com,并將結果輸出到 example.txt
.\xray_windows_amd64.exe subdomain --target example.com --text-output example.txt
掃描 example.com,并使用 console ui 互動式界面,同時記錄結果到 example.txt
.\xray_windows_amd64.exe subdomain --target example.com --console-ui --text-output example.txt
webscan 掃描web漏洞
運行 .\xray_windows_amd64.exe webscan -h,可以看到

配置掃描插件
--plugins 配置本次掃描啟用哪些插件, 不再使用組態檔中的配置
--plugins xss --plugins xss,sqldet,phantasm
--poc 配置本次掃描啟用哪些 POC, 因為所有 POC 隸屬于 phantasm 插件, 所以該引數其實是 phantasm 插件獨有的配置,為了使用方便,該引數支持 Glob 運算式批量加載,
決議規則為用該引數值匹配內置的 poc 名字,如果有匹配到則啟用;然后檢查能否匹配本地檔案,如果能匹配到,也加載,用起來是非常靈活的,如
只加載一個 POC, 精準匹配
--plugins phantasm --poc poc-yaml-thinkphp5-controller-rce
加載內置的所有帶 `thinkphp` 的 POC
--plugins phantasm --poc "*thinkphp*"
加載本地 `/home/test/pocs/` 目錄所有的 POC:
--plugins phantasm --poc "/home/test/pocs/*"
加載 `/home/test/pocs/` 下包含 thinkphp 的 POC
--plugins phantasm --poc "/home/test/pocs/*thinkphp*" ...
配置輸入來源
中間的這四個是互斥的,意味著一次只能啟用這5個的一個,
--listen 啟動一個被動代理服務器作為輸入,如 --listen 127.0.0.1:4444,然后配置瀏覽器或其他訪問工具的 http 代理為 http://127.0.0.1:4444 就可以自動檢測代理中的 HTTP 請求并進行漏洞掃描,
--basic-crawler 啟用一個基礎爬蟲作為輸入, 如 --basic-crawler http://example.com,就可抓取 http://example.com 的內容并以此內容進行漏洞掃描
--url 用于快速測驗單個 url,這個引數不帶爬蟲,只對當前鏈接進行測驗,默認為 GET 請求,配合下面的 --data 引數可以指定 body,同時變為 POST 請求,
--raw-request 用于加載一個原始的 HTTP 請求并用于掃描,原始請求類似上面代碼框中的原始請求,如果你用過 sqlmap -r,那么這個引數應該也很容易上手,
配置輸出
最后三個用于指定結果輸出方式,這三種方式可以單獨使用,也可以搭配使用,
--html-output 將結果輸出為 html 報告, 報告樣例
--webhook-output 將結果發送到一個地址
--json-output 將結果輸出到一個 json 檔案中
--webhook-output和--json-output 輸出是 json 格式的結構化資料,資料格式參照: 漏洞格式,
你可以在--json-output和--html-otput引數中使用變數__timestamp__和__datetime__,這樣檔案名中對應位置會自動替換為時間戳或日期時間,避免輸出到同一檔案時報錯,如--html-output report-__datetime__.html將使用report-2019_11_01-10_03_26.html作為報告檔案名,
聯合使用
將上面說的一些結合起來使用,就可以滿足多種場景下的使用需求了,下面的例子都是可以正常運行的,作用不言而喻,
下面是一些例子
./xray_darwin_amd64 webscan --plugins xss --listen 127.0.0.1:1111 --html-output 1.html
./xray_darwin_amd64 --log_level debug webscan --plugins xss,cmd_injection --basic-crawler http://example.com --json-output 1.json
./xray_darwin_amd64 webscan --url http://example.com --data "x=y" --html-output 2.html --json-output 1.json
./xray_darwin_amd64 webscan --url http://example.com/ --webhook-output http://host:port/path
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/2287.html
標籤:訊息安全
下一篇:xray與burp聯動被動掃描
