天天看點

通過環境變量來繞過Windows Defender和隐藏混淆行為什麼是環境變量繞過Windows Defender和隐藏混淆行為

通過環境變量來繞過Windows Defender和隐藏混淆行為什麼是環境變量繞過Windows Defender和隐藏混淆行為

什麼是環境變量

關于什麼是環境變量,我這篇文章介紹的很清楚

https://blog.csdn.net/qq_45894840/article/details/128622314?spm=1001.2014.3001.5502
           

這裡在擴充一點

env

env是英文單詞environment的縮寫,其功能是用于顯示和定義環境變量,我們可以通過檢視env來擷取本機全部的環境變量配置

ls env:\
           
通過環境變量來繞過Windows Defender和隐藏混淆行為什麼是環境變量繞過Windows Defender和隐藏混淆行為

在這裡可以看到很多的環境變量配置,如果是cmd那就執行以下指令檢視全部的環境變量

set
           
通過環境變量來繞過Windows Defender和隐藏混淆行為什麼是環境變量繞過Windows Defender和隐藏混淆行為

繞過Windows Defender和隐藏混淆行為

我們還可以通過env來檢視指定的環境變量

echo $env:SYSTEMROOT
           
通過環境變量來繞過Windows Defender和隐藏混淆行為什麼是環境變量繞過Windows Defender和隐藏混淆行為

然後我将T更換為?

通過環境變量來繞過Windows Defender和隐藏混淆行為什麼是環境變量繞過Windows Defender和隐藏混淆行為

還是能正常顯示環境變量,因為env會根據這個環境變量表來查找,類似于find -name “baimao*.exe”,這個指令會查找目前目錄是以包含baimao這幾個字元的exe檔案

我們還可以進一步來用?替代字元

通過環境變量來繞過Windows Defender和隐藏混淆行為什麼是環境變量繞過Windows Defender和隐藏混淆行為

再多就會因為解析多個環境變量而報錯

echo $env:S?????????
           

在後面加上其他的檔案夾名,輸出的内容也會改變

通過環境變量來繞過Windows Defender和隐藏混淆行為什麼是環境變量繞過Windows Defender和隐藏混淆行為

我們還可以使用dir或者ls或者Get-ChildItem來檢視這個檔案夾

Get-ChildItem $env:S?????????\System32
ls $env:S?????????\System32
dir $env:S?????????\System32
           
通過環境變量來繞過Windows Defender和隐藏混淆行為什麼是環境變量繞過Windows Defender和隐藏混淆行為

在後面指定的檔案夾,也可以用?來代替

Get-ChildItem $env:S?????????\Sys?????
           
通過環境變量來繞過Windows Defender和隐藏混淆行為什麼是環境變量繞過Windows Defender和隐藏混淆行為

為了縮小範圍,我們最好使用來代替字元,關于的用法,上面已經介紹過了

Get-ChildItem $env:S?????????\S*2
           
通過環境變量來繞過Windows Defender和隐藏混淆行為什麼是環境變量繞過Windows Defender和隐藏混淆行為

現在我們要彈出電腦,可以使用以下指令

start $env:S?????????\S*2\c*lc.*
           
通過環境變量來繞過Windows Defender和隐藏混淆行為什麼是環境變量繞過Windows Defender和隐藏混淆行為

如果我們要調用schtasks.exe,可以用以下指令

start $env:???t??r???\*2\??h???k?*
           

這些方法是我在看一篇apt惡意軟體分析的報告學到的

https://www.securonix.com/blog/detecting-steepmaverick-new-covert-attack-campaign-targeting-military-contractors/
           

攻擊者通過這種方法來隐藏混淆行為和繞過 Windows Defender