zoukankan      html  css  js  c++  java
  • WebAttak系列教程第二季0x02讲——三次握手

    普及网络安全知识,推动信息技术发展。

    为祖国的网络安全撑起一片蓝天,为网络安全爱好者构建一方家园。

    欢迎来到灰帽程序员论坛,我们的网址是:

    http://www.hmhacker.org

    论坛以技术交流为主,非商业性质论坛。

    大家好,我是小雨,QQ:798033502

    今天给大家带来的教程是《Web-Attak系列教程第二季0x02讲——三次握手》

    这些视频教程最终会整理成书《Web安全编程与渗透分析》

    在进行渗透的第一步是信息收集和漏洞扫描,那么在讲这个之前呢,我们有必要介绍下TCP报文结构。因为我们不是要当script kiddie

    We want to be a hacker。所以,我们必须要懂得原理

    源端口(16位)

    目的端口(16位)

                            序列号(32位)

                            确认号(32位)

    偏移位

    保留位

    控制位

    窗口大小(16位)

    校验和(16位)

    紧急数据指针(16位)

                           可选项(32位)

                              CP数据

     

    //定义TCP报头

    typedef struct _tcphdr
    {
     byte source_port[2]; //发送端端口号,16
     byte dest_port[2];  //接收端端口号,16
     byte sequence_no[4]; //32位,标示消息端的数据位于全体数据块的某一字节的数字
     byte ack_no[4];   //32位,确认号,标示接收端对于发送端接收到数据块数值
     byte offset_reser_con[2];//数据偏移4位,预留6位,控制位6
     byte window[2];   //窗口16
     byte checksum[2];  //校验码,16
     byte urgen_pointer[2]; //16位,紧急数据指针
     byte options[3];  //选祥和填充,32
    }TCP_HEADER;

    那么下面我们再来说下三次握手,看看就算计是怎样建立连接并开始通讯的。因为我们的扫描技术与之密切相关。

    ====================================================

    例如:

    第一步:PC-A请求与PC-B建立连接,PC-A发送一个SYN请求建立同步连接。消息的内容就像是说:"你好,我想和你机子端口X上的服务建立连接,先同步一下,用序列号Y来开始连接。"

    第二步:PC-B主机响应发送过来的序列号,发送ACK确认同步,并将自己的序列号告诉PC-A

    (此时PC-A认为已经建立连接,PC-B却不这样认为,它要等自己的序列号有了应答才能确认建立连接。因此现在的状态称为“半连接”。如果PC-A不对收到的序列号做出应答,这个连接就永远不会建立起来。系统也不会对连接做任何记录,这就是SYN半连接扫描的原理,这样可以达到隐藏渗透测试者真实IP的目的)

    第三步:PC-APC-B发来的序列号做出应答,两台计算机开始建立连接。

    视频地址:

    http://www.56.com/u80/v_ODY1MjI3MjU.html

    http://v.youku.com/v_show/id_XNTEzNzkxNjg4.html

  • 相关阅读:
    java持续添加内容至本地文件
    ArrayList与LinkedList的区别,如何减少嵌套循环的使用
    linux系统设置允许密码登录
    postgreSQL格式化时间的函数详解
    POSTGRESQL日期函数大全
    RESTful API规范
    ASP.NET Core实践:ABP模块化&统一返回结果
    ASP.NET Core实践:中间件
    Salesforce经历
    Git常用命令整理
  • 原文地址:https://www.cnblogs.com/secbook/p/2910678.html
Copyright © 2011-2022 走看看