Web-Attak系列教程第二季0x02讲——三次握手
2013-02-13 02:17
281 查看
普及网络安全知识,推动信息技术发展。
为祖国的网络安全撑起一片蓝天,为网络安全爱好者构建一方家园。
欢迎来到灰帽程序员论坛,我们的网址是:
http://www.hmhacker.org
论坛以技术交流为主,非商业性质论坛。
大家好,我是小雨,QQ:798033502
今天给大家带来的教程是《Web-Attak系列教程第二季0x02讲——三次握手》
这些视频教程最终会整理成书《Web安全编程与渗透分析》
在进行渗透的第一步是信息收集和漏洞扫描,那么在讲这个之前呢,我们有必要介绍下TCP报文结构。因为我们不是要当script kiddie
We want to be a hacker。所以,我们必须要懂得原理
//定义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-A对PC-B发来的序列号做出应答,两台计算机开始建立连接。
视频地址:
http://www.56.com/u80/v_ODY1MjI3MjU.html http://v.youku.com/v_show/id_XNTEzNzkxNjg4.html
为祖国的网络安全撑起一片蓝天,为网络安全爱好者构建一方家园。
欢迎来到灰帽程序员论坛,我们的网址是:
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数据 |
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-A对PC-B发来的序列号做出应答,两台计算机开始建立连接。
视频地址:
http://www.56.com/u80/v_ODY1MjI3MjU.html http://v.youku.com/v_show/id_XNTEzNzkxNjg4.html
相关文章推荐
- Web-Attak系列教程第二季0x07讲——dedecmsV5.7后台拿shell
- Web-Attak系列教程第二季0x03讲——常见扫描方式简介
- Web-Attak系列教程第二季0x09讲——shopex后台拿shell
- Web-Attak系列教程第二季0x04讲——扫描器之王nmap
- Web-Attak系列教程第二季0x01讲——从零开始
- Web-Attak系列教程第二季0x12讲——HTTP的请求与响应格式
- Web-Attak系列教程第二季0x13讲——信息收集
- 跨平台移动开发phonegap/cordova 3.3全系列教程-调用webservice/ajax
- Struts1.x系列教程(16):使用LocaleAction类实现国际化的Web程序
- 深入浅出webpack教程系列_安装与基本打包用法和命令参数详解
- webpack4 系列教程(十六):开发模式和生产模式·实战
- socket 编程入门教程(三)TCP原理:5、TCP的三次握手(three-way handshake)
- [js高手之路]深入浅出webpack教程系列9-打包图片(file-loader)用法
- WEB打印系列教程之二--使用IE的打印功能进行一般的网页打印
- spring系列教程之web框架(转)
- WEB打印系列教程之四--使用ScriptX进行复杂的WEB打印设置、使用jatoolsPrinter控件进行WEB打印设置
- socket 编程入门教程(三)TCP原理:5、TCP的三次握手(three-way handshake)
- Vue + Webpack + Vue-loader 系列教程(2)相关配置篇
- 【转】物联网跟我动手做系列教程—第三篇 实验三如何用arduino+ethernet shield与yeelink结合5分钟实现web远程家电控制(代码已更新)