Web-Attak系列教程第二季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

posted @ 2013-02-13 02:17  MXi4oyu  阅读(203)  评论(0编辑  收藏  举报