阅读本文之前建议了解 TCP 三次握手过程以及 TCP 的包头详细信息。

由于 TCP 协议并没有对 TCP 的传输包进行验证,所以在我们知道一个 TCP 连接中的 seq 和 ack 的信息后就可以很容易的伪造传输包,假装任意一方与另一方进行通信,我们将这一过程称为 TCP 会话劫持(TCP Session Hijacking)

(可见,tcp 协议并无验证部分)

为解决这个问题,通常会在网络层采用 IPSec 协议,在传输层采用 TLS 协议,在应用层采用对应的协议。各协议安放位置如下。

所以对于一些未进行防护的,采用明文传输的协议,我们就可以很容易的进行会话劫持。

这里以 telnet 连接为例,采用三台虚拟机进行演示。

虚拟机配置如下:攻击机 192.168.204.130

服务器 192.168.204.131

客户机 192.168.204.132

实现条件:

攻击机工具: wireshark,netwox,shijack

服务器 需要配置 telnet 服务器(这里就不详细说明了,有兴趣的同学可以自行百度)

过程:

首先,我们让 客户机 连接 服务器 。按提示输入服务器的账户,密码(输入密码时字符不可显)。

终端输入命令:telnet 192.168.204.131

此时,在同一网段的 攻击机 使用 wireshark 嗅探共用网卡,等待 客户机 和 服务器 通信,捕捉 telnet 包。

为了直接找到 telnet 包可以在 wireshark 设置过滤 telnet ,同时设置 wireshark 查看包实际序号(Edit Preferences->Protocols->TCP-> 不选 Relative Sequence Numbers)。

在 客户机 和 服务器 进行通讯后,我们成功捕捉到包。

直接找到最后的一个包,点击 TransmissionControl Protocol 查看其中的源端口,目的端口,next seq 和 ack 信息。(其中 服务器 的端口固定为 23 ,因为 telnet 端口是 23 )

因为我们要伪造发下一个包,所以直接采用 nextseq 作为下一个包的 ack ,采用 ack 作为下一个包的 seq(这里是 tcp 协议的规定,不懂的同学可以百度下 tcp 协议三次握手)

获取到信息之后,攻击机 使用 netwox 工具伪造 客户端3 给 服务器 发一个 tcp 包。发送成功后,原来的 客户端3 就会失去连接,同时 服务器 会把 攻击机 当作 客户端3 ,这样 攻击机 就实现了会话劫持。

攻击机 终端输入:netwox 40 --ip4-dontfrag --ip4-offsetfrag 0 --ip4-ttl 64 --ip4-protocol 6 --ip4-src 192.168.204.132 --ip4-dst 192.168.204.131 --tcp-src 45116 --tcp-dst 23 --tcp-seqnum 3332505945 --tcp-acknum 4096321077 --tcp-ack --tcp-psh --tcp-window 128 --tcp-data "6c"

解释:因为是伪造 客户机 给 服务器 发送消息,所以源 ip 为 192.168.204.132,目的 ip 是 192.168.204.131 ,seq 和 ack 按刚才所说填写,末尾的 6c 是字母 l 的十六进制数,可以更换为别的,其余参数默认就可以了。

发送成功后 wireshark 显示出一个带着数据 l 的包,说明我们劫持成功。

上面每次伪造包的时候需要输入一大堆参数的实现过程是不是略显麻烦?这里推荐使用 shijack 工具(我的机子 hunt1.5 不能运行,,)。

同样,我们先让 客户机 连接 服务器 。此时 攻击机 打开 wireshark 抓包,获取到源,目的 ip 以及端口号。

根据上面的信息,使用 shijack 工具输入以下命令./shijack-lnx eth0 192.168.204.132 45188 192.168.204.131 23

参数依次为网卡名,源地址,源端口,目的地址,telnet 端口

显示等待客户端和服务器通信以便工具自动获取 seq,ack进行劫持。

在通信之后显示劫持成功。此时我们输入 ls 并回车,用 wireshark 查看是不是真的成功发出伪造包。

Ok,劫持成功!

总结

那么会话劫持成功后,我们一遍可以采用反向 shell 的方法让攻击机直接获取服务器的权限,这部分内容以后再讲(我是不会告诉你们我是来刷文章数的 0.0 )。同时我们要注意的是在渗透的时候可以使用 nmap 这类工具对攻击点进行扫描,如果发现有类似 telnet 这种不安全的协议的端口开放的话就可以采用相应手段进行攻击了。

php会话劫持,TCP会话劫持原理与测试相关推荐

  1. TCP会话劫持攻击实验

    会话劫持攻击实验 实验环境: kali(192.168.157.2)(攻击机) centos 7(192.168.157.3)(服务端) ubuntu(192.168.157.4)(客户端) 使用工具 ...

  2. 基于hunt1.5的TCP会话劫持

    基于hunt的TCP会话劫持 TCP会话劫持攻击,是劫持通信双方已建立的TCP会话连接,假冒其中一方身 份与另一方进行进一步通信.攻击者通过ARP欺骗.ICMP路由重定向攻击等 方法实现中间人攻击,嗅 ...

  3. TCP会话劫持原理与测试

    阅读本文之前建议了解 TCP 三次握手过程以及 TCP 的包头详细信息. 由于 TCP 协议并没有对 TCP 的传输包进行验证,所以在我们知道一个 TCP 连接中的 seq 和 ack 的信息后就可以 ...

  4. TCP/IP攻击实验(ARP,ICMP,SYN,RST,TCP会话劫持)

    一.实验背景 由于TCP/IP协议是Internet的基础协议,从开始设计的时候并没有考虑到现在网络上如此多的威胁,由此导致了许多形形色色的攻击方法,一般如果是针对协议原理的攻击,尤其DDOS,我们将 ...

  5. 『网络协议攻防实验』TCP会话劫持攻击

    前言 靶机1:seedubuntu 12.01,IP:192.168.199.137 靶机2:WindowsXP SP2,IP:192.168.199.135 攻击机:Kali-2020.4,IP:1 ...

  6. 【HUST】网络攻防实践|TCP会话劫持+序列号攻击netcat对话

    文章目录 一.前言 1. 实验环境 2. 攻击对象 3. 攻击目的 4. 最终效果 docker的使用 新建docker docker常用指令 二.正式开始 过程记录 1. ARP欺骗 2. 篡改数据 ...

  7. 【XSS漏洞07】基于神器beEF的XSS漏洞利用实验(浏览器劫持、会话劫持、GetShell)

    目录 1 实验简介 1.1 实验目的 1.2 实验环境 2 实验一:浏览器劫持 2.1 概述 2.2 实验步骤 3 实验二:会话劫持 3.1 概述 3.2 实验步骤 4 实验三:GetShell 4. ...

  8. 【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF

    目录 1 案例简介 1.1 案例目的 1.2 案例环境 2 案例一:浏览器劫持 2.1 概述 2.2 案例步骤 3 案例二:会话劫持 3.1 概述 3.2 案例步骤 4 案例三:GetShell 4. ...

  9. 如何防范 PHP安全的方式-session会话劫持与会话固定 ?

    一.概述 对于Web应用程序来说,加强安全性的第一条原则就是--不要信任来自客户端的数据,一定要进行数据验证以及过滤才能在程序中使用,进而保存到数据层.然而,由于Http的无状态性,为了维持来自同一个 ...

最新文章

  1. IDEA 在线翻译插件
  2. Laravel 集成 JPush 极光推送指北
  3. java虚拟机起不来的原因,JVM理解其实并不难!
  4. mysql存储表情测试_Mysql正确的储存处emoji表情
  5. wordpress 显示数学公式 (MathJax-LaTeX)
  6. 恭贺微软技术俱乐部苏州站正式成立
  7. asp.net 导入excel显示进度
  8. 主机连接wifi,如何设置虚拟机上网方式
  9. abaqus dat文件 matlab_提升Abaqus求解效率的七种武器
  10. mysql -a_a|MySQL基础命令
  11. HTTP Live Streaming直播
  12. 互联网思考悲伤之后 如何重新定位移动互联网方向
  13. 关于原生ajax的那些事
  14. 断点续传(视频进度条拖动以及flv.js需要断点续传)
  15. 学生云服务器哪个好?阿里云,腾讯云,华为云,有适合学生党云服务器推荐吗?
  16. Excel数据分析学习笔记(四)如何建立规范的数据表
  17. 7-5 先序序列+中序序列建立二叉树
  18. 空调遥控器c语言源码,51单片机格力空调遥控器设计源码
  19. 微信小程序日期午别排班表
  20. 外卖匹配系统_快餐外卖系统的需求分析

热门文章

  1. PTA 规范化句子长度,句子有相同数量的单词
  2. 补习计算机基础知识(2)
  3. 版权——如何自己申请软件著作权-注册篇
  4. 关于如何设置IDEA自动刷新项目目录
  5. 2019年下半年计算机水平软件,2019年的下半年全国计算机技术与软件专业技术资格(水平)考试成绩查询通知...
  6. 结城浩的《图解设计模式》设计模式之Adapter模式的理解
  7. 判断回文字符串—C语言
  8. Java常见的几种集合类
  9. 循序渐进学习 Java 锁机制
  10. L1-010 比较大小(分数 10)