当前位置:首页 > CN2资讯 > 正文内容

记一次挖矿木马样本分析

3天前CN2资讯


有一台vps被弱口令上马了

翻来翻去

找到个二进制文件如下

前言

搜main函数关键字可以判断是用shc加密shell脚本生成的二进制文件

在0000000000400F7E位置函数,找到了加载shell命令的位置

shc部分源码

/* shc.c */ /** * This software contains an ad hoc version of the 'Alleged RC4' algorithm, * which was anonymously posted on sci.crypt news by cypherpunks on Sep 1994. * * My implementation is a complete rewrite of the one found in * an unknown-copyright (283 characters) version picked up from: * From: allen@ (John L. Allen) * Newsgroups: comp.lang.c * Subject: Shrink this C code for fame and fun * Date: 21 May 1996 10:49:37 -0400 * And it is licensed also under GPL. * *That's where I got it, now I am going to do some work on it *It will reside here: http:///neurobin/shc */ static const char my_name[] = "shc"; static const char version[] = "Version 4.0.3"; static const char subject[] = "Generic Shell Script Compiler"; static const char cpright[] = "GNU GPL Version 3"; static const struct { const char * f, * s, * e; } provider = { "Md Jahidul", "Hamid", "<[email protected]>" };

尝试生成一个echo “helloworld”,看看shc生成的文件是什么构造

shc

安装shc

sudo add-apt-repository ppa:neurobin/ppa sudo apt-get update sudo apt-get install shc

加密后会得到一份生成的c源码和可执行文件

[04:08:08] ctfshow@ubuntu /home/ctfshow/Desktop/test (0) > shc -f ./test.sh [04:08:11] ctfshow@ubuntu /home/ctfshow/Desktop/test (0) > ls test.sh test.sh.x* test.sh.x.c [04:08:12] ctfshow@ubuntu /home/ctfshow/Desktop/test (0) > ./test.sh.x hello

会输出一个test.sh.c和编译好的test.sh.x


那么可以照着test.sh.c的源码来快速分析手上的二进制文件

调试发现ret会记录当前进程是否为父进程,

调试发现如果为父进程,则执行的命令是

exec bash ./<程序自己>

那么相当于把代码在子进程里面又跑了一遍

这个时候ret就是1了,加载的也会是text里面真正的代码段

思路

程序把shell命令用rc4加密在了硬编码里面,回到样本,只要更改ret的值然后调到execvp 然后print mem就能得到shell脚本了。

帮助网安学习,全套资料S信免费领取:
① 网安学习成长路径思维导图
② 60+网安经典常用工具包
③ 100+SRC分析报告
④ 150+网安攻防实战技术电子书
⑤ 最权威CISSP 认证考试指南+题库
⑥ 超1800页CTF实战技巧手册
⑦ 最新网安大厂面试题合集(含答案)
⑧ APP客户端安全检测指南(安卓+IOS)

patch && dump mem

修改ret值

在memcpy下断

祖传字符串脚本

base =0x000000000602B83 end = 0x00000000006074F0 ans=[] for i in range(base,end): tmp = idc.get_wide_byte(i) ans.append(tmp) if(tmp == 0): print(bytes(ans)) ans=[]

shlll = b'' with open("sh.tmp", "w") as f: print(shlll.decode(),file=f)

暂且写个脚本存一下

shell分析

到这一步就比较明了了

shell脚本里面存的命令全是用明文显示的

首先是删除日志和竞品矿机,然后设置iptable

释放iptable_reject

然后从远程服务器下载矿机

其中一个ip是172.104.170.240

上网搜一下ip是一个矿池

搜索矿池ip发现样本行为和安天于今年5月发布的yayayaminer有一定相似之处,在初期的排查阶段借鉴了其思路。


    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/19344.html

    分享给朋友:

    “记一次挖矿木马样本分析” 的相关文章

    ICMP vs TCP:网络测试中的最佳协议选择

    当我们谈论网络协议时,ICMP(Internet Control Message Protocol)和TCP(Transmission Control Protocol)是两个重要的角色。它们虽然都在网络通信中扮演着关键的角色,却有着截然不同的功能和应用。理解这两种协议的定义及其特性,能够帮助我在构...

    RackNerd IP测评:选择可靠VPS的最佳指南

    在我接触过的众多VPS服务提供商中,RackNerd以其高性价比的特点脱颖而出。作为一家位于美国的公司,RackNerd专注于为用户提供可靠的虚拟私人服务器(VPS)解决方案。在这里,我将和大家分享一些关于RackNerd的重要信息,尤其是它的IP测评,我认为这对想要选择VPS的用户来说至关重要。...

    UCloud年付100元的云服务选择与优势解析

    在开始探讨UCloud的计费方式之前,我想先分享一下我对云服务费用的一些理解和看法。在如今的数字化时代,选择合适的云服务提供商至关重要,计费方式也应兼顾灵活性和经济性。我在UCloud上体验过不同的计费方式,从中得出了一些实用的建议。 UCloud提供的计费方式相当多样,特别是在按年计费这一块。对于...

    OVH云服务概述:高性价比的VPS与专用服务器解决方案

    OVH概述 谈到云服务提供商,OVH无疑是一个引人注意的名字。这家成立于1999年的法国公司,总部位于鲁贝,已经从当初的小公司发展成为全球领先的云服务平台。OVH不仅为个人和企业提供各种云计算解决方案,还持续推动技术创新,满足越来越多用户的需求。 OVH拥有广泛的服务网络,分布在北美、欧洲、亚洲和非...

    Cloudflare域名解析教程:轻松设置与优化网站性能

    在网络安全和性能优化方面,Cloudflare无疑是一个备受青睐的选择。它不仅为网站提供了强大的DNS解析服务,还有助于提升访问速度和保护网站免受各类网络攻击。我在使用Cloudflare的过程中,逐渐了解了什么是Cloudflare以及它的多种功能和优势。 首先,我们需要知道Cloudflare是...

    选择阿里云VPS的最佳理由与性能评测

    在开始之前,先谈谈VPS是什么。VPS是虚拟专用服务器(Virtual Private Server)的缩写,简单来说,就是把一台物理服务器划分成多个虚拟服务器。每个VPS都拥有独立的操作系统和资源。这种安排让我能够更灵活地管理自己的服务器。一方面,VPS提供了更高的控制权和自定义性,另一方面,它比...