radare2, ipmi, factory default
Posted Fri 20 Jan 2017 08:11:08 PM CET
Florian Lohoff
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.