Flashing SuperMicro IPMI/BMC firmware

This was written after i soft-bricked multiple BMCs and got stuck in a reboot cycle after successfully un-bricking and updating them. This would also be a great time to rant a little about how running something like this with direct memory access and all that jazz is complete bonkers. But whatevs. If you're also stuck with similar issues, but on different hardware, fret not, it likely applies to you too. Just look for the right jumpers in the manual.

I have a couple of quite old and outdated SYS-6017R-WRF that uses their Super X9DRW-iF motherboards. They were in dire need of some love, and when moving into a new DC I decided it was about time to do something about it.

Like with all firmware updates you probably should read the update/install.txt before you start. But you have to be a special kind of stupid to run such an outdated BMC firmware like yours truly, so ain't nobody got time for that. I'm not going to say that my laziness paid off, but consider this:

  1. The BIOS firmware update notes says you have to update the BMC firmware first
  2. The BMC firmware update notes says that you have to update the BIOS firmware first

Being lazy I intended to just update the BMCs. So that's where I started. It has been years since I last logged into any of them, and the passwords were long gone. But given the quality of this software we even have options for how to get around this:

  1. Exploit one of the many privilege escalation or authentication bypass exploits that area available for older versions
  2. Use ipmitool to reset the password

To successfully update the BMCs firmware using the modern web interface you either have to run Internet Explorer (yes, that one) or open Developer Tools in Chrome (or similar) and manually create a cookie named WebServer with no content. If you don't do that you will soft-brick the BMC during the update process, which means you have to unplug the machine, remove the battery and then reboot and let it initialize again. Trying to reset it using ipmitool or similar won't work. You can't even make this shit up.

When the flashing process is completed it will tell you to unplug the server and reboot it. The machine will reset itself a few times while initializing the BMC, and after a few reboots it will start throwing errors, and the machine won't boot and you're unable to access the BIOS. This is because your BIOS firmware is too old for the new BMC firmware. The only way to get around this is to remove the jumper between pin 1-2 on the JPB1. This will disable the BMC completely so you can enter the BIOS and boot FreeDOS or something similar to run the BIOS update. When the BIOS is updated you just have to install the jumper again and be a little patient, it takes some time to boot the first time, and it'll reboot itself a couple of times as well.