本博客属于课程:《网络攻防实践》
本次做业:《第九周做业》
我在这个课程的目标:掌握知识与技能,加强能力和本领,提升悟性和水平。小程序
恶意代码,又称Malicious Code,或MalCode,MalWare。
设计目的为用来实现某些恶意功能的代码或程序。
包括:计算机病毒、网络蠕虫、木马、后门、Rootkit、Exploit、DDoSer、僵尸程序、广告软件、间谍软件……windows
传统计算机病毒:一组可以进行自我传播、须要用户干预来触发执行的破坏性程序或代码。如CIH、新欢乐时光、宏病毒…
网络蠕虫:一组可以进行自我传播、不须要用户干预便可触发执行的破坏性程序或代码。
其经过不断搜索和侵入具备漏洞的主机来自动传播。如红色代码、SQL蠕虫王、冲击波、震荡波、极速波…
特洛伊木马:是指一类看起来具备正常功能,但实际上隐藏着不少用户不但愿功能的程序。一般由控制端和被控制端两端组成。
如冰河、网络神偷、灰鸽子……
后门:使得攻击者能够对系统进行非受权访问的一类程序。如Bits、WinEggDrop、Tini…
RootKit:经过修改现有的操做系统软件,使攻击者得到访问权并隐藏在计算机中的程序。如RootKit、Hkdef、ByShell…
拒绝服务程序,黑客工具,广告软件,间谍软件……安全
计算机病毒是人为制造的,有破坏性,又有传染性和潜伏性的,对计算机信息或系统起破坏做用的程序。它不是独立存在的,而是隐蔽在其余可执行的程序之中。计算机中病毒后,轻则影响机器运行速度,重则死机系统破坏;所以,病毒给用户带来很大的损失,一般状况下,咱们称这种具备破坏做用的程序为计算机病毒。
计算机病毒按存在的媒体分类可分为引导型病毒、文件型病毒和混合型病毒3种;按连接方式分类可分为源码型病毒、嵌入型病毒和操做系统型病毒等3种;按计算机病毒攻击的系统分类分为攻击DOS系统病毒,攻击Windows、系统病毒,攻击UNIX系统的病毒。现在的计算机病毒正在不断的推陈出新,其中包括一些独特的新型病毒暂时没法按照常规的的类型进行分类,如互联网病毒(经过网络进行传播,一些携带病毒的数据愈来愈多)、电子邮件病毒等。服务器
蠕虫是一种能够自我复制的代码,而且经过网络传播,一般无需人为干预就能传播。蠕虫病毒入侵并彻底控制一台计算机以后,就会把这台机器做为宿主,进而扫描并感染其余计算机。当这些新的被蠕虫入侵的计算机被控制以后,蠕虫会以这些计算机为宿主继续扫描并感染其余计算机,这种行为会一直延续下去。蠕虫使用这种递归的方法进行传播,按照指数增加的规律分布本身,进而及时控制愈来愈多的计算机。网络
木马病毒是指隐藏在正常程序中的一段具备特殊功能的恶意代码,是具有破坏和删除文件、发送密码、记录键盘和攻击Dos等特殊功能的后门程序。木马病毒实际上是计算机黑客用于远程控制计算机的程序,将控制程序寄生于被控制的计算机系统中,内外夹攻,对被感染木马病毒的计算机实施操做。通常的木马病毒程序主要是寻找计算机后门,乘机窃取被控计算机中的密码和重要文件等。能够对被控计算机实施监控、资料修改等非法操做。木马病毒具备很强的隐蔽性,能够根据黑客意图忽然发起攻击。架构
后门程序,跟咱们一般所说的"木马"有联系也有区别。联系在于:都是隐藏在用户系统中向外发送信息,并且自己具备必定权限,以便远程机器对本机的控制。区别在于:木马是一个完整的软件,然后门则体积较小且功能都很单一。后门程序相似于特洛依木马(简称"木马"),其用途在于潜伏在电脑中,从事搜集信息或便于黑客进入的动做。tcp
“间谍软件”实际上是一个灰色区域,因此并无一个明确的定义。然而,正如同名字所暗示的同样,它一般被泛泛的定义为从计算机上搜集信息,并在未获得该计算机用户许可时便将信息传递到第三方的软件,包括监视击键,搜集机密信息(密码、信用卡号、PIN码等),获取电子邮件地址,跟踪浏览习惯等。函数
僵尸网络 Botnet 是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序)病毒,从而在控制者和被感染主机之间所造成的一个可一对多控制的网络。
攻击者经过各类途径传播僵尸程序感染互联网上的大量主机,而被感染的主机将经过一个控制信道接收攻击者的指令,组成一个僵尸网络。之因此用僵尸网络这个名字,是为了更形象地让人们认识到这类危害的特色:众多的计算机在不知不觉中如同中国古老传说中的僵尸群同样被人驱赶和指挥着,成为被人利用的一种工具。
僵尸程序(Robot、Bot)有时直译为机器人程序,是指现恶意控制功能的程序代码,它可以自动执行预约义的功能、能够被预约义的命令控制。其实Robot程序自己不必定是恶意的,但多以恶意为目的来使用。植入了恶意Bot或者其余能够恶意远程控制程序的计算机称为僵尸计算机。工具
Rootkit是一种奇特的程序,它具备隐身功能:不管静止时(做为文件存在),仍是活动时,(做为进程存在),都不会被察觉。换句话说,这种程序可能一直存在于咱们的计算机中,但咱们却浑然不知,这一功能正是许多人求之不得的——不管是计算机黑客,仍是计算机取证人员。黑客能够在入侵后置入Rootkit,秘密地窥探敏感信息,或等待时机,乘机而动;取证人员也能够利用Rootkit实时监控嫌疑人员的不法行为,它不只能搜集证据,还有利于及时采起行动!测试
分析恶意代码须要分析如下内容:
一、隐蔽功能
二、加密功能
三、触发条件
四、自启动功能
五、自主攻击和繁殖功能
六、破坏功能
恶意代码分析有两类方法:静态分析和动态分析。静态分析方法是在没有运行恶意代码时对其进行分析的技术,而动态分析方法则须要运行恶意代码,而这两类技术又进一步分析基础技术和高级技术。
1)、静态分析技术基础技术
静态分析基础技术包括检查可执行文件但不查看具体指令的一些技术。静态分析基础技术能够确认一个文件是不是恶意的,提供有关其功能的信息,有时还会提供一些信息让你可以生成简单的网络特征码。
2)、动态分析基础技术
动态分析基础技术涉及运行恶意代码并观察系统的行为,以移除感染,产生有效的检测特征码,或者二者。然而,在你能够安全运行恶意代码以前,你必须创建一个安全的环境,可以让你在避免对你的系统与网络带来的风险的前提下,研究运行的恶意代码。
3)、静态分析高级技术
静态分析高级技术,主要对恶意代码内部机制的逆向工程,经过将可执行文件装载到反汇编器中,查看程序指令,来发现恶意代码到底作什么。这些指令时被CPU执行的,因此静态分析高级技术可以告诉你程序具体作了哪些事情。须要掌握汇编语言、代码结构、windows操做系统概念等专业知识。
4)动态分析高级技术
动态分析高级技术则是用调试器来检查一个恶意可执行程序运行时刻的内部状态。动态分析高级技术提供了从可执行文件中抽取详细信息的另外一个路径。
Unix/Linux上都有一个file命令,用以判断某文件是什么类型的文件。Windows默认没有这个东西,下载地址中提供了一个这个Linux工具的port,下载setup安装便可,把安装后的bin目录加到PATH中便可以在命令行使用了。
咱们在windows的cmd窗口下用cd命令切换到当前文件夹,使用命令 file RaDa.exe 和命令file rada_dump.exe能够看到以下图一所示的信息。
图中信息的意思为:
这是一个32位的可运行程序(.exe),是针对windows操做系统下,而且拥有图形界面(GUI)的应用程序,其运行平台为因特尔80386(intel 80386)
关于文件是否被加壳,要依赖于PEID检测工具,使用起来很简单(其原理主要在于字段分析与识别),以下图二所示,咱们能够看到关于这个文件的各类信息。其中,这个文件的扩展信息中提到这个文件的检测结果为:UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo,网上搜索相关信息后得出结论,这个是加壳后的文件,是UPX 0.89.6版本的壳,而且咱们能够看出这个文件是被压缩过等信息。
图一
图二
这里咱们用脱壳巡警工具进行快速脱壳,脱壳完成后输出结果咱们看一下,如图三所示(实际就是咱们上面file命令查看文件类型信息的第二个文件rada_dump.exe,其文件信息类型在图一中已经展现,这里再也不赘述)。
脱壳以后这个文件对于咱们来讲就等同于一个被编译过的源代码文件同样的存在,咱们这里想要知道其内部信息就要对其进行反汇编,这里咱们用到了反汇编的工具IDA pro(原理主要在于反汇编过程的熟练操做,要快速定位到首字段位置,若是嫌麻烦这个步骤在上面的PEID中能够快速识别匹配字段,来快速完成。找到首字段后,根据Accii码对文件内容进行反汇编,结合32位的intel 80386平台给出的操做指令集,获得脱壳后的信息),如图四所示
图三
图四
图五
所谓不入虎穴焉得虎子,首先,咱们准备好process explorder用来监测进程(实测,这个玩意有树状列表,比process minitor好用多了),其次,准备好wireshark用来看这个文件是否向外部进行了网络传输,最后,咱们准备好Regshot用来创建注册表快照,用来分析注册表的修改状况。
一切就绪咱们运行这个恶意代码,咱们看到快照对比之下,这个新增长的键无从遁形,直接定位到了他所在的位置。除了对注册表的分析以外,咱们能够在process explorder中对这个进程先后的输入输出进行提取分析(这个过程其实也能够尝试在反汇编软件中查看输出表,不过多是未运行的状态因此我第一次的尝试未成功)。咱们在下图七中看到了从这个进程中字符串提取的状况(注意在Image中会看到不少乱码,选择memory就会看到先后提取出的字符串有机拼接以后的结果),咱们能够看到这个字眼常常出现啊,颇有可能就是做者,
图六
图七
这个程序都干了什么呢,这里又以为process minitor在这方面更为详细。
仔细观察,进程开始以后,程序首先建立了windows文件夹下的.pf文件,而后就开始进行一些列的注册表操做,从detail栏目中咱们能够大体看出这个进程都干了什么,这里包括不停的读取咱们的磁盘和IO信息,包括在咱们的注册表中增长了不少文件,在NT文件夹下复制了这个恶意代码的运行程序(.exe文件),时不时就会回去从新运行一下这个恶意代码,让进程数量急剧增多,包括创建了TCP的长链接,等等行径。
一、文件摘要:
演算文件的md5值,为:caaa6985a43225a0b3add54f44a0d4c7
二、目的
这个程序在不停的自我复制而且连接到一个固定的IP地址,看起来像一个后门程序,他篡改了注册表而且奇迹自动启动,由内而外连接的过程与反弹端口木马的行为十分类似,故而推测是一个反弹端口木马或者后门程序
三、保护措施
这个程序自身加壳作到了反逆向,而且,并未轻易抖露做者信息
四、分类
我给其分类为反弹端口木马或者后门程序
五、咱们在作exploit攻击虚拟机时使用过相似的反弹端口木马程序
在做者这一栏中,攻击者并未傲娇的将本身的名字放在author里储存,并且这个author在被调用的位置均是push操做,将这个信息压入堆栈,以后并没有操做。可是在刚刚字符串收集的时候,咱们已经看到了是创造的这个镜像,能够理解为他就就是攻击者。
演算文件的md5值,crackme1为: 4357BF8C20FABB642FAFC0B73FB0ABFB、crackme2为: 46AA577172D8F37AE2AE281515C99AFB
上面对RaDa的步骤对这个crackme1文件再来一遍,经过file命令,咱们看到crackme1文件是一个32位的可运行程序(.exe),是针对windows操做系统下,其运行平台为因特尔80386(intel 80386),可是没有图形界面。
然而当咱们尝试运行这个程序的时候,却发现反馈是缺乏某东东西(盲猜缺乏密码或者某种前置环境)
对这个文件进行壳检测,发现这是个很单纯的软件,没有加壳,那么这样的话咱们直接对其进行逆向分析好了!
看到文件的流程图后咱们大体明白了这个程序该如何进入,显然咱们一直没能进入,可是在string中咱们看到了经过的字符串,咱们追踪一下这个玩意在哪被调用了,咱们到了401310,而后继续向上查找401310在哪被jump了(显然401310上面是个jump指令,那么401310就只能被jump到达),就这样咱们到了4012Ec,在4012EC以前,咱们看到系统作了一个判断以下面第二张图, jz short loc_4012D2这里咱们看看判断对象是什么,他判断输入的语句是不是“i konw the secret”,若是判断错误,则跳转004012F1输出parden what did you say?
另外,若是判断是,则跳转401310输出You know how to speak to programs, Mr.。。。
You know how to speak to programs, Mr.
到这里是否好奇,以前什么都不输入,返回的是"I think you are missing something.\n"是什么状况
这里咱们回去在看一下代码,,有一行比较cmp [ebp+arg_0], 2
汇编指令cmp的比较结果是:
若是比较的是两个无符号数,则零标志位和进位标志位表示的两个操做数之间的关系以下表所示:
CMP结果 ZF CF
目的操做数 < 源操做数 0 1
目的操做数 > 源操做数 0 0
目的操做数 = 源操做数 1 0
这条指令意在比较一下 是否有两个输入参数,若是有则输出parden what did you say?,不然输出I think you are missing something.\n
测试一下,结果正确
同理咱们也能够测试出crakeme2要输入的也是参数为:“i konw the secret”
测试一下:发现不行,回去仔细看了一下程序逻辑
经过参数个数的 判断后 , 接着用strcmp 函数对 argc 里面的第一个字符串,即程序名,和“crackmeplease.exe”进行判断,也就是说咱们要经过验证还要改程序名,改一下试试:
果真经过验证了,颇有意思的小程序。
因特网中继聊天(Internet Relay Chat),通常称为互联网中继聊天,简称:IRC。它是由芬兰人Jarkko Oikarinen于1988年独创的一种网络聊天协议。通过十年的发展,目前世界上有超过60个国家提供了IRC的服务。IRC的工做原理很是简单,您只要在本身的PC上运行客户端软件,而后经过因特网以IRC协议链接到一台IRC服务器上便可。它的特色是速度很是之快,聊天时几乎没有延迟的现象,而且只占用很小的带宽资源。全部用户能够在一个被称为"Channel"(频道)的地方就某一话题进行交谈或密谈。每一个IRC的使用者都有一个Nickname(昵称)
IRC用户使用特定的用户端聊天软件链接到IRC服务器,经过服务器中继与其余链接到这一服务器上的用户交流,因此IRC的中文名为“因特网中继聊天”。
IRC的最大特色是实现了在线实时交谈,速度快、功能多的优势使它比电子邮件或新闻组等联络沟通方式更具吸引力。IRC能够设置单独的频道,在这个频道内,输出的文字可供全部人都看到。这样,来自世界不一样角落的人能同时获得有关信息。而若是是两我的之间的单独交谈,甚至能够不用经过服务器,以保证谈话的保密性。随着网络带宽的增长和技术的发展,如今有一些IRC不只能够传输文字信息,还能传输声音或图像信息,这样的功能就更强了。
IRC通常默认的端口6667.
在Botnet的概念中有这样几个关键词。“bot程序”是robot的缩写,是指实现恶意控制功能的程序代码;“僵尸计算机”就是被植入bot的计算机;“控制服务器(Control Server)”是指控制和通讯的中心服务器,在基于IRC(因特网中继聊天)协议进行控制的Botnet中,就是指提供IRC聊天服务的服务器。僵尸网络是一种由引擎驱动的恶意因特网行为:DDoS攻击是利用服务请求来耗尽被攻击网络的系统资源,从而使被攻击网络没法处理合法用户的请求。 DDoS 攻击有多种形式,可是能看到的最典型的就是流量溢出,它能够消耗大量的带宽,却不消耗应用程序资源。DDoS 攻击并非新鲜事物。在过去十年中,随着僵尸网络的兴起,它获得了迅速的壮大和广泛的应用。僵尸网络为 DDoS 攻击提供了所需的“火力”带宽和计算机以及管理攻击所需的基础架构。
主机ip为:172.16.134.191,这里咱们筛选一下后主要看出主机进行通信的IP地址有:(这里说的是经过6667端口通讯的,由于IRC是默认6667端口)
209.126.161.2九、63.241.174.14四、217.199.175.十、66.33.65.5八、209.196.44.172(最后一个这个ip通讯了好久好久,约四个小时)
与僵尸网络209.196.44.172通讯的主机ip有:172.16.134.191,(废话,只看这个捕包记录固然看不出来)
这里要在kali中进行tcp分析(这个活其实在wireshark中进行tcp流追流踪也能够看出来)
由于kali就给出了5这个数字,我不放心怎么这么少,因而又上wireshark上看了一下,应该还有不少,kali没识别出来的
咱们只须要看看哪些ip进入了蜜罐主机便可,kali告诉咱们一共有148个,在输出文件1.txt中能够看到,可是输出是字符未拼接的结果,这里须要使用命令进行拼接
命令:tcpdump -n -nn -r botnet_pcap_file.dat 'dst host 172.16.134.191' | awk -F " " '{print $3}' | cut -d '.' -f 1-4 | sort | uniq | more > 2.txt;wc -l 2.txt
咱们能够对包类型进行分析,snort -r botnet_pcap_file.dat -c /etc/snort/snort.conf -K ascii
咱们看到主要是tcp包和udp包居多,在wireshark上进行具体分析,咱们首先筛选了80端口的包数据,咱们看到,这个210.22.204
101的主机不停地攻击着咱们的主机,到后面确实攻击成功了,并且用到了boot.ini等等配置文件
这里是蠕虫攻击,咱们经过蜜罐主机80端口向外的流量进行分析,发现蜜罐主机作的几回回应均为一个iis服务器的默认页面,因此80端口的这些攻击均失败。
同理咱们看看139端口的状况,一开始就发现了一个smb报文异常可是也没有攻击成功
在145端口上,由61.111.101.78发起的包中有个PSEXESVC.EXE字符串,经过搜索,发现这是一种Dv1dr32蠕虫,这种蠕虫正是经过IRC进行通讯。
一样找出口流量,发现每一个IP地址连入的链接都有响应的回应,而且返回信息中含有\PIPE\ntsvcs,经过搜索可知,这是一个远程调用,因此攻击者确定是得到了权限,所以这个攻击成功的。