日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
AutoIt木馬:鍵盤記錄木馬分析

近日,一種新型木馬被發(fā)現(xiàn),該惡意軟件到目前為止已經(jīng)感染了數(shù)十萬計算機,而且感染是世界范圍的。據(jù)稱,其主要竊取被感染者的社交網(wǎng)絡(luò)賬戶信息和銀行賬戶的登錄憑證。本文是關(guān)于這個木馬進行的一次分析。

幾天以前,一份Goolge的500萬賬戶密碼列表泄露了。Google工程師出面澄清說:該列表并非是在Google的系統(tǒng)或者某一分支下泄露的,主要泄露途徑來自于釣魚活動和一些并沒有獲取到授權(quán)的方式(注:也有人猜測是大批量的撞庫活動),而Google本身是足夠安全的。

而這幾天,我們又發(fā)現(xiàn)了一起類似于Google事件的網(wǎng)絡(luò)犯罪活動,而這款惡意軟件已經(jīng)感染了數(shù)十萬的計算機,并且已經(jīng)竊取了他們的社交媒體社交網(wǎng)絡(luò)賬戶以及銀行賬戶訪問憑證。

關(guān)于木馬樣本,大體看了一下,居然也是一個AutoIt解釋器木馬,當(dāng)時我就驚呆了呀,最近還真是AutoIt木馬爆發(fā)季啊,都可以拍一部《變形記》了。

只是這個木馬是通過Email釣魚傳播,而這個百足之蟲則是通過游戲平臺來傳播的。鑒于兩個木馬同根同源,那我們就略略分析一下,看一下這個木馬是怎么做的。

(木馬樣本我會在文末給出,有興趣的同學(xué)可以下載看一下)

0×01初見美鋁——木馬樣本

大體分析了一下,發(fā)現(xiàn)木馬文件是一個winrarSFX文件(winrar自解壓格式),這里不仔細(xì)看還真看不出來,因為這里木馬的圖標(biāo)換成了別的樣子

然后,我們使用winrar打開:

#p#

0×02 尾隨跟蹤——文件大略分析

里面一共包含四個文件,釋放之后是保存在%USERPROFILE%\zvf382a42256\的,而且具有系統(tǒng)和隱藏的屬性,解壓之后如果看不到文件記得打開查看隱藏文件。

其中唯一一個可執(zhí)行文件是update.exe,這里,解壓之后,很明顯是一個AutoIt的腳本解釋器,看圖標(biāo)就可以看出來了。不多說。

這樣看來剩下三個文件一定有個au3或者a3x文件,我們接下來找找:

接下來引起我們注意的是最上面這個PBS文件,大小有331MB(看過上一篇文章的應(yīng)該對這個不會陌生),其實這個文件是一個經(jīng)過混淆的文件,這里我們貼出反混淆的python代碼,以供各位研究(代碼出自一位希臘研究員,讓我們向他致敬!)(小編:我貼出代碼就是為了賺稿費的!可是發(fā)錢的人在哪里→_→)

 
 
 
 
  1. import sys, os
  2. import sys, os
  3. def progress(n, total):
  4. sys.stdout.write("\r[+] Cleaned: %d%%" % (n*100/total))
  5. sys.stdout.flush()
  6. def remove_from_list(string_to_remove, list):
  7. while True:
  8. try:
  9. list.remove(string_to_remove)
  10. # print ".",
  11. except:
  12. # print "done"
  13. break
  14. def clean_from_dummystring_newlines(dummyfilename, newfilename):
  15. f = open(dummyfilename)
  16. with f as lines:
  17. content = lines.readlines()
  18. f.close()
  19. for mem in content:
  20. string_to_remove  = mem
  21. print "\n[+] dummy string to be removed, seems to be: "+string_to_remove
  22. break
  23. if content.count(string_to_remove) > 10:
  24. # print "String to be removed, seems to be: \""+string_to_remove+"\""
  25. remove_from_list(string_to_remove, content)
  26. if content.count(' \n') > 5:
  27. print "[+] Removing \" \\n\""
  28. remove_from_list(" \n", content)
  29. f = open(newfilename, 'wb')
  30. f.write(''.join(content))
  31. f.close()
  32. info = os.stat(sys.argv[1])# get file size
  33. filesz = info.st_size
  34. f = open(sys.argv[1], 'rb')#.. now open file to read
  35. l = open(sys.argv[2], 'wb')
  36. b = f.read(1)
  37. datatowrite = ""
  38. list1 = []
  39. i = 0
  40. k = 0
  41. print "\n[+] cleaning the tab chars.."
  42. while b != '':# read file till EOF.. :)
  43. while b == '\t':# tabs are the chars i want to ignore...
  44. i += 1
  45. k += 1
  46. b = f.read(1)
  47. if i>0:
  48. # print "There were "+str(i)+" tabs.."
  49. if i<10:# writeable tabs
  50. for j in range (0,i):
  51. datatowrite = '\t'
  52. l.write(datatowrite)
  53. i = 0
  54. progress(k, filesz)# give progress status
  55. if b == '\n':# write \n to file...
  56. # print "NL"
  57. k += 1
  58. datatowrite = '\n'
  59. l.write(datatowrite)
  60. elif b == '\r':# write \r to file
  61. # print "CR"
  62. k += 1
  63. datatowrite = '\r'
  64. l.write(datatowrite)
  65. else:
  66. while b >= ' ' and b <= '}':# printable char? write it..
  67. k += 1
  68. list1.append(b)
  69. b = f.read(1)
  70. # print "".join(list1)
  71. datatowrite = ''.join(list1)# write to file
  72. l.write(datatowrite)
  73. list1 = []
  74. b = f.read(1)
  75. f.close()
  76. l.close()
  77. # Now clean a bit more.. clear the 1) dummy comment strings and 2) the dummy new lines.
  78. clean_from_dummystring_newlines(sys.argv[2], sys.argv[2])
  79. print "Done!"

處理文件的命令是:

111.py jqanjzruzb.PBS clean.au3

經(jīng)過處理之后,世界瞬間變清涼了!331MB的文件只有55KB,因為有點多,這里就不貼源代碼了,大家可以也在文末下載。

再說一下其他兩個文件:

oziryzkvvcpm.AWX—文件比較小,應(yīng)該是一個INI配置文件,代碼如下:

[8472254]
7345448=2738636
[5152433]
7790268=6953219
[5242747]
1024020=8930731
[9537477]
9537477=yzvf382a42256

sgym.VQA—一個二進制文件。或許大概是個攻擊載荷文件吧,后文我們會說到。

以上略過不講。#p#

0×03 踏入大門——腳本分析

這里著重分析一下這個經(jīng)過混淆的au3腳本文件,貼出主要代碼:

 
 
 
 
  1. .....
  2. .....
  3. Local $startup = IniRead($uniscriptdir & "\oziryzkvvcpm.AWX", "5242747", "1024020", "NotFound")
  4. If $startup = "8930731" Then
  5. startup()
  6. Else
  7. EndIf
  8. Local $antis = IniRead($uniscriptdir & "\oziryzkvvcpm.AWX", "antis1", "antis2", "NotFound")
  9. If $antis = "antis3" Then
  10. antis()
  11. Else
  12. EndIf
  13. .....
  14. $protectprocess = IniRead($uniscriptdir & "\oziryzkvvcpm.AWX", "8472254", "7345448", "NotFound")
  15. If $protectprocess = "2738636" Then
  16. AdlibRegister("anti_hook", 500)
  17. .....
  18. Local $persistence = IniRead($uniscriptdir & "\oziryzkvvcpm.AWX", "5152433", "7790268", "NotFound")
  19. If $persistence = "6953219" Then
  20. checkvbs()
  21. AdlibRegister("persistence", 500)
  22. Else
  23. EndIf
  24. ......
  25. Func submain()
  26. $skey = IniRead($uniscriptdir & "\oziryzkvvcpm.AWX", "9537477", "9537477", "NotFound")
  27. $sapppath1 = FileGetShortName(@ScriptDir & "\sgym.VQA")
  28. $sapppath = FileRead(FileOpen($sapppath1, 16))
  29. $sarquive = _crypt_decryptdata($sapppath, $skey, $calg_rc2)
  30. Local $commandline = IniRead($uniscriptdir & "\oziryzkvvcpm.AWX", "commandline1", "commandline2", "NotFound")
  31. If $commandline = "commandline3" Then
  32. _runpe($sarquive," command-replace")
  33. Else
  34. _runpe($sarquive)
  35. EndIf
  36. EndFunc
  37. ....

—位置5242747處:木馬的持續(xù)攻擊處理。增加了很經(jīng)典的啟動項:注冊表HKCU64\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RunOnce添加啟動項,同時在開始菜單–>程序–>啟動處添加啟動項。真是夠經(jīng)典的。

—位置antis1處:這里在awx配置文件中沒有看到蹤跡,這意味著antis功能并不能被執(zhí)行。這應(yīng)該是作者有意為之,應(yīng)該是一個對抗殺毒軟件的功能。

—位置8472254處:這里使用了藍(lán)屏手段來對抗殺毒軟件,一旦發(fā)現(xiàn)木馬進程被殺掉,我們的主機就會立刻藍(lán)屏,很多木馬也會使用這種手段來進行自我保護。

—位置5152433處:木馬自查vbs是否存在,以保證自身的可持續(xù)性攻擊。

—位置9537477處:這里就是我們剛剛說的最后一個sgym.VQA文件。此處的代碼包含一個解密的密鑰——即為配置文件9537477的值yzvf382a42256,木馬采用RC2算法進行解密,解密之后是一個PE的可執(zhí)行文件,解密之后執(zhí)行。這應(yīng)該就是木馬的核心了,接下來我們看一下這個木馬究竟做了什么。#p#

0×04 登堂入室——木馬文件分析

下面,首先,讓我們來看一下這個解密的文件是不是一個PE文件。用OllyDbg為update.exe在CryptDecrypt 函數(shù)處下斷點。然后我們進行一下對比:

接著我們繼續(xù)跟蹤,發(fā)現(xiàn)CryptDecrypt函數(shù)的第五個參數(shù)是一個包含加密的數(shù)據(jù)緩沖區(qū),很明顯這里就是我們上文提到的密鑰yzvf382a42256了,另外,函數(shù)的第六個參數(shù)包含的是一個數(shù)據(jù)長度,而我們發(fā)現(xiàn)這個長度在解密前的大小是0x6F008,十進制的454664,這個大小恰好是sqym.VQA的確切大小。

到這里,一切都明朗了,這就是一個PE文件了?,F(xiàn)在我們第一件事就是需要將文件從內(nèi)存中dump出來。#p#

0×05 拜見岳父大人——PE文件分析

好了,我們現(xiàn)在得到了該PE文件,我們把文件上傳到virutotal上,發(fā)現(xiàn)54款殺軟中有29款識別為病毒

該PE文件是一個名為“商業(yè)鍵盤記錄無限記錄器”的工具,工具的網(wǎng)站在這里:http://limitlessproducts.org/(工具現(xiàn)已停止更新),這里也附上工具的使用視頻:

在視頻中我們可以看到該工具的基本上所有的功能,這里還有幾張IDA截圖

我們從上圖可以看到程序包含了很多windows控制臺消息,可是我們看不到。不過我們可以想辦法。我們修改一下PE的頭文件的信息,將GUI文件改成一個控制臺程序,這樣我們就可以看到了,修改方式如圖所示:

好了,下面我們就可以看到這個軟件每一步都做過什么了。。。額滴神額。。。

#p#

0×06 跟岳父打起來了——木馬行為分析

小樣兒,你以為到這里我們就能結(jié)束了么?NO!革命尚未成功,同志仍需努力啊!

接下來對木馬的流量進行嗅探,我們會發(fā)現(xiàn)木馬會將用戶的所有信息——包括用戶的鍵盤記錄信息,屏幕截圖,瀏覽器中存儲的密碼。下面是嗅探到的SMTP通信數(shù)據(jù)和DNS請求:

最后,再上一張圖

最后附上這些文件:鏈接: http://pan.baidu.com/s/1eQ1SO74 密碼: ds3j RAR文件解壓縮密碼:freebuf.com

[文/FreeBuf小編xia0k,部分參考來源:133tsec.com&thehackernews.com ]


網(wǎng)頁題目:AutoIt木馬:鍵盤記錄木馬分析
當(dāng)前地址:http://www.5511xx.com/article/cdhddio.html