一个windows下的ddos样本
一个windows下的ddos样本。
加载器
程序运行之后会在临时目录释放出一个256_res.tmp的文件
之后将该文件移动至system32目录下,以rasmedia.dll命名。
删除原文件。
加载开始释放的dll文件,并调用该dll导出的install函数。
Rasmedia.dll
函数install会将将该dll注册成一个服务WinHelp32。
具体如下
服务运行之后会有两个线程开启。
一个线程用于和远端服务器进行通信。
一个线程会将自身拷贝到内存中,当发现映像文件被删除,会将自己再次拷贝。
该函数用于实现循环写保护。
另一个线程用于和远端的服务器进行通信,其交互的主要过程在函数StartAddress中。
函数一开始会解密出其中的远端服务器地址fabao.309420.com:7002,其对应的ip为61.147.107.79。为江苏省扬州的一个ip地址。
之后获取当前系统信息,加密之后发送至远端服务器。
加密算法还原如下:
发送的数据包如下一共96字节。
之后接受远端服务器的控制包。
该数据结构如下:
command为远端的控制指令。
accack为数据包长度,同时也作为攻击的判断符。
target_url为攻击的目标url。
port为攻击目标的端口。
attack_message为定制攻击数据载荷。
其中接受的command如下所示,其中包含远程执行命令,下载文件等操作,但是可以发现主要功能还是以ddos为主。
可以看见此处0x41000001,0x32000004,0x32000001,0x31000005为复合式指令,肉鸡收到该命令后会对目标进行多种类型的ddos攻击,其余的ddos指令各自对应一种ddos攻击。
此处为接收到的返回包。一共为228个字节,此时的数据为加密状态。
通过以下函数实现解密,可以发现解密数据的开始即为32000020,此处为一个ddos,命令。该命令的攻击目标
继续解密之后的target_url字段可以发现返回的是一个攻击目标的字段,该处为http://code.moquta.com。
在提供的ddos攻击策略中有多重攻击模式,此处以32000020举例,该ddos通过http get请求实现攻击,该请求包在代码中已经写好模板,具体如下:只需要填写target,host和refere即可。
可以看到该模式选择由v1偏移208的端口字段指定端口,默认为80。
可以看到此处我们的返回包该偏移为0x50(多一个0是解密脚本的原因)。
此处即为发送的攻击包。
各种方式的攻击包
其中rand是一个随机数生成器。
0x31000001
fun_createthread_sockrandipsend
send_package{
gerneration with 5byte 8 times
}
length:40
one turn 100 time
0x31000002
fun_createthread_sockheapsendto
package{
+2 cout(start with 0)
+6 0
+8 tickcount
}encrypt_by_sub_10005480
length = 4096
one turn 65534 package
0x41000001
fun_createthread_sockrandtentimesendto
send_package{
buf(generation by rand(97,122))
}
length 30
one turn 1000 package
count % 10 sleep
0x31000005
fun_createthread_sockrandsend
send_package{
buf((byte)generation by rand(0,255)<<16)
}
length 1024
one turn all the time
fun_createthread_sockconnect1
send_package{
connect
}
one ture one package
then sleep
fun_createthread_sockconnect2
send_package{
connect
}
one turn 200 package connect and close
0x37000001
fun_createthread_sockendcontainsend
send_package{
buf(command_package[212,228])
}
length 16
one turn all the time
0x33000001
fun_creathethread_sockrandwithcountsend
send_package{
buf(#%d<<<<<I@C<<<<<%s! count,generation with rand(65,122))
}
length rand(20,120)
one turn 6500
0x31000003
fun_callback_sockrandthousandtimesendto
send_package{
buf((int)(generation with rand(97,122)<<16)*512*4)
}
length:2048
one turn 1000 time
0x32000004
fun_createthread_socksend_withoutref_httpone
send_package{
80
'GET %s?=%d HTTP/1.1'
'User-Agent: Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www'
'.baidu.com/search/spider.html)'
'Host: %s'
'Cache-Control: no-cache'
'Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/s'
'earch/spider.html)
GET %s?=%d HTTP/1.1'
'User-Agent: Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www'
'.baidu.com/search/spider.html)'
'Host: %s:%d'
'Cache-Control: no-cache'
}
Length:buff
one turn all the time
0x32000001
fun_createthread_socksend_withoutref_httptwo
send_package{
80
'GET / HTTP/1.1'
'Host: %s'
'User-Agent: Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www'
'.baidu.com/search/spider.html)'
'Cache-Control: no-cache'
'Connection: Close'
for other port
'GET / HTTP/1.1'
'Host: %s:%d'
'User-Agent: Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www'
'.baidu.com/search/spider.html)'
'Cache-Control: no-cache'
'Connection: Close'
}without_referer
length:buff
one turn all the time
0x32000001
fun_createthread_socksend_onlyhost_http
send_package{
80
'GET / HTTP/1.1'
'Host: %s'
for other port
'GET / HTTP/1.1'
'Host: %s:%d'
}
length:buf
one turn all the time
0x36000001
fun_createthread_socksend_withref_httpone
send_package{
80
'GET %s HTTP/1.1'
'Host: %s'
'User-Agent: Mozilla/5.0+(compatible;+Baiduspider/2.0;++http://www'
'.baidu.com/search/spider.html)'
'Cache-Control: no-store, must-revalidate'
'Referer: http://%s'
'Connection: Close'
for other port
'GET %s HTTP/1.1'
'Host: %s:%d'
'User-Agent: Mozilla/5.0+(compatible;+Baiduspider/2.0;++http://www'
'.baidu.com/search/spider.html)'
'Cache-Control: no-store, must-revalidate'
'Referer: http://%s'
'Connection: Close'
}
Length:buff
one turn all the time
0x32000002
fun_createthread_socksend_withref_httptwo
send_package{
80
'GET %s HTTP/1.1'
'Host: %s'
'User-Agent: Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www'
'.baidu.com/search/spider.html)'
'Cache-Control: no-store, must-revalidate'
'Referer: http://%s'
'Connection: Close'
for other port
'GET %s HTTP/1.1'
'Host: %s:%d'
'User-Agent: Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www'
'.baidu.com/search/spider.html)'
'Cache-Control: no-store, must-revalidate'
'Referer: http://%s'
'Connection: Close'
}
length:buf
one turn all the time
一个windows下的ddos样本的更多相关文章
- 做一个WINDOWS下破解WIFI。不须要Linux抓包!
搬家了,没网了. 没有WIFI了! 想破解,只是没有Linux环境,不能抓包!破解! 于是自己动手开工. 在windows 下直接破解.貌似国内 还没看到.假设有了,那么请各位童鞋 提醒一下.赶急 要 ...
- 开源一个windows下的定时任务框架,简单粗暴好用。
这里是你想要的功能: 支持插件,将你要执行的任务编译成程序集放到框架的根目录下,再进行简单的配置就行了. 支持Corn表达式.想让任务在什么时候执行就在什么时候执行. 支持安装成windows ser ...
- Python写一个Windows下的android设备截图工具
界面版 利用python的wx库写个ui界面,用来把android设备的截图输出到电脑屏幕,前提需要安装adb,涉及到的python库也要安装.代码如下: import wx,subprocess,o ...
- 一个Windows下线程池的实现(C++)
前言 本文配套代码:https://github.com/TTGuoying/ThreadPool 先看看几个概念: 线程:进程中负责执行的执行单元.一个进程中至少有一个线程. 多线程:一个进程中有多 ...
- 分享一个windows下检测硬件信息的bat脚本
文件名必须以.bat结尾,如果出现闪退,请右击鼠标,以管理身份运行即可 @echo offcolor 0atitle 硬件检测 mode con cols=90sc config winmgmt st ...
- 在windows下使用linux命令,GnuWin32的使用.
http://sourceforge.net/projects/getgnuwin32 使用过linxu的伙计估计都会喜欢上linux各种各样强大的命令如:grep, sed,awk,diff和pat ...
- 在windows下使用linux命令
<转:http://www.cnblogs.com/adgnat/archive/2011/07/16/2108098.html> 使用过linxu的伙计估计都会喜欢上linux各种各样强 ...
- Windows下搭建deepnet环境
近期在做deep learning的项目,学习了一下deepnet,之前搭建了一个windows下的deepnet的学习开发环境,把搭建系统的过程分享给大家. 1.我用的是windows下的visua ...
- windows下用c实现Socket通信
原文:windows下用c实现Socket通信 原本以为c是跨平台,所以,c在windows下和linux下的程序应该是类似于Java,什么都不用改变的,今儿才恍然大悟,他们的类库不一样啊-- 下面我 ...
随机推荐
- js实现继承的5种方式 (笔记)
js实现继承的5种方式 以下 均为 ES5 的写法: js是门灵活的语言,实现一种功能往往有多种做法,ECMAScript没有明确的继承机制,而是通过模仿实现的,根据js语言的本身的特性,js实现继承 ...
- 光驱SSD安装Win7+ubuntu系统双系统
准备条件: U盘,32GB,三星品牌 SSD,120GB,三星品牌 win7旗舰版,Ghost系统(安装简单嘛),Ylmf_Ghost_Win7_SP1_x64_2016_1011.iso ubunt ...
- Postgresql 简单配置 (ubuntu server 14.04.3)
安装和配置 ubuntu server 已经自动安装了progresql,故安装步骤就省略 初始postgresql没有密码,不能使用,需要先设置密码,命令(从网上随意找的)如下: sudo su p ...
- CP
cp:copy files and directories,如果要拷贝目录,则使用-a或者-r参数,则能够拷贝目录, 如果源文件是多个,那目标文件在最后,且是目录. Cp [-aifpru] [源文件 ...
- [NOIP2016]愤怒的小鸟
题目描述 Kiana最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于(0,0)处,每次Kiana可以用它向第一象限发射一只红色的小鸟,小鸟们的飞行轨迹均为形 ...
- 在Azure虚拟机上安装SQL server
Azure虽然向用户提供SQL paas服务,但是大多数用户还是习惯在用虚拟机自己搭建SQL server,这样的好处是便于后期最大化的扩展,所以鉴于这些情况,所以觉得有必要写这篇博客. 首先,我们要 ...
- WebService入门
1.什么是web服务: web服务是一种可以用来解决跨网络应用集成问题的开发模式,这种模式为实现"软件即服务"提供了技术保障. 2.web服务的三个核心 2.1 SOAP SOA ...
- Network
App Icon: http://www.easyicon.net/
- TCP/IP 协议中的滑动窗口
一个例子明白发送缓冲区.接受缓冲区.滑动窗口协议之间的关系. 在上面的几篇文章中简单介绍了上述几个概念在TCP网络编程中的关系,也对应了几个基本socket系统调用的几个行为,这里再列举一个例子,由于 ...
- OpenCV笔记大集锦(转载)
整理了我所了解的有关OpenCV的学习笔记.原理分析.使用例程等相关的博文.排序不分先后,随机整理的.如果有好的资源,也欢迎介绍和分享. 1:OpenCV学习笔记 作者:CSDN数量:55篇博文网址: ...