




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章 网络端口监听与端口扫描技术 本章提示4 1计算机网络监听的概述4 2网络监听工具 Sniffer 嗅探器 4 3端口扫描技术 4 1计算机网络监听的概述 随着计算机技术的发展 网络已日益成为生活中不可或缺的工具 但伴之而来的非法入侵也一直威胁着计算机网络系统的安全 由于局域网中采用广播方式 因此 在某个广播域中可以监听到所有的信息包 而黑客通过对信息包进行分析 就能获取局域网上传输的一些重要信息 事实上 很多黑客入侵时都把局域网扫描和侦听作为其最基本的步骤和手段 原因是想用这种方法获取其想要的密码等信息 但另一方面 我们对黑客入侵活动和其它网络犯罪进行侦查 取证时 也可以使用网络监听技术来获取必要的信息 因此 了解以太网监听技术的原理 实现方法和防范措施就显得尤为重要 所谓的网络监听 是指主机网络进程接受到IP数据包后 察看其的目标端口是不是自己的端口号 如果是的话就接受该数据包进行处理 进行网络通讯的主机 既要发送数据 也要接受数据 所以就要开启相应的端口以接受数据 一个网络上的主机有可能开启多个网络进程 如即浏览网页又上QQ 也就是监听了多个端口 4 1计算机网络监听的概述 4 1 1网络监听的原理 Ethernet协议的工作方式是将要发送的数据包发往连接在一起的所有主机 在包头中包括有应该接收数据包的主机的正确地址 因为只有与数据包中目标地址一致的那台主机才能接收到信息包 但是当主机工作在监听模式下的话不管数据包中的目标物理地址是什么 主机都将可以接收到 许多局域网内有十几台甚至上百台主机是通过一个电缆 一个集线器连接在一起的 在协议的高层或者用户来看 当同一网络中的两台主机通信的时候 源主机将写有目的的主机地址的数据包直接发向目的主机 或者当网络中的一台主机同外界的主机通信时 源主机将写有目的的主机IP地址的数据包发向网关 但这种数据包并不能在协议栈的高层直接发送出去 要发送的数据包必须从TCP IP协议的IP层交给网络接口 也就是所说的数据链路层 网络接口不会识别IP地址的 在网络接口由IP层来的带有IP地址的数据包又增加了一部分以太祯的祯头的信息 在祯头中 有两个域分别为只有网络接口才能识别的源主机和目的主机的物理地址这是一个48位的地址 这个48位的地址是与IP地址相对应的 换句话说就是一个IP地址也会对应一个物理地址 对于作为网关的主机 由于它连接了多个网络 它也就同时具备有很多个IP地址 在每个网络中它都有一个 而发向网络外的祯中继携带的就是网关的物理地址 待续 4 1计算机网络监听的概述 4 1 1网络监听的原理 Ethernet中填写了物理地址的祯从网络接口中 也就是从网卡中发送出去传送到物理的线路上 如果局域网是由一条粗网或细网连接成的 那么数字信号在电缆上传输信号就能够到达线路上的每一台主机 再当使用集线器的时候 发送出去的信号到达集线器 由集线器再发向连接在集线器上的每一条线路 这样在物理线路上传输的数字信号也就能到达连接在集线器上的每个主机了 当数字信号到达一台主机的网络接口时 正常状态下网络接口对读入数据祯进行检查 如果数据祯中携带的物理地址是自己的或者物理地址是广播地址 那么就会将数据祯交给IP层软件 对于每个到达网络接口的数据祯都要进行这个过程的 但是当主机工作在监听模式下的话 所有的数据祯都将被交给上层协议软件处理 当连接在同一条电缆或集线器上的主机被逻辑地分为几个子网的时候 那么要是有一台主机处于监听模式 它还将可以接收到发向与自己不在同一个子网 使用了不同的掩码 IP地址和网关 的主机的数据包 在同一个物理信道上传输的所有信息都可以被接收到 在UNIX系统上 当拥有超级权限的用户要想使自己所控制的主机进入监听模式 只需要向Interface 网络接口 发送I O控制命令 就可以使主机设置成监听模式了 而在Windows9x的系统中则不论用户是否有权限都将可以通过直接运行监听工具就可以实现了 待续 4 1计算机网络监听的概述 当连接在同一条电缆或集线器上的主机被逻辑地分为几个子网的时候 那么要是有一台主机处于监听模式 它还将可以接收到发向与自己不在同一个子网 使用了不同的掩码 IP地址和网关 的主机的数据包 在同一个物理信道上传输的所有信息都可以被接收到 在UNIX系统上 当拥有超级权限的用户要想使自己所控制的主机进入监听模式 只需要向Interface 网络接口 发送I O控制命令 就可以使主机设置成监听模式了 而在Windows9x的系统中则不论用户是否有权限都将可以通过直接运行监听工具就可以实现了 在网络监听时 常常要保存大量的信息 也包含很多的垃圾信息 并将对收集的信息进行大量的整理 这样就会使正在监听的机器对其它用户的请求响应变的很慢 同时监听程序在运行的时候需要消耗大量的处理器时间 如果在这个时候就详细的分析包中的内容 许多包就会来不及接收而被漏走 所以监听程序很多时候就会将监听得到的包存放在文件中等待以后分析 分析监听到的数据包是很头疼的事情 因为网络中的数据包都非常之复杂 两台主机之间连续发送和接收数据包 在监听到的结果中必然会加一些别的主机交互的数据包 监听程序将同一TCP会话的包整理到一起就相当不容易了 如果你还期望将用户详细信息整理出来就需要根据协议对包进行大量的分析 Internet上那么多的协议 运行进起的话这个监听程序将会十分的大哦 待续 4 1 1网络监听的原理 现在网络中所使用的协议都是较早前设计的 许多协议的实现都是基于一种非常友好的 通信的双方充分信任的基础 在通常的网络环境之下 用户的信息包括口令都是以明文的方式在网上传输的 因此进行网络监听从而获得用户信息并不是一件难点事情 只要掌握有初步的TCP IP协议知识就可以轻松的监听到你想要的信息的 前些时间美籍华人China babble曾提出将望路监听从局域网延伸到广域网中 但这个想法很快就被否定了 如果真是这样的话我想网络必将天下大乱了 而事实上现在在广域网里也可以监听和截获到一些用户信息 只是还不够明显而已 在整个Internet中就更显得微不足道了 监听的协议分析我们的研究从监听程序的编写开始 用LinuxC语言设计实现 以太网上数据帧的监听剖析以太网上的数据帧主要涉及Tcp ip协议 针对以下几个协议的分析 IP ARP RARP IPX 其中重点在于ip和arp协议 这两个协议是多数网络协议的基础 因此把他们研究彻底 就对大多数的协议的原理和特性比较清楚了 由于各种协议的数据帧个不相同 所以涉及很多的数据帧头格式分析 接下来将一一描述 待续 4 1计算机网络监听的概述 4 1 1网络监听的原理 4 1计算机网络监听的概述 4 1 1网络监听的原理 在linux下监听网络 应先设置网卡状态 使其处于杂混模式以便监听网络上的所有数据帧 然后选择用Linuxsocket来截取数据帧 通过设置socket 函数参数值 可以使socket截取未处理的网络数据帧 关键是函数的参数设置 下面就是有关的程序部分 AF INET 2表示internetipprotocolSOCK PACKET 10表示截取数据帧的层次在物理层 既不作处理 Htons 0 x0003 表示截取的数据帧的类型为不确定 既接受所有的包 总的设定就是网卡上截取所有的数据帧 这样就可以截取底层数据帧 因为返回的将是一个指向数据的指针 为了分析方便 我设置了一个基本的数据帧头结构 Structetherpacket structethhdreth structiphdrip structtcphdrtcp charbuff 8192 ep 待续 4 1计算机网络监听的概述 4 1 1网络监听的原理 将返回的指针赋值给指向数据帧头结构的指针 然后对其进行分析 以下是有关协议的报头 ethhdr这是以太网数据帧的mac报头 48bit目的物理地址 48bit源物理地址 16bit协议地址 相应的数据结构如下structethhdrunsignedcharh dest ETH ALEN unsignedcharh source ETH ALEN unsignedshorth proto 其中h dest 6 是48位的目标地址的网卡物理地址 h source 6 是48位的源地址的物理网卡地址 H proto是16位的以太网协议 其中主要有0 x0800ip 0 x8035 X25 0 x8137ipx 0 x8863 0 x8864pppoe 这是Linux的ppp 0 x0600ether loop back 0 x0200 0 x0201pup等 Iphdr这是ip协议的报头 由此可以定义其结构如下 这是Linux的ip协议报头 针对版本的不同它可以有不同的定义 我们国内一般用BIG的定义 其中version是ip的版本 protocol是ip的协议分类主要有0 x06tcp 0 x11udp 0 x01icmp 0 x02igmp等 saddr是32位的源ip地址 daddr是32位的目标ip地址 相应的数据结构 待续 4 1计算机网络监听的概述 4 1 1网络监听的原理 structarphdr unsignedshortintar hrd unsignedshortintar pro unsignedcharar hln unsignedcharar pln unsignedshortintar op if0unsignedchar ar sha ETH ALEN unsignedchar ar sip 4 unsignedchar ar tha ETH ALEN unsignedchar ar tip 4 endif 这是linux的arp协议报头 其中ar hrd是硬件地址的格式 ar pro协议地址的格式 ar hln是硬件地址的长度 ar pln时协议地址的长度 ar op是arp协议的分类0 x001是arpecho0 x0002是arpreply 接下来的分别是源地址的物理地址 源ip地址 目标地址的物理地址 目标ip地址 Tcphdrip协议的tcp协议报头以下是相应数据结构 structtcphdr u int16 tsource u int16 tdest u int32 tseq u int32 tack seq if BYTE ORDER LITTLE ENDIANu int16 tresl 4 u int16 tdoff 4 u int16 tfin 1 u int16 tsyn 1 u int16 trst 1 u int16 tpsh 1 u int16 tack 1 u int16 turg 1 u int16 tres2 2 待续 4 1计算机网络监听的概述 4 1 1网络监听的原理 elif BYTE ORDER BIG ENDIANu int16 tdoff 4 u int16 tres1 4 u int16 tres2 2 u int16 turg 1 u int16 tack 1 u int16 tpsh 1 u int16 trst 1 u int16 tsyn 1 u int16 tfin 1 else error Adjustyourdefines endifu int16 twindow u int16 tcheck u int16 turg ptr 这是Linux下tcp协议的一部分与ip协议相同取BIG 其中source是源端口 dest是目的端口 seq是s序 ack seq是a序号 其余的是tcp的连接标志其中包括6个标志 syn表示连接请求 urg表示紧急信息 fin表示连接结束 ack表示连接应答 psh表示推栈标志 rst表示中断连接 window是表示接受数据窗口大小 check是校验码 urgptr是紧急指针 Udphdr这是udp协议报头structudphdr u int16 tsource u int16 tdest u int16 tlen u int16 tcheck 这是Linux下ip协议中udp协议的一部分 结构很明显source源端口 dest目的端口 lenudp长度 check是校验码 Icmphdr这是ip协议的icmp协议的报头 待续 4 1计算机网络监听的概述 4 1 1网络监听的原理 structicmphdr u int8 ttype u int8 tcode u int16 tchecksum union struct u int16 tid u int16 tsequence echo u int32 tgateway struct u int16 t unused u int16 tmtu frag un 这是linux下的ip协议中的icmp的协议 这里面主要的是前两项参数 其中type是icmp协议的类型 而code则是对type类型的再分析 如 type0 x03是表示unsearchable 这时code的不同表示了不同的unsearchable 0 x00表示网络不可寻 0 x01表示主机不可寻 0 x02表示协议不可寻 0 x03表示端口不可寻 0 x05表示源路由失败 0 x06网络不可知 0 x07主机不可知 Igmphdr这是ip协议的igmp协议报头structigmphdr u8type u8code u16csum u32group 这是Linux下的ip协议中的igmp协议 协议中主要是前面两个属性 Type表示igmp协议的信息类型 code表示routingcode 然后 将截取的数据帧的地址赋值给定义的结构 由此可根据不同的结构分析数据 得到我们需要的信息 完 4 1计算机网络监听的概述 4 1 2检测网络监听的手段 对发生在局域网的其他主机上的监听 一直以来 都缺乏很好的检测方法 这是由于产生网络监听行为的主机在工作时总是不做声的收集数据包 几乎不会主动发出任何信息 但目前网上已经有了一些解决这个问题的思路和产品 1 反应时间向怀疑有网络监听行为的网络发送大量垃圾数据包 根据各个主机回应的情况进行判断 正常的系统回应的时间应该没有太明显的变化 而处于混杂模式的系统由于对大量的垃圾信息照单全收 所以很有可能回应时间会发生较大的变化 2 观测dns许多的网络监听软件都会尝试进行地址反向解析 在怀疑有网络监听发生时可以在dns系统上观测有没有明显增多的解析请求 3 利用ping模式进行监测上面我们说过 当一台主机进入混杂模式时 以太网的网卡会将所有不属于他的数据照单全收 按照这个思路 我们就可以这样来操作 假设我们怀疑的主机的硬件地址是00 30 6E 00 9B B9 它的ip地址是192 168 1 1 那么我们现在伪造出这样的一种icmp数据包 硬件地址是不与局域网内任何一台主机相同的00 30 6E 00 9B 9B 目的地址是192 168 1 1不变 我们可以设想一下这种数据包在局域网内传输会发生什么现象 任何正常的主机会检查这个数据包 比较数据包的硬件地址 和自己的不同 于是不会理会这个数据包 而处于网络监听模式的主机呢 由于它的网卡现在是在混杂模式的 所以它不会去对比这个数据包的硬件地址 而是将这个数据包直接传到上层 上层检查数据包的ip地址 符合自己的ip 于是会对对这个ping的包做出回应 这样 一台处于网络监听模式的主机就被发现了 待续 4 1计算机网络监听的概述 4 1 2检测网络监听的手段 这种方法 在10pht这个黑客组织的antisniff产品中有很好的体现 可参见 4 2网络监听工具 Sniffer 嗅探器 4 2 1 Sniffer的工作环境 sniffer就是能够捕获网络报文的设备 嗅探器的正当用处在于分析网络的流量 以便找出所关心的网络中潜在的问题 例如 假设网络的某一段运行得不是很好 报文的发送比较慢 而我们又不知道问题出在什么地方 此时就可以用嗅探器来作出精确的问题判断 嗅探器在功能和设计方面有很多不同 有些只能分析一种协议 而另一些可能能够分析几百种协议 一般情况下 大多数的嗅探器至少能够分析下面的协议 1 标准以太网2 TCP IP3 IPX4 DECNet嗅探器通常是软硬件的结合 专用的嗅探器价格非常昂贵 另一方面 免费的嗅探器虽然不需要花什么钱 但得不到什么支持 嗅探器与一般的键盘捕获程序不同 键盘捕获程序捕获在终端上输入的键值 而嗅探器则捕获真实的网络报文 嗅探器通过将其置身于网络接口来达到这个目的 例如将以太网卡设置成杂收模式 为了理解杂收模式是怎么回事 先解释局域网是怎么工作的 数据在网络上是以很小的称为帧 Ftame 的单位传输的帧由好几部分组成 不同的部分执行不同的功能 例如 以太网的前12个字节存放的是源和目的的地址 这些位告诉网络 数据的来源和去处 以太网帧的其他部分存放实际的用户数据 TCP IP的报文头或IPX报文头等等 待续 4 2网络监听工具 Sniffer 嗅探器 4 2 1 Sniffer的工作环境 帧通过特定的称为网络驱动程序的软件进行成型 然后通过网卡发送到网线上 通过网线到达它们的目的机器 在目的机器的一端执行相反的过程 接收端机器的以太网卡捕获到这些帧 并告诉操作系统帧的到达 然后对其进行存储 就是在这个传输和接收的过程中 嗅探器会造成安全方面的问题 每一个在LAN上的工作站都有其硬件地址 这些地址唯一地表示着网络上的机器 这一点于Internet地址系统比较相似 当用户发送一个报文时 这些报文就会发送到LAN上所有可用的机器 在一般情况下 网络上所有的机器都可以 听 到通过的流量 但对不属于自己的报文则不予响应 换句话说 工作站A不会捕获属于工作站B的数据 而是简单的忽略这些数据 如果某在工作站的网络接口处于杂收模式 那么它就可以捕获网络上所有的报文和帧 如果一个工作站被配置成这样的方式 它 包括其软件 就是一个嗅探器 嗅探器可能造成的危害 1 嗅探器能够捕获口令2 能够捕获专用的或者机密的信息3 或者用来获取更高级别的访问权限事实上 如果你在网络上存在非授权的嗅探器就以为着你的系统已经暴露在别人面前了 大家可以试试天行2的嗅探功能 一般我们只嗅探每个报文的前200到300个字节 用户名和口令都包含在这一部分中 这是我们关心的真正部分 工人 也可以嗅探给定接口上的所有报文 如果有足够的空间进行存储 有足够的那里进行处理的话 将会发现另一些非常有趣的东西 简单的放置一个嗅探器宾将其放到随便什么地方将不会起到什么作用 将嗅探器放置于被攻击机器或网络附近 这样将捕获到很多口令 还有一个比较好的方法就是放在网关上 如果这样的话就能捕获网络和其他网络进行身份鉴别的过程 这样的方式将成倍地增加我们能够攻击的范围 完 4 2网络监听工具 Sniffer 嗅探器 4 2 2网络监听Sniffer的工作原理 通常在同一个网段的所有网络接口都有访问在物理媒体上传输的所有数据的能力 而每个网络接口都还应该有一个硬件地址 该硬件地址不同于网络中存在的其他网络接口的硬件地址 同时 每个网络至少还要一个广播地址 代表所有的接口地址 在正常情况下 一个合法的网络接口应该只响应这样的两种数据帧 1 帧的目标区域具有和本地网络接口相匹配的硬件地址 2 帧的目标区域具有 广播地址 在接受到上面两种情况的数据包时 nc通过cpu产生一个硬件中断 该中断能引起操作系统注意 然后将帧中所包含的数据传送给系统进一步处理 而sniffer就是一种能将本地nc状态设成 promiscuous 状态的软件 当nc处于这种 混杂 方式时 该nc具备 广播地址 它对所有遭遇到的每一个帧都产生一个硬件中断以便提醒操作系统处理流经该物理媒体上的每一个报文包 绝大多数的nc具备置成promiscuous方式的能力 可见 sniffer工作在网络环境中的底层 它会拦截所有的正在网络上传送的数据 并且通过相应的软件处理 可以实时分析这些数据的内容 进而分析所处的网络状态和整体布局 值得注意的是 sniffer是极其安静的 它是一种消极的安全攻击 通常sniffer所要关心的内容可以分成这样几类 待续 4 2网络监听工具 Sniffer 嗅探器 4 2 2网络监听Sniffer的工作原理 1 口令我想这是绝大多数非法使用sniffer的理由 sniffer可以记录到明文传送的userid和passwd 就算你在网络传送过程中使用了加密的数据 sniffer记录的数据一样有可能使入侵者在家里边吃肉串边想办法算出你的算法 2 金融帐号许多用户很放心在网上使用自己的信用卡或现金帐号 然而sniffer可以很轻松截获在网上传送的用户姓名 口令 信用卡号码 截止日期 帐号和pin 3 偷窥机密或敏感的信息数据通过拦截数据包 入侵者可以很方便记录别人之间敏感的信息传送 或者干脆拦截整个的email会话过程 4 窥探低级的协议信息 这是很可怕的事 我认为 通过对底层的信息协议记录 比如记录两台主机之间的网络接口地址 远程网络接口ip地址 ip路由信息和tcp连接的字节顺序号码等 这些信息由非法入侵的人掌握后将对网络安全构成极大的危害 通常有人用sniffer收集这些信息只有一个原因 他正在进行一次欺诈 通常的ip地址欺诈就要求你准确插入tcp连接的字节顺序号 这将在以后整理的文章中指出 如果某人很关心这个问题 那么sniffer对他来说只是前奏 今后的问题要大得多 对于高级的hacker而言 我想这是使用sniffer的唯一理由吧 完 4 2网络监听工具 Sniffer 嗅探器 4 2 3怎样在网上发现Sniffer 怎样在网上发现Sniffer 简单的一个回答是你发现不了 因为他们根本就没有留下任何痕迹 sniffer是如此嚣张又安静 如何知道有没有sniffer存在 这也是一个很难说明的问题 比较有说服力的理由证明你的网络有sniffer目前有以下现象 1 网络通讯掉包率反常的高通过一些网络软件 可以看到信息包传送情况 不是sniffer 向ping这样的命令会告诉你掉了百分几的包 如果网络中有人在Listen 那么信息包传送将无法每次都顺畅的流到目的地 这是由于sniffer拦截每个包导致的 2 网络带宽出现反常通过某些带宽控制器 通常是防火墙所带 可以实时看到目前网络带宽的分布情况 如果某台机器长时间的占用了较大的带宽 这台机器就有可能在监听 在非高速信道上 如56Kddn等 如果网络中存在sniffer 你应该也可以察觉出网络通讯速度的变化 还有一个办法是看看计算机上当前正在运行的所有程序 但这通常并不可靠 但你可以控制哪个程序可以在你的计算机上运行 在Unix系统下使用下面的命令 ps aux或 ps augx 这个命令列出当前的所有进程 启动这些进程的用户 它们占用CPU的时间 占用内存的多少等等 Windows系统下 按下Ctrl Alt Del 看一下任务列表 不过 编程技巧高的Sniffer即使正在运行 也不会出现在这里的 另一个方法就是在系统中搜索 查找可疑的文件 但可能入侵者用的是他们自己写的程序 所以都会给发现sniffer造成相当大的困难 还有许多工具 能用来看看你的系统会不会在杂收模式 从而发现是否有一个Sniffer正在运行 4 2网络监听工具 Sniffer 嗅探器 4 2 4怎样防止被sniffer 对于嗅探器如此强大的 灵敏度 我们力求作到 1 检测和消灭嗅探器2 会话加密3 将数据隐藏 使嗅探器无法发现4 加密你最关心的可能是传输一些比较敏感的数据 如用户ID或口令等等 有些数据是没有经过处理的 一旦被sniffer 就能获得这些信息 解决这些问题的办法是加密 我们介绍以下SSH 它又叫SecureShell SSH是一个在应用程序中提供安全通信的协议 它是建立在客户机 服务器模型上的 SSH服务器的分配的端口是22 连接是通过使用一种来自RSA的算法建立的 在授权完成后 接下来的通信数据是用IDEA技术来加密的 这通常是较强的 适合与任何非秘密和非经典的通讯 SH后来发展成为F SSH 提供了高层次的 军方级别的对通信过程的加密 它为通过TCP IP网络通信提供了通用的最强的加密 如果某个站点使用F SSH 用户名和口令成为不是很重要的一点 目前 还没有人突破过这种加密方法 即使是sniffer 收集到的信息将不再有价值 当然最关键的是怎样使用它 其他的方法另一个比较容易接受的是使用安全拓扑结构 这听上去很简单 但实现起来花销是很大的 在我们小的时候也许都玩过一种智力游戏 它通常由一系列数字组成 游戏的目的是要安排好数字 用最少的步骤 把它们按递减顺序排好 当处理网络拓扑时 就和玩这个游戏一样 这样的拓扑结构需要有这样的规则 一个网络段必须有足够的理由才能信任另一网络段 网络段应该考虑你的数据之间的信任关系上来设计 而不是硬件需要 让我们开始处理这个网络拓扑 来看看 待续 4 2网络监听工具 Sniffer 嗅探器 4 2 4怎样防止被sniffer 一个网络段是仅由能互相信任的计算机组成的 通常它们在同一个房间里 或在同一个办公室里 比如你的财务信息 应该固定在某一节点 就象你的财务部门被安排在办公区域的的一个不常变动的地方 注意每台机器是通过硬连接线接到Hub的 Hub再接到交换机上 由于网络分段了 数据包只能在这个网段上被sniffer 其余的网段将不可能被sniffer 所有的问题都归结到信任上面 计算机为了和其他计算机进行通信 它就必须信任那台计算机 作为系统管理员 你的工作是决定一个方法 使得计算机之间的信任关系很小 这样 就建立了一种框架 可以告诉你什么时候放置了一个sniffer 它放在那里了 是谁放的等等 如果你的局域网要和INTERNET相连 仅仅使用防火墙是不够的 入侵者已经能从一个防火墙后面扫描 并探测正在运行的服务 你要关心的是一旦入侵者进入系统 他能得到些什么 你必须考虑一条这样的路径 即信任关系有多长 举个例子 假设你的WEB服务器对某一计算机A是信任的 那么有多少计算机是A信任的呢 又有多少计算机是受这些计算机信任的呢 在信任关系中 这台计算机之前的任何一台计算机都可能对你的计算机进行攻击 并成功 你的任务就是保证一旦出现的Sniffer 它只对最小范围有效 Sniffer往往是攻击者在侵入系统后使用的 用来收集有用的信息 因此 防止系统被突破是关键 系统安全管理员要定期的对所管理的网络进行安全测试 防止安全隐患 同时要控制拥有相当权限的用户的数量 请记住 许多攻击往往来自网络内部 完 4 3端口扫描技术 4 3 1端口扫描的概念 端口扫描是一种攻击者用来发现他们可以进入服务器的很常用的侦察技术 所有局域内或通过Modem连到Internet上的机器运行了很多监听常用和非常用端口的服务 攻击者通过端口扫描发现可用的端口 正处于监听状态的端口 事实上 端口的扫描是向每个端口一次发送一个消息的过程 根据端口的回应来确认该端口是否可用和更进一步侦察它的漏洞 4 3 2端口扫描技术的原理 端口扫描向目标主机的TCP IP服务端口发送探测数据包 并记录目标主机的响应 通过分析响应来判断服务端口是打开还是关闭 就可以得知端口提供的服务或信息 端口扫描也可以通过捕获本地主机或服务器的流入流出IP数据包来监视本地主机的运行情况 它仅能对接收到的数据进行分析 帮助我们发现目标主机的某些内在的弱点 而不会提供进入一个系统的详细步骤 4 3 3端口号 1 常用端口所有的操作系统都遵循传统的通行仅当超级用户打开从0到1023号端口 常用端口 又称为标准端口 被IANA 互相网号码分配授权单位 http www iana org 分配给服务 在Unix中 文本文件 etc services 在windows2000下为 windir system32 drivers etc services 列出了这些服务名和所用的端口号 以下是从该文中提取的几行 echo7 tcpEchoftp data20 udpFileTransfer DefaultData ftp21 tcpFileTransfer Control ssh22 tcpSSHRemoteLoginProtocoltelnet23 tcpTelnetdomain53 udpDomainNameServerwww http80 tcpWorldWideWebHTTP试图用一个未授权用户程序打开一个在0 1023范围内的端口是不能成功的 用户程序可以打开任何一个未分配的1023以上的端口 2 非常用端口通过一个非标准端口 就是我们常常简单化地认为的1023以上的端口 事实上在此范围内的端口号中 也有一些 标准 的端口 例如 wins1512 tcpMicrosoftWindowsInternetNameServiceradius1812 udpRADIUSauthenticationprotocolyahoo5010Yahoo Messengerx116000 6063 tcpXWindowSystem一些恶意的程序常常散布很广 它们到处搜寻 收集到了这些常用的端口号码 4 3端口扫描技术 4 3 4简单端口扫描技术 最简单的端口扫描 例如 发送一些经过仔细挑选建立的包到选定的目标端口 是试图打开被扫描者的0到65535号端口看些是打开的 TCPconnect 连接系统通过唤起一个本机上提供的可以用来打开所有感兴趣端口的程序 如果该端口处于监听状态 连接将会成功 否则不能连接是无法通过的 Strobe 闸门扫描是一个相对较窄的扫描 仅仅是寻找那些功击者已经普遍知道如何去攻击的服务器 闸门这个名字来源于一个原始的TCP扫描程序 而现在已成为所有扫描工具的共同特征 Ident协议允许那些通过TCP连接到计算机上的任何进程来窥视计算机的用户名 即便是那个进程并没有被初始化 所以 例如 可以通过连接80号端口然后用Ident来判断HTTP服务是否在root下运行 4 3端口扫描技术 4 3 5秘密扫描技术 从攻击者的角度来看通过端口扫描存在的一个问题是 它很容易被在此端口监听的服务所记录在访问日志里 他们会观察连进的程序 然后他们就登记一个错误 有很多的秘密扫描技术能够越过这个问题 秘密扫描工具是一种不会被审核工具发现到的扫描方法 显然 这是一场比赛 也许一个月后秘密扫描将不会这么神气了 端口扫描器通过释放数据包到不同的端口来扫描一个主机 因此 慢速扫描 一天或者更久的时间 也变成了一种秘密技术了 另外一种秘密扫描技术是 反向映射 当你试图在网络上搜索所有的主机时 然后通过产生 主机不可到达 的ICMP信息来确定哪些IP不存在 IP包分片 扫描器从IP分片中劈开TCP头 这样可绕过包过滤和防火墙 因为它他看不到一个完整的TCP头所以不能对应相应的过滤规则 许多包过滤器和防火墙要求所有的IP碎片 例如 Linux内核中的CONFIG IP ALWAYS DEFRAG既是 但许多网络并不能提供避免的队列中丢失信息性能 SYN扫描 这种技术又叫做半开连接扫描 因为TCP连接并没有完成 一个SYN包发送 就像我们准备打开一个连接 目标机器上返回SYN和ACK 待续 4 3端口扫描技术 4 3 5秘密扫描技术 这就表示该端口处于监听状态 返回RST表示没有监听 TCP层并不会通知服务进程 因为连接并没有完成 FIN扫描 典型的TCP扫描是试图建立连接 以最少的步骤 另一个技术是发送错误的包到一个端口 并期望处于监听状态的端口发回一个不同的错误消息而不是关闭端口的消息 扫描器发送一个FIN包 这将使打开的端口关闭 关闭端口时将恢复一个RST的FIN包 相反 开启的端口会忽略所有查询的包 这在TCP中是要求这样的 如果没有服务在监听目标端口 操作系统也将产生一个错误消息 如果有服务处于监听状态 操作系统将丢弃这个发送过来的包 因此 没有信息返回表示有服务在此端口监听 但是 有的包可能会在线路上发生意外丢失或被防火墙过滤 因此这并不是一个高效的扫描技术 在XMAS扫描中用到了一些其他的技术 它是把TCP包中的所有标志都设置好了 或所有标记都没有被设置的空扫描 但是 不同的操作系统对这些扫描的回应是不同的 所以识另不同的操作系统甚至操作系统的版本和补丁等级都很重要 完 4 3端口扫描技术 4 3端口扫描技术 4 3 6SOCKS端口探测技术 SOCKS是一种允许多台计算机共享公用Internet连接的系统 之所以攻击者会扫描SOCKS 是因为大多数用户的SOCKS配置有错误 许多产品都支持SOCKS 一个典型的用户产品就是WinGate WinGate是一个安装在个别的机器上软件用来和Internet连接 所有其它在内网的机器连接Internet都要通过这台机器上运行的WinGate SOCKS错误配置将允许任意的源地址和目标地址通行 就像是允许内部的机器访问Internet一样 外面的机器也可以访问内部的机器 更重要的是 这可能允许攻击者通过你的系统访问其它的Internet上的机器 使得攻击者隐藏他自己的真实地址 IRC聊天服务器经常扫描客户端以检查SOCKS服务是否打开 他们将通过发送一个消息给那些不知道如何解决这个问题的人而把他们剔出去 如果你收到这样一个消息 你可以查看客户端是否是WinGate执行的检查 一个错误的定位可能导致如果一个应用程序暂时无效的话 在这种情况下 这看起来象是内部的机器在攻击SOCKS服务器 4 3端口扫描技术 4 3 7反弹扫描 对于攻击者来说隐藏他们行踪是能力是很重要的 因此 攻击者快速搜索Internet 查找他们可以的攻击系统 FTP反弹扫描利用了FTP协议本身的弱点 它要求代理FTP连接支持 这种反弹通过FTP服务隐藏了攻击者来自哪里 该技术与IP隐藏了攻击者地址的欺骗类似 例如 与建立了FTPserver PI 协议解析器 控制连接 要求server PI初始化一个活动的server DTP 数据传送进程 发送一个文件到Internet的任何地方 一种端口扫描技术就是使用这种方法从ftp代理服务器来扫描tcp端口 因此你可以在防火墙后与FTP服务建立连接 然后扫描那些很可能被封锁的端口 如 139 如果FTP服务允许读出或写入数据进一个目录 如 incoming 你可以发送任意数据到这个被发现可以打开的端口 我们的技术是利用端口 FTP 命令来发现和记录一些虽然被动但却在监听目标机器特定的端口user DTP用户 然后我们试着列出当前地址目录 结果被发送到server DTP 如果我们的目标主机正在监听指定的端口 该传送就会成功 产生一个250和一个226回应 否则将得到 425消息 不能建立数据连接 连接被拒绝 然后我们再向目标主机的下一个端口发送其它的PORT命令 用这种方法的优势很明显 很难追踪到 可绕开防火墙 主要的缺点是比较慢 并行许多FTP服务执行最终屏蔽代理的特征 查找器 大部分的查找服务器允许命令转寄通过查找器支持递归查询 例如 rob foo bar 查询将向 bar 询问 rob foo 引起向 bar 查询 foo 这种技术可以用来隐藏查询的原始来源 E mail 发送垃圾邮件的人试图通过SMTP服务器转发他们的垃圾邮件 因此 对smtp试探的方法在网上就经常被使用 Socks Socks允许几乎所有的协议穿过中介机器 因此 攻击者对SOCKS的探测扫描在网上是常见的 HTTPproxy 大多数网站服务都提供代理 便于所有的web传输都可由个别带有过滤器的服务很好的管理以提高性能 但有许多这种服务都配置错误以至于允许Internet上的任何请求 允许攻击者通过第三方转发攻击 对HTTP代理的试探在今天很常见 待续 4 3端口扫描技术 4 3 7反弹扫描 IRCBNC 攻击者喜欢通过用其它机器绕接他们的连接来隐藏自己的IRC标识 一个叫 BNC 的很特别的程序就是用了这种方式危及到机器的安全 UDP扫描端口扫描通常指对TCP端口的扫描 它是定向连接的 因此给攻击者提供了很好的反馈信息 UDP的应答有着不同的方式 为了发现UDP端口 攻击者们通常发送空的UDP数据包 如果该端口正处于监听状态 将发回一个错误消息或不理睬流入的数据包 如果该端口是关闭的 大多数的操作系统将发回 ICMP端口不可到达 的消息 这样 你可以发现一个端口到底有没有打开 通过排除方法确定哪些端口是打开的 ICMP和UDP包都不是可靠的通信 所以这种UDP扫描器当出现丢包时 或者你得到了一堆错误的位置 必须执行包重法 同样 这种扫描技术因为实现了RFC1812的意见和限制ICMP消息错误的发送速率所以也慢 例如 Linux内核
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 30032.2-2025移动式升降工作平台带有特殊部件的设计、计算、安全要求和试验方法第2部分:装有非导电(绝缘)部件的移动式升降工作平台
- 2025年生物技术在农业生产中的应用与前景研究报告
- 2025年机械行业工业机器人应用前景研究报告
- 压力灭菌器培训课件
- 压力气体安全培训总结课件
- 2025年环保行业绿色产品市场前景研究报告
- 2025年机器人产业行业智能机器人应用前景分析报告
- 2025年机器人产业发展趋势与市场前景研究报告
- 商场化妆品安全培训课件
- 2025年环保行业可再生能源发展策略及市场前景研究报告
- 2025湖南益阳安化县事业单位招聘工作人员61人考试参考试题及答案解析
- 7 呼风唤雨的世纪 课件
- 新增临时排水管方案
- GB/T 5796.3-2022梯形螺纹第3部分:基本尺寸
- 第七章-辐射防护分析课件
- 研究生英语阅读综合教程reading more
- 比较思想政治教育学-课件
- 眼科学教学课件:眼睑病
- ZXONE8700技术规范书
- 微观经济学生产与成本理论
- 环境监测第2章(2)——水和废水监测ppt课件
评论
0/150
提交评论