f.zz.de
posts /

radare2, ipmi, factory default

Posted Fri 20 Jan 2017 08:11:08 PM CET Florian Lohoff
in

Irgendwie ist das Thema IPMI immer ziemlich nervig. Es gibt eine ganze Batterie an tools die irgendwas machen, zumeist völlig unklar wie sie es machen. Dann gibt es 4 Generationen von Boards mit IPMIs und alle haben andere macken. Also mal radare2 probiert um das supermicro ipmicfg tool auseinanderzubröseln wie die ein factory default auch der LAN settings machen:

$ radare2 IPMICFG-Linux.x86_64 
[0x004017c0]> is* | grep Factory
f sym.bmc_FactoryDefaultAll 187 0x0040262c
f sym.ipmi20PlusVendderFactoryLan 79 0x00412952
f sym.ipmi20PlusVendderFactoryAllAMIX9 79 0x00412a52
f sym.ipmi20PlusVendderFactoryLanAMIX9 98 0x004129a1
f sym.ipmi20PlusVendderFactoryAll 79 0x00412a03
f sym.bmc_FactoryDefault 187 0x004024b6
f sym.ipmi20PlusFactory 154 0x004128b8
f sym.ipmi20PlusVendderFactory 79 0x00412807
f sym.ipmi20Factory 98 0x00412856
f sym.bmc_FactoryDefaultLan 187 0x00402571
[0x004024b6]> s sym.ipmi20PlusVendderFactoryAll
[0x00412a03]> pd 20
            ;-- sym.ipmi20PlusVendderFactoryAll:
            0x00412a03    55           push rbp
            0x00412a04    4889e5       mov rbp, rsp
            0x00412a07    4881ecf0000. sub rsp, 0xf0
            0x00412a0e    48c78528fff. mov qword [rbp-0xd8], 0x0
            0x00412a19    488d9530fff. lea rdx, [rbp-0xd0]
            0x00412a20    488d8528fff. lea rax, [rbp-0xd8]
            0x00412a27    48890424     mov [rsp], rax
            0x00412a2b    4989d1       mov r9, rdx
            0x00412a2e    41b800000000 mov r8d, 0x0
            0x00412a34    b900000000   mov ecx, 0x0
            0x00412a39    ba41000000   mov edx, 0x41
            0x00412a3e    be30000000   mov esi, 0x30
            0x00412a43    bf20000000   mov edi, 0x20
            0x00412a48    e83accffff   call sym.runIpmiCmd
               0x0040f687(unk) ; sym.runIpmiCmd
            0x00412a4d    0fb6c0       movzx eax, al
            0x00412a50    c9           leave
            0x00412a51    c3           ret
            ;-- sym.ipmi20PlusVendderFactoryAllAMIX9:

Nach ein bischen suchen scheint edi die Adresse zu enthalten, esi die netfun und 0x41 ist der command opcode in edx.

Schon kann man mit ipmitool raw da einen factory default hinschicken.