
Local server for IDA Lumina feature
IDA Lumina 功能的离线服务器 POC。
更多详情请参阅 https://www.synacktiv.com/publications/investigating-ida-lumina-feature.html
下载项目并运行 python lumina/setup.py(或 pip install .)。
服务器也可以作为独立脚本使用。 不过,lumina_server 命令不会注册到 PATH 中。你需要手动使用 python3 lumina/lumina_server.py 运行。
如果您不需要使用 TLS,此步骤是可选的。您需要修改 ida.cfg 中的 LUMINA_TLS = NO。
使用以下命令行之一生成新的 ROOT CA 证书和密钥(您可以移除 -nodes 选项来设置密码短语,但请记住,您需要将密码短语参数传递给服务器脚本):
# sha256WithRSAEncryption
openssl req -nodes -x509 -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -sha256 -keyout luminaRootCAKey.pem -out luminaRootCAK.pem -days 365 -subj '/CN=www.fakerays.com/O=Fake Hexrays/C=XX'
# ecdsa-with-SHA256 (prime256v1)
openssl req -nodes -x509 -newkey rsa:4096 -sha512 -keyout luminaRootCAKey.pem -out luminaRootCA.pem -days 365 -subj '/CN=www.fakerays.com/O=Fake Hexrays/C=XX'
将 CA 证书(luminaRootCA.pem)复制到 IDA 配置目录并命名为 hexrays.crt:
%APPDATA%\Hex-Rays\IDA Pro\hexrays.crt$HOME/.idapro/hexrays.crt例如(Linux):cp luminaRootCA.pem $HOME/.idapro/hexrays.crt
修改 IDA 配置文件(cfg/ida.cfg),可以在安装目录或(推荐的)用户目录下进行:
%APPDATA%\Hex-Rays\IDA Pro\cfg\ida.cfg$HOME/.idapro/hexrays.crt// Lumina related parameters
LUMINA_HOST = "localhost"; // Lumina server url (default : "lumina.hex-rays.com")
// warning: keep the the semicolon
LUMINA_MIN_FUNC_SIZE = 32 // default function size : 32
LUMINA_PORT = 4443 // default port : 443
LUMINA_TLS = YES // enable TLS (default : YES)
用法:
usage: lumina_server [-h] [-i IP] [-p PORT] [-c CERT] [-k CERT_KEY]
[-l {NOTSET,DEBUG,INFO,WARNING}]
db
positional arguments:
db database file
optional arguments:
-h, --help show this help message and exit
-i IP, --ip IP listening ip address (default: 127.0.0.1
-p PORT, --port PORT listening port (default: 4443
-c CERT, --cert CERT proxy certfile (no cert means TLS OFF).
-k CERT_KEY, --key CERT_KEY
certificate private key
-l {NOTSET,DEBUG,INFO,WARNING}, --log {NOTSET,DEBUG,INFO,WARNING}
log level bases on python logging value (default:info)
示例:
lumina_server db.json --cert luminaRootCA.pem --key luminaRootCAKey.pem --ip 127.0.0.1 --port 4443 --log DEBUG
启动服务器,使用一个 idb 数据库(重新)启动 IDA,并通过 Lumina 推送您的第一个函数。按 ctrl-c 终止服务器并保存数据库。
重要提示:请记住,数据库仅在服务器退出(ctrl-c)时保存或更新。