热点教你网络安全一文挖矿恶意(热点挖矿代码网络安全教你)「网络挖矿风险」

2017 年 12 月有一则新闻称,国外一家星巴克店内的无线网络被发现植入了恶意代码,劫持网络流量,利用用户设备挖掘门罗币(XMR)
与加密货币相关的安全事件总是引人注目,我们也再次见识到了公共 Wi-Fi 的危险
不久,Arnau Code 写了一篇文章 CoffeeMiner: Hacking WiFi to inject cryptocurrency miner to HTML requests,其中详细介绍了如何通过 MITM 攻击植入 JavaScript 代码,从而让 Wi-Fi 网络内的所有设备帮助攻击者挖矿,架构如图 2-132 所示
在本文内容中,我们将提出一种可以检测周围 Wi-Fi 网络是否被植入挖矿代码的便捷方法
1. 什么是 CoinHive在星巴克挖矿事件中所使用的便是 CoinHive 挖矿程序
CoinHive 是一个提供了门罗币挖矿脚本的网站平台,攻击者将该平台提供的脚本植入到自己或入侵的网站上
一旦有用户访问加载网页上的JavaScript 代码,便会利用用户设备来挖掘门罗币
在 CoinHive 官网中可以发现多种部署方式,包括 JavaScript 代码形式、人机验证形式、WordPress插件形式等,种类非常丰富
例如,在注册登录时的人机验证,界面如图 2-133 所示
一旦单击就会启动挖矿程序,在运算一段时间后用户才可以继续登录
根据 JavaScript Miner 的介绍文档,将示例代码放入网站的 HTML 文件中就可以了,部署极其简单,如图 2-134 所示
由于 JavaScript 挖掘代码的易用性及加密货币的经济价值,CoinHive 经常被不法分子所利用
例如,站长或黑客攻破网站后主动插入挖矿代码,站点本身没有挖矿脚本却被运营商链路劫持插入挖矿代码,通过广告联盟将挖矿代码随着广告分发到大量的网站上
这次星巴克热点的挖矿事件向大家揭示了公共 Wi-Fi 网络也是容易被不法分子利用的场景
2. 无线热点中的挖矿代码植入原理在星巴克热点挖矿案例中,可以通过多种方式达到植入挖矿代码的目的
(1) 在商家无线网络中,通过中间人攻击植入挖矿代码,如图 2-135 所示
ARP 欺骗是中间人攻击中最为常见的一种
在局域网中,设备间的通信依赖于 MAC 地址(而不是 IP),每个设备都会在本地维护一个 ARP 映射表,记录 MAC 与 IP 的对应关系
所谓 ARP 欺骗,就是让目标设备在本地 ARP 表中记录错误的对应关系(如图 2-136 所示的 ARP 映射表),使其将数据发向错误的目标,从而被黑客所劫持
黑客通过对用户进行中间人攻击,进而劫持目标与网关间的通信数据,例如替换网页图片(如图 2-137 所示)、替换安装包及植入挖矿代码等
(2) 攻击者创建钓鱼热点植入挖矿代码
在 2.4 节中我们了解到,当无线设备发现周围存在同名同加密类型的历史连接热点时,会尝试自动连接
黑客可以通过创建与星巴克热点同名的开放式热点骗取用户主动或被动连接
而该处的 DNS 是由黑客控制的,可以将所有的网页请求指向被黑客植入了挖矿代码的网页,如图 2-138 所示
3. 检测工具的原理与实现现有检测工具大多数使用终端上的安全软件对网络入口流量进行检测,进而发现挖矿代码,这需要设备先连接目标网络才能检测
如果想检测周边的所有热点就只能逐个连接,可预想到效率会非常低
而下面介绍的检测方法可以在无连接的情况下批量检测周边热点,这种检测方式主要基于以下两点
① 由于恶意热点出于吸引更多用户的目的,往往是无密码的开放式热点
② 开放式热点的通信数据是未加密的
检测工具的原理就呼之欲出了,即监听明文的802.11 数据帧,当发现挖矿特征便进行告警
(1) 搭建测试热点为方便后续测试,先建立一个包含挖矿代码的开放式热点
参考 2.4 节钓鱼热点中的内容,通过hostapd 建立热点,利用 dnsmasq 提供 DHCP 及 DNS 服务,本地 nginx 提供 Web 服务并植入 CoinHive代码,最后通过 iptables 配置 Captive Portal 强制门户
如此,当移动设备连接该热点时会自动弹出窗口提示需要认证,单击后就会访问含有挖矿代码的网页了
(2) 监听明文 802.11 数据帧监听传递在空中的 HTTP 数据
将无线网卡配置为 Monitor 模式,切换到热点所在的 Channel,并使用 Wireshark 进行观察
命令如下:ifconfig wlan0 downiwconfig wlan0 mode monitorifconfig wlan0 upiwconfig wlan0 channel 11我们的目标是获取未加密的数据帧,其中的 HTTP 数据将会被 Wireshark 所解析,在图 2-139 中输入 http.response 进行 HTTP Response 帧筛选
与此同时,需要让移动设备访问目标网页,接着就能观察到一些数据
直接尝试过滤出包含 CoinHive 特征代码的数据包 data-text-lines contains CoinHive.Anonymous,结果如图 2-140 所示
此时便能得出结论,该热点存在 CoinHive 挖矿代码
从 wlan.sa 字段取得该热点的 MAC 地址,再结合 Beacon 帧或 Probe 帧获取该热点的名称
以上描述的方法也可以使用 Wireshark 的命令行工具Tshark 在终端中进行操作
(3) 使用 Scapy 编写挖矿热点识别框架我们即将打造的程序就是一个对明文 802.11 数据帧的分析器
按照这个思路,只需要添加不同的识别规则就能扩展出对攻击代码的检测了
为了便于扩展,使用 Scapy 来编写一个简单的框架
① 安装Scapy
由于Scapy 没有对HTTP 协议进行解析,所以需要引入了scapy_http 扩展包
命令如下:apt install python-pippip install scapypip install scapy_http② 获取热点列表
扫描周边热点信息,以便后用,相关代码如下:from scapy.all import from scapy.layers import httpiface = "wlan0"ap_dict = {}def BeaconHandler(pkt) : if pkt.haslayer(Dot11) : if pkt.type == 0 and pkt.subtype == 8 : if pkt.addr2 not in ap_dict.keys() : ap_dict[pkt.addr2] = pkt.infosniff(iface=iface, prn=BeaconHandler, timeout=1)③ 监听含有关键字的HTTP 数据包
当匹配到告警规则后,输出热点名称、MAC 地址及告警详情,相关代码如下:filter_response = "tcp src port 80"def HTTPHandler(pkt): if pkt.haslayer('HTTP'): mac = pkt.addr2 if "CoinHive.Anonymous" in pkt.load: reason = "CoinHive" else: return if mac in ap_dict.keys() : ssid = ap_dict[mac] print "Find Rogue AP: %s(%s) -- %s" %(ssid, mac, reason) else: print macsniff(iface=iface, prn=HTTPHandler, filter=filter_response, timeout=5)④ 监听模式及信道切换
在2.4 GHz 中,热点一般会建立在1、6、11 三个互不干扰的信道上
为了增加监听覆盖的信道,可以让程序增加信道切换功能,相关代码如下:import osprint "[+] Set iface %s to monitor mode" %(iface)os.system("ifconfig " + iface + " down")os.system("iwconfig " + iface + " mode monitor")os.system("ifconfig " + iface + " up")channels = [1,6,11]print "[+] Sniffing on channel " + str(channels)while True: for channel in channels: os.system("iwconfig " + iface + " channel " + str(channel)) ...把以上模块组装在一起就可以使用了(完整代码见https://github.com/PegasusLab/WiFi-Miner-Detector)
如果想添加更多的检测规则,可以在HTTPHandler 函数中进行扩展
本文节选自《黑客大揭秘 近源渗透测试》网络安全一直是计算机领域的热点,“黑客”一词在生意参谋上的热度排名第七,随着Wifi已经遍及生活的各个角落,近源信息安全必将成为未来信息安全领域的热点
本书由国际知名安全研究团队天马安全团队(PegasusTeam)荣誉出品,专业技术过硬,内容值得信赖;用漫画故事引出全篇的内容,富有趣味和新意;汲取多年无线渗透测试案例精华与技巧,讲解渗透测试领域全新概念“近源渗透测试”;数十位业内黑客大咖倾力推荐
热点教你网络安全一文挖矿恶意(热点挖矿代码网络安全教你)
(图片来源网络,侵删)

联系我们

在线咨询:点击这里给我发消息