搜main函数关键字可以判断是用shc加密shell脚本生成的二进制文件
在0000000000400F7E位置函数,找到了加载shell命令的位置
shc部分源码
/**//***Thissoftwarecontainsanadhocversionofthe'AllegedRC4'algorithm,***Myimplementationisacompleterewriteoftheonefoundin*anunknown-copyright(283characters)versionpickedupfrom:*From:allen@()*Newsgroups:*Subject:ShrinkthisCcodeforfameandfun*Date:21May199610:49:37-0400*AnditislicensedalsounderGPL.**That'swhereIgotit,nowIamgoingtodosomeworkonit*Itwillresidehere:*/staticconstcharmy_name[]="shc";staticconstcharversion[]="";staticconstcharsubject[]="GenericShellScriptCompiler";staticconstcharcpright[]="GNUGPLVersion3";staticconststruct{constchar*f,*s,*e;}provider={"MdJahidul","Hamid","jahidulhamid@"};尝试生成一个echo“helloworld”,看看shc生成的文件是什么构造
shc安装shc
sudoadd-apt-repositoryppa:neurobin/ppasudoapt-getupdatesudoapt-getinstallshc
加密后会得到一份生成的c源码和可执行文件
[04:08:08]ctfshow@ubuntu/home/ctfshow/Desktop/test(0)shc-f./[04:08:11]ctfshow@ubuntu/home/ctfshow/Desktop/test(0)*[04:08:12]ctfshow@ubuntu/home/ctfshow/Desktop/test(0)./
会输出一个和编译好的
那么可以照着的源码来快速分析手上的二进制文件
调试发现ret会记录当前进程是否为父进程,
调试发现如果为父进程,则执行的命令是
execbash./程序自己
那么相当于把代码在子进程里面又跑了一遍
这个时候ret就是1了,加载的也会是text里面真正的代码段
思路程序把shell命令用rc4加密在了硬编码里面,回到样本,只要更改ret的值然后调到execvp然后printmem就能得到shell脚本了
①网安学习成长路径思维导图
②60+网安经典常用工具包
③100+SRC漏洞分析报告
④150+网安攻防实战技术电子书
⑤最权威CISSP认证考试指南+题库
⑥超1800页CTF实战技巧手册
⑦最新网安大厂面试题合集(含答案)
修改ret值
在memcpy下断
祖传字符串脚本
base=0x000000000602B83=0x00000000006074F0ans=[]foriinrange(base,):tmp=_wide_byte(i)(tmp)if(tmp==0):print(bytes(ans))ans=[]
shlll=b''withopen("","w")asf:print((),file=f)暂且写个脚本存一下
shell分析到这一步就比较明了了
shell脚本里面存的命令全是用明文显示的
首先是删除日志和竞品矿机,然后设置iptable
释放iptable_reject
然后从远程服务器下载矿机
其中一个ip是172.104.170.240
上网搜一下ip是一个矿池
搜索矿池ip发现样本行为和安天于今年5月发布的yayayaminer有一定相似之处,在初期的排查阶段借鉴了其思路。





