文章导航:
手机号码被恶意攻击了怎么办(恶意代码攻击的步骤)
1、攻击别人手机的代码。
2、苹果手机遭到恶意代码攻击怎么办。
3、手机遭到恶意攻击。
4、恶意代码利用什么攻击。
1.手机被恶意代码攻击是由于手机上存在有问题的应用程序,把有问题的应用程序删除即可,为确保手机中的恶意软件彻底删除,可进入手机的设置菜单,找到并选择恢复出厂设置选项,这样可以彻底清除手机中残存的恶意软件。
2.为防止手机被恶意软件攻击,可仔细检查每一个应用程序的权限要求,不需要一些应用的功能时限制应用程序的访问权限,对于有侵略性广告的应用程序,请务必阅读权限,然后再确定是否允许。
如何攻破软件
如何攻破软件 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试图导致软件出错。实行测试意味着制定明确的目 标——基于会出错的点——然后设计测试用例来实践该目标。这样,每个测试用例都有目的 性并且进度可以被随时控制。 最后,记住,测试应该是有趣的。攻击这一比喻正是对测试的这一特性很好的诠释并且 还为愉快的消遣时光添加了些许作料。狩猎愉快!
网络攻击的过程通常是怎样的?
攻击者在一次攻击过程中通常采用如图
下面我们对攻击者的攻击过程中的各个步骤做一详细的介绍。
隐 藏位置
隐藏位置就是有效地保护自己,在因特网上的网络主机均有自己的网络地址,根据TCP/IP协议的规定,若没有采取保护措施,很容易反查到某台网络主机的位置,如IP地址和域名。因此,有经验的 黑 客 在实施攻击活动时的首要步骤是设法隐藏自己所在的网络位置,包括自己的网络域及IP地址,这样使调查者难以发现真正的攻击者来源。攻击者经常使用如 下 技 术 隐 藏 他 们 真实 的IP 地 址或者域名:
利用被侵入的主机作为跳板, 如在安装Windows 的计算机内利用Wingate软件作为跳板,利用配置不当的Proxy作为跳板;
使用电话转接技术隐蔽自己,如利用电话的转接服务联接ISP;
盗用他人的账号上网,通过电话联接一台主机,再经由主机进入Internet;
免 费 代 理 网关 ;
伪 造IP地址 ;
假 冒用户帐号 。
网络探测和收集资料
在发动一场攻击之前,攻击者一般要先确定攻击目标并收集目标系统的相关信息。他可能在一开始就确定了攻击目标,然后专门收集该目标的信息;也可能先大量地收集网上主机的信息,然后根据各系统的安全性强弱来确定最后的目标。
对于攻击者来说,信息是最好的工具。它可能就是攻击者发动攻击的最终目的(如绝密文件、经济情报);也可能是攻击者获得系统访问权的通行证,如用户口令、认证票据(ticket);也可能是攻击者获取系统访问权的前奏,如目标系统的软硬件平台类型、提供的服务与应用及其安全性的强弱等。攻击者感兴趣的信息主要包括:
操作系统信息;
开放的服务端口号;
系统默认帐号和口令;
邮件帐号;
IP地址分配情况;
域名信息;
网络设备类型;
网络通信协议;
应用服务器软件类型。
攻击者为了全面地掌握使目标系统的信息,常常借助软件工具,例如nmap、NESSUS、SATAN等。另外,攻击者进行搜集目标信息时,还要注意隐藏自己,以免引起目标系统管理员的注意。
弱点挖掘
系统中脆弱性的存在是系统受到各种安全威胁的根源。外部攻击者的攻击主要利用了系统提供的网络服务中的脆弱性;内部人员作案则利用了系统内部服务及其配置上的脆弱性;而拒绝服务攻击主要是利用资源分配上的脆弱性,长期占用有限资源不释放,使其他用户得不到应得的服务,或者是利用服务处理中的弱点,使该服务崩溃。攻击者攻击的重要步骤就是尽量挖掘出系统的弱点,并针对具体的脆弱性研究相应的攻击方法。常用到的弱点挖掘技术方法有:
系统或应用服务软件漏洞。攻击者还可以根据系统提供的不同的服务来使用不同的方法以获取系统的访问权限。如果攻击者发现系统提供了UUCP服务,攻击者可以利用UUCP的安全漏洞来获取系统的访问权;如果系统还提供其他的一些远程网络服务,如邮件服务、WWW服务、匿名FTP服务、TFTP服务,攻击者可以利用这些远程服务中的弱点获取系统的访问权。
机信任关系漏洞。攻击者寻找那些被信任的主机。这些主机可能是管理员使用的机器,或是一台被认为是很安全的服务器。比如,他可以利CGI 的漏洞,读取/etc/hosts.allow文件等。通过这个文件,就可以大致了解主机间的信任关系。接下一步,就是探测这些被信任的主机哪些存在漏洞。
寻找有 漏 洞 的 网 络 成 员 。尽量去发现有漏洞的网络成员对攻击者往往起到事倍功半效果,堡垒最容易从内部攻破就是这个缘故。用户网络安全防范意识弱,选取弱口令,使得从远程直接控制主机。
安全策略配置漏洞。主机的网络服务配置不当,开放有漏洞的网络服务。
通信协议漏洞。通过分析目标网络所采用的协议信息,寻找漏洞,如TCP/IP协议就存在漏洞。
网络业务系统漏洞
通过掌握目标网络的业务流程信息,然后发现漏洞,例如,在WWW服务中,允许普通用户远程上载的文件执行。
掌握控制权
一般帐户对目标系统只有有限的访问权限,要达到某些目的,攻击者必须有更多的权限。因此在获得一般帐户之后,攻击者经常会试图去获得更高的权限,如系统管理帐户的权限。获取系统管理权限通常有以下途径:
获得系统管理员的口令,如专门针对root用户的口令攻击;
利用系统管理上的漏洞:如错误的文件许可权,错误的系统配置,某些SUID程序中存在的缓冲区溢出问题等;
让系统管理员运行一些特洛伊木马,如经篡改之后的LOGIN程序等。
隐藏行踪
做为一个入侵者,攻击者总是惟恐自己的行踪被发现,所以在进入系统之后,聪明的攻击者要做的第一件事就是隐藏自己的行踪,攻击者隐藏自己的行踪通常要用到如下技术:
连接隐藏,如冒充其他用户、修改LOGNAME环境变量、修改utmp日志文件、使用IP SPOOF技术等;
进程隐藏,如使用重定向技术减少ps给出的信息量、用特洛伊木马代替ps程序等;
篡改日志文件中的审计信息;
改变系统时间造成日志文件数据紊乱以迷惑系统管理员。
实施攻击
不同的攻击者有不同的攻击目的,可能是为了获得机密文件的访问权,也可能是破坏系统数据的完整性,也可能是整个系统的控制权:系统管理权限,以及其他目的等。一般说来,可归结为以下几种方式:
下载敏感信息;
攻 击 其 他 被 信 任 的 主 机 和 网 络;
瘫 痪 网 络;
修改或删除重要数据。
开辟后门
一次成功的入侵通常要耗费攻击者的大量时间与精力,所以精于算计的攻击者在退出系统之前会在系统中制造一些后门,以方便自己的下次入侵,攻击者设计后门时通常会考虑以下方法:
放宽文件许可权;
重新开放不安全的服务,如REXD、TFTP等;
修改系统的配置,如系统启动文件、网络服务配置文件等;
替换系统本身的共享库文件;
安装各种特洛伊木马,修改系统的源代码;
安装sniffers。
一般的系统攻击有哪些步骤?各步骤主要完成扫描工作?
第一,就是用软件扫描IP段,确定那些计算机有漏洞(果如是已知IP,直接扫描他的漏洞就行了)也就是我们所说的“抓肉鸡”第二,就是利用“肉鸡”漏洞,PING入。当然有防火墙的,你的想办法绕过防火墙,窃取权限,关闭或卸载妨碍的软件。第三,进入系统,释放病毒或删除系统自身文件。(当然要是服务器的话,攻击一般有2种。一,就是盗取服务器最高权限,二,就是利用数据包对服务器进行攻击,让服务器死机,或重启)
网络攻击一般分为哪几个步骤?
攻击的基本步骤攻击软件攻击步骤:搜集信息 实施入侵 上传程序、下载数据 利用一些方法来保持访问攻击软件攻击步骤,如后门、特洛伊木马 隐藏踪迹 【 信息搜集 】在攻击者对特定的网络资源进行攻击以前,他们需要了解将要攻击的环境,这需要搜集汇总各种与目标系统相关的信息,包括机器数目、类型、操作系统等等。踩点和扫描的目的都是进行信息的搜集。
攻击者搜集目标信息一般采用7个基本步骤,每一步均有可利用的工具,攻击者使用它们得到攻击目标所需要的信息。找到初始信息 找到网络的地址范围 找到活动的机器 找到开放端口和入口点 弄清操作系统 弄清每个端口运行的是哪种服务 画出网络图
1 找到初始信息
攻击者危害一台机器需要有初始信息,比如一个IP地址或一个域名。实际上获取域名是很容易的一件事,然后攻击者会根据已知的域名搜集关于这个站点的信息。比如服务器的IP地址(不幸的是服务器通常使用静态的IP地址)或者这个站点的工作人员,这些都能够帮助发起一次成功的攻击。
搜集初始信息的一些方法包括:
开放来源信息 (open source information)
在一些情况下,公司会在不知不觉中泄露了大量信息。公司认为是一般公开的以及能争取客户的信息,都能为攻击者利用。这种信息一般被称为开放来源信息。
开放的来源是关于公司或者它的合作伙伴的一般、公开的信息,任何人能够得到。这意味着存取或者分析这种信息比较容易,并且没有犯罪的因素,是很合法的。这里列出几种获取信息的例子: 公司新闻信息:如某公司为展示其技术的先进性和能为客户提供最好的监控能力、容错能力、服务速度,往往会不经意间泄露了系统的操作平台、交换机型号、及基本的线路连接。 公司员工信息:大多数公司网站上附有姓名地址簿,在上面不仅能发现CEO和财务总监,也可能知道公司的VP和主管是谁。 新闻组:现在越来越多的技术人员使用新闻组、论坛来帮助解决公司的问题,攻击者看这些要求并把他们与电子信箱中的公司名匹配,这样就能提供一些有用的信息。使攻击者知道公司有什么设备,也帮助他们揣测出技术支持人员的水平 Whois
对于攻击者而言,任何有域名的公司必定泄露某些信息攻击软件攻击步骤!
攻击者会对一个域名执行whois程序以找到附加的信息。Unix的大多数版本装有whois,所以攻击者只需在终端窗口或者命令提示行前敲入" whois 要攻击的域名"就可以了。对于windows操作系统,要执行whois查找,需要一个第三方的工具,如sam spade。
通过查看whois的输出,攻击者会得到一些非常有用的信息:得到一个物理地址、一些人名和电话号码(可利用来发起一次社交工程攻击)。非常重要的是通过whois可获得攻击域的主要的(及次要的)服务器IP地址。
Nslookup
找到附加IP地址的一个方法是对一个特定域询问DNS。这些域名服务器包括了特定域的所有信息和链接到网络上所需的全部数据。任何网络都需要的一条信息,如果是打算发送或者接受信件,是mx记录。这条记录包含邮件服务器的IP地址。大多数公司也把网络服务器和其他IP放到域名服务器记录中。大多数UNIX和NT系统中,nslookup代理或者攻击者能够使用一个第三方工具,比如spade。
另一个得到地址的简单方法是ping域名。Ping一个域名时,程序做的第一件事情是设法把主机名解析为IP地址并输出到屏幕。攻击者得到网络的地址,能够把此网络当作初始点。2 找到网络的地址范围
当攻击者有一些机器的IP地址,他下一步需要找出网络的地址范围或者子网掩码。
需要知道地址范围的主要原因是:保证攻击者能集中精力对付一个网络而没有闯入其它网络。这样做有两个原因:第一,假设有地址10.10.10.5,要扫描整个A类地址需要一段时间。如果正在跟踪的目标只是地址的一个小子集,那么就无需浪费时间;第二,一些公司有比其他公司更好的安全性。因此跟踪较大的地址空间增加了危险。如攻击者可能能够闯入有良好安全性的公司,而它会报告这次攻击并发出报警。
攻击者能用两种方法找到这一信息,容易的方法是使用America Registry for Internet Numbers(ARIN)whois 搜索找到信息;困难的方法是使用tranceroute解析结果。
(1) ARIN允许任何人搜索whois数据库找到"网络上的定位信息、自治系统号码(ASN)、有关的网络句柄和其他有关的接触点(POC)。"基本上,常规的whois会提供关于域名的信息。ARINwhois允许询问IP地址,帮助找到关于子网地址和网络如何被分割的策略信息。
(2) Traceroute可以知道一个数据包通过网络的路径。因此利用这一信息,能决定主机是否在相同的网络上。
连接到internet上的公司有一个外部服务器把网络连到ISP或者Internet上,所有去公司的流量必须通过外部路由器,否则没有办法进入网络,并且大多数公司有防火墙,所以traceroute输出的最后一跳会是目的机器,倒数第二跳会是防火墙,倒数第三跳会是外部路由器。通过相同外部路由器的所有机器属于同一网络,通常也属于同一公司。因此攻击者查看通过tranceroute到达的各种ip地址,看这些机器是否通过相同的外部路由器,就知道它们是否属于同一网络。
这里讨论了攻击者进入和决定公司地址范围的两种方法。既然有了地址范围,攻击者能继续搜集信息,下一步是找到网络上活动的机器。
3 找到活动的机器
在知道了IP地址范围后,攻击者想知道哪些机器是活动的,哪些不是。公司里一天中不同的时间有不同的机器在活动。一般攻击者在白天寻找活动的机器,然后在深夜再次查找,他就能区分工作站和服务器。服务器会一直被使用,而工作站只在正常工作日是活动的。
Ping :使用ping可以找到网络上哪些机器是活动的。
Pingwar:ping有一个缺点,一次只能ping一台机器。攻击者希望同时ping多台机器,看哪些有反应,这种技术一般被称为ping sweeping。Ping war 就是一个这样的有用程序。
Nmap:Nmap也能用来确定哪些机器是活动的。Nmap是一个有多用途的工具,它主要是一个端口扫描仪,但也能ping sweep一个地址范围。4 找到开放端口和入口点
(1)Port Scanners:
为了确定系统中哪一个端口是开放的,攻击者会使用被称为port scanner(端口扫描仪)的程序。端口扫描仪在一系列端口上运行以找出哪些是开放的。
选择端口扫描仪的两个关键特征:第一,它能一次扫描一个地址范围;第二,能设定程序扫描的端口范围。(能扫描1到65535的整个范围。)
目前流行的扫描类型是:TCP conntect扫描 TCP SYN扫描 FIN扫描 ACK扫描常用端口扫描程序有:ScanPort:使用在Windows环境下,是非常基础的端口扫描仪,能详细列出地址范围和扫描的端口地址范围。 Nmap:在UNIX环境下推荐的端口扫描仪是Nmap。Nmap不止是端口扫描仪,也是安全工具箱中必不可少的工具。Namp能够运行前面谈到的不同类型的 。 运行了端口扫描仪后,攻击者对进入计算机系统的入口点有了真正的方法。
(2) War Dialing
进入网络的另一个普通入口点是modem(调制解调器)。用来找到网络上的modem的程序被称为war dialers。基本上当提交了要扫描的开始电话号码或者号码范围,它就会拨叫每一个号码寻找modem回答,如果有modem回答了,它就会记录下这一信息。
THC-SCAN是常用的war dialer程序。
5 弄清操作系统
攻击者知道哪些机器是活动的和哪些端口是开放的,下一步是要识别每台主机运行哪种操作系统。
有一些探测远程主机并确定在运行哪种操作系统的程序。这些程序通过向远程主机发送不平常的或者没有意义的数据包来完成。因为这些数据包RFC(internet标准)没有列出,一个操作系统对它们的处理方法不同,攻击者通过解析输出,能够弄清自己正在访问的是什么类型的设备和在运行哪种操作系统。Queso:是最早实现这个功能的程序。Queso目前能够鉴别出范围从microsoft到unix 和cisco路由器的大约100种不同的设备。 Nmap:具有和Queso相同的功能,可以说它是一个全能的工具。目前它能检测出接近400种不同的设备。 6 弄清每个端口运行的是哪种服务
(1) default port and OS
基于公有的配置和软件,攻击者能够比较准确地判断出每个端口在运行什么服务。例如如果知道操作系统是unix和端口25是开放的,他能判断出机器正在运行sendmail,如果操作系统是Microsoft NT和端口是25是开放的,他能判断出正在运行Exchange。
(2) Telnet
telnet是安装在大多数操作系统中的一个程序,它能连接到目的机器的特定端口上。攻击者使用这类程序连接到开放的端口上,敲击几次回车键,大多数操作系统的默认安装显示了关于给定的端口在运行何种服务的标题信息。
(3) Vulnerability Scanners
Vulnerability Scanners(弱点扫描器)是能被运行来对付一个站点的程序,它向黑客提供一张目标主机弱点的清单。7 画出网络图
进展到这个阶段,攻击者得到了各种信息,现在可以画出网络图使他能找出最好的入侵方法。攻击者可以使用traceroute或者ping来找到这个信息,也可以使用诸如cheops那样的程序,它可以自动地画出网络图。
Traceroute
Traceroute是用来确定从源到目的地路径的程序,结合这个信息,攻击者可确定网络的布局图和每一个部件的位置。
Visual Ping
Visual Ping是一个真实展示包经过网络的路线的程序。它不仅向攻击者展示了经过的系统,也展示了系统的地理位置。
Cheops
Cheops利用了用于绘制网络图并展示网络的图形表示的技术,是使整个过程自动化的程序。如果从网络上运行,能够绘出它访问的网络部分。经过一系列的前期准备,攻击者搜集了很多信息,有了一张网络的详尽图,确切地知道每一台机器正在使用的软件和版本,并掌握了系统中的一些弱点和漏洞。攻击软件攻击步骤我们可以想象一下,他成功地攻击网络会很困难吗攻击软件攻击步骤?回答是否定的!当拥有了那些信息后,网络实际上相当于受到了攻击。因此,保证安全让攻击者只得到有限的网络信息是关键!/B
发布于 2023-01-16 04:19:18 回复
发布于 2023-01-16 04:24:52 回复
发布于 2023-01-15 20:02:45 回复