暴力注入Explorer

2021-06-15 20:04:43 字數 1562 閱讀 4173

暴力」注入explorer

pjf([email protected])

向乙個執行中的程序注入自己的**,最自然莫過於使用createremotethread,

如今遠執行緒注入已經是氾濫成災,同樣的監測遠執行緒注入、防止遠執行緒注入的工具也

舉不勝舉,乙個木馬或後門啟動時向explorer或ie的注入操作就像在自己臉上寫上

「我是賊」一樣。

使用者態**想要更隱蔽地藏身於別的程序,就應該在注入的環節隱蔽自己的行

為。下面就介紹一種非常簡單不過比較暴力的方法,給出的示例為在explorer裡加

載自己的dll。

首先提到的就是乙個api:queueuserapc

dword queueuserapc(

papcfunc pfnapc,  // apc function

handle hthread,   // handle to thread

ulong_ptr dwdata  // apc function parameter

; 大家對這個api應該並不陌生,它直接轉入了系統服務ntqueueapcthread從而利

用keinsertqueueapc向給出的目標執行緒的apc佇列插入一apc物件。倘若kideliverapc

順利的去構造apc環境並執行我們的**那一切就ok了,只可惜沒有那麼順利的事,

apcstate中userapcpending是否為true有重要的影響,結果往往是你等到花兒都謝了

你的**還是沒得到執行。在核心態往往不成問題,自己動手賦值,可是使用者態

程式可不好做,怎麼辦?其實最簡單的,不好做就不做囉,讓系統去幹。

實際上應用程式在請求「alertable」的等待時系統就會置userapcpending為

true(當kedelayexecutionthread/kewaitformultipleobjects/kewaitforsingleobject

使用testforalertpending時就有可能,此外還有ketestalertthread等,機會還是有的

),最簡單的例子,目標執行緒呼叫sleepex(***, true)後我們插入apc**就會乖乖執

行了。

比較幸運的是explorer程序中一般情況下總有合我們意的執行緒,於是最簡單但並不

優美的辦法就是列舉explorer中所有執行緒,全數插入,示意如下:

......

dword ret;

char *dllname = "c:";

int len = strlen(dllname) + 1;

pvoid param = virtualallocex(hprocess, null, len,

mem_commit | mem_top_down,

page_readwrite);

if (param != null) }

} ......

其中injectdll:

void injectdll(handle hprocess, handle hthread, dword param)

「暴力」注入Explorer

暴力 注入explorer pjf jfpan20000 sina.com 寫點無聊的東西,一段時間blog弄得不成樣子了。向乙個執行中的程序注入自己的 最自然莫過於使用createremotethread,如今遠執行緒注入已經是氾濫成災,同樣的監測遠執行緒注入 防止遠執行緒注入的工具也 舉不勝舉,...

暴力」注入Explorer

暴力 注入explorer pjf jfpan20000 sina.com 向乙個執行中的程序注入自己的 最自然莫過於使用createremotethread,如今遠執行緒注入已經是氾濫成災,同樣的監測遠執行緒注入 防止遠執行緒注入的工具也 舉不勝舉,乙個木馬或後門啟動時向explorer或ie的注...

暴力」注入Explorer

暴力 注入explorer pjf jfpan20000 sina.com 向乙個執行中的程序注入自己的 最自然莫過於使用createremotethread,如今遠執行緒注入已經是氾濫成災,同樣的監測遠執行緒注入 防止遠執行緒注入的工具也 舉不勝舉,乙個木馬或後門啟動時向explorer或ie的注...