用户
搜索
  • TA的每日心情

    2020-6-11 21:49
  • 签到天数: 36 天

    连续签到: 1 天

    [LV.5]常住居民I

    版主

    W3bSafeTeam

    Rank: 7Rank: 7Rank: 7

    15

    主题

    79

    帖子

    293

    魔法币
    收听
    0
    粉丝
    4
    注册时间
    2017-6-30

    i春秋认证秦楚燕魏齐赵春秋文阁春秋游侠积极活跃奖i春秋签约作者核心白帽

    发表于 2020-7-19 20:10:59 123216
    本帖最后由 ID_Angel 于 2020-7-22 14:14 编辑

    本文原创作者 Angel,本文属i春秋原创奖励计划,未经许可禁止转载!

    低成本打造全功能wifipineapple(软件篇一)

    0x01 前言

    首先跟大家说句抱歉,好久不更新文章了,大约一个两个月吧。由于目前工作比较忙,也没什么时间去写文章。最近跟村长PY了一个版主,挤挤时间写一篇吧。

    原本我是不打算写这篇文章的,写这篇文章可能会加大各种奸商的生长。但是我以后也是会一直上班的,感觉这个技术在保留也没啥意义了,经过我的反复思考,打算把这篇文章还是写出来。供大家一起学习。

    写文章之前点DISS一下

    首先先曝光几个奸商,自从我写完硬件篇就开始去咸鱼上骗小白了。

    Uld4jx.png

    https://imgchr.com/i/UlwPUg

    UlwPUg.png

    其实笔者不反对所有人的这种交易行为,毕竟也有很多入门玩家并不会使用风枪,并不会自己去换IC。老玩家帮忙去换一下并且收点手工费其实似乎很符合常理。但是硬件成本100,技术与研发成本为0,你收人家新人299的手工费,是不是有点太过分了?我想问一句,你作为一个前辈,你要脸吗?

    还有极客之眼,不要脸到极致的人。一套菠萝派卖600多?请问您是有多缺钱,技术不咋地还到处骗人。请问你脸呢?

    0x02 Issues

    肯定遇到了以下几个问题:
    1.您无论怎么点pineap里面的switch 都是disabled

    UW0taQ.md.png

    2.点击recon 要求您开启pineap 而pineap无法开启 recon也无法正常使用

    UWBawD.md.png

    这是正常现象,因为WiFipineapple公司早就料到了这种盗版现象。于是在pineapd的二进制文件中写了保护。所以pineapd在非菠萝派官方机器上会自动拒绝运行。经过分析,该程序会出现如下状况。

    UWB2m8.png

    直接执行pineapd 会提示段错误。

    这个问题其实我在写硬件篇1之前就发现了。pineap属于菠萝派内核心功能,如果缺了它菠萝派就没了灵魂。经过查阅了些资料。感觉百度谷歌并没有什么卵用。最后经过了两天苦苦研究,终于成功crack。

    0x03 Crack

    1.下载最新固件,

    这里直接拿最新固件做演示。最新固件版本2.7.0

    Urx01K.md.png

    2.解包

    我用的是binwalk。用其他解包工具也可以。只要是支持squashfs的解包工具都可以。解包的目的是为了得到pineapd文件。如果你比较懒,也可以从wifipineapple上面直接下载

    UrxgAA.png

    3.打开usr/sbin目录,并找到pineapd

    这里面放着需要我们给打patch的pineapd

    Urxf9P.md.png

    4.使用Ghidra载入pineapd

    我用的Ghidra是最新版的,截止目前为止,Ghidra最高版本为9.1.2

    UsPJ0O.md.png

    5.打开Ghidra的字符串窗口

    幸好wifipineapple官方爸爸没有给pineapd加壳,要不然就凉凉。打开字符串窗口会发现有几个shell命令

    UsPahd.png

    6.找到鉴权部分数据段

    跟进这几串shell命令的数据端,找数据段的意义在于下一步的交叉引用,可以清楚的看到代码端里哪些逻辑代码引用了该数据

    UsPw9A.md.png

    7.交叉引用

    交叉引用 看看哪些函数使用了该数据。发现地址为0040e960这个地址引用了这段数据

    UsP01I.md.png

    8.根据交叉引用找到验证函数逻辑代码,并得出patch方法

    这段开始就是pineapd验证函数的逻辑了 右边是流程图。

    UsPDjP.md.png

    为了方便大家能看懂比较恶心的mips汇编,这里直接查看伪代码。

    UsPsnf.md.png

    从伪代码我们可以直观的看出来,验证成功的话是会return _s2的 而_s2为指针变量,很有可能会被其他函数所调用。这时有两种方案可以达到验证bypass 一种是直接修改这个程序中的数据端,来实现使这个程序执行非预期的shell命令,并按照程序本身的运作继续把shell命令的返回值读入程序中,经strcmp命令后则返回正常。第二种方法则是直接修改运行环境中的dmesg,使dmesg经过原本的shell命令输出正常即可。

    这里我给大家介绍第一种方法,首先先构造一个输出 44b65156的shell命令。

    用echo 和awk什么的都可以。这里我用到的是awk命令

    awk 'BEGIN{print "44b65156"}' 
    
    or
    
    echo "44b65156"

    UsP6HS.png

    9.修改执行shell时的命令,使给__S2指针变量正确赋值

    ghidra对于修改字符串还是比较简单的,找到字符串的物理地址就可以直接在编辑器里面对字符串做修改了。

    对于原本命令很长,我们要改的命令很短怎么办?直接用20 也就是空格键填充即可

    UsPyB8.md.png

    再次查看伪代码

    UsPgAg.md.png

    /* WARNING: Unknown calling convention yet parameter storage is locked */
    /* gtmgc() */
    
    char * gtmgc(void)
    
    {
      char *__s2;
      int iVar1;
    
      __s2 = (char *)exec("cat /proc/cmdline | awk \'{ split($1,x,\"=\"); print x[2] }\'");
      iVar1 = strncmp("WIFI-PINEAPPLE-NANO",__s2,0x13);
      if (iVar1 == 0) {
        __s2 = (char *)exec(
                           "awk \'BEGIN{print \"44b65156\"}\'                                                     "
                           );
        iVar1 = strncmp("44b65156",__s2,8);
      }
      else {
        iVar1 = strncmp("PINEAPPLE-TETRA",__s2,0xf);
        if (iVar1 != 0) {
          return (char *)0;
        }
        __s2 = (char *)exec("dmesg | head -n4 | awk \'FNR == 4 { print($5, $6) }\'");
        iVar1 = strncmp("AR9344 rev",__s2,10);
      }
      if (iVar1 != 0) {
        return (char *)0;
      }
      return __s2;
    }
    

    10.上机测试

    现在运行pineapd不在提示段错误,说明之前的patch行为对程序来说还是有效的

    UsPRhj.png

    web端测试
    可以成功开启Pineapd 无任何异常

    UWd3Wt.md.png

    等一会会自动发现ssid pool内多出来ssid

    UWrtaD.md.png

    recon也可以正常发现wifi

    UWwBHe.md.png

    shell命令测试

    UWwy4A.png

    pineapd也工作正常

    破解完成

    最后

    1. 本文不欢迎 “奸商” 阅读,不欢迎奸商用此方法谋取暴力。尤其是极客之眼,点你名一点没毛病。

    2. 欢迎大家一起学习,并交流技术。
      UWrXW9.png
    补丁下载
    游客,如果您要查看本帖隐藏内容请回复
    W3bSafe Team 信息安全从未止步 官网:http://www.w3bsafe.cn
    本人业务微信:A2gel-
    大佬tql tql tql
    使用道具 举报 回复
    发表于 2020-7-20 16:48:56
    支持angel大佬,强烈谴责那些无良的奸商!!!
    使用道具 举报 回复
    感谢大大分享
    使用道具 举报 回复
    发表于 2020-7-20 17:09:34
    学习了学习了,看完也想撸一台了
    使用道具 举报 回复
    发表于 2020-7-20 19:20:59
    大佬tql tql tql
    使用道具 举报 回复
    发表于 2020-7-22 10:32:19
    辛苦了66666666666666
    使用道具 举报 回复
    发表于 2020-7-22 14:31:15
    i春秋什么时候可以送菠萝派啊,我第一个参与活动!!!
    使用道具 举报 回复
    发表于 2020-7-22 14:31:32
    老哥,带带我
    使用道具 举报 回复
    发表于 2020-7-22 14:31:58
    Angel表哥厉害呀
    使用道具 举报 回复
    J0o1ey 超级版主 培训/业务/联系Q547006660 秦 春秋文阁 春秋游侠 核心白帽 i春秋签约作者 幽默灌水王 积极活跃奖 白帽高手
    10#
    发表于 2020-7-25 07:28:02
    牛逼,但是链接貌似失效了
    有培训需求或是技术交流需求的朋友可以联系我~QQ547006660|交流群820783253|团队首页www.gcowsec.com|
    使用道具 举报 回复
    链接是不是?
    使用道具 举报 回复
    很强
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册