基于 LIEF 的 Python 安全检测工具,输出结果丰富。

作者:Sec-Labs | 发布时间:

项目地址

https://github.com/Wenzel/checksec.py

checksec.py

Checksec工具的Python实现,基于LIEF的输出结果丰富

演示

 

ad1a1b7183175920

目录

概述

这是一个简单的工具,用于验证二进制文件的安全属性。

编译器可以启用这些属性来强制执行可执行文件的安全性,并减少漏洞利用。但是,在整个系统上应用它们可能很有挑战性。

检查您的 Linux 发行版/Windows 版本提供给您的安全级别!

支持的格式:

  • ELF
  • PE
  • Mach-O

基于:

  • Rich:美观的终端输出格式
  • LIEF:跨平台库,用于解析、修改和抽象 ELF、PE 和 Mach-O 格式

要求

设置

Windows

您可以在最新的 Github releases 中找到 checksec.exe

Linux

pip install checksec.py

用法

checksec <file_or_directory>...

查看 --help 获取更多选项(JSON 输出递归遍历工作线程数量 等)

常见问题解答

1️⃣ checksec.pychecksec.sh 有什么区别?

  checksec.py checksec.sh
跨平台支持
分布式工作负载
扫描文件
扫描目录
递归扫描目录
指定 libc 路径
扫描进程
扫描进程库
扫描内核配置
输出 Cli
输出 JSON
输出 CSV
输出 XML
ELF: Relro
ELF: Canary
ELF: NX
ELF: PIE
ELF: RPATH
ELF: RUNPATH
ELF: Symbols
ELF: Fortify
ELF: Fortified
ELF: Fortifable
ELF: Fortify Score

2️⃣ checksec.pywinchecksec 有什么区别?

  checksec.py winchecksec
跨平台支持
分布式工作负载
扫描文件
扫描目录
递归扫描目录
输出 CLI
输出 JSON
PE: ASLR - DYNAMIC_BASE
PE: ASLR - HIGHENTROPYVA
PE: INTEGRITYCHECK
PE: Authenticode signed
PE: DEP
PE: Manifest Isolation
PE: SEH
PE: SafeSEH
PE: Control Flow Guard
PE: Return Flow Guard
PE: Stack Cookie

3️⃣ checksec 在某些巨大的二进制文件上运行缓慢!发生了什么?

checksec.py 依赖于 LIEF 库来解析 PE/ELF/MachO 格式。

➡️该库目前不提供按需解析,因此它会解析和获取不必要的数据。

➡️获取符号可能很慢(例如:pandoc118M+300 000 个符号,+2m 20sec)。参见此 issue

4️⃣ 我发送了 CTRL-C 以取消 checksec.py 处理,但应用程序不想退出

checksec.py 使用多个进程工作线程来并行执行和处理二进制文件。当接收到 CRTL-C 时,checksec.py等待它们停止。

有时,这不起作用,我目前不知道为什么。你可以在之后杀死剩余的 Python 工作线程。

 
标签:工具分享, 扫描工具