总结:这是一个HTTP的后门,以安装(-in)||移除(-re)||配置(-c)为目的运行此程序时, 必须指定abcd为最后一个参数. 安装时他会把自身拷贝到%SYSTEMROOT%\WINDOWS\system32目录下,并创建一个自启动服务来保证其可持续性. 安装之后, 该后门会从注册表中得到服务配置信息, 并向远程服务器发送HTTP/1.0 GET请求,根据请求的返回值,解析成参数,指导恶意软件的行为--共有五种:SLEEP UPLOAD DOWNLOAD CMD NOTHING.

此五种分别对应的行为是:睡眠指定时间, 连接远程服务器得到内容并保存到本地, 从本地文件读取内容发送到远程服务器, 在本机上执行CMD命令并将结果发送到远程主机, 什么都不做

使用peid查看:

用IDA分析:

下面开始标志位检测, 使用了fs:[0x30]得到了PEB地址,

之后判断processheap中的某个标志:

再之后找到NtGlobalFlag,必须不为0x70:

接下来判断参数个数,根据参数个数不同进行不同操作:

如果参数是一个,那么走左边,否则右边.

左边:调用sub_401100:

在sub_401100中,再次执行了上述的三个判断,过了之后,打开注册表项

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft \XPS: 注意Microsoft后有空格

调用成功之后访问名为"Configuration"的项的值

此API成功后返回ERROR_SUCCESS(0)

所以成功后sub_401100返回1,否则返回0

继续:

loc_4035cb调用了:

进入sub_402c40中后:

再次重复了那三个标志位检测,之后:

此循环就是左边支路的最后一个循环,如果这里退出了,那么此次程序执行结束.

可以知道sub_4014B0和sub_402880必须返回0,那么这个循环才能继续下去

进入sub_4014b0:

同样地进行了三个标志位的检测:之后打开HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft \XPS

访问configuration的值, 值存储在局部数组中,之后把这个值分部分拷贝到a1,a3,a5,a7处,猜想这个值之间有3个空格,那么分成四段,就刚好解析:

设4段值为XX YY ZZ KK

那么接下来的调用就是:

说明kk应该是秒数的字符串,用于指定线程睡眠时间

进入sub_402880后再次进行了标志位检测,之后:

在sub_402650中,v14得到了一个字符串,这字符串用于后边的比较,

可以看出这字符串是个命令,用于选择执行恶意代码:

命令有:SLEEP,UPLOAD,DOWNLOAD,CMD,NOTHING

v14使用了strtok来分割字符串,例如sleep时字符串应该是

"SLEEP 10"

这样v2就是10,atoi将v2转换成整数传入sleep实现了睡眠,同理

UPLOAD命令的格式应该是:UPLOAD port filename

DOWNLOAD命令的格式应该是:DOWNLOAD port filename

CMD命令的格式应该是: CMD port command

上述分隔符asc_40c0d8是一个unicode的空格, asc_40c0bc是一个unicode的"`"符号

接下来走右边

v10是传入的最后一个参数,sub_402d70必须返回非零

进入sub_402d70:

可以知道最后一个参数长度为4,第一个字节的值为97(a),第二个字节的值为98,第三个字节的值为99,第四个字节的值为100, 转换成字符就是abcd,所以最后一个参数必须是abcd

接下来相当于参数1的switch:

如果字符串相等那么_mbscmp返回0,依据这逻辑,最内层括号内应该是argv[1]为"-cc"的情况:

此时参数个数必须为3.

之后调用sub_4014b0从注册表中获取配置字符串并解析

:之后调用sub_403939按格式

aKSHSPSPerS     text "UTF-8", 'k:%s h:%s p:%s per:%s',0Ah输出到控制台

如果argv[1]是"-c",那么参数必须有7个

进入sub_4011D0:

这段代码将argv[2]~arg[5]拼成一个字符串并将注册表中的

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft \XPS中Configuration的值设置为拼好的数据.

也就是说-c命令是设置配置的.

如果argv[1]是-re,那么

当参数是3个的时候,此时argv[0]是EXE名,argv[1]是-re,argv[2]是abcd

之后进入sub_402e70:

获取了当前模块完整路径文件名,并将文件名分离出来放入a1中,也就是v8

之后进入sub_4032c0, 这个模块主要就是删除指定服务,删除文件,将其完全移除.

如果参数是4个,那么argv[2]是要移除的服务名

如果argv[1]是-in,那么

当参数是3个,也就是没有指定服务名时,获取模块文件名作为服务名;否则使用指定的服务名来创建服务. 服务名后连接上' Manager Service'

于sub_402f40中, 并将自身拷贝到system32目录下, 初始化configuration的值...

所以-in是安装此恶意程序.

Trojan.Backdoor分析的更多相关文章

  1. Linux SSH Backdoor分析排查

    1.SSH后门分类 SSH后门方式有以下几种 软链接 SSH Server wrapper SSH Keylogger 2.软链接 利用方法 [root@helen]# ln -sf /usr/sbi ...

  2. NMAP - A Stealth Port Scanner--reference

    http://nmap.org/bennieston-tutorial/ 实例:nmap -sP 192.168.21.* Contents 1  Introduction Nmap is a fre ...

  3. 基于Bert的恶意软件多分类

    基于Bert从Windows API序列做恶意软件的多分类 目录 基于Bert从Windows API序列做恶意软件的多分类 0x00 数据集 0x01 BERT BERT的模型加载 从文本到ids ...

  4. [FreeBuff]Trojan.Miner.gbq挖矿病毒分析报告

    Trojan.Miner.gbq挖矿病毒分析报告 https://www.freebuf.com/articles/network/196594.html 竟然还有端口转发... 这哥们.. 江民安全 ...

  5. Backdoor.Zegost木马病毒分析(一)

    http://blog.csdn.net/qq1084283172/article/details/50413426 一.样本信息 样本名称:rt55.exe 样本大小: 159288 字节 文件类型 ...

  6. 一个PHP混淆后门的分析

    洒家的朋友的公司的某个站发现最近被上传了一个后门程序.为了取证我们抓取了HTTP请求流量,看到了一堆莫名其妙看似经过混淆的请求,响应也是看似base64的乱码.洒家用了2个小时静态分析了一遍,并写了利 ...

  7. Exp4 恶意代码分析

    一.原理与实践说明 1. 实践目标 1.1 监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sysin ...

  8. 20155219付颖卓《网络攻防》Exp4 恶意代码分析

    一.基础问题回答 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. 可以用window7自带的schtasks ...

  9. 2018-2019-2 20165315 《网络对抗技术》Exp4 恶意代码分析

    2018-2019-2 20165315 <网络对抗技术>Exp4 恶意代码分析 一.实验要求 1.系统运行监控 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是 ...

随机推荐

  1. FairyGUI TextField

    记录一个在使用FairyGUI的TextField时遇到的坑. TextField有一个文本模板功能,可以实现类似占位符的功能,如:{ number = 0 },然后我们可以在脚本中修改number的 ...

  2. VMware centos7 如何配置静态ip并且可上网

    注:此贴使用NAT方式配置上网模式. 1.设置虚拟机的网络适配器为NAT模式: 2.修改VMware的“虚拟网络编辑器”: 打开后选择NAT模式,勾选,然后点击NAT设置: NAT默认设置了188网段 ...

  3. freopen()函数在ACM中的使用

    #ifndef ONLINE_JUDGE freopen("in.txt","r",stdin); #endif https://blog.csdn.net/c ...

  4. 从手机中导出apk

    输入指令adb devices, 出现类似下面信息,说明设备连接成功. List of devices attached HT4C3JT00386 device 3.查看该手机所有安装包的包名, 输入 ...

  5. Slimming Plan

    问题 B: Slimming Plan 时间限制: 1 Sec  内存限制: 128 MB 题目描述 Chokudai loves eating so much. However, his docto ...

  6. TeamView工具在提示“似乎用于商用环境”的处理方式

    第一种:通过修改这个文件/也有可能删除(没有尝试过)

  7. 连接MySQL报错The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.

    MySQL time zone 时区错误 使用root用户登陆执行命令: ---> show variables like '%time_zone%'; 默认值system为美国时间:如下图: ...

  8. Maven下载与环境变量配置

    前言: Maven 是一个基于 Java 的工具,所以要做的第一件事情就是安装 JDK.如果还未安装 JDK,可以参考Win10下JDK下载与环境变量配置. 项目 要求 JDK Maven 3.3+ ...

  9. node 之 Buffer 笔记

    1. Buffer 相关 js 最初是被设计来处理 html的,因此它不善于处理二进制数据,只有数值和字符串类型.而 node 是基于 js 的,因为 node 需要实现一些譬如数据库通信.操作图像及 ...

  10. release环境下,当前不会命中断点,还没有为该文档加载任何符号

    今天在release编译环境下出现了如标题所说的问题“ 当前不会命中断点,还没有为该文档加载任何符号”,在网上找了几个方法都没有解决我的问题,咨询了一下师傅,解决了,很简单,方法如下:右键--属性-- ...