
IDA Lumina सुविधा के लिए स्थानीय सर्वर
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) सहेजा या अद्यतन किया जाता है.