本文目录一览:
黑客有哪些攻击手段?
一)黑客常用手段
1、网络扫描--在Internet上进行广泛搜索,以找出特定计算机或软件中的弱点。
2、网络嗅探程序--偷偷查看通过Internet的数据包,以捕获口令或全部内容。通过安装侦听器程序来监视网络数据流,从而获取连接网络系统时用户键入的用户名和口令。
3、拒绝服务 -通过反复向某个Web站点的设备发送过多的信息请求,黑客可以有效地堵塞该站点上的系统,导致无法完成应有的网络服务项目(例如电子邮件系统或联机功能),称为“拒绝服务”问题。
4、欺骗用户--伪造电子邮件地址或Web页地址,从用户处骗得口令、信用卡号码等。欺骗是用来骗取目标系统,使之认为信息是来自或发向其所相信的人的过程。欺骗可在IP层及之上发生(地址解析欺骗、IP源地址欺骗、电子邮件欺骗等)。当一台主机的IP地址假定为有效,并为Tcp和Udp服务所相信。利用IP地址的源路由,一个攻击者的主机可以被伪装成一个被信任的主机或客户。
5、特洛伊木马--一种用户察觉不到的程序,其中含有可利用一些软件中已知弱点的指令。
6、后门--为防原来的进入点被探测到,留几个隐藏的路径以方便再次进入。
7、恶意小程序--微型程序,修改硬盘上的文件,发送虚假电子邮件或窃取口令。
8、竞争拨号程序--能自动拨成千上万个电话号码以寻找进入调制解调器连接的路径。逻辑炸弹计算机程序中的一条指令,能触发恶意操作。
9、缓冲器溢出-- 向计算机内存缓冲器发送过多的数据,以摧毁计算机控制系统或获得计算机控制权。
10、口令破译--用软件猜出口令。通常的做法是通过监视通信信道上的口令数据包,破解口令的加密形式。
11、社交工程--与公司雇员谈话,套出有价值的信息。
12、垃圾桶潜水--仔细检查公司的垃圾,以发现能帮助进入公司计算机的信息。
(二)黑客攻击的方法:
1、隐藏黑客的位置
典型的黑客会使用如下技术隐藏他们真实的IP地址:
利用被侵入的主机作为跳板;
在安装Windows 的计算机内利用Wingate 软件作为跳板;利用配置不当的Proxy作为跳板。
更老练的黑客会使用电话转接技术隐蔽自己。他们常用的手法有:利用800 号电话的私人转接服务联接ISP, 然后再盗用他人的账号上网;通过电话联接一台主机,再经由主机进入Internet。
使用这种在电话网络上的"三级跳"方式进入Internet 特别难于跟踪。理论上,黑客可能来自世界任何一个角落。如果黑客使用800号拨号上网,他更不用担心上网费用。
2、网络探测和资料收集
黑客利用以下的手段得知位于内部网和外部网的主机名。
使用nslookup 程序的ls命令;
通过访问公司主页找到其他主机;
阅读FTP服务器上的文挡;
联接至mailserver 并发送 expn请求;
Finger 外部主机上的用户名。
在寻找漏洞之前,黑客会试图搜集足够的信息以勾勒出整个网络的布局。利用上述操作得到的信息,黑客很容易列出所有的主机,并猜测它们之间的关系。
3、找出被信任的主机
黑客总是寻找那些被信任的主机。这些主机可能是管理员使用的机器,或是一台被认为是很安全的服务器。
一步,他会检查所有运行nfsd或mountd的主机的NFS输出。往往这些主机的一些关键目录(如/usr/bin、/etc和/home)可以被那台被信任的主机mount。
Finger daemon 也可以被用来寻找被信任的主机和用户,因为用户经常从某台特定的主机上登录。
黑客还会检查其他方式的信任关系。比如,他可以利用CGI 的漏洞,读取/etc/hosts.allow 文件等等。
分析完上述的各种检查结果,就可以大致了解主机间的信任关系。下一步, 就是探测这些被信任的主机哪些存在漏洞,可以被远程侵入。
4、找出有漏洞的网络成员
当黑客得到公司内外部主机的清单后,他就可以用一些Linux 扫描器程序寻找这些主机的漏洞。黑客一般寻找网络速度很快的Linux 主机运行这些扫描程序。
所有这些扫描程序都会进行下列检查:
TCP 端口扫描;
RPC 服务列表;
NFS 输出列表;
共享(如samba、netbiox)列表;
缺省账号检查;
Sendmail、IMAP、POP3、RPC status 和RPC mountd 有缺陷版本检测。
进行完这些扫描,黑客对哪些主机有机可乘已胸有成竹了。
如果路由器兼容SNMP协议,有经验的黑客还会采用攻击性的SNMP 扫描程序进行尝试, 或者使用"蛮力式"程序去猜测这些设备的公共和私有community strings。
5、利用漏洞
现在,黑客找到了所有被信任的外部主机,也已经找到了外部主机所有可能存在的漏洞。下一步就该开始动手入侵主机了。
黑客会选择一台被信任的外部主机进行尝试。一旦成功侵入,黑客将从这里出发,设法进入公司内部的网络。但这种方法是否成功要看公司内部主机和外部主机间的过滤策略了。攻击外部主机时,黑客一般是运行某个程序,利用外部主机上运行的有漏洞的daemon窃取控制权。有漏洞的daemon包括Sendmail、IMAP、POP3各个漏洞的版本,以及RPC服务中诸如statd、mountd、pcnfsd等。有时,那些攻击程序必须在与被攻击主机相同的平台上进行编译。
6、获得控制权
黑客利用daemon的漏洞进入系统后会做两件事:清除记录和留下后门。
他会安装一些后门程序,以便以后可以不被察觉地再次进入系统。大多数后门程序是预先编译好的,只需要想办法修改时间和权限就可以使用,甚至于新文件的大小都和原有文件一样。黑客一般会使用rcp 传递这些文件,以便不留下FTP记录。
一旦确认自己是安全的,黑客就开始侵袭公司的整个内部网
7.窃取网络资源和特权
黑客找到攻击目标后,会继续下一步的攻击,步骤如下:
(1)下载敏感信息
如果黑客的目的是从某机构内部的FTP或WWW服务器上下载敏感信息,他可以利用已经被侵入的某台外部主机轻而易举地得到这些资料。
(2)攻击其他被信任的主机和网络
大多数的黑客仅仅为了探测内部网上的主机并取得控制权,只有那些"雄心勃勃"的黑客,为了控制整个网络才会安装特洛伊木马和后门程序,并清除记录。 那些希望从关键服务器上下载数据的黑客,常常不会满足于以一种方式进入关键服务器。他们会费尽心机找出被关键服务器信任的主机,安排好几条备用通道。
(3)安装sniffers
在内部网上,黑客要想迅速获得大量的账号(包括用户名和密码),最为有效的手段是使用"sniffer" 程序。
黑客会使用上面各节提到的方法,获得系统的控制权并留下再次侵入的后门,以保证sniffer能够执行。
(4)瘫痪网络
如果黑客已经侵入了运行数据库、网络操作系统等关键应用程序的服务器,使网络瘫痪一段时间是轻而易举的事。
如果黑客已经进入了公司的内部网,他可以利用许多路由器的弱点重新启动、甚至关闭路由器。如果他们能够找到最关键的几个路由器的漏洞,则可以使公司的网络彻底瘫痪一段时间
黑客入侵的手法包括哪几种.????..````
黑客入侵的手法包括1)瞒天过海 (2)趁火打劫 (3)无中生有 (4)暗渡陈仓 (5)舌里藏刀 (6)顺手牵羊 (7)供尸还魂 (8)调虎离山 (9)抛砖引玉 (10)湿水摸鱼 (11)远交近攻 (12)偷梁换柱 (13)反客为主。黑客常有连环计,防不胜防,不可不小心。
1、瞒天过海,数据驱动攻击
当有些表面看来无害的特殊程序在被发送或复制到网络主机上并被执行发起攻击时,就会发生数据驱动攻击。例如:一种数据驱动的攻击可以造成一台主机修改与网络安全有关的文件,从而使黑客下一次更容易入侵该系统。
2、趁火打劫,系统文件非法利用
UNIX系统可执行文件的目录,如/bin/who可由所有的用户进行读访问。有些用户可以从可执行文件中得到其版本号,从而结合已公布的资料知道系统会具有什么样的漏洞。如通过Telnet指令操行就可以知道Sendmail的版本号。禁止对可执文件的访问虽不能防止黑客对它们的攻击,但至少可以使这种攻击变得更困难。还有一些弱点是由配置文件、访问控制文件和缺省初始化文件产生的。最出名一个例子是:用来安装SunOS Version 4的软件,它创建了一个/rhosts文件,这个文件允许局域网(因特网)上的任何人,从任何地方取得对该主机的超级用户特权。当然,最初这个文件的设置是为了从网上方便地进行安装,而不需超级用户的允许和检查。智者千虑,必有一失,操作系统设计的漏洞为黑客开户了后门,针对WIN95/WIN NT一系列具体攻击就是很好的实例。
3、无中生有,伪造信息攻击
通过发送伪造的路由信息,构造系统源主机和目标主机的虚假路径,从而使流向目标主机的数据包均经过攻击者的系统主机。这样就给人提供敏感的信息和有用的密码。
4、暗渡陈仓,针对信息协议弱点攻击
IP地址的源路径选项允许IP数据包自己选择一条通往系统目的主机的路径。设想攻击者试图与防火墙后面的一个不可到达主机A连接。他只需要在送出的请求报文中设置IP源路径选项,使报文有一个目的地址指向防火墙,而最终地址是主机A。当报文到达防火墙时被允许通过,因为它指向防火墙而不是主机A。防火墙的IP层处理该报文的源路径被改变,并发送到内部网上,报文就这样到达了不可到达的主机A。
5、笑里藏刀,远端操纵
缺省的登录界面(shell scripts)、配置和客户文件是另个问题区域,它们提供了一个简单的方法来配置一个程序的执行环境。这有时会引起远端操纵攻击:在被攻击主机上启动一个可执行程序,该程序显示一个伪造的登录界面。当用户在这个伪装的界面上输入登录信息(用户名、密码等)后,该程序将用户输入的信息传送到攻击者主机,然后关闭界面给出“系统故障”的提示信息,要求用户重新登录。此后才会出现真正的登录界面。在我们能够得到新一代更加完善的操作系统版本之前,类似的攻击仍会发生。防火墙的一个重要作用就是防止非法用户登录到受保护网的主机上。例如可以在进行报文过滤时,禁止外部主机Telnet登录到内部主机上。
6、顺手牵羊,利用系统管理员失误攻击
网络安全的重要因素之一就是人! 无数历史事实表明:保垒最容易从内攻破。因而人为的失误,如WWW服务器系统的配置差错,普通用户使用户使用权限扩大,这样就给黑客造成了可趁之机。黑客常利用系统管理员的失误,收集攻击信息。如用finger、netstat、arp、mail、grep等命令和一些黑客工具软件。
7、借尸还魂,重新发送(REPLAY)攻击
收集特定的IP数据包;篡改其数据,然后再一一重新发送,欺骗接收的主机。
8、调虎离山,声东击西
对ICMP报文的攻击,尽管比较困难,黑客们有时也使用ICMP报文进行攻击。重定向消息可以改变路由列表,路由器可以根据这些消息建议主机走另一条更好的路径。攻击者可以有效地利用重定向消息把连接转向一个不可靠的主机或路径,或使所有报文通过一个不可靠主机来转发。对付这种威肋的方法是对所有ICMP重定向报文进行过滤,有的路由软件可对此进行配置。单纯地抛弃所有重定向报文是不可取的:主机和路由器常常会用到它们,如一个路器发生故障时。
9、抛砖引玉,针对源路径选项的弱点攻击
强制报文通过一个特定的路径到达目的主机。这样的报文可以用来攻陷防火墙和欺骗主机。一个外部攻击者可以传送一个具有内部主机地址的源路径报文。服务器会相信这个报文并对攻击者发回答报文,因为这是IP的源路径选项要求。对付这种攻击最好的办法是配置好路由器,使它抛弃那些由外部网进来的却声称是内部主机的报文。
10、混水摸鱼,以太网广播攻击
将以太网接口置为乱模式(promiscuous),截获局部范围的所有数据包,为我所用。
11、远交近攻,跳跃式攻击
现在许多因特网上的站点使用UNIX操作系统。黑客们会设法先登录到一台UNIX的主机上,通过该操作系统的漏洞来取得系统特权,然后再以此为据点访问其余主机,这被称为跳跃(Island-hopping)。
黑客们在达到目的主机之前往往会这样跳几次。例如一个在美国黑客在进入美联邦调查局的网络之前,可能会先登录到亚洲的一台主机上,再从那里登录到加拿大的一台主机,然后再跳到欧洲,最后从法国的一台主机向联邦调查局发起攻击。这样被攻击网络即使发现了黑客是从何处向自己发起了攻击,管理人员也很难顺藤摸瓜找回去,更何况黑客在取得某台主机的系统特权后,可以在退出时删掉系统日志,把“藤”割断。你只要能够登录到UNIX系统上,就能相对容易成为超级用户,这使得它同时成为黑客和安全专家们的关注点。
12、偷梁换柱,窃取TCP协议连接
网络互连协议也存在许多易受攻击的地方。而且互连协议的最初产生本来就是为了更方便信息的交流,因此设计者对安全方面很少甚至不去考虑。针对安全协议的分析成为攻击的最历害一招。
在几乎所有由UNIX实现的协议族中,存在着一个久为人知的漏洞,这个漏沿使得窃取TCP连接成为可能。当TCP连接正在建立时,服务器用一个含有初始序列号的答报文来确认用户请求。这个序列号无特殊要求,只要是唯一的就可以了。客户端收到回答后,再对其确认一次,连接便建立了。TCP协议规范要求每秒更换序列号25万次。但大多数的UNIX系统实际更换频率远小于此数量,而且下一次更换的数字往往是可以预知的。而黑客正是有这种可预知服务器初始序列号的能力使得攻击可以完成。唯一可以防治这种攻击的方法是使初始序列号的产生更具有随机性。最安全的解决方法是用加密算法产生初始序列号。额外的CPU运算负载对现在的硬件速度来说是可以忽略的。
13、反客为主,夺取系统控制权
在UNIX系统下,太多的文件是只能由超级用户拥有,而很少是可以由某一类用户所有,这使得管理员必须在root下进行各种操作,这种做法并不是很安全的。黑客攻击首要对象就是root,最常受到攻击的目标是超级用户Password。严格来说,UNIX下的用户密码是没有加密的,它只是作为DES算法加密一个常用字符串的密钥。现在出现了许多用来解密的软件工具,它们利用CPU的高速度究尽式搜索密码。攻击一旦成功,黑客就会成为UNIX系统中的皇帝。因此,将系统中的权利进行三权分立,如果设定邮件系统管理员管理,那么邮件系统邮件管理员可以在不具有超级用户特权的情况下很好地管理邮件系统,这会使系统安全很多。
此外,攻击者攻破系统后,常使用金蝉脱壳之计删除系统运行日志,使自己不被系统管理员发现,便以后东山再起。故有用兵之道,以计为首之说,作为网络攻击者会竭尽一切可能的方法,使用各种计谋来攻击目标系统。这就是所谓的三十六计中的连环计。
如何举报非法App?
怎么举报诈骗app
一、直接拨打110或者到当地的派出所报警,app诈骗属于犯罪行为,由警方依法处理;
二、可以到网络违法犯罪举报网站举报app的诈骗行为。 网页端直接举报的操作有:
1、直接点击网络违法犯罪举报网站进入网站首页面。
2、进入网站首页面后,点击我要举报。
3、进入在线举报页面后,点击选择举报方式。
4、选择好方式后(如选择非注册用户举报),点击进入,在新页面中输入事件发生事件、事件描述。以及要举报投诉的APP。
5、接着填写自己的相关信息,确认无误后,点击提交即可。
什么是黑客攻击?为什么要攻击?怎么攻击的?
黑客攻击
开放分类: 电脑、技术类、军事类
---------------解释1-------------------
一、黑客常用攻击手段
黑客攻击手段可分为非破坏性攻击和破坏性攻击两类。非破坏性攻击一般是为了扰乱系统的运行,并不盗窃系统资料,通常采用拒绝服务攻击或信息炸弹;破坏性攻击是以侵入他人电脑系统、盗窃系统保密信息、破坏目标系统的数据为目的。下面为大家介绍4种黑客常用的攻击手段(小编注:密码破解当然也是黑客常用的攻击手段之一)。
1、后门程序
由于程序员设计一些功能复杂的程序时,一般采用模块化的程序设计思想,将整个项目分割为多个功能模块,分别进行设计、调试,这时的后门就是一个模块的秘密入口。在程序开发阶段,后门便于测试、更改和增强模块功能。正常情况下,完成设计之后需要去掉各个模块的后门,不过有时由于疏忽或者其他原因(如将其留在程序中,便于日后访问、测试或维护)后门没有去掉,一些别有用心的人会利用穷举搜索法发现并利用这些后门,然后进入系统并发动攻击。
2、信息炸弹
信息炸弹是指使用一些特殊工具软件,短时间内向目标服务器发送大量超出系统负荷的信息,造成目标服务器超负荷、网络堵塞、系统崩溃的攻击手段。比如向未打补丁的 Windows 95系统发送特定组合的 UDP 数据包,会导致目标系统死机或重启;向某型号的路由器发送特定数据包致使路由器死机;向某人的电子邮件发送大量的垃圾邮件将此邮箱“撑爆”等。目前常见的信息炸弹有邮件炸弹、逻辑炸弹等。
3、拒绝服务
拒绝服务又叫分布式D.O.S攻击,它是使用超出被攻击目标处理能力的大量数据包消耗系统可用系统、带宽资源,最后致使网络服务瘫痪的一种攻击手段。作为攻击者,首先需要通过常规的黑客手段侵入并控制某个网站,然后在服务器上安装并启动一个可由攻击者发出的特殊指令来控制进程,攻击者把攻击对象的IP地址作为指令下达给进程的时候,这些进程就开始对目标主机发起攻击。这种方式可以集中大量的网络服务器带宽,对某个特定目标实施攻击,因而威力巨大,顷刻之间就可以使被攻击目标带宽资源耗尽,导致服务器瘫痪。比如1999年美国明尼苏达大学遭到的黑客攻击就属于这种方式。
4、网络监听
网络监听是一种监视网络状态、数据流以及网络上传输信息的管理工具,它可以将网络接口设置在监听模式,并且可以截获网上传输的信息,也就是说,当黑客登录网络主机并取得超级用户权限后,若要登录其他主机,使用网络监听可以有效地截获网上的数据,这是黑客使用最多的方法,但是,网络监听只能应用于物理上连接于同一网段的主机,通常被用做获取用户口令。
二、黑客攻击的目的
一、进程的执行
攻击者在登上了目标主机后,或许只是运行了一些简单的程序,也可能这些程序是无伤大雅的,仅仅只是消耗了一些系统的CPU时间。
但是事情并不如此简单,我们都知道,有些程序只能在一种系统中运行,到了另一个系统将无法运行。一个特殊的例子就是一些扫描只能在UNIX系统中运行,在这种情况下,攻击者为了攻击的需要,往往就会找一个中间站点来运行所需要的程序,并且这样也可以避免暴露自己的真实目的所在。即使被发现了,也只能找到中间的站点地址。
在另外一些情况下,假使有一个站点能够访问另一个严格受控的站点或网络,为了攻击这个站点或网络,入侵者可能就会先攻击这个中间的站点。这种情况对被攻击的站点或网络本身可能不会造成破坏,但是潜在的危险已经存在。首先,它占有了大量的处理器的时间,尤其在运行一个网络监听软件时,使得一个主机的响应时间变得非常的长。另外,从另一个角度来说,将严重影响目标主机的信任度。因为入侵者借助于目标主机对目标主机能够访问,而且严格受控的站点或进行攻击。当造成损失时,责任会转嫁到目标主机的管理员身上,后果是难以估计的。可能导致目标主机损失一些受信任的站点或网络。再就是,可能人民者将一笔账单转嫁到目标主机上,这在网上获取收费信息是很有可能的。
二、获取文件和传输中的数据
攻击者的目标就是系统中的重要数据,因此攻击者通过登上目标主机,或是使用网络监听进行攻击事实上,即使连入侵者都没有确定要于什么时,在一般情况下,他会将当前用户目录下的文件系统中的/etc/hosts或/etc/passwd复制回去。
三、获取超级用户的权限
具有超级用户的权限,意味着可以做任何事情,这对入侵者无疑是一个莫大的诱惑。在UNIX系统中支持网络监听程序必需有这种权限,因此在一个局域网中,掌握了一台主机的超级用户权限,才可以说掌握了整个子网。
四、对系统的非法访问
有许多的系统是不允许其他的用户访问的,比如一个公司、组织的网络。因此,必须以一种非常的行为来得到访问的权力。这种攻击的目的并不一定要做什么,或许只是为访问面攻击。在一个有许多windows95
的用户网络中,常常有许多的用户把自己的目录共享出未,于是别人就可以从容地在这些计算机上浏览、寻找自己感兴趣的东西,或者删除更换文件。或许通过攻击来证明自己技术的行为才是我们想像中的黑客行径,毕竟,谁都不喜欢些专门搞破坏,或者给别人带来麻烦的入侵者。但是,这种非法访问的的黑客行为,人们也不喜欢的。
五、进行不许可的操作
有时候,用户被允许访问某些资源,但通常受到许多的限制。在一个UNIX系统中没有超级用户的权限,许多事情将无法做,于是有了一个普通的户头,总想得到一个更大权限。在windowsNT系统中一样,系统中隐藏的秘密太多了,人们总经不起诱惑。例如网关对一些站点的访问进行严格控制等。许多的用户都有意无意地去尝试尽量获取超出允许的一些权限,于是便寻找管理员在置中的漏洞,或者去找一些工具来突破系统的安全防线,例如,特洛伊木马就是一种使用多的手段。
六、拒绝服务
同上面的目的进行比较,拒绝服务便是一种有目的的破坏行为了。拒绝服务的方式很多,如将连接局域网的电缆接地;向域名服务器发送大量的无意义的请求,使得它无法完成从其他的主机来的名字解析请求;制造网络风暴,让网络中充斥大量的封包,占据网络的带宽,延缓网络的传输。
七、涂改信息
涂改信息包括对重要文件的修改、更换,删除,是一种很恶劣的攻击行为。不真实的或者错误的信息都将对用户造成很大的损失。
八、暴露信息
入侵的站点有许多重要的信息和数据可以用。攻击者若使用一些系统工具往往会被系统记录下来如果直接发给自己的站点也会暴露自己的身份和地址,于是窃取信息时,攻击者往往将这些信息和数据送到一个公开的FTP站点,或者利用电子邮件寄往一个可以拿到的地方,等以后再从这些地方取走。
这样做可以很好隐藏自己。将这些重要的信息发往公开的站点造成了信息的扩散,由于那些公开的站点常常会有许多人访问,其他的用户完全有可能得到这些情息,并再次扩散出去。
三、黑客攻击的工具
(一)
应该说,黑客很聪明,但是他们并不都是天才,他们经常利用别人在安全领域广泛使用的工具和技术。一般来说。他们如果不自己设计工具,就必须利用现成的工具。在网上,这种工具很多,从SATAN、ISS到非常短小实用的各种网络监听工具。
在一个UNIX系统中,当入侵完成后,系统设置了大大小小的漏洞,完全清理这些漏洞是很困难的,这时候只能重装系统了。当攻击者在网络中进行监听,得到一些用户的口令以后,只要有一个口令没有改变,那么系统仍然是不安全的,攻击者在任何时候都可以重新访问这个网络。
对一个网络,困难在于登上目标主机。当登上去以后有许多的办法可以用。即使攻击者不做任何事,他仍然可以得到系统的重要信息,并扩散出去,例如:将系统中的hosts文件发散出去。严重的情况是攻击者将得到的以下口令文件放在网络上进行交流。每个工具由于其特定的设计都有各自独特的限制,因此从使用者的角度来看,所有使用的这种工具进行的攻击基本相同。例如目标主机是一台运行SunOS4.1.3的SAPRC工作站,那么所有用Strobe工具进行的攻击,管理员听见到的现象可能完全是一样的。了解这些标志是管理员教育的一个重要方面。
对一个新的入侵者来说,他可能会按这些指导生硬地进行攻击,但结果经常令他失望。因为一些攻击方法已经过时了(系统升级或打补丁进行入侵只会浪费时间),而且这些攻击会留下攻击者的痕迹。事实上,管理员可以使用一些工具,或者一些脚本程序,让它们从系统日志中抽取有关入侵者的信息。这些程序只需具备很强的搜索功能即可(如Perl语言就很适合做这件事了)。
(二)
当然这种情况下,要求系统日志没有遭到入侵。随着攻击者经验的增长、他们开始研究一整套攻击的特殊方法,其中一些方法与攻击者的习惯有关。由于攻击者意识到了一个工具除了它的直接用途之外,还有其他的用途,在这些攻击中使用一种或多种技术来达到目的,这种类型的攻击称为混合攻击。
攻击工具不局限于专用工具,系统常用的网络工具也可以成为攻击的工具,例如:要登上目标主机,便要用到telnet与rlogin等命令,对目标主机进行侦察,系统中有许多的可以作为侦察的工具,如finger和showmount。甚至自己可以编写一些工具,这并不是一件很难的事。其发回,如当服务器询问用户名时,黑客输入分号。这是一个UNIX命令,意思是发送一个命令、一些HTTP服务器就会将用户使用的分号过滤掉。入侵者将监听程序安装在UNIX服务器上,对登录进行监听,例如监听23、21等端口。
(三)
通过用户登录,把所监听到的用户名和口令保存起来,于是黑客就得到了账号和口令,在有大量的监听程序可以用,甚至自己可以编写一个监听程序。监听程序可以在windows95和windowsNT中运行。
除了这些工具以外,入侵者还可以利用特洛伊木马程序。例如:攻击者运行了一个监听程序,但有时不想让别人从ps命令中看到这个程序在执行(即使给这个程序改名,它的特殊的运行参数也能使系统管理员一眼看出来这是一个网络监听程序)。
攻击者可以将ps命令移到一个目录或换名,例如换成pss,再写一个shell程序,给这个shell程序起名为ps,放到ps所在的目录中:
#! /bin/ksh
pss-ef|grep-vsniffit|grep-vgrep
以后,当有人使用ps命令时,就不会发现有人在使用网络监听程序。这是一个简单的特洛伊木马程序。
另外,蠕虫病毒也可以成为网络攻击的工具,它虽然不修改系统信息,但它极大地延缓了网络的速度,给人们带来了麻烦。
---------------解释2-------------------
随着互联网黑客技术的飞速发展,网络世界的安全性不断受到挑战。对于黑客自身来说,要闯入大部分人的电脑实在是太容易了。如果你要上网,就免不了遇到黑客。所以必须知己知彼,才能在网上保持安全。那么黑客们有哪些常用攻击手段呢?
一、获取口令
这种方式有三种方法:一是缺省的登录界面(ShellScripts)攻击法。在被攻击主机上启动一个可执行程序,该程序显示一个伪造的登录界面。当用户在这个伪装的界面上键入登录信息(用户名、密码等)后,程序将用户输入的信息传送到攻击者主机,然后关闭界面给出提示信息“系统故障”,要求用户重新登录。此后,才会出现真正的登录界面。二是通过网络监听非法得到用户口令,这类方法有一定的局限性,但危害性极大,监听者往往能够获得其所在网段的所有用户账号和口令,对局域网安全威胁巨大;三是在知道用户的账号后(如电子邮件“@”前面的部分)利用一些专门软件强行破解用户口令,这种方法不受网段限制,但黑客要有足够的耐心和时间;尤其对那些口令安全系数极低的用户,只要短短的一两分钟,甚至几十秒内就可以将其破解。
二、电子邮件攻击
这种方式一般是采用电子邮件炸弹(E-mailBomb),是黑客常用的一种攻击手段。指的是用伪造的IP地址和电子邮件地址向同一信箱发送数以千计、万计甚至无穷多次的内容相同的恶意邮件,也可称之为大容量的垃圾邮件。由于每个人的邮件信箱是有限的,当庞大的邮件垃圾到达信箱的时候,就会挤满信箱,把正常的邮件给冲掉。同时,因为它占用了大量的网络资源,常常导致网络塞车,使用户不能正常地工作,严重者可能会给电子邮件服务器操作系统带来危险,甚至瘫痪。
三、特洛伊木马攻击
“特洛伊木马程序”技术是黑客常用的攻击手段。它通过在你的电脑系统隐藏一个会在Windows启动时运行的程序,采用服务器/客户机的运行方式,从而达到在上网时控制你电脑的目的。黑客利用它窃取你的口令、浏览你的驱动器、修改你的文件、登录注册表等等,如流传极广的冰河木马,现在流行的很多病毒也都带有黑客性质,如影响面极广的“Nimda”、“求职信”和“红色代码”及“红色代码II”等。攻击者可以佯称自己为系统管理员(邮件地址和系统管理员完全相同),将这些东西通过电子邮件的方式发送给你。如某些单位的网络管理员会定期给用户免费发送防火墙升级程序,这些程序多为可执行程序,这就为黑客提供了可乘之机,很多用户稍不注意就可能在不知不觉中遗失重要信息。
四、诱入法
黑客编写一些看起来“合法”的程序,上传到一些FTP站点或是提供给某些个人主页,诱导用户下载。当一个用户下载软件时,黑客的软件一起下载到用户的机器上。该软件会跟踪用户的电脑操作,它静静地记录着用户输入的每个口令,然后把它们发送给黑客指定的Internet信箱。例如,有人发送给用户电子邮件,声称为“确定我们的用户需要”而进行调查。作为对填写表格的回报,允许用户免费使用多少小时。但是,该程序实际上却是搜集用户的口令,并把它们发送给某个远方的“黑客”。
五、寻找系统漏洞
许多系统都有这样那样的安全漏洞(Bugs),其中某些是操作系统或应用软件本身具有的,如Sendmail漏洞,Windows98中的共享目录密码验证漏洞和IE5漏洞等,这些漏洞在补丁未被开发出来之前一般很难防御黑客的破坏,除非你不上网。还有就是有些程序员设计一些功能复杂的程序时,一般采用模块化的程序设计思想,将整个项目分割为多个功能模块,分别进行设计、调试,这时的后门就是一个模块的秘密入口。在程序开发阶段,后门便于测试、更改和增强模块功能。正常情况下,完成设计之后需要去掉各个模块的后门,不过有时由于疏忽或者其他原因(如将其留在程序中,便于日后访问、测试或维护)后门没有去掉,一些别有用心的人会利用专门的扫描工具发现并利用这些后门,然后进入系统并发动攻击。
现在,你该知道黑客惯用的一些攻击手段了吧?当我们对黑客们的这些行为有所了解后,就能做到“知己知彼,百战不殆”,从而更有效地防患于未然,拒黑客于“机”外。网络的开放性决定了它的复杂性和多样性,随着技术的不断进步,各种各样高明的黑客还会不断诞生,同时,他们使用的手段也会越来越先进。我们惟有不断提高个人的安全意识,再加上必要的防护手段,斩断黑客的黑手。相信通过大家的努力,黑客们的舞台将会越来越小,个人用户可以高枕无忧地上网冲浪,还我们一片宁静的天空
如何攻破软件
如何攻破软件 James A.Whittaker 摘要 本文讨论一系列用于发现软件设计与开发中的缺陷的方法(所谓的“攻击”)。这些攻击 都是手工、探索性的测试方式,设计和执行都是动态的、几乎不需要额外开销。这些攻击是 经过对上百个真实的软件缺陷进行研究并且抽象出他们的成因和现象之后构造出来的。经过 佛罗里达理工学院软件测试方向的学员两个学期的细化分析,已经归纳了数十个旨在发现缺 陷的攻击策略。这些攻击策略被证明非常受用,已经发现了上百个额外的缺点——都是由这 些攻击策略直接导致的——在短时间内对产品几乎没有任何了解的情况下。本文介绍上述攻 击策略的一个子集并说明他们是如何在已发布产品中发现真实缺陷。 简介 是什么成就了一名优秀的测试人员?是什么样的天赋使他们对bug 如此敏感?这样的 能力是可以传授的吗? 这些问题就是本文的主旨。我相信优秀的测试人员更多是后天造就而不是先天生成的, 事实上,多年下来许多测试人员自己似乎积累了一个攻击策略的标准库。每当他们面临测试 难题时就会重组手头的攻击策略,从而总是能够发现缺陷。尽管这些攻击策略很少被记录下 来,它们确确实实在手工测试和测试传承中扮演着重要的角色。 通过对真实的测试人员和现实缺陷的研究,我们开始着手文档化这一财富。在本文中, 我们探索来自于该项工程的一部分成果。下一个挑战是对这些攻击施行自动化,找到有效使 用的具体策略。 攻击无异于以下三个大类: 输入/输出攻击 数据攻击 运算攻击 每个类型中都有特定类型的攻击,它们导致十分有趣的软件故障。在之后的部分我以具 体的缺陷为例介绍每个大类下的攻击类型。涉及到的bug 都来自于微软公司的产品。我认为 这不该被看作是一种反微软的行为。事实上,它作为软件行业霸主的事实使它自然而然地成 为了“众矢之的”。但不能就这样认为微软的产品相对于其他软件产商有更多的缺陷。本文 中提到的攻击策略几乎成功攻击过许多公司的软件产品,这些产品运行在你可以想到的任何 平台上。我的经验表明,不管开发人员开发的应用产品域是什么、使用的操作系统有什么差 异亦或是否发布源码,他们都在高频度地制造bugs。如果他们是web 开发人员,那就更不 用费心了,因为web 程序本身非常容易崩溃。 输入/输出攻击 针对输入/输出的攻击就是测试人员所说的“黑盒”测试,因为不需要任何有关内部数 据或计算的信息来支持测试执行。事实上,这是测试中最常见的一种,因为阅读源码不仅乏 味、费时,并且通常收益甚微,除非你知道自己到底在寻找什么类型的bug(我们将在接下 来的两部分内容里讨论什么是你应该试图寻找的)。 输入/输出攻击 单一输入攻击 迫使所有的报错信息出现 强制指定默认值 尝试所有可用的字符集 迫使输出区域大小改变 引发显示区域溢出 迫使屏幕刷新问题出现 输入值组合攻击 迫使无效输出出现 找出不能共存的输入值组合 输入序列攻击 迫使无效输出出现 多次重复同样的输入序列 单一输入攻击 这一类攻击是对使用单一输入(从变量输入的角度来说)的行为进行的检查。我们试图 发现在大部分数据都正常工作的情况下由一个单一的输入导致应用崩溃的情况。其实除了单 单从边界值上考虑以外还有很多别的方式来选择输入用例,特别是当你希望找到真正被开发 认可的bug,而不是仅仅作为未定义的需求而忽略掉。 首先给出一些看 似简单但不易施行的 建议: 确保所有的报错信息 都出现一遍。 不能使程序正常 地中止或结束的通常 就是所谓的bug。很多 报错信息仅仅是迫使程序停止来显示一条报错信息,然后接着执行下一条输入或者直到定时 器超时而已。但是,也有其他一些报错信息则是来自于被程序抛出和异常处理器被执行引发 的异常。异常处理器(或中央错误处理线程)因其指针突然改变而数据状态不产生相应变化, 通常会存在问题。异常处理器执行的瞬间,各种各样的数据问题接踵而至:文件未关闭、内 存未释放、数据未初始化。当控制重新回到主线程,很难判断错误处理器是在什么时刻被调 用,又会有怎样的遗留问题在等待粗心大意的开发人员:因为文件没有关闭导致打开文件失 败、在没有初始化前就开始使用数据。如果我们能确保在所有的报错信息都出现过之后系统 依然正常工作,那么也算是为用户省去了不少麻烦(更不用说我们的维护工程师了)。 图1 展示了我的学生在微软 Word 2000 中发现的一个有趣的bug,一条错误提示不知为 何连续出现了两次。这个bug 是在通过单一输入攻击错误处理线程的过程中发现的。 确保软件指定默认值。 开发人员通常不记得在用户输入越界或给参数设置不合理的值时指定默认的值。有时候 强制设立默认值意味着什么也不做——然而正因为想不到,这一举措甚至难倒了优秀的开发 人员。例如,在Word 2000 中,如下对话框中有一个选择框,当不对其做任何修改时再次打 开对话框,该控件将消失。对比左右图片中的对话框。你发现什么控件消失了吗? 有的时候指定默认值需要先改变值的当前设定,然后将其设定为一个不合理的值。这种 连续的转换保证了再转换成其他可用的值前是经过设置默认值。 尝试输入变量的所有可用的字符集。 有的输入问题很简单,特别是当你使用了类似$,%,#,引号等等字符时,这些字符在 许多编程语言中有特殊意义并且作为输入被读入时通常需要特殊处理。如果开发人员未考虑 这种情况,则这些输入可能导致程序的失败。 通过改变输入内容的多少引发输出区域的改变。 聚焦于输出本身是一种发现bug 颇有成效但是极少使用的方法。其思想是:先假定一种 表现为bug 的输出或者行为,然后寻找能够导致这种现场产生的输入。以上所述的一个简单 的攻击例子就是通过改变输入值和输入字符串的长度来引发输出区域大小的重新计算。 一个很好的概念性例子是将时钟的时间设置为9:59,然后等待它转到10:00。一开始显 示区域是4 个字符长度而后来是5。反过来,我们设定时间为12:59(5 个字符),然后等待 其转变为1:00(4 个字符)。开发人员通常只会对初始化为空白的情况进行处理而不曾考虑 到显示区域已有数据的情况下如何更新该区域以显示不同长度的数据。 举个例子,PowerPoint 中的“艺术字”功能中有个有趣的bug。假定我们输入下图中的 一个长的字符串。 可以发现因为字符串太长,并不是整个字符串都能显示出来。但这不是问题的关键。点 击确认按钮时触发两个事件。首先,程序计算出需要的输出区域大小,然后将输入的文字填 充进去。现在,我们编辑该字符串,将它改为单个字符。 可以发现尽管现在只有单个字符,字体大小也没有改变,但显示区域大小却没有发生改 变。进一步看。如果再次编辑该字符串为多行的字符串,输出结果更有意思。 我想这部分已经介绍得比较清楚了,我们将进入下一部分。 确保对显示区域的边界的检查。 这是基于输出的另一种攻击思路,与之前的十分类似。然而,不同于之前着力于导致显 示区域内部出错,这次我们将精力集中在显示区域的外部。并且显示区域将不再重新计算显 示边界而仅仅是考虑边界溢出。 再以PowerPoint 为例,我们可以先画一个文本框,然后输入一个带上标的字符串。放 大该字符串的字体使上标的上半部分被截断。这一问题将连同之后的相关问题一起说明。 引发屏幕刷新问题。 这是使用windows 图形用户界面的用户会遇到的主要问题。对开发人员来说,更是一 个大问题:过度的刷新将导致程序变慢,而不刷新又会导致大大小小的问题,小至要求用户 强制刷新,大到导致用户的操作失败。 通常通过在屏幕上添加、删除和移动元素来触发页面刷新。这将导致背景重新绘制,如 果页面不能正确、及时地作出相应,那么这就是通常意义上的bug。其中,尝试变化所移动 的元素的距离是一种较好的方式,可以移动一点点,接着移动一大截,移动一两次,接着移 动很多次。 接着说回上面例子中的带上标的字符串,试着每次用鼠标拖动它移动一些距离,就会发 现令人讨厌的问题,如下图所示。 在Office 2000 中 经常出现的另一个与 屏幕刷新相关的问题 是文本的异常消失。 这一讨厌的问题在 Word 的页面边界附近 出现。 输入值组合攻击 第二类输入/输出 bug 主要针对多个共 同作用或相互影响的输入。例如,一个通过两个参数调用的API,其中一个参数的取值建立 在另一个参数取值的基础上。通常,bug 正是出在值组合上,因为代码的逻辑关系复杂。 找出不能共存的输入值的组合。 那么哪些值的组合是有问题的?这个问题目前还处于积极研究中,但是我们已经找到了 一个特别有效地方法,那就是先确定期望获得的输出,然后试着去找到对应的输入值的组合。 尝试产生无效的输出。 这是一种适用于测试人员对问题域十分清楚的有效攻击方法。例如,当你在测试一个计 算器并且清楚部分功能点的结果有限制时,试图找到超出范围的结果所对应的输入值组合是 值得的。但是,如果你不熟悉数学,那么这种努力很可能是浪费时间——你甚至可能将一个 不正确的结果当成正确的。 有时候windows 本身会给出提示,告诉你哪些输入是相互关联的。此时,测试人员可 以去测试这些值的范围,并且尝试触犯既定的关系。 输入序列攻击 软件中的输入就像一种正式的语言。单一的输入相当于组成语言的字母,输入的字符串 类似构成语言的句子。其中一些句子应该通过控件和输入区域的启用与禁用被过滤。通过尽 可能多地输入字符串、改变输入的顺序来测试这种问题。 选择导致无效输出的输入序列。 和上文描述这是一种找到问题输入组合的好方法一样,这同样是找出有问题的输入序列 的好方法。例如,当我们发现了Office 2000 中的一个导致文本消失的问题后,对PowerPoint 幻灯片中标题文本框进行攻击。如下的一组屏幕截图再现了一个特定的输入序列是如何导致 文本消失的。 有趣的是仅仅将文本框旋转180 度并不能发现这个bug。必须按照这样的操作顺序:旋 转180 度后,再旋转10 度(或者更多)。逆向执行以上操作并不能修正这一问题,每当点击 标题外部区域,该标题内容就会消失。 改变输入的顺序之所以善于发现bug 是因为很多操作自身成功执行的同时会遗留很多 问题,它们将导致之后的操作失败。对输入序列进行彻底的检查会暴露出很多这样的问题。 然而有时候,下面这种攻击表明:为了发现bug,根本不需要使用多种多样的输入序列。 多次重复同样的输入序列。 这种方式会对资源造成大规模占用,并且对存储数据空间造成压力,当然也包括发现其 他负面的遗留问题。遗憾的是,大多数应用程序并不清楚自身空间和时间的限制,而许多开 发人员倾向于假定资源总是足够可用的。 在Word 的公式编辑器中可以找到这方面的一个例子,程序本身似乎并不清楚它只能处 理10 层嵌套括号的计算。 数据攻击 数据是软件的命脉;如果你设法破坏了它,那么程序将不得不使用被破坏的数据,这之 后得到的就不是合理的结果。所以理解数据是如何、在何处建立是必要的。 从本质上讲,数据的存储是通过读取输入,然后将其存储在内部或者存储一些内部计算 的结果来实现的。因此,测试正是通过提供输入和执行计算来实现数据在应用程序中的传递。 数据攻击遵循以下简单原则。 数据攻击 变量值攻击 1.存储不正确的数据类型 2.使数据值超过允许的范围 数据单元大小攻击 3.溢出输入缓冲区 4.存储过多的值 5.存储太少的值 数据访问攻击 6.找出同一数据的不同修改方式 变量值攻击 这一类的攻击需要对内部存储的数据对象的数据类型和合法值进行检查。如果有对源码 的权限则这些信息可以轻易得到,但是,通过小小的探索性测试和对错误信息的关注也可以 确定大致的类型信息。 改变输入的数据类型来找出不匹配的类型。 在需要整数的区域输入字符(和类似的攻击)已经被证明十分有效,但随着现代编程语 言对类型检查和类型转换的处理变得容易,我们发现这样的攻击相对之前已经不再那么有 效。 使数据值超过允许的范围。 被存储的变量数据和输入的变量数据一样,这样的攻击方式同样适用。 数据单元大小攻击 第二类数据攻击旨在触发数据结构的溢出和下溢。换句话说。攻击试图打破预先设定的 数据对象的大小限制。 首先要说的就是典型的缓冲区溢出。 溢出输入缓冲区。 此处通过输入长字符串导致输入缓冲区溢出。这是黑客们偏好的攻击方式,因为有时候 应用程序在崩溃之后会继续执行进程。若一名黑客将一段可执行代码附在一个长字符串中输 入,程序很可能执行这段代码。 在Word 2000 中的一个缓冲区溢出问题就是这样一个可被利用的bug。此bug 被发现在 查找/替换功能中,如下所示。有趣的是,“查找”这一字段被合理地加以限制而“替换”没 有。 同一数据结构 存储过多的值。 复杂地数 据结构诸如数 组、矩阵和列表 在测试中不仅 仅要考虑存储 在其中的数值, 还要考虑存储 值的数目。 同一数据结构 存储过少的值。 当数据结 构允许增加和 删除信息时,通 常在做了n-1 次增加的同时穿插着或在其之后做n 次删除操作会导致攻击成功。 数据访问攻击 我的朋友Alan Jorgensen 喜欢用“右手不明左手所为”这句话来形容这一类bug。道理 很简单,但开发人员却常倒在这一类攻击下:在很多程序中通常任何任务都能通过多种途径 完成。对测试人员来说,这意味着同一个函数可以由多个入口来调用,这些入口都必须确保 该函数的初始条件得到满足。 一个极好的例子是我的学生在PowerPoint 中发现的表格数据大小相关的崩溃性bug。创 建表格时最大尺寸被限定为25×25。然而,可以创建一个25×25 的表格,然后为其添加行 和列——导致应用程序崩溃。这就是说,程序一方面不允许26×26 的表格存在而另一方面 却并不清楚这个规则的存在。 运算攻击 运算攻击 操作数攻击 使用非法操作数进行运算 找出非法操作数组合 结果攻击 使运算结果过大 使运算结果过小 功能相互作用攻击 找出共享数据不佳的功能 操作数攻击 这类攻击需要知道在一个或更多内部运算中操作数的数据类型和可用的值。如果有源码 权限则这些信息可以轻易获得。否则,测试人员必须尽最大努力去弄清楚正在进行的运算具 体是什么、使用的是什么数据类型。 触发由非法操作数引起的运算。 有时候输入或存储的数据处于合法的范围之中,但是在某些运算类型中却是非法的。被 0 除就是一个很好的例子。0 是一个合法的整数,但作为除法运算的除数却是非法的。 找出不能共存的操作数的组合。 涉及到一个以上操作数的运算不仅受制于上面的攻击,同时存在操作数冲突的可能性。 结果攻击 第二类运算攻击旨在造成存储运算结果的数据对象的溢出和下溢。 试图造成运算结果过大而存储失败。 就算是简单如y=x+1 这样的运算在数值边界上也常出问题。如果x 和y 都是2 比特的 整数并且x 的值为32768,则这一运算将失败,因为结果将会造成存储溢出。 试图造成运算结果过小而存储失败。 和上文相同,不同的是使用y=x-1 并且使x 的值为-32767。 功能相互作用攻击 文章中讨论的这最后一类攻击或许算是所有种类的鼻祖,可以用来区分测试菜鸟和专业 人员:功能的相互作用。问题没有什么新意:不同的应用程序功能共享同一数据空间。两种 功能的相互作用导致应用程序失败,不是因为对数据处理的设定不同,就是因为产生了不良 副作用。 但是哪些功能共享数据并且能够在冲突情况下实现数据转化目前还是测试领域中一个 开放的问题。目前我们正停留在不断地尝试阶段。下面这个例子足以说明情况。 这个例子给出了在Word 2000 中的同一页面上合并脚注和双列时出现的一个出人意料 的结果。问题在于:Word 从注释的引用点计算脚注的页面宽度。所以,若同一页面上存在 两条脚注,一条被处于双列位置的内容所引用,另一条则被处于单列位置的内容所引用,单 列脚注会将双列脚注挤到下一页面。同时被挤掉的还有引用点至页面底部间的文本。 下面的屏幕 截图形象地 说明了问题。 第二列的文 本 去 哪 里 了?连同脚 注一起处在 下一页。你会 任由文档像 这 样 显 示 吗?在找到解决方法(这意味着你得花时间去整理)前你将不得不忍受这一现状。 结论 简单遍历一遍上面罗列的21种攻击策略可以覆盖应用程序的大部分功能。事实上,施行 一次成功的攻击通常意味着尝试各种可能性,走过很多死胡同。但是仅仅因为部分这一类探 索性方法发现不了bug并不意味着它们没有用。首先,这段时间使用应用程序帮助测试人员 熟悉程序的各种功能,从而产生新的攻击思路。其次,测试通过是好的消息!它们表明,产 品是可靠的:尤其当这组测试是上面所说的恶意攻击。如果代码可以承受这样的测试过程, 它几乎可以应对用户作出的任何操作。 另外,永远不要低估了测试时怀揣一个具体目标的作用。我见过太多测试人员把时间浪 费在毫无目的地输入或者随机地调用API试图导致软件出错。实行测试意味着制定明确的目 标——基于会出错的点——然后设计测试用例来实践该目标。这样,每个测试用例都有目的 性并且进度可以被随时控制。 最后,记住,测试应该是有趣的。攻击这一比喻正是对测试的这一特性很好的诠释并且 还为愉快的消遣时光添加了些许作料。狩猎愉快!