
أداة جمع القطع الأثرية لأنظمة *nix
fennec هي أداة لجمع القطع الأثرية مكتوبة بلغة Rust تُستخدم أثناء الاستجابة للحوادث على الأنظمة المستندة إلى *nix. تتيح لك fennec كتابة ملف إعدادات يحدد كيفية جمع القطع الأثرية.
| تفاصيل نظام التشغيل | المعمارية | نجاح؟ | التفاصيل |
|---|---|---|---|
| Ubuntu 20.04.3 LTS | x86_64 | ✅ | |
| Ubuntu 19.04 | x86_64 | ✅ | |
| Ubuntu 18.04.6 LTS | x86_64 | ✅ | |
| Ubuntu 17.04 | x86_64 | ✅ | |
| Ubuntu 16.04.7 LTS | x86_64 | ✅ | |
| Ubuntu 15.10 | x86_64 | ✅ | |
| Ubuntu 14.04.6 LTS | x86_64 | ✅ | |
| Ubuntu 13.04 | x86_64 | ✅ | |
| Ubuntu 12.04.5 LTS | x86_64 | ✅ | |
| CentOS 8.4.2105 | x86_64 | ✅ | |
| CentOS 7.9.2009 | x86_64 | ✅ | |
| CentOS 6.10 | x86_64 | ✅ | |
| CentOS 5.11 | x86_64 | ❌ | يتطلب osquery مكتبة libc >= 2.12 |
| Ubuntu 20.04 | aarch64 | ✅ | |
| MacOS Monterey v12.0.1 | x86_64 | ✅ | ضبط الإعدادات مطلوب. إذا كانت لديك خبرة في القطع الأثرية في MacOS، فلا تتردد في المساهمة |
| Oracle Linux Server 7.9 | x86_64 | ✅ |
fennec 0.4.1 AbdulRhman Alfaifi [email protected] Aritfact collection tool for *nix systems
USAGE: fennec [OPTIONS]
OPTIONS: -c, --config Sets a custom config file (Embedded : true)
-o, --output <FILE>
Sets output file name [default: ABDULRHMAN-PC.zip]
-l, --log-level <LEVEL>
Sets the log level [default: info] [possible values: trace, debug, info, error]
-f, --log-file <FILE>
Sets the log file name [default: fennec.log]
-u, --upload-artifact <CONFIG>...
Upload configuration string. Supported Protocols:
* s3 : Upload artifact package to S3 bucket (ex. minio)
* Format :
s3://<ACCESS_KEY>:<SECRET_ACCESS_KEY>@(http|https)://<HOSTNAME>:<PORT>/<BUCKET_NAME>:<PATH>
* Example (minio): s3://minioadmin:minioadmin@http://192.168.100.190:9000/fennec:/
* aws3 : Upload artifact package to AWS S3 bucket
* Format : aws3://<ACCESS_KEY>:<SECRET_ACCESS_KEY>@<AWS_REGOIN>.<BUCKET_NAME>:<PATH>
* Example: aws3://AKIAXXX:[email protected]:/
* scp : Upload artifact package to a server using SCP protocol
* Format : scp://<USERNAME>:<PASSWORD>@<HOSTNAME>:<PORT>:<PATH>
* Example: scp://testusername:[email protected]:22:/dev/shm
-q, --quiet
Do not print logs to stdout
-t, --timeout <SEC>
Sets osquery queries timeout in seconds [default: 60]
-h, --help
Print help information
--non-root
Run Fennec with non root permisions. This isn't recommended, most artifacts require root
permissions
--osquery-path <PATH>
Sets osquery path, if osquery is embedded it will be writen to this path otherwise the
path will be used to spawn osquery instance (Embedded : true) [default: ./osqueryd]
--output-format <FORMAT>
Sets output format [default: jsonl] [possible values: jsonl, csv, kjson]
--show-config
Show the embedded configuration file
--show-embedded
Show the embedded files metadata
-V, --version
Print version information
* `-c`, `--config` : استخدم ملف التكوين المحدد بدلاً من التكوين المضمن
* `-f`, `--log-file` : تغيير الاسم الافتراضي لملف السجل (الافتراضي: `fennec.log`)
* `-h`, `--help` : طباعة رسالة المساعدة
* `-l`, `--log-level` : تغيير مستوى السجل الافتراضي (الافتراضي: `info`)
* `-o`, `--output` : تغيير اسم ملف الإخراج الافتراضي لملف zip (الافتراضي: `{HOSTNAME}.zip`، حيث اسم المضيف هو اسم مضيف الجهاز الذي تم تقييمه وقت التشغيل)
* `--osquery-path` : المسار إلى الملف التنفيذي لـ osquery، سيتم استخدام هذه القيمة بناءً على هذه الشروط:
* إذا كان ثنائي osquery مضمنًا في `fennec`، فسيتم استخراجه ووضعه في `--osquery-path`
* إذا لم يكن osquery مضمنًا في `fennec`، فسيتم استخدام ثنائي osquery الموجود في المسار `--osquery-path`
* `--output-format` : اختر تنسيق الإخراج، التنسيقات المدعومة:
* jsonl : كائنات JSON مفصولة بأسطر جديدة (الافتراضي)
* csv: قيم مفصولة بفاصلة
* kjson: استخدم هذا التنسيق إذا كنت تريد رفع الملف الناتج إلى منصة تحليل [Kuiper](https://github.com/DFIRKuiper/Kuiper)
* `-q`, `--quiet` : لا تطبع السجلات إلى `stdout`
* `--non-root` : تشغيل Fennec بصلاحيات غير جذرية. افتراضيًا، يتطلب Fennec صلاحيات `root` وسيخرج برسالة خطأ إذا لم يكن جذرًا.
* `--show-config` : طباعة التكوين المضمن ثم الخروج
* `--show-embedded` : عرض الملفات المضمنة
* `-t`, `--timeout` : تعيين المهلة بالثواني لكل استعلام osquery في نوع الأداة الاستعلامية
* `-u`, `--upload-artifact` : رفع حزمة الأداة إلى خادم بعيد. البروتوكولات المدعومة:
* `s3` : رفع حزمة الأداة إلى دلو S3
* `الصيغة` : s3://<ACCESS_KEY>:<SECRET_ACCESS_KEY>@(http|https)://<HOSTNAME>:<PORT>/<BUCKET_NAME>:<PATH>
* `مثال`: s3://minioadmin:minioadmin@http://192.168.100.190:9000/fennec:/
* `aws3` : رفع حزمة الأداة إلى دلو AWS S3
* `الصيغة` : aws3://<ACCESS_KEY>:<SECRET_ACCESS_KEY>@<AWS_REGOIN>.<BUCKET_NAME>:<PATH>
* `مثال`: aws3://AKIAXXXXXXXXXXXXXXXXX:[email protected]:/
* `scp` : رفع حزمة الأداة إلى خادم باستخدام بروتوكول SCP
* `الصيغة` : scp://`<USERNAME>`:`<PASSWORD>`@`<HOSTNAME>`:`<PORT>`:`<PATH>`
* `مثال`: scp://testusername:[email protected]:22:/dev/shm
* `-V`, `--version` : طباعة إصدار `fennec` ثم الخروج
## التجميع مع التبعيات 👨💻
يعتمد fennec على `osquery` لتشغيل الأدوات من نوع `query`. يحتوي الدليل المسمى `deps` على الملف الذي سيتم تضمينه في الثنائي اعتمادًا على نظام التشغيل والهندسة المستهدفة، قبل التجميع اتبع الخطوات التالية:
* قم بتعديل ملف التكوين `deps/<TARGET_OS>/fennec.yaml` حسب الحاجة
* قم ببناء الثنائي باستخدام أحد الأوامر التالية: