会话劫持,登录别人的账号

一、前言

  • 所谓会话,简单理解就是用户在浏览某个网站的过程中和服务器的通信,通信过程中会传递一些用户信息,以便服务器知道当前是哪个用户在浏览网站
  • 会话劫持,简单说就是用户与服务器通信的过程中,你横插一脚,截获了用户的信息,然后冒充这个用户与服务器通信,最后达到不需要知道用户的账号密码就能以该用户的身份登录对应的网站,冒充该用户的目的

二、相关工具准备

  • arpspoof ,常用的arp欺骗工具,不多解释了
  • wireshark ,抓取数据包的工具,kali应该自带了,没有就apt-get install 一下
  • ferret,用于重新生成数据包文件,特别注意他的安装名是ferret-sidejack
apt-get install ferret-sidejack

我之前莫名奇妙的装了一个ferret的同名工具,一直不能用还觉得很奇怪,正确的名称是ferret-sidejack;
另外如果安装失败,考虑先执行下面的命令,因为这个工具貌似是只有32位的,你的kali如果是64位的需要开启 32位支持

dpkg --add-architecture i386
apt-get clean && apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y
  • hamster,重放流量的工具,请注意他的安装名是hamster-sidejack

三、流程方案简述

  • 本次测试准备采用两种流程方案,主要是围绕 hamster的两种使用方式
  • 第一种,使用arpspoof对靶机进行arp欺骗劫持流量,然后使用wireshark工具抓取流量包并保存成pcap文件,接着使用ferret工具重新生成数据包文件hamster.txt,最后使用hamster重放流量来实现会话劫持。
  • 第二种,直接使用ferret和hamster工具进行实时的流量检测,并进行会话劫持,这种方法更加简单直接,比较推荐。

四、具体测试过程

1. 第一种方案

  • 对靶机进行arp欺骗并流量劫持、转发
echo 1 > /proc/sys/net/ipv4/ip_forward
arpspoof -i eth0 -t 192.168.31.45 192.168.31.1
  • 执行下面的命令,打开wireshark工具
wireshark
image.png
  • 双击网卡 eth0,就会自动开始进行数据包抓取,就让它开着,等待靶机的用户浏览网站


    image.png
  • 为了尽快完成测试,我们在测试靶机上登录一个论坛网站并浏览,注意红框中的用户名,显然是登录过账号的


    image.png
  • 等过了一会,我们就可以把arp欺骗停掉,同时停止抓包,保存抓包数据文件成cookie.pcap文件,默认保存在root目录下(推荐)


    image.png
  • 执行下面的命令,会自动在相同目录下生成hamster.txt文件,注意,如果你在别的地方生成的hamster.txt记得一定要copy到root根目录下
ferret -r cookie.pcap
  • 输入下面的命令,运行 hamster,根据提示信息,设置浏览器的代理为127.0.0.1 端口是1234,然后再访问http://127.0.0.1:1234 地址。浏览器怎么设置代理这里就不赘述了。


    image.png
  • 浏览器设置过代理后,打开http://127.0.0.1:1234 地址


    image.png
  • 左边的链接列表就是劫持的会话,可以挨个点击看看,当然你也可以根据域名检索,右边就是点击后显示的网页内容,右上角显示就是我们刚刚在靶机上测试登录的用户,此时就可以这个用户的身份进行网站的相关操作了。至此测试流程就结束了。

2. 第二种方案

  • 可以先把之前保存的cookie.pcap和hamster.txt 删掉,实际上只要保证root目录下没有hamster.txt文件就行了,目的是为了不要让上个流程的测试数据队对这次测试产生影响。
  • 这种方案我们抓取整个局域网的数据,不再针对某个靶机,所以前置的arp欺骗流量劫持的工作就不需要做了。
  • 执行以下命令,运行ferret工具
ferret  -i eth0
  • 等他运行完毕,就放在一旁不管了,他会实时的抓取整个局域网的数据包。
  • 执行以下命令,运行hamster工具
root@kali:~# hamster
--- HAMPSTER 2.0 side-jacking tool ---
Set browser to use proxy http://127.0.0.1:1234
DEBUG: set_ports_option(1234)
begining thread
DEBUG: mg_open_listening_port(1234)
Proxy: listening on 127.0.0.1:1234

  • 然后根据系统提示配置浏览器的代理,并访问相对的地址,跟方案一是一样的


    image.png
  • 点击adapters选择对应的网卡。


    image.png

    image.png
  • 这样数据就出来了,因为此次是抓取的整个局域网过的数据包,所以这里出现了多个目标,点击其中一个目标就可以查看对应的链接列表和内容,跟方案一是一样的
  • 只要局域网中的数据在不断增加,这里也会同步的更新。

五、最后

  • 这里我们只是测试整个技术流程,一些细节问题不在我们讨论的范围内。比如以上方案也不是每次都能成功,跟网站是否使用HTTP/S协议、使用什么样的安全策略也有很大关系
  • 所以再次提醒大家不要随便接入陌生的,不安全的局域网,不要浏览一些不知名、不常用的小网站。当然在安全的网络环境下,浏览主流的一些网站,还是相对安全的,不能因噎废食

你可能感兴趣的:(会话劫持,登录别人的账号)