Backdoor:Win32/Noancooe 使用IDA进行恶意软件分析

Backdoor:Win32/Noancooe

先看下微软官方怎么说这个恶意软件:

Detected by Microsoft Defender Antivirus

Aliases: Trojan-Ransom.Win32.Foreign.muyq (Kaspersky)

Summary

Windows Defender detects and removes this threat.

This threat can give a malicious hacker unauthorized access and control of your PC.

Find out ways that malware can get on your PC.

The following can indicate that you have this threat on your PC:

  • You see a file similar to:
    • %APPDATA%\c97e261a-abeb-4aa5-9797-7611f82457ca\run.dat
    • %TEMP%\windowsus\windows.exe
  • You see registry modifications such as:
    • In subkey: HKCU\Software\Microsoft\Windows\CurrentVersion\Run
      Sets value: "Windows.exe"
      With data: "c:\users\admini~1\appdata\local\temp\windowsus\windows.exe"
    • You see the following mutex:
      • {d84f6a6b-ea26-49f1-a11d-082520f7fa1c}

Threat behavior

Installation
This threat can create files on your PC, including:

 

  • %APPDATA%\c97e261a-abeb-4aa5-9797-7611f82457ca\run.dat
  • %TEMP%\windowsus\windows.exe

It modifies the registry so that it runs each time you start your PC. For example:

In subkey: HKCU\Software\Microsoft\Windows\CurrentVersion\Run

Sets value: "Windows.exe"
With data: "c:\users\admini~1\appdata\local\temp\windowsus\windows.exe"


The malware uses code injection to make it harder to detect and remove. It can inject code into running processes.

Payload

Allows backdoor access and control

This threat can give a malicious hacker access and control of your PC. They can then perform a number of different actions, such as:

  • Deleting files
  • Downloading and running files
  • Logging your keystrokes or stealing your sensitive data
  • Modifying your system settings
  • Running or stopping applications
  • Spreading malware to other PCs
  • Uploading files

Connects to a remote host

We have seen this threat connect to a remote host, including:
  • a.config.skype.com using port 53
  • dawood01.ddns.net using port 9500
  • dns.msftncsi.com using port 53
Malware can connect to a remote host to do any of the following:
  • Check for an Internet connection
  • Download and run files (including updates or other malware)
  • Report a new infection to its author
  • Receive configuration or other data
  • Receive instructions from a malicious hacker
  • Search for your PC location
  • Upload information taken from your PC
  • Validate a digital certificate
Additional information

Creates a mutex

This threat can create a mutex on your PC. For example:

  • {d84f6a6b-ea26-49f1-a11d-082520f7fa1c}

It might use this mutex as an infection marker to prevent more than one copy of the threat running on your PC.

This malware description was published using automated analysis of file SHA1 2adc13a2ecf5d9268c9d67b702c253dd1e176835.

 

 

What Backdoor:MSIL/Noancooe.B!MTB virus can do?

  • Executable code extraction
  • Injection (inter-process)
  • Injection (Process Hollowing)
  • Injection with CreateRemoteThread in a remote process
  • Creates RWX memory
  • A process attempted to delay the analysis task.
  • At least one IP Address, Domain, or File Name was found in a crypto call
  • Reads data out of its own binary image
  • The binary likely contains encrypted or compressed data.
  • Executed a process and injected code into it, probably while unpacking
  • Attempts to remove evidence of file being downloaded from the Internet
  • Exhibits behavior characteristic of Nanocore RAT
  • Collects information to fingerprint the system

 

我用IDA反汇编后看到的一些关键代码:

执行shellexecute

ShellExecute

ShellExecute的功能是运行一个外部程序(或者是打开一个已注册的文件、打开一个目录、打印一个文件等等),并对外部程序有一定的控制。有几个API函数都可以实现这些功能,但是在大多数情况下ShellExecute是更多的被使用的,同时它并不是太复杂。

例子

首先记得加上头文件<windows.h>
//调用计算器
ShellExecute(0,"open","calc.exe","","",SW_SHOWNORMAL);
如果是C++语言,可能会出现参数类型不兼容的情况,改为:
ShellExecute(0,(LPCWSTR)L"open",(LPCWSTR)L"CALC.EXE",(LPCWSTR)L"",(LPCWSTR)L"",SW_SHOWNORMAL);
(下同)
//调用记事本
ShellExecute(0,"open","NOTEPAD.EXE","","",SW_SHOWNORMAL);
●hWnd:用于指定父窗口句柄。当函数调用过程出现错误时,它将作为Windows消息窗口的父窗口。例如,可以将其设置为应用程序主窗口句柄,即Application.Handle,也可以将其设置为桌面窗口句柄(用GetDesktopWindow函数获得)。
●Operation:用于指定要进行的操作。其中“open”操作表示执行由FileName参数指定的程序,或打开由FileName参数指定的文件或文件夹;“print”操作表示打印由FileName参数指定的文件;“explore”操作表示浏览由FileName参数指定的文件夹。当参数设为nil时,表示执行默认操作“open”。
●FileName:用于指定要打开的文件名、要执行的程序文件名或要浏览的文件夹名。
●Parameters:若FileName参数是一个可执行程序,则此参数指定命令行参数,否则此参数应为nil或PChar(0)。
●Directory:用于指定默认目录。
●ShowCmd:若FileName参数是一个可执行程序,则此参数指定程序窗口的初始显示方式,否则此参数应设置为0。
若ShellExecute函数调用成功,则返回值为被执行程序的实例句柄。若返回值小于32,则表示出现错误。
上述仅仅是ShellExecute函数的标准用法,下面将介绍它的特殊用法。
 
 
获取系统信息:
 
 
 
 
 
 
 
 
 
 
涉及socket通信相关的代码:
可以看到有socket,listen,accept,bind,recv,send,sendto等网络通信调用。
 
send
 
 
至于这些代码里具体操作,发送的数据是什么,还需要进一步深入分析了。
 
posted @ 2020-10-11 22:11  bonelee  阅读(659)  评论(0编辑  收藏  举报