Xray簡單使用教程


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM