Skip to content

Releases: e-m-b-a/emba

EMBA v2.0.3 - No more legacy

Choose a tag to compare

@m-1-k-3 m-1-k-3 released this 21 Jul 08:29
2bc2b80

All of you probably know this kind of legacy servers where you are not able to connect anymore:

image

As your modern OpenSSL version does not ship the needed code anymore you can't do it!

But .... The legacy does not hit EMBA anymore. We connect and find vulns :) (see #2023)

image

Another highlight is the upcoming Hacker Summer Camp in Las Vegas. You can join @BenediktMKuehne for a Black Hat Arsenal session on the Firmware analysis platform EMBArk and @m-1-k-3 on an Arsenal Lab session on EMBA. Check it out and say Hi :)

Beside all of this we did some further updates and bugfixes in a lot of different areas:

  • Thanks to @ahmedboufares we have more csv log output of our modules
  • Thanks to @cn0xroot we have a more stable user-mode emulation module
  • We have also started to implement unit tests (based on bats) here #2044
  • A big cleanup round was also started to further improve code quality for the future here #2046
  • Lots of bugfixes, cleanups and improvements across different modules.
  • Continued database updates (CISA KEV, Metasploit, Snyk, kernel/GCC/version DBs, etc.) to keep detection fresh.

Beside your ongoing support with feedback, testing, working on issues and spreading EMBA you can now also support EMBA as a sponsor.
image

Check it out here and start being an essential part of the future of EMBA.
Breaking News: Check also our new shop for EMBA merch here.

image


It is always a pleasure to welcome new contributors to EMBA. This time we welcome:

Besides all our newcomers we also want to thank all our regular contributors!

image

We had never before so many bug reports, contributors and helping hands! Big kudos to all of you!


How can you reach us and stay up to date? Just take one of these channels (or all):


Now, start your fresh Kali Linux (put enough CPU power and RAM into it) and install EMBA:

└─$ git clone https://github.com/e-m-b-a/emba.git
└─$ cd emba 
└─$ sudo ./installer.sh -d

This will install all pre-requisites, including the docker base image and the CVE database, which will need some bandwith, harddrive space and time.

Afterwards, you are ready to analyse your first firmware with EMBA:

└─$ sudo ./emba -l ~/log -f ~/firmware -p ./scan-profiles/quick-scan.emba

For updating your outdated EMBA installation, please check the update section in our wiki.

What's Changed

New Contributors

Full Changelog: v2.0.2-big-2k...v2.0.3-legacy-time

EMBA - v2.0.2 - Party the big 2k

Choose a tag to compare

@m-1-k-3 m-1-k-3 released this 08 Jun 06:59
400a9a9

We have something to celebrate with you! We did it ... The big 2000 is in the books right now:

EMBA is now for 6 years in the wild and we are proud that we did a few things:

  • Automated firmware security analysis (including SBOM and AI) is available for everyone
  • Nearly 3500 github stars
  • Nearly 100 shoutouts in papers, videos, articles, talks and so on - see here
  • We tried a few things in this timeframe. So we ...
    • ... were on 13 security conferences - kick me
    • ... did a podcast - check it out here
    • ... wrote multiple articles - one for you
    • ... organised multiple cooperations with universities around EMBA and created EMBArk, the firmware analysis environment for teams with collaboration support and, and, and
  • We bumped 24 (now 25) releases to the world - check it out here
  • 2000 Github pull requests/issues/discussions - drink a beer, coffee or whatelse with us

Thank you for supporting, helping, coding, reporting, hacking, challenging, using EMBA.


The big news for this release is that we did a complete rework of all our AI integration and you do not need to pay for tokens anymore.

With our switch to LocalAI it is now possible to use AI integration with your local hardware and no more token fears anymore.

Check the following screenshots of the improved AI integration:

image

The AI module shows and links all the AI results and the original module results are easily rechable:

image

The original analysis module also links to the related AI results:

image

And, finalle the AI results with an overview of the source file, some improvements and a security overview with security rating:

image

For further details and a walkthrough the setup check the wiki

This beauty is not alone and we did some further updates and bugfixes in a lot of different areas:

  • Thanks to @atharva80 we have a new extraction module P26
  • Thanks to @Jumpforce we have improved documentation for multiple modules
  • Lots of bugfixes, cleanups and improvements across different modules.
  • Continued database updates (CISA KEV, Metasploit, Snyk, kernel/GCC/version DBs, etc.) to keep detection fresh.

Beside your ongoing support with feedback, testing, working on issues and spreading EMBA you can now also support EMBA as a sponsor.
image

Check it out here and start being an essential part of the future of EMBA.
Breaking News: Check also our new shop for EMBA merch here.

image


It is always a pleasure to welcome new contributors to EMBA. This time we welcome:

Besides all our newcomers we also want to thank all our regular contributors!

image

We had never before so many bug reports, contributors and helping hands! Big kudos to all of you!


How can you reach us and stay up to date? Just take one of these channels (or all):


Now, start your fresh Kali Linux (put enough CPU power and RAM into it) and install EMBA:

└─$ git clone https://github.com/e-m-b-a/emba.git
└─$ cd emba 
└─$ sudo ./installer.sh -d

This will install all pre-requisites, including the docker base image and the CVE database, which will need some bandwith, harddrive space and time.

Afterwards, you are ready to analyse your first firmware with EMBA:

└─$ sudo ./emba -l ~/log -f ~/firmware -p ./scan-profiles/quick-scan.emba

For updating your outdated EMBA installation, please check the update section in our wiki.

What's Changed

  • Snyk database update by @github-actions[bot] in #1971
  • Metasploit database update by @github-actions[bot] in #1970
  • Linux kernel version database update by @github-actions[bot] in #1969
  • GCC version database update by @github-actions[bot] in #1968
  • CISA known exploited database update by @github-actions[bot] in #1967
  • Add latest news section to README by @m-1-k-3 in #1972
  • Improve web report/fix map generator by @m-1-k-3 in #1973
  • docs update: fixed second level headings; UTF-8 support by @Jumpforce in #1980
  • Adding pod documentation to F14 by @Jumpforce in #1981
  • Add P26 S-Record extractor module and srecord dependency by @atharva80 in #1982
  • Rework EMBA AI integration by @m-1-k-3 in #1988
  • Error log in web reporter by @m-1-k-3 in #1999
  • bump v2.0.2 by @m-1-k-3 in #2000

New Contributors

Full Changelog: v2.0.1-interactor...v2.0.2-big-2k

EMBA - v2.0.1 - Interactor

Choose a tag to compare

@m-1-k-3 m-1-k-3 released this 30 Apr 13:01
a1dacfb

The highlight of this release is the all new s130 module for generating a nice and interactive dependency map:
image

image

For further details check the wiki

Beside this beauty we did some further updates and bugfixes in a lot of different areas:

  • Lots of bugfixes and cleanups across modules and installers.
  • Continued database updates (CISA KEV, Metasploit, Snyk, kernel/GCC/version DBs, etc.) to keep detection fresh.
  • More robustness in installer / docker workflows and internal checks.

Beside your ongoing support with feedback, testing, working on issues and spreading EMBA you can now also support EMBA as a sponsor.
image

Check it out here and start being an essential part of the future of EMBA.
Breaking News: Check also our new shop for EMBA merch here.

image


It is always a pleasure to welcome new contributors to EMBA. This time we welcome:

  • @migus-rs made their first contribution in #1924
  • @Spenc3rB made their first contribution in #1944

Besides all our newcomers we also want to thank the other, regular contributors!

image

We had never before so many bug reports, contributors and helping hands! Big kudos to all of you!


How can you reach us and stay up to date? Just take one of these channels (or all):


Now, start your fresh Kali Linux (put enough CPU power and RAM into it) and install EMBA:

└─$ git clone https://github.com/e-m-b-a/emba.git
└─$ cd emba 
└─$ sudo ./installer.sh -d

This will install all pre-requisites, including the docker base image and the CVE database, which will need some bandwith, harddrive space and time.

Afterwards, you are ready to analyse your first firmware with EMBA:

└─$ sudo ./emba -l ~/log -f ~/firmware -p ./scan-profiles/quick-scan.emba

For updating your outdated EMBA installation, please check the update section in our wiki.

What's Changed

  • CISA known exploited database update by @github-actions[bot] in #1833
  • Linux kernel version database update by @github-actions[bot] in #1834
  • Metasploit database update by @github-actions[bot] in #1835
  • Snyk database update by @github-actions[bot] in #1836
  • Snyk database update by @github-actions[bot] in #1839
  • CISA known exploited database update by @github-actions[bot] in #1838
  • Metasploit database update by @github-actions[bot] in #1842
  • Linux kernel version database update by @github-actions[bot] in #1841
  • CISA known exploited database update by @github-actions[bot] in #1840
  • Snyk database update by @github-actions[bot] in #1843
  • Snyk database update by @github-actions[bot] in #1858
  • Metasploit database update by @github-actions[bot] in #1857
  • Linux kernel version database update by @github-actions[bot] in #1856
  • CISA known exploited database update by @github-actions[bot] in #1855
  • Metasploit database update by @github-actions[bot] in #1862
  • Linux kernel version database update by @github-actions[bot] in #1861
  • CISA known exploited database update by @github-actions[bot] in #1860
  • bump base image to v2.0.0a by @m-1-k-3 in #1866
  • cve_cnt_fix_f50 by @m-1-k-3 in #1865
  • fix #1846 by @m-1-k-3 in #1864
  • Snyk database update by @github-actions[bot] in #1871
  • Metasploit database update by @github-actions[bot] in #1870
  • Linux kernel version database update by @github-actions[bot] in #1869
  • CISA known exploited database update by @github-actions[bot] in #1868
  • #1863 - f17 workaround by @m-1-k-3 in #1867
  • opengrep / json fix by @m-1-k-3 in #1873
  • Metasploit database update by @github-actions[bot] in #1876
  • CISA known exploited database update by @github-actions[bot] in #1874
  • Linux kernel version database update by @github-actions[bot] in #1875
  • bump base image by @m-1-k-3 in #1878
  • update codeql to v4 by @m-1-k-3 in #1879
  • Improve online checking by @m-1-k-3 in #1880
  • Metasploit database update by @github-actions[bot] in #1884
  • Linux kernel version database update by @github-actions[bot] in #1883
  • CISA known exploited database update by @github-actions[bot] in #1882
  • Snyk database update by @github-actions[bot] in #1877
  • Snyk database update by @github-actions[bot] in #1888
  • Metasploit database update by @github-actions[bot] in #1887
  • Linux kernel version database update by @github-actions[bot] in #1886
  • CISA known exploited database update by @github-actions[bot] in #1885
  • Snyk database update by @github-actions[bot] in #1893
  • Metasploit database update by @github-actions[bot] in #1892
  • Linux kernel version database update by @github-actions[bot] in #1891
  • CISA known exploited database update by @github-actions[bot] in #1890
  • small cleanups by @m-1-k-3 in #1889
  • Snyk database update by @github-actions[bot] in #1898
  • Metasploit database update by @github-actions[bot] in #1897
  • Linux kernel version database update by @github-actions[bot] in #1896
  • CISA known exploited database update by @github-actions[bot] in #1895
  • CISA known exploited database update by @github-actions[bot] in #1900
  • Linux kernel version database update by @github-actions[bot] in #1901
  • Metasploit database update by @github-actions[bot] in #1902
  • Snyk database update by @github-actions[bot] in #1903
  • Metasploit database update by @github-actions[bot] in #1908
  • Linux kernel version database update by @github-actions[bot] in #1907
  • CISA known exploited database update by @github-actions[bot] in #1906
  • Fix docker build, enhance print_output, update projects.md by @m-1-k-3 in #1904
  • Snyk database update by @github-actions[bot] in #1913
  • Metasploit database update by @github-actions[bot] in #1912
  • Linux kernel version database update by @github-actions[bot] in #1911
  • CISA known exploited database update by @github-actions[bot] in #1910
  • Small bug fixes by @m-1-k-3 in #1914
  • Fix trivy workflow by @m-1-k-3 in #1915
  • Interactive firmware dependency map by @m-1-k-3 in #1917
  • Snyk database update by @github-actions[bot] in #1922
  • Metasploit database update by @github-actions[bot] in #1921
  • Linux kernel version database update by @github-actions[bot] in #1920
  • CISA known exploited database upd...
Read more

EMBA v2.0.0 - A brave new world of firmware analysis

Choose a tag to compare

@m-1-k-3 m-1-k-3 released this 16 Dec 10:59
a51d0cc

The last few weeks looked a bit more silent to the outside ... but cool things were going on in the background. Now, it is time to share all the great things we were working on ;)

image

In the early days of the EMBA firmware analysis environment one of our visions was a bit like the following:

EMBA should be an environment for fully automated detection and verification of known and unknown vulnerabilities in the product and firmware sector

The complete environment needs to be available as Open-Source which allows you to be part of it. Everyone should be able to perform high quality firmware security analysis, perform better IoT penetration tests, create the best SBOMs, scale and optimize firmware security research at all. Additionally, everyone should be able to modify, integrate and adopt EMBA easily (btw. this is the reason why we decided to use Bash), improve EMBA and being part of EMBA as user, tester, developer, feedback giver, idea generator, bug hunter ... you get the idea of Open-Source ;)

Vulnerability analysis in the field of firmware is a complex task, but with EMBA we have built some quite solid tooling and strategies over the years. This would not be possible without all the other awesome Open-Source projects out there!

EMBA is standing on the shoulders of giants. EMBA is standing on your shoulders! Thank you!

We were always fascinated by the idea of automatically starting up the device during an EMBA analysis in a controlled emulated environment. This means that we will be able to verify the already discovered results directly on the running firmware. We are not at the end of this journey yet, but it looks like this goal is not completely unrealistic anymore! In our opinion this release is a milestone to our ultimate goal of vulnerability detection and verification.

The road to version 2.0.0 was very rough and bumpy. Over the last few months we tested, tested, tested, looked at emulation output and improved every little piece a little bit! The goal we had in mind was ...

Let's bring our system emulation engine to the next level

After months of testing, building kernels (shoutout to @HoxhaEndri), analyzing, fixing, refactoring, testing again and screaming multiple times we are now quite happy with the results! Enjoy the following benchmark results of some of our firmware test sets:

  • FirmAE corpus

The original FirmAE corpus was created somewhere before 2020. So, today this corpus is quite outdated. Nevertheless, as the FirmAE project was already optimized to a 79% success rate with at least one network service available we were interested if we can further improve this high success rate. We took this corpus as an initial benchmark indicator to ensure our performance is not too bad. The following overview gives some insights into the results from all three system emulation frameworks: firmadyne, FirmAE and EMBA

image

While firmadyne was the initial framework and other environments like FirmAE and also EMBA were built around the same approach, it had only 16% of success rate. This means in only 16% of the firmware tests firmadyne was able to bring the firmware automatically to a state where network services were reachable. FirmAE improved this rate to 79% success rate. And now, EMBA got this rate to 95% success rate with at least one network service available. Altogether EMBA was able to identify more than 6000 network services on 1074 systems.


The Fraunhofer FKIE builds regularly the so-called Home Router Security Report (Check this report). We used these reports as inspiration and built some firmware sets over time:

  • Firmware Testset 2020

On a fresh and unoptimized firmware corpus we can get a better idea of more real-world results of the different engines. Neither firmadyne, nor FirmAE were trained on this firmware corpus. This resulted in significantly lower success rates:

image

The firmadyne results dropped down to 5% (from 16% on the FirmAE corpus) of success rate and the FirmAE rates dropped to 30% (from 79% on the FirmAE corpus). In comparison EMBA was able to double the FirmAE results and fully automatically emulate 87% of firmware to a state where at least one network service was available. In total EMBA detected more than 600 network services on 126 analyzed firmware images.

With the integration of the dependency track API it is now also possible to automatically transfer the generated SBOM into your dependency track instance and track all the vulnerabilities in a beautiful vulnerability and SBOM management tool:

image

image

This integration mechanism enhances your vulnerability handling and pentesting process massively and shows the flexibility of EMBA.


  • Firmware Testset 2022

The testset of the year 2022 looked a bit like a duplication of the results of 2020. Firmadyne got 2% of the tested firmware to a reachable network service, FirmAE already improved the state to 16% and EMBA climbed up to 76%. This time with around 400 reachable network services on 121 analyzed firmware images:

image


  • Firmware Testset 2024

Also on a more modern testset from 2024 the picture changed not that much. Firmadyne now has only 1% success rate, FirmAE improved the emulation results to 17% and EMBA stays quite stable at 77%:

image

These stable emulation results across a huge amount of different firmware images from different vendors with different architectures from different time periods highlight the magic of EMBA and give us a quite good base for further development.


Additionally, we want to take a look at the following highlights:

  • We have 7 new contributors! This is probably the most amazing thing in our release notes! Thanks for supporting EMBA with your effort!
  • EMBA got a new kernel for the system emulation engine. We moved away from the old 4.1 firmadyne/FirmAE based kernel to a much newer 4.14.336 LTS Kernel <- This is a very big thing, and you need to clap now ;) (see #1575 by @HoxhaEndri and the Kernel repo here)
  • Rocky Linux support by @jurrejelle <- Clap again
  • EMBA reached another milestone - 3000 Github stars and counting (If you like EMBA you should also give us a star!)
  • The EMBA book is available here
  • Copilot code check results integrated - part 1 of a lot
  • Improve internal docker base image verification checks
  • We build a whole new testing environment where we can run a huge number of EMBA tests in parallel <- This is so freaking cool. Good job @BenediktMKuehne
  • Improve SBOM generation with better Java support - see also #1765
  • Add Java decompilation and security analysis capabilities - see also #1828
  • Add integration of the dependency track API to automatically upload and further process the generated SBOM - see also the wiki
  • The launcher is now available - see the Wiki for further details
  • Thanks to the great work of @gluesmith2021 we were able to switch to NVDv2. With this step we are hopefully well prepared for the near future. Check the great work here ossf/cve-bin-tool#5265
  • We have a new web shop for EMBA merch here. Check it out and show your love for Open-Source firmware analysis with EMBA
  • So many new notes, videos, papers and blogposts that deal with EMBA or use EMBA as helper or benchmark tool somewhere in the Internet (with your ideas, your papers, using it and showing how hard we fail you make EMBA to what it is!) - check the Wiki section
  • Finally, we had the joy of being part of the beautiful TROOPERS25 security conference. The recording of our talk "SBOMs the right way" is now available here

Beside your ongoing support with feedback, testing, working on issues and spreading EMBA you can now also support EMBA as a sponsor.
image

Check it out here and start being an essential part of the future of EMBA.
Breaking News: Check also our new shop for EMBA merch here.

image


It is always a pleasure to welcome new...

Read more

EMBA v1.5.2 - SBOM - The next generation

Choose a tag to compare

@m-1-k-3 m-1-k-3 released this 11 Mar 08:38
fbe1811

We need to talk about serious SBOM tooling! The CRA will hit us all ... quite hard and very soon. Check the dates (from Wikipedia):

image

And check the SBOM requiremenents here:

image

To give it a bump there are also some penalties if you are not able to fulfill the CRA:

image

We have seen this coming a while ago and decided to move EMBA from the firmware analyzer to the SBOM tool (without loosing our main competence in firmware analysis). During the last months we have rewritten main parts of EMBA to ensure we can build SBOMs. The goal was not only to build some SBOM ... our goal was always to build SBOMs that provide more value, are reproducible and accurate. This also includes targets where no package manager is available but also systems with multiple package managers.

The following highlights happened somehow during the last weeks:

  • cve-bin-tool integration for module f17 resulted in a rewrite of f20 (which was completely removed for this release)
  • SBOM VEX support via module f17 (integrated into the main SBOM but also available seperated)
  • Further sources for SBOM generation are supported - Check our wiki
  • Improved S09 threading by @gluesmith2021
  • Massive bug fixing - more and more bug reports from our fellow EMBA users are coming in
  • More and more users are also helping in fixing stuff ... thank you for supporting EMBA
  • Improved the system check on EMBA startup resulted in speeding up EMBA
  • Improved our quality checking process of newly built EMBA base images
  • Integrated auto generation of kernel and gcc data into our github pipeline (available in config directory)

Beside your ongoing support with feedback, testing, working on issues and spreading EMBA you can now also support EMBA as a sponsor.
image

Check it out here and start being an essential part of the future of EMBA


It is always a pleasure to welcome new contributors to EMBA. This time we welcome:


How can you reach us and stay up to date? Just take one of these channels:


Now, start your fresh Kali Linux (put enough CPU power and RAM into it) and install EMBA:

└─$ git clone https://github.com/e-m-b-a/emba.git
└─$ cd emba 
└─$ sudo ./installer.sh -d

This will install all pre-requisites, including the docker base image and the CVE database, which will need some bandwith, harddrive space and time.

Afterwards, you are ready to analyse your first firmware with EMBA:

└─$ sudo ./emba -l ~/log -f ~/firmware -p ./scan-profiles/quick-scan.emba

For updating your oudated EMBA installation, please check the update section in our wiki.


What's Changed

  • Fix missing kernel config analysis because of lKCONFIG_EXTRACTED/KCON… by @chconil in #1415
  • Metasploit database update by @github-actions in #1417
  • CISA known exploited database update by @github-actions in #1418
  • Snyk database update by @github-actions in #1419
  • Snyk database update by @github-actions in #1421
  • CISA known exploited database update by @github-actions in #1420
  • Version identifier bugs / New binwalk with improved decryptor by @m-1-k-3 in #1416
  • fix s118 threading output / p99 csv by @m-1-k-3 in #1423
  • Snyk database update by @github-actions in #1427
  • Metasploit database update by @github-actions in #1424
  • CISA known exploited database update by @github-actions in #1425
  • Quick version identifier update by @github-actions in #1426
  • p65 rpm, fixes, cleanup by @m-1-k-3 in #1428
  • Quick version identifier update by @github-actions in #1432
  • CISA known exploited database update by @github-actions in #1431
  • Metasploit database update by @github-actions in #1430
  • add ipk module, fix rpm db module by @m-1-k-3 in #1429
  • remove grep log by @m-1-k-3 in #1437
  • fix x86 run script by @m-1-k-3 in #1435
  • update copyright 2025 by @m-1-k-3 in #1438
  • Metasploit database update by @github-actions in #1440
  • CISA known exploited database update by @github-actions in #1441
  • Snyk database update by @github-actions in #1442
  • Initial json logger by @m-1-k-3 in #1444
  • Little error handling updates by @m-1-k-3 in #1443
  • Snyk database update by @github-actions in #1447
  • CISA known exploited database update by @github-actions in #1446
  • Metasploit database update by @github-actions in #1445
  • Metasploit database update by @github-actions in #1449
  • CISA known exploited database update by @github-actions in #1450
  • Snyk database update by @github-actions in #1451
  • CISA known exploited database update by @github-actions in #1454
  • Snyk database update by @github-actions in #1455
  • Update grype.yml by @BenediktMKuehne in #1456
  • Manual update GCC and kernel release configs by @m-1-k-3 in #1457
  • Add gcc and linux workflow by @m-1-k-3 in #1460
  • Fix empty results from S09 because of "grep: Argument list too long" by @gluesmith2021 in #1461
  • CVE bin tool integration, VEX support -> F20 replacement by @m-1-k-3 in #1452
  • S09 unique bins by @m-1-k-3 in #1465
  • Snyk database update by @github-actions in #1469
  • CISA known exploited database update by @github-actions in #1468
  • Metasploit database update by @github-actions in #1467
  • Effective (and fast) S09 threading by @gluesmith2021 in #1462
  • Linux kernel version database update by @github-actions in #1470
  • SBOM: C/C++ Conan package management integration by @m-1-k-3 in #1473
  • disabled status-bar for embark by @BenediktMKuehne in #1459
  • Revert "disabled status-bar for embark" by @BenediktMKuehne in #1474
  • fix results from race condition in MD5 list generation by @gluesmith2021 in #1471
  • S115 #1476 by @m-1-k-3 in #1477
  • CISA known exploited database update by @github-actions in #1481
  • Metasploit database update by @github-actions in #1480
  • Snyk database update by @github-actions in #1482
  • Linux kernel version database update by @github-actions in #1479
  • little fixes and cleanup by @m-1-k-3 in #1483
  • Foscam extraction (P20) fixes by @m-1-k-3 in #1484
  • CVE update db by @m-1-k-3 in #1486
  • Metasploit database update by @github-actions in #1488
  • Snyk database update by @github-actions in #1491
  • Quick version identifier update by @github-actions in #1490
  • CISA known exploited database update by @github-actions in #1489
  • Linux kernel version database update by @github-actions in #1487
  • fixing bugs by @m-1-k-3 in #1492
  • SBOM cpan/php/python module...
Read more

EMBA v1.5.1 - Rise from the dead or Binwalk is back in town

Choose a tag to compare

@m-1-k-3 m-1-k-3 released this 17 Dec 12:11
7676311

Let's travel back in time ... In EMBA version 1.2.3 we started removing the old, rusty and unmaintained binwalk (v2) as main extractor from EMBA. See here. Big thanks to the great folks of unblob for jumping in with the most powerful extraction engine that is currently available.

And now fast forward to September 2024 ... Check this bomb

image

Great news! The new binwalk was not just a quick update, it was a complete rewritten version in rust! As usual we are trying to implement cool projects quite early to get hands on experience ... especially if these are the projects from our own IoT hacking beginnings years ago ;)

Fast forward to Dezember 2024 ...

As the new binwalk is damn fast, EMBA got it as initial extractor into the extraction pipeline! Check it out and let us and Craig know how it performs and how you like it. In this place it is also quite easy to see where binwalk is failing and Unblob is jumping in. Btw. this does not mean that Binwalk is better compared to Unblob! In most of our testcases it was faster but from the success rate Unblob is currently the most powerful extraction engine which automatically jumps in as 2nd extraction engine and is also used for our deep-extraction mode.

The best extraction frameworks together in EMBA ... this must be true love :-D

Beside this big update we have a bunch of other little and big things for you:

  • The SBOM engine which was introduced in version 1.5.0 got updates everywhere (new json engine, dependencies are now handled, untracked files can be included, improved package manager integration, optimised static version detection ...)
  • EMBA is getting more and more powerful and faster, faster, faster
  • Our huge code refactoring part 1 of X is finished
  • Regular docker base image update (new capa version, new Ghidra version, ...)
  • Kali Linux 2024.4 supported

Beside the technical updates, we were at BlackHat MEA with an Arsenal demo of EMBA. We talked to a lot of interested and interesting people and got some cool ideas for EMBA. You can check our Arsenal slides here and some pictures here


Beside your ongoing support with feedback, testing, working on issues and spreading EMBA you can now also support EMBA as a sponsor.
image

Check it out here and start being an essential part of the future of EMBA


It is always a pleasure to welcome new contributors to EMBA. This time we can welcome:


How can you reach us and stay up to date? Just take one of these channels:


Now, start your fresh Kali Linux (put enough CPU power and RAM into it) and install EMBA:

└─$ git clone https://github.com/e-m-b-a/emba.git
└─$ cd emba 
└─$ sudo ./installer.sh -d

This will install all pre-requisites, including the docker base image and the CVE database, which will need some bandwith, harddrive space and time.

Afterwards, you are ready to analyse your first firmware with EMBA:

└─$ sudo ./emba -l ~/log -f ~/firmware -p ./scan-profiles/quick-scan.emba

For updating your oudated EMBA installation, please check the update section in our wiki.


What's Changed

New Contributors

Full Changelog: v1.5.0-SBOMdorado...v1.5.1-rise-from-the-dead

EMBA v1.5.0 - SBOMdorado

Choose a tag to compare

@m-1-k-3 m-1-k-3 released this 22 Oct 11:07
c531641

The main goal of EMBA was always to get an accurate real life overview of the threats of a firmware image. While a few years ago the target audience were only pentesters, in today’s EMBA world also software developers, product owners and product security teams are using her to achieve different goals.

Over the time EMBA is grown and today she is not only a firmware analyzer anymore. Nowadays, EMBA is used to test every little piece of unknown binary. While the main interest stays on analyzing Linux based firmware, we have seen that EMBA is also used for UEFI, Windows binaries, Linux binaries, different Scripts, Android APKs and a lot of other stuff. Beside the high fragmentation of the targets under test, we have seen a growing demand for SBOM generation. EMBA includes some kind of basic SBOM support for ages, but as most of our analyzed binaries do not rely on some kind of package managers, we have not seen the demand for supporting them on a broad base - until today.

We have now adjusted our approach to support a broad range of package managers, packet types and further sources for getting an accurate SBOM out of every testing candidate.

Beside our binary analysis mechanism as the only source of truth, EMBA is now able to extract further details from the following sources:

  • Binaries and libraries
  • Linux Kernel
  • Kernel modules
  • Linux distribution identification
  • RPM package management system
  • Debian package management system
  • OpenWRT Package management system
  • Python PIP package management system
  • Python requirements files
  • RPM packages
  • DEB packages
  • FreeBSD pkg packages
  • Java archives
  • Alpine APK
  • Python poetry
  • Python wheel
  • Rust (cargo.lock)
  • Ruby (gem)
  • JavaScript - npm
  • Windows binary exif data
  • Windows binary extraction and analysis

Further details can be found in our wiki

Additionally, we did something more:

  • FLOSS interview - check it out here
  • Ubuntu 24.04 LTS support
  • Switching from docker-compose to docker compose
  • Bug fixing
  • Refactoring
  • Docker base image updates

Beside your ongoing support with feedback, testing, working on issues and spreading EMBA you can now also support EMBA as a sponsor.
image

A big kudos goes to to offchain-audit for his sponsoring and to n0x08 for his ongoing support.

Check it out here and start being an essential part of the future of EMBA


It is always a pleasure to welcome new contributors to EMBA. This time we can welcome:


Now, start your fresh Kali Linux (put enough CPU power and RAM into it) and install EMBA:

└─$ git clone https://github.com/e-m-b-a/emba.git
└─$ cd emba 
└─$ sudo ./installer.sh -d

This will install all pre-requisites, including the docker base image and the cve database, which will need some bandwith, harddrive space and time.

Afterwards, you are ready to analyse your first firmware with EMBA:

└─$ sudo ./emba -l ~/log -f ~/firmware -p ./scan-profiles/quick-scan.emba

What's Changed

  • #1073 by @m-1-k-3 in #1076
  • restart EMBA functionality by @m-1-k-3 in #1078
  • make the quick mode quick by @m-1-k-3 in #1081
  • Make the updater work again by @m-1-k-3 in #1082
  • fix hardening log for s16 by @m-1-k-3 in #1084
  • Quick version identifier update by @github-actions in #1089
  • Metasploit database update by @github-actions in #1087
  • CISA known exploited database update by @github-actions in #1088
  • Snyk database update by @github-actions in #1090
  • Packetstorm database update by @github-actions in #1091
  • fix day cnt by @m-1-k-3 in #1085
  • fix for Spurious linux_kernel CVEs, cpe string handling by @m-1-k-3 in #1086
  • Metasploit database update by @github-actions in #1094
  • full names and working tagging for packetstorm script by @HoxhaEndri in #1061
  • add md5sum to binaries by @m-1-k-3 in #1096
  • installer srecord by @m-1-k-3 in #1097
  • Firmware/binary handling again by @m-1-k-3 in #1099
  • little fixes by @m-1-k-3 in #1102
  • Quick version identifier update by @github-actions in #1105
  • CISA known exploited database update by @github-actions in #1104
  • Metasploit database update by @github-actions in #1103
  • Packetstorm database update by @github-actions in #1107
  • Snyk database update by @github-actions in #1106
  • Packetstorm database update by @github-actions in #1113
  • CISA known exploited database update by @github-actions in #1111
  • Metasploit database update by @github-actions in #1110
  • Snyk database update by @github-actions in #1112
  • xz backdoor detection - CVE-2024-3094 by @m-1-k-3 in #1114
  • FIRST EPSS (Exploit Prediction Scoring System) integration by @m-1-k-3 in #1109
  • Workflow docker builder updates by @m-1-k-3 in #1115
  • Remove Arachni / refactoring by @m-1-k-3 in #1117
  • Packetstorm database update by @github-actions in #1122
  • CISA known exploited database update by @github-actions in #1120
  • csv issues #1116 by @m-1-k-3 in #1118
  • Metasploit database update by @github-actions in #1119
  • Snyk database update by @github-actions in #1121
  • csv issues #1116 by @m-1-k-3 in #1123
  • f10 csv fix by @m-1-k-3 in #1124
  • Vars check by @m-1-k-3 in #1126
  • Metasploit database update by @github-actions in #1128
  • CISA known exploited database update by @github-actions in #1129
  • Packetstorm database update by @github-actions in #1131
  • Snyk database update by @github-actions in #1130
  • further vars cleanup, kev in f20 by @m-1-k-3 in #1127
  • var cleanup, status_bar fix by @m-1-k-3 in #1132
  • S36 updates, l10 fixes by @m-1-k-3 in #1133
  • CISA known exploited database update by @github-actions in #1135
  • Packetstorm database update by @github-actions in #1137
  • Metasploit database update by @github-actions in #1134
  • Snyk database update by @github-actions in #1136
  • Emulation updates by @m-1-k-3 in #1140
  • Packetstorm database update by @github-actions in #1144
  • CISA known exploited database update by @github-actions in #1142
  • Metasploit database update by @github-actions in #1141
  • s115 qemu command output by @m-1-k-3 in #1145
  • Snyk database update by @github-actions in #1143
  • Packetstorm database update by @github-actions in #1149
  • CISA known exploited database update by @github-actions in #1147
  • Metasploit database update by @github-actions in #1146
  • Snyk database update by @github-actions in #1148
  • Metasploit database update by @github-actions in #1151
  • Packetstorm database update by @github-actions in #1153
  • Snyk database update by @github-actions in #1152
  • Version string fixes for isc:dhcp and gnu:glibc by @gluesmith2021 in #1150
  • Update default-scan-no-notify.emba by @BenediktMKuehne in https://g...
Read more

EMBA v1.4.2-Summertime

Choose a tag to compare

@m-1-k-3 m-1-k-3 released this 09 Aug 07:39
69c72b1

image

This release includes one new module as well as a huge amount of little updates, bug fixes and refactoring for your smooth summer time:


Now, start your fresh Kali Linux (put enough CPU power and RAM into it) and install EMBA:

└─$ git clone https://github.com/e-m-b-a/emba.git
└─$ cd emba 
└─$ sudo ./installer.sh -d

This will install all pre-requisites, including the docker base image and the cve database, which will need some bandwith, harddrive space and time.

Afterwards, you are ready to analyse your first firmware with EMBA:

└─$ sudo ./emba -l ~/log -f ~/firmware -p ./scan-profiles/quick-scan.emba

Beside your ongoing support with feedback, testing, working on issues and spreading EMBA you can now also support EMBA as a sponsor.
image
Check it out here and start being an essential part of the future of EMBA


It is always a pleasure to welcome new contributors to EMBA. This time we can welcome:

What's Changed

New Contributors

Full Changelog: 1.4.1-white-rabbit...1.4.2-Summertime

EMBA v1.4.1 - Follow the white rabbit

Choose a tag to compare

@m-1-k-3 m-1-k-3 released this 17 Jun 12:28
ce738a1

Probably you all know that it is the 25th anniversary of the legendary Matrix movie! With the latest release EMBA got massive improvements in building the Matrix via emulation.

image

This release reflects the recent updates in our system emulation engine.

Short summary of the latest highlights:

  • We started rebuilding and upgrading the toolchain of the system emulation engine - With the current work in place we can further update the outdated FirmAE and firmadyne environment which our emulation engine is originally based on
  • Linux kernel upgraded from version 4.1.17 (the original firmadyne and FirmAE version) to version 4.1.52 - The original firmadyne kernel is from 01/2016 and a bit rusty. With the update to 4.1.52 (which is from 05/2018) we moved forward in time for more than 2 years. In the future we plan further updates to include more modern kernels.
  • Busybox updated from 1.29.3 to the current version 1.36.1
  • Multiple libnvram patches were merged from the rehosting repo of libnvram which is maintained primarly by @AndrewFasano
  • Including an optional netcat listener to the system emulation engine
  • Further debugging possibilities via strace, gdb and gdbserver added to the system emulation engine
  • Handling of time64/time32 support in firmware via updated musl libc for libnvram - This hopefully results in an improved handling on more modern firmware
  • Improved environment for ARM64 and MIPS64 architecture
  • FIRST EPSS (Exploit Prediction Scoring System) integration - see #1109
  • Updated docker base image to Kali 2024-2
  • @gluesmith2021 fixed multiple bugs in our version detection and CVE engine - see here

Now, start your fresh Kali Linux (put enough CPU power and RAM into it) and install EMBA:

└─$ git clone https://github.com/e-m-b-a/emba.git
└─$ cd emba 
└─$ sudo ./installer.sh -d

This will install all pre-requisites, including the docker base image and the cve database, which will need some bandwith, harddrive space and time.

Afterwards, you are ready to analyse your first firmware with EMBA:

└─$ sudo ./emba -l ~/log -f ~/firmware -p ./scan-profiles/quick-scan.emba

Beside your ongoing support with feedback, testing, working on issues and spreading EMBA you can now also support EMBA as a sponsor.
image
Check it out here and start being an essential part of the future of EMBA


It is always a pleasure to welcome new contributors to EMBA. This time we can welcome:

What's Changed

  • #1073 by @m-1-k-3 in #1076
  • restart EMBA functionality by @m-1-k-3 in #1078
  • make the quick mode quick by @m-1-k-3 in #1081
  • Make the updater work again by @m-1-k-3 in #1082
  • fix hardening log for s16 by @m-1-k-3 in #1084
  • Quick version identifier update by @github-actions in #1089
  • Metasploit database update by @github-actions in #1087
  • CISA known exploited database update by @github-actions in #1088
  • Snyk database update by @github-actions in #1090
  • Packetstorm database update by @github-actions in #1091
  • fix day cnt by @m-1-k-3 in #1085
  • fix for Spurious linux_kernel CVEs, cpe string handling by @m-1-k-3 in #1086
  • Metasploit database update by @github-actions in #1094
  • full names and working tagging for packetstorm script by @HoxhaEndri in #1061
  • add md5sum to binaries by @m-1-k-3 in #1096
  • installer srecord by @m-1-k-3 in #1097
  • Firmware/binary handling again by @m-1-k-3 in #1099
  • little fixes by @m-1-k-3 in #1102
  • Quick version identifier update by @github-actions in #1105
  • CISA known exploited database update by @github-actions in #1104
  • Metasploit database update by @github-actions in #1103
  • Packetstorm database update by @github-actions in #1107
  • Snyk database update by @github-actions in #1106
  • Packetstorm database update by @github-actions in #1113
  • CISA known exploited database update by @github-actions in #1111
  • Metasploit database update by @github-actions in #1110
  • Snyk database update by @github-actions in #1112
  • xz backdoor detection - CVE-2024-3094 by @m-1-k-3 in #1114
  • FIRST EPSS (Exploit Prediction Scoring System) integration by @m-1-k-3 in #1109
  • Workflow docker builder updates by @m-1-k-3 in #1115
  • Remove Arachni / refactoring by @m-1-k-3 in #1117
  • Packetstorm database update by @github-actions in #1122
  • CISA known exploited database update by @github-actions in #1120
  • csv issues #1116 by @m-1-k-3 in #1118
  • Metasploit database update by @github-actions in #1119
  • Snyk database update by @github-actions in #1121
  • csv issues #1116 by @m-1-k-3 in #1123
  • f10 csv fix by @m-1-k-3 in #1124
  • Vars check by @m-1-k-3 in #1126
  • Metasploit database update by @github-actions in #1128
  • CISA known exploited database update by @github-actions in #1129
  • Packetstorm database update by @github-actions in #1131
  • Snyk database update by @github-actions in #1130
  • further vars cleanup, kev in f20 by @m-1-k-3 in #1127
  • var cleanup, status_bar fix by @m-1-k-3 in #1132
  • S36 updates, l10 fixes by @m-1-k-3 in #1133
  • CISA known exploited database update by @github-actions in #1135
  • Packetstorm database update by @github-actions in #1137
  • Metasploit database update by @github-actions in #1134
  • Snyk database update by @github-actions in #1136
  • Emulation updates by @m-1-k-3 in #1140
  • Packetstorm database update by @github-actions in #1144
  • CISA known exploited database update by @github-actions in #1142
  • Metasploit database update by @github-actions in #1141
  • s115 qemu command output by @m-1-k-3 in #1145
  • Snyk database update by @github-actions in #1143
  • Packetstorm database update by @github-actions in #1149
  • CISA known exploited database update by @github-actions in #1147
  • Metasploit database update by @github-actions in #1146
  • Snyk database update by @github-actions in #1148
  • Metasploit database update by @github-actions in #1151
  • Packetstorm database update by @github-actions in #1153
  • Snyk database update by @github-actions in #1152
  • Version string fixes for isc:dhcp and gnu:glibc by @gluesmith2021 in #1150
  • Update default-scan-no-notify.emba by @BenediktMKuehne in #1156
  • Packetstorm database update by @github-actions in #1161
  • Quick version identifier update by @github-actions in #1160
  • CISA known exploited database update by @github-actions in #1158
  • fix zlib (unzip) version string by @gluesmith2021 in #1164
  • JTR hash sorting by @BenediktMKuehne in https://github.com/...
Read more

EMBA v1.4.0 - ICS testing Edt.

Choose a tag to compare

@m-1-k-3 m-1-k-3 released this 05 Mar 10:04
c98898e

As we do a lot of ICS/OT testing in our daily business, we thought this release should reflect our usual EMBA usage scenario. Welcome to another huge EMBA release with a lot new features: EMBA v1.4.0 - ICS testing Editition

image

This time we have collected the following highlights for you:

  • less bugs -> more code -> more bugs? -> report all our bugs here
  • Extended binary analysis via semgrep (see module s16)
  • New static perl analysis via zarn (see module s27)
  • Toolchain identification (see wiki)
  • Improved update checking (see wiki)
  • New scan interface (with integrated status bar) automatically enabled in most scan-profiles
  • Improved multiple backend workflows
  • Massive speedup of multiple EMBA modules (see #1006 / #996)
  • Updated docker base image (see wiki)
  • You can get in contact with us on the following social networks: X / Mastodon / NEW: Bluesky
  • We can meet in real life at BlackHat Asia this year (see Arsenal schedule)
  • Special thanks to our awesome community for releasing multiple new articles around EMBA - see our dedicated section in the wiki

Now, start your fresh Kali Linux (put enough CPU power and RAM into it) and install EMBA:

└─$ git clone https://github.com/e-m-b-a/emba.git
└─$ cd emba 
└─$ sudo ./installer.sh -d

This will install all pre-requisites, including the docker base image and the cve database, which will need some bandwith, harddrive space and time.

Afterwards, you are ready to analyse your first firmware with EMBA:

└─$ sudo ./emba -l ~/log -f ~/firmware -p ./scan-profiles/quick-scan.emba

Beside your ongoing support with feedback, testing, working on issues and spreading EMBA you can now also support EMBA as a sponsor.
image
Check it out here and start being an essential part of the future of EMBA


It is always a pleasure to welcome new contributors to EMBA. This time we can welcome:

Welcome to the EMBA firmware analysis environment and thank you for your valuable contribution.


What's Changed

Read more