某通用设备的二进制文件RCE逆向分析

IoT 6个月前 admin
27 0 0

点击上方蓝字关注我们

某通用设备的二进制文件RCE逆向分析

事情的起因源于这篇文章

某通用设备的二进制文件RCE逆向分析

某通用设备的二进制文件RCE逆向分析

点进去发现,是团队成员写的一篇文章,在逆向分析中,缺少点东西,于是搞一下 尝试分析一下。逆向咱不会,但咱有人啊 @Vlan911

先check一下,得知该文件为arm架构 32位

某通用设备的二进制文件RCE逆向分析


打开虚拟机,找到32位的IDA,打开,不然位数不一样,不能查看伪代码。

某通用设备的二进制文件RCE逆向分析
某通用设备的二进制文件RCE逆向分析

使用alt + t 全局搜索system

某通用设备的二进制文件RCE逆向分析
某通用设备的二进制文件RCE逆向分析
某通用设备的二进制文件RCE逆向分析

经过排查,找到了触发函数位置 sub_1DBD2

某通用设备的二进制文件RCE逆向分析
某通用设备的二进制文件RCE逆向分析



如果对一个二进制文件进行分析,挖掘其漏洞可能需要以下步骤:

文件信息收集:了解二进制文件的基本信息,如文件类型、架构等。

反汇编与代码分析:仔细分析反汇编后的代码,查找可能的命令注入点、不安全的函数调用等。

字符串分析:查找可疑的字符串,如命令执行相关的指令或参数。

函数调用跟踪:跟踪关键函数的调用,看它们是否与潜在的漏洞相关。

环境变量检查:检查程序是否对环境变量进行了不当处理,可能导致命令执行漏洞。

输入输出分析:深入研究程序的输入和输出处理,看是否存在漏洞可被利用。

权限检查:确认程序在执行过程中是否存在权限提升的可能。

漏洞利用尝试:根据分析结果,尝试构造特定的输入来触发可能的漏洞。

静态分析:使用反汇编工具对二进制文件进行反汇编,查看代码逻辑,检查是否存在可疑的系统调用或命令执行相关的代码片段。

动态分析:通过调试工具运行二进制文件,观察其在执行过程中的行为,特别是在输入特定数据时的反应。

模糊测试:使用模糊测试工具向二进制文件输入各种异常或畸形的数据,观察是否引发异常或出现可疑的行为。

检查权限和输入验证:查看程序是否对输入进行了充分的验证和权限控制,是否存在可被利用的漏洞。

参考漏洞数据库:查阅相关的漏洞数据库,了解类似二进制文件中可能存在的已知漏洞。


这种其实是在进行代码审计,结合java审计思路,就要去寻找sub_1DBD2 这个函数被谁调用了

某通用设备的二进制文件RCE逆向分析

全局搜索

某通用设备的二进制文件RCE逆向分析
某通用设备的二进制文件RCE逆向分析
某通用设备的二进制文件RCE逆向分析

在第一条被调用

某通用设备的二进制文件RCE逆向分析
某通用设备的二进制文件RCE逆向分析
某通用设备的二进制文件RCE逆向分析


第13行被调用了,且传入了v3 v2 v1三个参数,v3又在第10行,通过pingname进行赋值

某通用设备的二进制文件RCE逆向分析

现在需要知道,谁调用了sub_171CE

某通用设备的二进制文件RCE逆向分析
某通用设备的二进制文件RCE逆向分析
某通用设备的二进制文件RCE逆向分析
某通用设备的二进制文件RCE逆向分析

f5查看伪代码

某通用设备的二进制文件RCE逆向分析
某通用设备的二进制文件RCE逆向分析


这里写了if,如果v5的值为219,则调用sub_171CE。

那么往上翻,看看v5怎么来的,由addr_value进行赋值

某通用设备的二进制文件RCE逆向分析


我们接着找,sub_11B80,发现在sub_23F60函数中的87行存在

某通用设备的二进制文件RCE逆向分析


然而sub_23F60,又在文件入口处存在,也就是main函数

某通用设备的二进制文件RCE逆向分析
某通用设备的二进制文件RCE逆向分析


所以可得,这俩个参数以post方式进行传参


POST /main/deal

addr_value=219&pingname=|whoami;
某通用设备的二进制文件RCE逆向分析

效果图如下

某通用设备的二进制文件RCE逆向分析

某通用设备的二进制文件RCE逆向分析


原文始发于微信公众号(轩公子谈技术):某通用设备的二进制文件RCE逆向分析

版权声明:admin 发表于 2024年5月11日 下午3:57。
转载请注明:某通用设备的二进制文件RCE逆向分析 | CTF导航

相关文章