本文讲述了TCP联接的建立过程,以及介绍了一些经典的扫描器以及所谓的SYN扫描器的使用,以及隐藏攻击源的技术,更好介绍了另外一些扫描技术。考虑了一些不是基于TCP端口和主要用来进行安全扫描的扫描工具(例如SATAN)。另外分析了使用扫描器的栈指纹。栈指纹通过检测主机TCP并将应答跟已知操作系统TCP/IP协议栈应答相比较,解决了识别操作系统的问题。 TCP/IP,UDP,三阶段握手,SYN扫描,FIN扫描,秘密扫描,间接扫描,诱骗扫描,指纹,协作扫描。 ---------------------------------------------------------------------------------------------------- 正文: 端口扫描技术 前言 之一部分,我们讲述TCP连接的建立过程(通常称作三阶段握手),然后讨论与扫描程序有关的一些实现细节。 然后,简单介绍一下经典的扫描器(全连接)以及所谓的SYN(半连接)扫描器。 第三部分主要讨论间接扫描和秘密扫描,还有隐藏攻击源的技术。 秘密扫描基于FIN段的使用。在大多数实现中,关闭的端口对一个FIN 段返回一个RST,但是打开的端口通常丢弃这个段,不作任何回答。间接扫描,就像它的名字,是用一个欺骗主机来帮助实施,这台主机通常不是自愿的。 第四部分介绍了一种与应用协议有关扫描。这些扫描器通常利用协议实现中的一些缺陷或者错误。认证扫描(ident scanning)也被成为 *** 扫描(proxy scanning)。 最后一部分,介绍了另外一些扫描技术。考虑了一些不是基于TCP端口和主要用来进行安全扫描的扫描工具(例如SATAN)。另外分析了使用扫描器的栈指纹。栈指纹通过检测主机TCP并将应答跟已知操作系统TCP/IP协议栈应答相比较,解决了识别操作系统的问题。 一:TCP/IP相关问题 连接端及标记 IP地址和端口被称作套接字,它代表一个TCP连接的一个连接端。为了获得TCP服务,必须在发送机的一个端口上和接收机的一个端口上建立连接。TCP连接用两个连接端来区别,也就是(连接端1,连接端2)。连接端互相发送数据包。 一个TCP数据包包括一个TCP头,后面是选项和数据。一个TCP头包含6个标志位。它们的意义分别为: SYN: 标志位用来建立连接,让连接双方同步序列号。如果SYN=1而ACK=0,则表示该数据包为连接请求,如果SYN=1而ACK=1则表示接受连接。 FIN: 表示发送端已经没有数据要求传输了,希望释放连接。 RST: 用来复位一个连接。RST标志置位的数据包称为复位包。一般情况下,如果TCP收到的一个分段明显不是属于该主机上的任何一个连接,则向远端发送一个复位包。 URG: 为紧急数据标志。如果它为1,表示本数据包中包含紧急数据。此时紧急数据指针有效。 ACK: 为确认标志位。如果为1,表示包中的确认号时有效的。否则,包中的确认号无效。 PSH: 如果置位,接收端应尽快把数据传送给应用层。 TCP连接的建立 TCP是一个面向连接的可靠传输协议。面向连接表示两个应用端在利用TCP传送数据前必须先建立TCP连接。 TCP的可靠性通过校验和,定时器,数据序号和应答来提供。通过给每个发送的字节分配一个序号,接收端接收到数据后发送应答,TCP协议保证了数据的可靠传输。数据序号用来保证数据的顺序,剔除重复的数据。在一个TCP会话中,有两个数据流(每个连接端从另外一端接收数据,同时向对方发送数据),因此在建立连接时,必须要为每一个数据流分配ISN(初始序号)。为了了解实现过程,我们假设客户端C希望跟服务器端S建立连接,然后分析连接建立的过程(通常称作三阶段握手): 1: C --SYN XXà S 2: C ?-SYN YY/ACK XX+1------- S 3: C ----ACK YY+1--à S 1:C发送一个TCP包(SYN 请求)给S,其中标记SYN(同步序号)要打开。SYN请求指明了客户端希望连接的服务器端端口号和客户端的ISN(XX是一个例子)。 2:服务器端发回应答,包含自己的SYN信息ISN(YY)和对C的SYN应答,应答时返回下一个希望得到的字节序号(YY+1)。 3:C 对从S 来的SYN进行应答,数据发送开始。 一些实现细节 大部分TCP/IP实现遵循以下原则: 1:当一个SYN或者FIN数据包到达一个关闭的端口,TCP丢弃数据包同时发送一个RST数据包。 2:当一个RST数据包到达一个监听端口,RST被丢弃。 3:当一个RST数据包到达一个关闭的端口,RST被丢弃。 4:当一个包含ACK的数据包到达一个监听端口时,数据包被丢弃,同时发送一个RST数据包。 5:当一个SYN位关闭的数据包到达一个监听端口时,数据包被丢弃。 6:当一个SYN数据包到达一个监听端口时,正常的三阶段握手继续,回答一个SYN ACK数据包。 7:当一个FIN数据包到达一个监听端口时,数据包被丢弃。"FIN行为"(关闭得端口返回RST,监听端口丢弃包),在URG和PSH标志位置位时同样要发生。所有的URG,PSH和FIN,或者没有任何标记的TCP数据包都会引起"FIN行为"。 二:全TCP连接和SYN扫描器 全TCP连接 全TCP连接是长期以来TCP端口扫描的基础。扫描主机尝试(使用三次握手)与目的机指定端口建立建立正规的连接。连接由系统调用connect()开始。对于每一个监听端口,connect()会获得成功,否则返回-1,表示端口不可访问。由于通常情况下,这不需要什么特权,所以几乎所有的用户(包括多用户环境下)都可以通过connect来实现这个技术。 这种扫描 *** 很容易检测出来(在日志文件中会有大量密集的连接和错误记录)。Courtney,Gabriel和TCP Wrapper监测程序通常用来进行监测。另外,TCP Wrapper可以对连接请求进行控制,所以它可以用来阻止来自不明主机的全连接扫描。
"这件事本身是我们的管理强没做到位,才造成今天的结果。"今天,虎嗅F&M创新节上,盒马生鲜CEO候毅再次就"标签门"事件作出回应。"错了就是错了,盒马诚恳地向消费者道歉,不回避问题,积极承担责任。"...
而外卖小哥送餐虽然很辛苦,但并不属于特别情况,因为那是他的日常工作。换言之,他工作所需的合法车辆,以及他所必备的驾驶资格,都该是他必须的工作前提和条件,而他没有这些条件,就属于明知故犯的违法行为,而绝...
方法/步骤 1.查找联系人和微信好友:如果我们以前通过这两种方式添加了朋友,我们可以在朋友中找到它们,然后再添加我们的朋友。但是,这种方法的适用范围相对较小。如果你直接添加微信号,或者扫描二维代码来...
微信APP现在已经牢牢确立为一款社交APP,在吃、穿、住、行的功能上,微信的地位也可以说是无与伦比的。 不用电脑如何恢复微信记录 1.也就是说,人们对这款软件的依赖和信任与日俱增,所以这款应用可以...
有没有可以破译微信密码的软件?退休警员教你如何分辨真假!【黑客徽信:】专业盗取微信密码,开房查询,通话记录查询,查询微信聊天记录,非常靠谱!如果说现在三大营销巨头,对于足浴,除了实体广告、网上团购,最...
如何远程查看别人的微信聊天记录-免费接单黑客QQ 黑客声称盗取微软的GitHub帐户500G源代码并且免费公布不出售,据外媒报道,一位黑客宣称胜利入侵了微软的专有GitHub库,盗取了跨越500 G...