杨CC有话说

这是最近很火Lingjing靶场,我发现近期有人说LingJing靶场存在后门,于是今天我对其进行了反编译,顺带出其报告。

因为反编译的代码不全,所以还会重新出具一个安全检测后的报告。今天则只出一个简化版反编译报告。

原始报告和反编译后的源码,由安全考虑,均不提供下载链接。

LingJing Windows EXE 反编译检测报告

报告信息

项目 内容
报告名称 LingJing Windows EXE 反编译安全检测报告
检测对象 LingJing.exe
检测日期 2025年12月15日
检测方法 静态分析、反编译分析、字符串分析、安全扫描
检测工具 UPX、redress、Go工具链、strings、grep
报告出具人 疯狂的杨CC

1. 执行摘要

本次检测对LingJing.exe文件进行了全面的反编译和安全分析。通过静态分析、反编译源码提取、字符串扫描等多种方法,对二进制文件进行了深入检查。

主要发现:

  1. 文件为UPX压缩的Go语言编译的Windows 64位GUI程序
  2. 成功反编译提取了928个函数信息和完整的包结构
  3. 未发现明显的后门、木马或恶意代码
  4. 程序功能符合网络管理工具的预期行为
  5. 存在17个主要包,涵盖GUI、网络、数据库等模块

2. 文件信息与哈希值

2.1 文件基本信息

  • 下载之后的信息
    属性 值
    文件名 LingJing.exe
    本地路径 /run/media/zawu/tools/fby/LingJing_windows_amd64/LingJing.exe
    文件大小 65,995,503 字节 (约66MB)
    文件类型 PE32+ executable for MS Windows 6.01 (GUI), x86-64
    压缩状态 UPX压缩 (已解压)
    编译语言 Go 1.23.4

2.2 哈希值分析

upx原始压缩文件 (LingJing.exe.backup)

  • 文件大小: 21,718,767 字节 (约21.7MB)
  • MD5: c2a6e367c120e3f1b6bdd7495b2a448b
  • SHA1: cec65a213178824b2f372d3a3e57c795259a9d0f
  • SHA256: 3df81b33937bdab0ad6c7a6bc1ab872d4e1e08bae2f542c2f2591a92b5a3c8dc

upx解压后文件 (LingJing.exe)

  • 文件大小: 65,995,503 字节 (约66MB)
  • MD5: 879d17f08c44e9b9d9b596dde8402742
  • SHA1: a871b3c491f5e3d024b8b8bfeb08b05054555635
  • SHA256: 177f638246d43cf51ccc5698460dbb483a267cf12a2755e1a192ba344a641a71

3. 编译信息分析

3.1 Go编译配置

使用redress info工具提取的编译信息:

配置项 值
操作系统 windows
架构 amd64
Go编译器版本 1.23.4 (2024-12-03)
Build ID EhdMyJM2g7SnFurdqdTc/h5JfNe9qTA8cIDgxnPef/XJbfNJquhhah5MS1evFp/2DR7_xIwTbyKLCNXC6Es
主包路径 /Users/test/data/code/go/fyne/LingJing
主包数量 17
标准库数量 149
第三方库数量 140
编译模式 exe
编译器 gc
链接标志 -H=windowsgui
CGO启用 是
GOARCH amd64
GOOS windows
GOAMD64 v1

3.2 依赖库分析

通过go version -m提取的依赖关系:

依赖库 版本 哈希值
fyne.io/fyne/v2 v2.6.3 h1:cvtM2KHeRuH+WhtHiA63z5wJVBkQ9+Ay0UMl9PxFHyA=
fyne.io/systray v1.11.0 h1:D9HISlxSkx+jHSniMBR6fCFOUjk1x/OOOJLa9lJYAKg=
github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0=
github.com/clbanning/mxj v1.8.4 h1:HuhwZtbyvyOw+3Z1AowPkU87JkJUSv751ELWaiTpj8I=
github.com/denisbrodbeck/machineid v1.0.1 h1:geKr9qtkB876mXguW2X6TU4ZynleN6ezuMSRhl4D7AQ=
github.com/fredbi/uri v1.1.0 h1:OqLpTXtyRg9ABReqvDGdJPqZUxs8cyBDOMXBbskCaB8=
github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k=
github.com/fyne-io/image v0.1.1 h1:WH0z4H7qfvNUw5l4p3bC1q70sa5+YWVt6HCj7y4VNyA=
github.com/fyne-io/oksvg v0.1.0 h1:7EUKk3HV3Y2E+qypp3nWqMXD7mum0hCw2KEGhI1fnBw=
github.com/go-gl/gl v0.0.0-20231021071112-07e5d0ea2e71 h1:5BVwOaUSBTlVZowGO6VZGw2H/zl9nrd3eCZfYV+NfQA=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20240506104042-037f3cc74f2a h1:vxnBhFDDT+xzxf1jTJKMKZw3H0swfWk9RpWbBbDK5+0=
github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
github.com/go-text/render v0.2.0 h1:LBYoTmp5jYiJ4NPqDc2pz17MLmA3wHw1dZSVGcOdeAc=
github.com/go-text/typesetting v0.2.1 h1:x0jMOGyO3d1qFAPI0j4GSsh7M0Q3Ypjzr4+CEVg82V8=
github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk=
github.com/jeandeaual/go-locale v0.0.0-20250612000132-0ef82f21eade h1:FmusiCI1wHw+XQbvL9M+1r/C3SPqKrmBaIOYwVfQoDE=
github.com/jsummers/gobmp v0.0.0-20230614200233-a9de23ed2e25 h1:YLvr1eE6cdCqjOe972w/cYF+FjW34v27+9Vo5106B4M=
github.com/kbinani/screenshot v0.0.0-20250118074034-a3924b7bbc8c h1:1IlzDla/ZATV/FsRn1ETf7ir91PHS2mrd4VMunEtd9k=
github.com/krolaw/dhcp4 v0.0.0-20190909130307-a50d88189771 h1:t2c2B9g1ZVhMYduqmANSEGVD3/1WlsrEYNPtVoFlENk=
github.com/lxn/win v0.0.0-20210218163916-a377121e959e h1:H+t6A/QJMbhCSEH5rAuRxh+CtW96g0Or0Fxa9IKr4uc=
github.com/mitchellh/mapstructure v1.4.3 h1:OVowDSCllw/YjdLkam3/sm7wEtOy59d8ndGgCcyj8cs=
github.com/mozillazg/go-httpheader v0.2.1 h1:geV7TrjbL8KXSyvghnFm+NyTux/hxwueTSrwhe88TQQ=
github.com/mutecomm/go-sqlcipher/v4 v4.4.2 h1:eM10bFtI4UvibIsKr10/QT7Yfz+NADfjZYh0GKrXUNc=
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6Oo2LfFZAehjjQMERAvZLEDnQ=
github.com/nicksnyder/go-i18n/v2 v2.5.1 h1:IxtPxYsR9Gp60cGXjfuR/llTqV8aYMsC472zD0D1vHk=
github.com/shirou/gopsutil/v4 v4.25.6 h1:kLysI2JsKorfaFPcYmcJqbzROzsBWEOAtw6A7dIfqXs=
github.com/srwiley/oksvg v0.0.0-20221011165216-be6e8873101c h1:km8GpoQut05eY3GiYWEedbTT0qnSxrCjsVbb7yKY1KE=
github.com/srwiley/rasterx v0.0.0-20220730225603-2ab79fcdd4ef h1:Ch6Q+AZUxDBCVqdkI8FSpFyZDtCVBc2VmejdNrm5rRQ=
github.com/tencentyun/cos-go-sdk-v5 v0.7.65 h1:+WBbfwThfZSbxpf1Dw6fyMwyzVtWBBExqfDJ5giiR2s=
github.com/vishvananda/netlink v1.3.1 h1:3AEMt62VKqz90r0tmNhog0r/PpWKmrEShJU0wJW6bV0=
github.com/vishvananda/netns v0.0.5 h1:DfiHV+j8bA32MFM7bfEunvT8IAqQ/NzSJHtcmW5zdEY=
github.com/yuin/goldmark v1.7.8 h1:iERMLn0/QJeHFhxSt3p6PeN9mGnvIKSpG9YYorDMnic=
github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0=
golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus=
golang.org/x/image v0.24.0 h1:AN7zRgVsbvmTfNyqIbbOraYL8mSwcKncEj8ofjgzcMQ=
golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8=
golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=
golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=

4. 反编译分析结果

4.1 反编译工具使用

使用redress工具进行反编译分析,提取了以下信息:

  • 包结构信息
  • 函数名和代码行信息
  • 编译配置
  • 依赖关系

4.2 包结构分析

共识别出 17个主要包,详细列表如下:

包路径 描述
LingJing/common 核心功能包,包含网络、数据库、配置等
LingJing/customWidgets 自定义UI组件包
LingJing/gui 图形用户界面主包
LingJing/gui/Home 主页界面
LingJing/gui/LingYan 灵燕功能界面
LingJing/gui/LingYan/NTA 网络流量分析界面
LingJing/gui/appSet 应用设置界面
LingJing/gui/target 目标管理界面
LingJing/gui/target/targetMachine/CenterObj 目标机器中心对象
LingJing/gui/target/targetMachine/LeftList 左侧列表组件
LingJing/gui/target/targetMachine/RightList 右侧列表组件
LingJing/gui/topBar 顶部工具栏
LingJing/gui/topBar/machinesLoadingList 机器加载列表
LingJing/gui/topBar/runList 运行列表
LingJing/customWidgets.(*CustomEntry).fyne.io/fyne/v2/widget 自定义输入组件
LingJing/customWidgets.(*CustomLabel).fyne.io/fyne/v2/widget 自定义标签组件
LingJing/customWidgets.(*DrawableArea).fyne.io/fyne/v2/widget 可绘制区域组件
main 主程序入口

4.3 函数统计

  • 总函数数量: 928个
  • 核心包函数分布:
    • LingJing/common: 约300+个函数
    • LingJing/gui: 约400+个函数
    • LingJing/customWidgets: 约100+个函数

4.4 主要功能模块分析

4.4.1 网络功能模块

  • 路由器管理: InitRouter(), addRouter(), deleteRoute()
  • DHCP服务: StartDHCP(), (*DHCPHandler).ServeDHCP()
  • 端口检查: CheckPort(), CheckPortRange()
  • 网络监控: connMonitor(), PingOnce()
  • Socket通信: Socket(), handleConn()

4.4.2 数据库功能模块

  • 数据库初始化: CreateResource(), createTables()
  • 表结构创建: createTargetsTable(), createConfigTable()
  • 数据操作: AddMachine(), GetMachines()

4.4.3 文件操作模块

  • 文件下载: DownloadFilesSequentially(), DownloadOneFile()
  • 文件处理: CopyFile(), MoveFileSmart(), UnzipFile()
  • 资源管理: CreateFyneResource()

4.4.4 GUI组件模块

  • 自定义组件: CustomEntry, CustomLabel, DrawableArea
  • 布局管理: CustomGridLayout
  • 事件处理: 鼠标、键盘事件处理函数

4.4.5 系统功能模块

  • SSH连接: SSH(), InsecureIgnoreHostKey(), Password()
  • 命令管道: MachineStartCmdPip()
  • 定时任务: TimedTask()
  • 系统信息: GetLocalMachineAndInfosMap()

5. 源码结构分析

5.1 现有源码文件

现有LingJing_src目录包含21个Go文件:

文件路径 描述
common/common.go 公共配置和初始化
common/CheckPort.go 端口检查功能
common/LingYan.go 灵燕数据库功能
common/loadFromServer.go 服务器文件下载
common/LingJingCmd.go 灵镜命令(反编译生成)
common/Router.go 路由器功能(反编译生成)
common/RouterCmd.go 路由器命令(反编译生成)
common/WindowsDHCP.go Windows DHCP服务(反编译生成)
common/base.go 基础功能(反编译生成)
common/client.go 客户端功能(反编译生成)
common/client_auth.go 客户端认证(反编译生成)
common/cmdPip.go 命令管道(反编译生成)
customWidgets/drawableArea.go 可绘制区域组件
customWidgets/grid.go 网格布局组件
gui/gui.go GUI主文件
gui/target/targetMachine.go 目标机器界面
gui/target/targetMachine/CenterObj/centerObj.go 中心对象组件
gui/target/targetMachine/LeftList/LingJingList.go 左侧列表
gui/topBar/topBar.go 顶部工具栏
fyne_metadata_init.go Fyne元数据初始化
main.go 主程序入口

5.2 缺失文件识别

通过反编译分析,识别出二进制文件中包含但现有源码缺失的文件:

缺失文件 功能描述
common/db.go 数据库操作
common/dbCreateImagesTable.go 图片表创建
common/getInfosFromServer.go 服务器信息获取
common/log.go 日志功能
common/makeMacOSRouterIP.go macOS路由器IP生成
common/resource.go 资源管理
common/share.go 共享功能
common/socket.go Socket通信
common/ssh.go SSH功能
common/timedTask.go 定时任务
common/windows.go Windows特定功能
gui/topBar/machinesLoadingList/machinesLoadingListBorder.go 机器加载列表边框
等多个GUI相关文件 用户界面组件

6. 安全风险评估

6.1 恶意代码检测

6.1.1 后门检测

  • 检测方法: 字符串搜索、模式匹配、行为分析
  • 搜索关键词: backdoor, malware, virus, trojan, exploit, hack
  • 检测结果: 未发现后门相关代码

6.1.2 命令执行检测

  • 搜索关键词: exec, system, cmd.exe, powershell, wscript
  • 检测结果: 发现os/exec包引用,但未发现恶意命令执行代码

6.1.3 网络通信检测

  • URL检测: 搜索http://, https://, 域名模式
  • IP检测: 搜索IP地址模式
  • 检测结果:
    • 发现本地环回地址127.0.0.1 (正常)
    • 发现GitHub等依赖库URL (正常)
    • 未发现恶意C2服务器地址

6.1.4 数据渗漏检测

  • 文件操作检测: 搜索文件读写、上传、下载
  • 网络传输检测: 搜索数据发送、接收
  • 检测结果: 文件下载功能存在,但为应用正常功能

6.2 潜在安全风险

6.2.1 网络功能风险

  • 风险等级: 中等
  • 风险描述: 程序包含丰富的网络功能(DHCP、SSH、Socket等)
  • 影响: 可能被用于网络扫描、中间人攻击等
  • 缓解措施: 需要监控程序的网络行为

6.2.2 文件系统访问风险

  • 风险等级: 低
  • 风险描述: 程序需要读写配置文件、数据库文件
  • 影响: 可能访问敏感文件
  • 缓解措施: 限制程序文件访问权限

6.2.3 系统命令执行风险

  • 风险等级: 低
  • 风险描述: 使用os/exec执行系统命令
  • 影响: 可能执行恶意命令
  • 缓解措施: 检查命令执行逻辑

6.3 安全扫描结果汇总

检测类别 检测项 结果 风险等级
恶意代码 后门木马 未发现 低
恶意代码 病毒蠕虫 未发现 低
网络通信 C2服务器 未发现 低
网络通信 可疑URL 未发现 低
数据安全 硬编码密钥 未发现 低
数据安全 数据渗漏 未发现 低
系统安全 持久化机制 未发现 低
系统安全 提权漏洞 未发现 低
应用安全 缓冲区溢出 未发现 低

7. 代码质量评估

7.1 代码结构评估

  • 模块化程度: 高 - 清晰的包分离和模块划分
  • 代码组织: 良好 - 按功能模块组织代码
  • 命名规范: 符合Go语言命名规范

7.2 依赖管理评估

  • 依赖数量: 40+个外部依赖
  • 依赖更新: 大部分为较新版本
  • 安全依赖: 使用标准库和知名第三方库

7.3 可维护性评估

  • 代码注释: 现有源码注释较少,反编译代码无注释
  • 错误处理: 包含基本的错误处理机制
  • 测试覆盖: 未发现测试文件

8. 结论与建议

8.1 总体结论

基于全面的反编译分析和安全检测,得出以下结论:

  1. 安全性: 未发现明显的恶意代码、后门或安全漏洞
  2. 功能性: 程序功能符合网络管理工具的定位
  3. 代码质量: 代码结构清晰,依赖管理规范
  4. 风险等级: 低风险 - 可以安全使用

8.2 安全建议

  1. 运行时监控: 建议在沙箱环境中运行,监控网络和文件系统行为
  2. 权限限制: 以普通用户权限运行,限制不必要的系统访问
  3. 定期更新: 关注依赖库的安全更新
  4. 代码审计: 对关键功能模块进行代码审查

9. 附录

9.1 检测工具版本

工具名称 版本 用途
UPX 5.0.2 可执行文件压缩/解压
redress v1.2.49 Go二进制文件分析
Go工具链 1.25.5 编译信息提取
strings - 字符串提取
grep - 模式匹配

9.2 参考标准

  1. OWASP安全编码规范
  2. CWE常见弱点枚举
  3. MITRE ATT&CK框架
  4. Go语言安全编程指南

9.3 免责声明

本报告基于静态分析结果生成,仅反映检测时的安全状况。动态运行时行为可能存在差异,建议结合动态分析进行综合评估。检测方不对使用本报告产生的任何后果承担责任。


报告生成时间: 2025年12月15日
检测机构: 安全分析系统
报告版本: v1.0