不久前收到的一个linux样本,之前linux平台下的样本见得并不多,正好做个记录。

样本启动之后,会将自身重命名拷贝到/usr/bin下,并删除自身,如此处就将自身文件amdhzbenfi命名为usnfpnglab。

运行中的样本进程。

/bin目录下的样本文件

该样本在运行的开始会通过fork进行一定的反调试,具体步骤是fork出一个子进程,然后父进程退出,子进程继续运行。从而导致gdb附加上之后无法调试运行,因为此时gdb的目标是父进程,所有运行之后会报错,此处可以通过gdb中的命令解决(只试用与gdb6.0以上哦)。

set follow-fork-mode child

该命令运行之后告知gdb会跟进fork子进程,但是需要注意的是,样本中用不少地方调用了类似system()这样的函数,如果此时该设置依然存在的话,gdb就会跑飞,所以此时可以通过以下两条命令来将这个设置关闭。

set follow-fork-mode parent

set detach-on-fork [on|off]

首先调用函数encrypt_code解密服务端对应的指令号。

解密算法为简单的一系列异或操作。

如下图为其中解密出的一系列指令的对应号。

之后调用addsernvice函数将自身添加为linux系统的自启动程序。

实际的添加操作。

之后会调用函数decrypt_remotestr,该函数会解密本地一段加密存储的数据,该数据包含了第一次与远端通信时的远端机器的信息,解密方法与指令解密一致。

解密之后的服务器信息,此处的服务器信息为第一次认证的远程机,之后的主控机使用的是另一个ip地址。

最后,开启监听,与远端162.212.182.116主机进行通信。

建立连接之后,会首先获取肉鸡的信息,如cpu等。

随后接受服务器的返回包,通过函数exec_packet执行返回包中来自主控机的命令。

在exec_packet中解析返回包的数据,执行相应的ddos攻击操作,规则如下:

5:syn,10:ack,4:dns

发送的http攻击包。

最后将自身分别拷贝到/usr/bin,/bin,/tmp三个目录下,并删除自身。

一个linux的样本分析的更多相关文章

  1. linux xorddos样本分析2

    逆向分析 之后我们通过ida对该样本进行更深入的分析样本的main函数中,一开始会调用函数dec_conf对样本中的大量加密的字符串进行解密,如下图所示.

  2. linux xorddos样本分析1

    样本行为 该样本为国庆期间接到的一个应急,发现为今年比较流行的xorddos,遂分析一番. 运行之后,查看进程,可以发现可疑进程ydxrooqtno,以及ppkzkneour. 多次运行发现除了ydx ...

  3. 一个 Linux 上分析死锁的简单方法

    简介 死锁 (deallocks): 是指两个或两个以上的进程(线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去.此时称系统处于死锁状态或系统产生了死锁,这 ...

  4. 【转】一个 Linux 上分析死锁的简单方法

    简介 死锁 (deallocks): 是指两个或两个以上的进程(线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去.此时称系统处于死锁状态或系统产生了死锁,这 ...

  5. 一个LINUX狂人的语录(个人认为很精辟)

    http://blog.chinaunix.net/uid-57160-id-2734431.html?page=2 我已经半年没有使用 Windows 的方式工作了.Linux 高效的完成了我所有的 ...

  6. 【转】Linux Writeback机制分析

    1. bdi是什么? bdi,即是backing device info的缩写,顾名思义它描述备用存储设备相关描述信息,这在内核代码里用一个结构体backing_dev_info来表示. bdi,备用 ...

  7. linux源码分析2

    linux源码分析 这里使用的linux版本是4.8,x86体系. 这篇是 http://home.ustc.edu.cn/~boj/courses/linux_kernel/1_boot.html  ...

  8. Linux网络地址转换分析

    Linux网络地址转换分析 地址转换用来改变源/目的端口,是netfilter的一部分,也是通过hook点上注册相应的结构来工作. Nat注册的hook点和conntrack相同,只是优先级不同,数据 ...

  9. linux串口驱动分析

    linux串口驱动分析 硬件资源及描写叙述 s3c2440A 通用异步接收器和发送器(UART)提供了三个独立的异步串行 I/O(SIO)port,每一个port都能够在中断模式或 DMA 模式下操作 ...

随机推荐

  1. Urllib2 总结

    Urllib2 总结 介绍 Urllib2是用于获取URLs(统一资源定位符)的一个Python模块.它以urlopen函数的形式提供了非常简单的接口.能够使用各种不同的协议来获取网址.它还提供一个稍 ...

  2. js计算在线时长

    后台传来毫秒,前台转换成对应的时分秒 //在线时长 function longTime(seconds){ //总秒数 //seconds=seconds/1000; //得到小时 var hour ...

  3. 100个Github上Android开源库

    项目名称 项目简介 1. react-native 这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开源框架 React Native, ...

  4. 【leetcode】Insertion Sort List (middle)

    Sort a linked list using insertion sort. 思路: 用插入排序对链表排序.插入排序是指每次在一个排好序的链表中插入一个新的值. 注意:把排好序的部分和未排序的部分 ...

  5. HDU 5762 Teacher Bo (鸽笼原理) 2016杭电多校联合第三场

    题目:传送门. 题意:平面上有n个点,问是否存在四个点 (A,B,C,D)(A<B,C<D,A≠CorB≠D)使得AB的横纵坐标差的绝对值的和等于CD的横纵坐标差的绝对值的和,n<1 ...

  6. [Android Pro] 小心ReleaseByteArrayElements 中的参数问题

    referen to : http://blog.csdn.net/rainlight/article/details/818964 在Sun的官方文档中,关于该函数的用法如下 The array i ...

  7. python基础——装饰器

    python基础——装饰器 由于函数也是一个对象,而且函数对象可以被赋值给变量,所以,通过变量也能调用该函数. >>> def now(): ... print('2015-3-25 ...

  8. Stanford大学机器学习公开课(四):牛顿法、指数分布族、广义线性模型

    (一)牛顿法解最大似然估计 牛顿方法(Newton's Method)与梯度下降(Gradient Descent)方法的功能一样,都是对解空间进行搜索的方法.其基本思想如下: 对于一个函数f(x), ...

  9. HTTP协议/RTSP协议/RTMP协议的区别

    RTSP. RTMP.HTTP的共同点.区别 共同点: 1:RTSP RTMP HTTP都是在应用应用层. 2: 理论上RTSP RTMPHTTP都可以做直播和点播,但一般做直播用RTSP RTMP, ...

  10. DB2应用中嵌入式SQL取值入本地变量

    Declare section for host variables in C and C++ embedded SQL applications You must use an SQL declar ...