Swing'Blog 浮生若梦 Swing'Blog 浮生若梦
  • Home
  • |
  • About
  • |
  • Articles
  • |
  • RSS
  • |
  • Categories
  • |
  • Links

GeekPwn 参赛记

2018-11-15 Updated on 2026-02-07 Note

Table of Contents

  1. 0x01 题记
  2. 0x02 经历
    1. 拿不到固件 还配做黑客么?
    2. 转机
    3. IDA 启动! IDA 关闭!
    4. DEBUG …
    5. CODE EXPLOIT
    6. badchar bypass
    7. exploit done !!!
  3. 0x03 GeekPwn Shang Hai
    1. 签到:
    2. 第一天:
    3. 第二天
    4. 颁奖
  4. 最后的最后
GeekPwn 参赛记

0x01 题记

迟到的参赛记…

事情,要从我在360实习的时候说起,其实那个时候 r3kapig 就想法要参加 GeekPwn,于是,我们就分了几个组:

xxx 和xxx 想搞游戏引擎

xxx 和 xxx 想搞 office 、wps 阿windows 内核阿 诸如此类…

没办法,我这种垃圾,只能选择去看 IoT 设备了…

0x02 经历

拿不到固件 还配做黑客么?

一开始,我们和 w1ther 要搞小米音箱,然后遇到了一个问题,我们俩都没设备拿固件。这就犯愁了,我说要不伯博,去你们学校的实验室看看有没有办法搞吧?

最后伯博,告诉我们这个他们实验室没办法搞

转机

然后后来得知,此时我们 r3kapig 的金主爸爸 京东的某实验老板 kj大佬也想打 GeekPwn ,于是我们就有了抱大腿的想法…

于是后面的日子,就变成了…kj -> 固件批量发售商!

IDA 启动! IDA 关闭!

Emmm 拿到的固件都是 ARM 的这个比 某MIPS 好看多了…

这里膜拜下 Atum ,emmm 如果纯粹为了挖洞 Atum方法是真实用,他把各个 sscanf 阿 system阿 啥函数的引用看了一遍…刷就有洞了….

DEBUG …

找到了🕳 … 接着就要 debug了!!!

我们通常两种方法

  1. 设备有调试接口 或者有后面 ,上传 gdbserver
  2. qemu模拟

由于我没有设备,所以我们这里用的 qemu 模拟,但是我们 CTF 上的 qemu 模拟,通常指跑一个 bin ,然后我们专门向kj 学习了如何搭建一个 qemu 模拟 arm 系统,这个就相当于你跑了一个 板子了..

感兴趣的同学可以看 这篇 构建qemu嵌入式:

当然 MIPS 也是一样的方法,换个 kernel 和 initrd

当然,跑在 模拟器的同时,你可能需要 patch 一些启动项!

CODE EXPLOIT

这里会涉及到一点 arm 的shellcode 知识!!!

一开始,我们使用 Pwntools 的 Assembly

然后出了一丢丢 bug,后面发现是依赖不足.. 然把 binutils-arm-linux-gnueabi binutils-dev binutils-multiarch 这三个一装就好了…

后面发现 Pwntools 的不足以 或者有问题,于是我们开始 手写 shellcode

果然还是 google 大法好!

然后发现了几篇挺好的文章:

http://phrack.org/issues/66/12.html

https://azeria-labs.com/writing-arm-shellcode/

badchar bypass

由于是输入的过程中 sscanf 需要 bypass 一些 badchar ,例如 \x00 \x20 诸如此类…于是我们刚开始能不能有现有的编码器可以 encode一下!!!

例如: msfvenom 然后惊奇的发现!!!没有 arm的?????

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
msfvenom -l encoders

Framework Encoders
==================

Name Rank Description
---- ---- -----------
cmd/echo good Echo Command Encoder
cmd/generic_sh manual Generic Shell Variable Substitution Command Encoder
cmd/ifs low Generic ${IFS} Substitution Command Encoder
cmd/perl normal Perl Command Encoder
cmd/powershell_base64 excellent Powershell Base64 Command Encoder
cmd/printf_php_mq manual printf(1) via PHP magic_quotes Utility Command Encoder
generic/eicar manual The EICAR Encoder
generic/none normal The "none" Encoder
mipsbe/byte_xori normal Byte XORi Encoder
mipsbe/longxor normal XOR Encoder
mipsle/byte_xori normal Byte XORi Encoder
mipsle/longxor normal XOR Encoder
php/base64 great PHP Base64 Encoder
ppc/longxor normal PPC LongXOR Encoder
ppc/longxor_tag normal PPC LongXOR Encoder
sparc/longxor_tag normal SPARC DWORD XOR Encoder
x64/xor normal XOR Encoder
x64/zutto_dekiru manual Zutto Dekiru
x86/add_sub manual Add/Sub Encoder
x86/alpha_mixed low Alpha2 Alphanumeric Mixedcase Encoder
x86/alpha_upper low Alpha2 Alphanumeric Uppercase Encoder
x86/avoid_underscore_tolower manual Avoid underscore/tolower
x86/avoid_utf8_tolower manual Avoid UTF8/tolower
x86/bloxor manual BloXor - A Metamorphic Block Based XOR Encoder
x86/bmp_polyglot manual BMP Polyglot
x86/call4_dword_xor normal Call+4 Dword XOR Encoder
x86/context_cpuid manual CPUID-based Context Keyed Payload Encoder
x86/context_stat manual stat(2)-based Context Keyed Payload Encoder
x86/context_time manual time(2)-based Context Keyed Payload Encoder
x86/countdown normal Single-byte XOR Countdown Encoder
x86/fnstenv_mov normal Variable-length Fnstenv/mov Dword XOR Encoder
x86/jmp_call_additive normal Jump/Call XOR Additive Feedback Encoder
x86/nonalpha low Non-Alpha Encoder
x86/nonupper low Non-Upper Encoder
x86/opt_sub manual Sub Encoder (optimised)
x86/service manual Register Service
x86/shikata_ga_nai excellent Polymorphic XOR Additive Feedback Encoder
x86/single_static_bit manual Single Static Bit
x86/unicode_mixed manual Alpha2 Alphanumeric Unicode Mixedcase Encoder
x86/unicode_upper manual Alpha2 Alphanumeric Unicode Uppercase Encoder

作者:极客圈
链接:https://www.jianshu.com/p/d0d795eaf429
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

emmm 好吧手写手写!

于是我和伯博决定,哪里不行点哪里… 这个指令不行 就换两个指令 助如此类…

exploit done !!!

emm

然而这个时候。。我们发现虚拟机打通了 设备打不通! 后面才发现 emm watch dog 在,打了之后就崩了!!!最后伯博写出了 情理之中,理所应当的exploit

woc ??? 好吧 写到开机启动里

(ps :另外一个路由器的 任意命令执行就不写了…没什么坑点)

0x03 GeekPwn Shang Hai

咕咕 伯博…说好的来上海的呢??? 被咕咕了…

签到:

签到要拍照片…先是团队 ,对了我们的团队叫 :小猪矿主 …

然后紧接着是 个人照…在个人照的时候,摄影师会问你,有个人Pose么?woc 麦香师傅真的是太帅了 舔一波,Atum师傅太强了…

然后拿了衣服和胸牌就撤了..

第一天:

我们的比赛放在 第二天下午,所以第一天我们是观众。。。

第一天见到了 蒋昌建老师,蒋昌建老师的 主持一如既往 最强大脑即时感!。

当了一天观众 …有几个项目挺有意思…

中午 Atum老板和 他的老板出去吃饭了…

晚上 kj 老板带我们去吃饭了…然后谈了一点,他之后的想法..

然后各回各家,回去接着 测试设备…

第二天

第二天早上,我们并没有去现场,由于下午就是我们的比赛了,我们又开始测了一次设备,emmm 中间的确避免了许多麻烦,由于最后的exploit都是用shell 脚本写的..我们的得先确认一遍

下午比赛开始:

中间原本设计好的 回车日站失效了!!!

一开始是 某音箱没连wifi, 跪了,打不到

后面是某款路由器的国内版和国际版弄反了! 跪了

最后,又发现 路由器的地址填错了,跪了!!!

于是乎,现场改 exploit….在最后的四秒 PWNED!

那个唯一出现在 PPT 上的男人 @w1ther ,让你咕咕!

颁奖

最后颁奖的时候,我们拿了两个 一个最佳展示 一个是基于漏洞攻破奖。

最后的最后

感谢 kj 老板! 也感谢队友们!!! tql 了

贴个出道照片吧

分类: Note
标签: geekpwn
← Prev Docker for Mac and gdb GUI windows
Next → Educational Heap Exploitation

Comments

© 2015 - 2026 Swing
Powered by Hexo Hexo Theme Bloom