写在前面

本文全部内容摘自《信息安全工程师》教材,通过博客方式记录每天学习内容和进度。同时也让感兴趣的人能够一同学习。内容偏理论,请知悉。如果侵权,请告知,立删博文!

网络攻击的概念

网络攻击是指损害网络系统安全属性的危害行为。危害行为导致网络系统的机密性、完整性、可用性、可控性、真实性、抗抵赖性等受到不同程度的破坏。常见的危害行为有四个基本类型:
(1)信息泄漏攻击;
(2)完整性破坏攻击;
(3)拒绝服务攻击;
(4)非法使用攻击;

攻击效果

破坏信息:删除或修改系统中存储的信息或者网络中传送的信息;
信息泄漏:窃取或公布敏感信息;
窃取服务:未授权使用计算机或网络服务;
拒绝服务:干扰系统和网络的正常服务,降低系统和网络性能,甚至使系统和网络崩溃。

网络攻击模型

攻击树模型

攻击树方法起源于故障树分析方法。故障树分析方法主要用于系统风险分析和系统可靠性分析,后扩展为软件故障树,用于辅助识别软件设计和实现中的错误。Schneier首先局域软件故障树方法提出了攻击树的概念,用AND-OR形式的树结构对目标对象进行网络安全威胁分析。
例如,侵害路由器攻击树描述如下。
Attack:
OR 1. Gain physical access to routerAND 1. Gain physical access to data center
2.Guess passwords
OR 3.Perform password recovery
2. Gain logical access to router
OR 1.Compromise network managersystem
OR 1. Exploit application layer vulnerability in server
2. Hijack management traffic2. Login to router
OR 1.Guess password2. Sniff password
3.Hijack management sessionOR 1.Telnet2. SSH3.SNMP4.Social engineering3.Exploit implementation flaw in protocol/application in router
OR 1.Telnet
2.SSH
3.SNMP
4. Proprietary management protoc
攻击树方法可以被攻方用来进行渗透测试,同时也可以被守方用来研究防御机制。
攻击树的优点:能够采取专家头脑风暴法并且将这些意见融合到攻击树中去;能够进行费效分析或者概率分析;能够建模非常复杂的攻击场景。
攻击树的缺点:由于树结构的内在限制攻击树不能用来建模多重尝试攻击、时间依赖及访问控制等场景:不能用来建模循环事件;对于现实中的大规模网络,攻击树方法处理起来将会特别复杂。

MITREATT&CK模型

MITRE根据真实观察到的网络攻击数据提炼形成攻击矩阵模型MITRE ATT&CK,该模型把攻击活动抽象为初始访问(Initial Access)、执行(Execution )、持久化( Persistence )、特权提升 ( Privilege Escalation )、躲避防御( Defense Evasion)、凭据访问( CredentialAccess )发现( Discovery )、横向移动(LateralMovement )、收集( Col-lection)指挥和控制(Command andControl )、外泄(Exfiltration )、影响(Impact),然后给出攻击活动的具体实现方式。,详见MITRE官方地址链接。基于MITREATT&CK常见的应用场景主要有网络红蓝对抗模拟、网络安全渗透测试、网络防差距评估、网络威胁情报收集等。

网络杀伤链(Kill Chain)模型

洛克希德·马丁公司提出的网络杀伤链模型简称Kill Chain模型),该模型将网络攻击活动分成目标侦察(Reconnaissance)、武器构造( Weaponization)、载荷投送( Delivery )、漏洞利用( Exploitation)、安装植入 (Instal-lation ) 、指挥和控制(Command andControl)、目标行动(Actions on Ob-jectives ) 等七个阶段。
(1)目标侦察。研究、辨认和选择目标通常利用爬虫获取网站信息,例如会议记录、电子邮件地址、社交关系或有关特定技术的信息
(2)武器构造。将远程访问的特洛伊木马程序与可利用的有效载荷结合在一起。例如,利用Adobe PDF或Microsoft Office文档用作恶意代码载体。
(3)载荷投送。把武器化有效载荷投送到目标环境,常见的投送方式包括利用电子邮件附件、网站和USB可移动介质
(4)漏洞利用。将攻击载荷投送到受害者主机后,漏洞利用通常针对应用程序或操作系统漏洞,会触发恶意代码功能。以危害目标系统;或者以目标系统为“跳板”进行横向扩展渗透内部网络。
(5)安装植入。在受害目标系统上安装特洛伊木马或后门程序,以持久性地控越多的人能够使用和接触网络。
(6)指挥与控制。构建对目标系统的远程控制通道,实施远程指挥和操作。通常目标系统与互联网控制端服务器建立C2通道。
(7)目标行动。采取行动执行攻击目标的任务。

网络攻击发展

网络攻击具有的变化趋势归纳:
1、网络攻击工具智能化、自动化
2、网络攻击者群体普适化
3、网络攻击目标多样化和隐蔽性
4、网络攻击计算资源获取方便
5、网络攻击活动持续性强化
高级持续威胁(简称APT)日趋常态化,国外APT组织对国内的金融、政府、教育、科研等目标系统持续发动攻击。网上已发现和公布的高级网络安全威胁行为主体主要有“方程式”,“白象”,“海莲花”,“绿斑”,“蔓灵花”等,某些网络攻击活动持续长达十年以上,直到被发现。
6、网络攻击速度加块
7、网络攻击影响扩大
8、网络攻击主体组织化

网络攻击的一般过程

(1)隐蔽攻击源。隐藏黑客主机位置使得系统管理无法追踪。
(2)收集攻击目标信息。确定攻击目标并收集目标系统的有关信息。
(3)挖掘漏洞信息。从收集到的目标信息中提取可使用的漏洞信息。
(4)获取目标访问权限。获取目标系统的普通或者特权账户的权限。
(5)隐蔽攻击行为。隐蔽在目标系统中的操作,防止入侵行为被发现。
(6)实施攻击。进行破坏活动或者以目标系统为跳板向其他系统发起新的攻击。
(7)开辟后门。在目标系统中开辟后门,方便以后入侵。
(8)清除攻击痕迹。避免安全管理员的发现、追踪以及法律部门取证。

隐藏攻击源

攻击者常用如下技术隐藏他们的真实IP地址或者域名:
利用被侵入的主机作为跳板;
免费代理网关;
伪造IP地址;
假冒用户账号。

收集攻击者目标信息

攻击者常常收集的目标系统信息如下:
目标系统一般信息,主要有目标系统的IP地址、DNS服务器、邮件服务器、网站服务器、操作系统软件类型及版本号、数据库软件类型及版本号、应用软件类型及版本号系统开发商等;
目标系统配置信息,主要有系统是否禁止root远程登录、缺省用户名/默认口令等;目标系统的安全漏洞信息,主要是目标系统的有漏洞的软件及服务;
目标系统的安全措施信息,主要是目标系统的安全厂商、安全产品等;
目标系统的用户信息,主要是目标系统用户邮件账号、社交网账号、手机号、固定电话号码、照片、爱好等个人信息。

挖掘漏洞信息

外部攻击者的攻击主要利用了系统网络服务中的漏洞,内部人员则利用了系统内部服务及其配置上的漏洞。而拒绝服务攻击主要是利用资源的有限性及分配策略的漏洞,长期占用
有限资源不释放,使其他用户得不到应得的服务;或者是利用服务处理中的漏洞,使该服务程序崩溃。攻击者攻击的重要步骤就是尽量挖掘出系统的漏洞,并针对具体的漏洞研究相应的攻击方法。常用的漏洞挖掘技术方法如下:
1、系统或应用服务软件漏洞
2、主机信任关系漏洞
3、目标网络的使用者漏洞
4、通信协议漏洞
5、网络业务系统漏洞

获取目标访问权限

获取系统管理权限通常有以下途径:
获得系统管理员的口令,如专门针对root用户的口令攻击;
利用系统管理上的漏洞,如错误的文件许可权,错误的系统配置,某些SUID程序中存在的缓冲区溢出问题等;
让系统管理员运行一些特洛伊木马,如经算改之后的LOGIN程序等:窃听管理员口令。

隐藏攻击行为

攻击者隐藏自己的行踪通常要用到下面这些技术
连接隐藏,如冒充其他用户、修改LOGNAME环境变量、修改utmp日志文件使用IP SPOOF(IP地址欺骗)技术等
进程隐藏,如使用重定向技术减少ps给出的信息量、用特洛伊木马代替ps程序等
文件隐蔽,如利用字符串相似麻痹系统管理员,或修改文件属性使得普通显示方法无法看到;利用操作系统可加载模块特性,隐瞒攻击时所产生的信息。

实施攻击

实施攻击的一般行为总结:
攻击其他被新鲜人的主机和网络;
修改或删除重要数据;
窃听敏感数据;
停止网络服务;
下载敏感数据;
删除数据账号;
修改数据记录;

开辟后门

攻击者设计后门时通常会考虑以下方法:
放宽文件许可权;
· 重新开放不安全的服务,如REXD、TFTP等;
· 修改系统的配置,如系统启动文件、网络服务配置文件等;
· 替换系统本身的共享库文件;
· 修改系统的源代码,安装各种特洛伊木马;
· 安装嗅探器;
· 建立隐蔽信道。

清除攻击痕迹

避免安全管理员或IDS发现,常用的方法有:
· 篡改日志文件中的审计信息;
· 改变系统时间造成日志文件数据紊乱以迷惑系统管理员;
· 删除或停止审计服务进程;
· 干扰入侵检测系统的正常运行;
· 修改完整性检测标签。

网络攻击常见的技术方法

端口扫描

端口扫描的目的是找出目标系统上提供的服务列表。端口扫描程序挨个尝试与TCP/UDP端口连接,然后根据端口与服务的对应关系,结合服务器端的反应推断目标系统上是否运行了某项服务,
扫描可以分成多种类型:

完全连接扫描

完全连接扫描利用TCP/IP协议的三次握手连接机制,使源主机和目的主机的某个端口建立一次完整的连接。如果建立成功,则表明该端口开放。否则,表明该端口关闭。

半连接扫描

半连接扫描是指在源主机和目的主机的三次握手连接过程中,只完成前两次握手,不建立一次完整的连接。

SYN扫描

首先向目标主机发送连接请求,当目标主机返回响应后,立即切断连接过程,并查看响应情况。如果目标主机返回ACK信息,表示目标主机的该端口开放。如果目标主机返回RESET信息,表示该端口没有开放。
PS:TCP SYN扫描又称“半开扫描”。在TCP连接的三次握手中,发起方会先发送一个SYN数据包,服务方会在接收到这个SYN数据包后,如果该端口处于侦听状态,就会回复一个SYN|ACK的数据包;如果该端口没有处于侦听状态,则会回复一个RST的数据包。
此时如果发起方仍然想要建立连接,就需要再向服务方回复一个ACK数据包。这时,服务方就认为连接已经建立,并会记录在日志中。无论服务方回复SYN|ACK的数据包还是回复RST的数据包,发起方其实已经能够判断服务方的端口是否处于“开”放状态。
之后的ACK数据包发送则被服务方监视,如果此时不发送ACK数据包,而是发一个RST数据包,则不仅关闭了这个未完成的连接过程,而且也不会被服务方记录。因为这种扫描方式使用了SYN标志位,所以被称为TCP SYN扫描。这种扫描技术的优点在于一般
不会在目标计算机上留下记录,在有些情况下即使用netstat命令也无法显示;但这种方法的一个缺点是必须要有管理员权限才能建立自己的SYN数据包。
####ID头信息扫描
这种扫描方法需要用一台第三方机器配合扫描,并且这台机器的网络通信量要非常少,即dumb主机。
首先由源主机A向dumb主机B发出连续的PING数据包,并且查看主机B返回的数据包的ID头信息。一般而言,每个顺序数据包的ID头的值会增加1。然后由源主机A假冒主机B的地址向目的主机C的任意端口(1~65535)发送SYN数据包。这时,主机C向主机B发送的数据包有两种
可能的结果:
· SYN|ACK表示该端口处于监听状态。
· RST|ACK表示该端口处于非监听状态。
那么,由后续PING数据包的响应信息的ID头信息可以看出,如果主机C的某个端口是开放的,则主机B返回A的数据包中,ID头的值不是递增1,而是大于1。如果主机C的某个端口是非开放的,则主机B返回A的数据包中,ID头的值递增1,非常规律。

SYN|ACK扫描

由源主机向目标主机的某个端口直接发送SYN|ACK数据包,而不是先发送SYN数据包。由于这种方法不发送SYN数据包,目标主机会认为这是一次错误的连接,从而会报错。
如果目标主机的该端口没有开放,则会返回RST信息。如果目标主机的该端口处于开放状态(LISTENING),则不会返回任何信息,而是直接将这个数据包抛弃掉。

SYN|ACK扫描

由源主机向目标主机的某个端口直接发送SYN|ACK数据包,而不是先发送SYN数据包。由于这种方法不发送SYN数据包,目标主机会认为这是一次错误的连接,从而会报错。
如果目标主机的该端口没有开放,则会返回RST信息。如果目标主机的该端口处于开放状态(LISTENING),则不会返回任何信息,而是直接将这个数据包抛弃掉。

ACK扫描

首先由主机A向目标主机B发送FIN数据包,然后查看反馈数据包的TTL值和WIN值。开放端口所返回的数据包的TTL值一般小于64,而关闭端口的返回值一般大于64。开放端口所返回的数据包的WIN值一般大于0,而关闭端口的返回值一般等于0。

NULL扫描

将源主机发送的数据包中的ACK、FIN、RST、SYN、URG、PSH等标志位全部置空。如果目标主机没有返回任何信息,则表明该端口是开放的。如果返回RST信息,则表明该端口是关闭的。

XMAS扫描

XMAS扫描的原理和NULL扫描相同,只是将要发送的数据包中的ACK、FIN、RST、SYN、URG、PSH等头标志位全部置成1。如果目标主机没有返回任何信息,则表明该端口是开放的。如果返回RST信息,则表明该端口是关闭的。
网络端口扫描是攻击者必备的技术,通过扫描可以掌握攻击目标的开放服务,根据扫描所获得的信息,为下一步的攻击做准备。

口令破解

口令机制是资源访问控制的第一道屏障。网络攻击者常常以破解用户的弱口令为突破口,获取系统的访问权限。随着计算机硬件和软件技术的发展,口令破解更为有效。攻击者可将千倍于10年前的计算能力用于口令攻击。在一台工作站上,
对包含250000个词条的字典搜索一遍的时间可降至5分钟。据调查研究,普通用户在口令字符的选择上,仅含小写字母的占28.9%,部分含有大写字母的占40.9%,含有控制字符的仅占1.4%,含有标点字号的仅占12.4%,含有非字母数字的仅占1.7%。
直接选用注册时的用户信息(如用户名、电话及用户ID)做密码的占3.9%。总地来说,20%到30%的口令可通过对字典或常用字符表进行搜索或经过简单的置换发现。目前,有专用的口令攻击软件,这些软件能够针对不同的系统进行攻击。
此外,一些远程网络服务的口令破解软件也开始出现,攻击者利用这些软件工具,进行远程猜测网络服务口令,

缓冲区溢出

缓冲区溢出攻击可以使攻击者有机会获得一台主机的部分或全部的控制权。据统计,缓冲区溢出攻击占远程网络攻击的绝大多数。缓冲区溢出成为远程攻击主要方式的原因是,缓冲区溢出漏洞会给予攻击者控制程序执行流程的机会。
攻击者将特意构造的攻击代码植入有缓冲区溢出漏洞的程序之中,改变漏洞程序的执行过程,就可以得到被攻击主机的控制权,详见下图:
缓冲区溢出

恶意代码

恶意代码是网络攻击常见的攻击手段。常见的恶意代码类型有计算机病毒、网络蠕虫、特洛伊木马、后门、逻辑炸弹、僵尸网络等。其中,网络蠕虫程序是1988年由小莫里斯编制的,该程序具有复制传播功能,可以感染UNIX系统主机,
使网上6000多台主机无法运行;2001年8月,红色代码蠕虫病毒利用微软Web服务器IIS4.0或5.0中index服务的安全缺陷,通过自动扫描感染方式传播蠕虫;2010年“震网”网络蠕虫是首个专门用于定向攻击真实世界中基础(能源)设施的恶意代码。

拒绝服务

拒绝服务
拒绝服务攻击是指攻击者利用系统的缺陷,执行一些恶意的操作,使得合法的系统用户不能及时得到应得的服务或系统资源,如CPU处理时间、存储器、网络带宽等。拒绝服务攻击往往造成计算机或网络无法正常工作,进而会使一个依赖于计算机或网络服务的企业不能正常运转。
拒绝服务攻击最本质的特征是延长服务等待时间。当服务等待时间超过某个阈值时,用户因无法忍耐而放弃服务。拒绝服务攻击延迟或者阻碍合法的用户使用系统提供的服务,对关键性和实时性服务造成的影响最大。拒绝服务攻击与其他的攻击方法相比较,具有以下特点:
①难确认性,拒绝服务攻击很难判断,用户在自己的服务得不到及时响应时,并不认为自己(或者系统)受到攻击,反而可能认为是系统故障造成一时的服务失效。
②隐蔽性,正常请求服务隐藏拒绝服务攻击的过程。
③资源有限性,由于计算机资源有限,容易实现拒绝服务攻击。
④软件复杂性,由于软件所固有的复杂性,设计实现难以确保软件没有缺陷。因而攻击者有机可乘,可以直接利用软件缺陷进行拒绝服务攻击,例如泪滴攻击。
常见拒绝服务的攻击方式:

同步包风暴(SYN Flood)

攻击者假造源网址(Source IP)发送多个同步数据包(Syn Packet)给服务器(Server),服务器因无法收到确认数据包(Ack Packet),使TCP/IP协议的三次握手(Three-Way Hand-Shacking)无法顺利完成,因而无法建立连接。其原理是发送大量半连接状态的服务请求
,使Unix等服务主机无法处理正常的连接请求,因而影响正常运作。

UDP洪水(UDP Flood)

利用简单的TCP/IP服务,如用Chargen和Echo传送毫无用处的占满带宽的数据。通过伪造与某一主机的Chargen服务之间的一次UDP连接,回复地址指向开放Echo服务的一台主机,生成在两台主机之间的足够多的无用数据流。

Smurf攻击

一种简单的Smurf攻击是将回复地址设置成目标网络广播地址的ICMP应答请求数据包,使该网络的所有主机都对此ICMP应答请求作出应答,导致网络阻塞,比ping of death洪水的流量高出一或两个数量级。更加复杂的Smurf攻击是将源地址改为第三方的目标网络,
最终导致第三方网络阻塞。

垃圾邮件

攻击者利用邮件系统制造垃圾信息,甚至通过专门的邮件炸弹(mail bomb)程序给受害用户的信箱发送垃圾信息,耗尽用户信箱的磁盘空间,使用户无法应用这个信箱。

消耗CPU和内存资源的拒绝服务攻击

利用目标系统的计算算法漏洞,构造恶意输入数据集,导致目标系统的CPU或内存资源耗尽,从而使目标系统瘫痪,如Hash DoS。

死亡之ping(ping of death)

早期,路由器对包的最大尺寸都有限制,许多操作系统在实现TCP/IP堆栈时,规定ICMP包小于等于64KB,并且在对包的标题头进行读取之后,要根据该标题头中包含的信息为有效载荷生成缓冲区。当产生畸形的、尺寸超过ICMP上限的包,
即加载的尺寸超过64KB上限时,就会出现内存分配错误,导致TCP/IP堆栈崩溃,使接收方停机

泪滴攻击(Teardrop Attack)

泪滴攻击暴露出IP数据包分解与重组的弱点。当IP数据包在网络中传输时,会被分解成许多不同的片传送,并借由偏移量字段(OffsetField)作为重组的依据。泪滴攻击通过加入过多或不必要的偏移量字段,使计算机系统重组错乱,产生不可预期的后果。

分布式拒绝服务攻击(Distributed Denial of Service Attack)

分布式拒绝服务攻击是指植入后门程序从远程遥控攻击,攻击者从多个已入侵的跳板主机控制数个代理攻击主机,所以攻击者可同时对已控制的代理攻击主机激活干扰命令,对受害主机大量攻击。分布式拒绝服务攻击程序,
最著名的有Trinoo、TFN、TFN2K和Stacheldraht四种。

网络钓鱼

网络钓鱼(Phishing)是一种通过假冒可信方(知名银行、在线零售商和信用卡公司等可信的品牌)提供网上服务,以欺骗手段获取敏感个人信息(如口令、信用卡详细信息等)的攻击方式。
目前,网络钓鱼综合利用社会工程攻击技巧和现代多种网络攻击手段,以达到欺骗意图。最典型的网络钓鱼方法是,网络钓鱼者利用欺骗性的电子邮件和伪造的网站来进行诈骗活动,诱骗访问者提供一些个人信息,如信用卡号、账户和口令、社保编号等内容,
以谋求不正当利益。例如,网络钓鱼攻击者构造一封所谓“安全提醒”邮件发给客户,然后让客户点击虚假网站,填写敏感的个人信息,这样网络钓鱼攻击者就能获取受害者的个人信息,并非法利用。

网络窃听

是指利用网络通信技术缺陷,使得攻击者能够获取到其他人的网络通信信息。常见的网络窃听技术手段主要有网络嗅探、中间人攻击。一般的计算机系统通常只接收目的地址指向自己的网络包,而忽略其他的包。但在很多情况下,
一台计算机的网络接口可能收到目的地址并非指向自身的网络包,在完全的广播子网中,所有涉及局域网中任何一台主机的网络通信内容均可被局域网中所有的主机接收到,这就使得网络窃听变得十分容易。网络攻击者将主机网络接口的方式设成“杂乱”模式,
就可以接收整个网络上的信息包,从而可以获取敏感的口令,甚至将其重组,还原为用户传递的文件。

SQL注入

在Web服务中,一般采用三层架构模式:浏览器+Web服务器+数据库。其中,Web脚本程序负责处理来自浏览器端提交的信息,如用户登录名和密码、查询请求等。但是,由于Web脚本程序的编程漏洞,对来自浏览器端的信息缺少输入安全合法性检查
网络攻击者利用这种类型的漏洞,把SQL命令插入Web表单的输入域或页面的请求查找字符串,欺骗服务器执行恶意的SQL命令。

社交工程

网络攻击者通过一系列的社交活动,获取需要的信息。例如伪造系统管理员的身份,给特定的用户发电子邮件骗取他的密码口令。有的攻击者会给用户送免费实用程序,不过该程序除了完成用户所需的功能外,还隐藏了一个将用户的计算机信息发送给攻击者的功能。
很多时候,没有经验的网络用户容易被攻击者欺骗,泄露相关信息。例如,攻击者打电话给公司职员,自称是网络安全管理成员,并且要求获得用户口令。攻击者得到用户口令后,就能够滥用合法用户的权利。

电子监听

网络攻击者采用电子设备远距离地监视电磁波的传送过程。灵敏的无线电接收装置能够在远处看到计算机操作者输入的字符或屏幕显示的内容。

会话劫持

会话劫持是指攻击者在初始授权之后建立一个连接,在会话劫持以后,攻击者具有合法用户的特权权限。例如,一个合法用户登录一台主机,当工作完成后,没有切断主机。然后,攻击者乘机接管,因为主机并不知道合法用户的连接已经断开。
于是,攻击者能够使用合法用户的所有权限。典型的实例是“TCP会话劫持”。

漏洞扫描

漏洞扫描是一种自动检测远程或本地主机安全漏洞的软件,通过漏洞扫描器可以自动发现系统的安全漏洞。网络攻击者利用漏洞扫描来搜集目标系统的漏洞信息,为下一步的攻击做准备。常见的漏洞扫描技术有CGI漏洞扫描、弱口令扫描、操作系统漏洞扫描、
数据库漏洞扫描等。一些黑客或安全人员为了更快速地查找网络系统中的漏洞,会针对某个漏洞开发专用的漏洞扫描工具,例如RPC漏洞扫描器。

代理技术

网络攻击者通过免费代理服务器进行攻击,其目的是以代理服务器为“攻击跳板”,即使攻击目标的网络管理员发现了,也难以追踪到网络攻击者的真实身份或IP地址,如图2-3所示。为了增加追踪的难度,网络攻击者还会用多级代理服务器或者“跳板主机”来攻击目标。
在黑客中,代理服务器被叫作“肉鸡”,黑客常利用所控制的机器进行攻击活动,例如DDoS攻击。

数据加密

网络攻击者常常采用数据加密技术来逃避网络安全管理人员的追踪。加密使网络攻击者的数据得到有效保护,即使网络安全管理人员得到这些加密的数据,没有密钥也无法读懂,这样就实现了攻击者的自身保护。攻击者的安全原则是,任何与攻击有关的内容都必须加
密或者立刻销毁。

黑客常用工具

本节主要介绍网络攻击者常常采用的工具,主要包括扫描器、远程监控、密码破解、网络嗅探器、安全渗透工具箱等。

扫描器

扫描器正如黑客的眼睛,通过扫描程序,黑客可以找到攻击目标的IP地址、开放的端口号、服务器运行的版本、程序中可能存在的漏洞等。现在网络上很多扫描器在功能上都设计得非常强大,并且综合了各种扫描需要,将各种功能集于一身。根据不同的扫描目的,扫描类软件又分为地址扫描器、端口扫描器、漏洞扫描器三个类别。利用扫描器,黑客收集目标信息的工作可轻松完成,从而可以让黑客清楚地了解目标,将目标“摸得一清二楚”,这对于攻击来说是至关重要的。下面列出几种经典的扫描软件:
· NMAP
NMap(Network Map)即网络地图,通过NMap可以检测网络上主机的开放端口号、主机的操作系统类型以及提供的网络服务。
· Nessus
Nessus早期是免费的、开放源代码的远程安全扫描器,可运行在Linux操作系统平台上,支持多线程和插件。目前,该工具已商业化。
· SuperScan
SuperScan是一款具有TCP connect端口扫描、Ping和域名解析等功能的工具,能较容易地对指定范围内的IP地址进行Ping和端口扫描。

远程监控

远程监控实际上是在受害机器上运行一个代理软件,而在黑客的电脑中运行管理软件,受害机器受控于黑客的管理端。受害机器通常被称为“肉鸡”,其经常被用于发起DDoS拒绝服务攻击或作为攻击跳板。常见的远程监控工具有冰河、网络精灵、Netcat。

密码破解

密码破解是安全渗透常用的工具,常见的密码破解方式有口令猜测、穷举搜索、撞库等。口令猜测主要针对用户的弱口令。穷举搜索就是针对用户密码的选择空间,使用高性能计算机,逐个尝试可能的密码,直至搜索到用户的密码。撞库则根据已经收集到的用户密码的相关数据集,通过用户关键词搜索匹配,与目标系统的用户信息进行碰撞,以获取用户的密码。密码破解工具大多数是由高级黑客编写出来的,供初级黑客使用的现成软件,使用者只要按照软件的说明操作就可以达到软件的预期目的。密码破解的常见工具如下。
· John the Ripper
John the Ripper用于检查Unix/Linux系统的弱口令,支持几乎所有Unix平台上经crypt函数加密后的口令哈希类型。
· LOphtCrack
LOphtCrack常用于破解Windows系统口令,含有词典攻击、组合攻击、强行攻击等多种口令猜解方法。

网络嗅探器

网络嗅探器(Network Sniffer)是一种黑客攻击工具,通过网络嗅探,黑客可以截获网络的信息包,之后对加密的信息包进行破解,进而分析包内的数据,获得有关系统的信息。如可以截获个人上网的信息包,分析上网账号、系统账号、电子邮件账号等个人隐私资料。网络嗅探类软件已经成为黑客获取秘密信息的重要手段,常见的网络嗅探器工具有Tcpdump、DSniff、WireShark等。
· Tcpdump/WireShark
Tcpdump是基于命令行的网络数据包分析软件,可以作为网络嗅探工具,能把匹配规则的数据包内容显示出来。而WireShark则提供图形化的网络数据包分析功能,可视化地展示网络数据包的内容。
· DSniff
DSniff是由Dug Song开发的一套包含多个工具的软件套件,包括dsniff、filesnarf、mailsnarf、msgsnarf、rlsnarf和webspy。使用DSniff可以获取口令、邮件、文件等信息。

安全渗透工具箱

Metasploit

Metasploit是一个开源渗透测试工具,提供漏洞查找、漏洞利用、漏洞验证等服务功能。Metasploit支持1500多个漏洞挖掘利用,提供OWASP TOP10漏洞测试。

BackTrack5

BackTrack集成了大量的安全工具软件,支持信息收集、漏洞评估、漏洞利用、特权提升、保持访问、逆向工程、压力测试。