Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
mipsシェルコード入門
Search
Chihiro Hasegawa
August 11, 2017
Technology
960
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
mipsシェルコード入門
2017年8月11日 CpawLT
Chihiro Hasegawa
August 11, 2017
More Decks by Chihiro Hasegawa
See All by Chihiro Hasegawa
大規模Cloud Native環境におけるFalcoの運用
owlinux1000
0
400
Sysdig Secure/Falcoの活用術! ~Kubernetes基盤の脅威モデリングとランタイムセキュリティの強化~
owlinux1000
0
1.6k
SECCON Beginners 2017 東京 Binary編
owlinux1000
1
130
Other Decks in Technology
See All in Technology
AI駆動開発はどこまで来たのか? ファインディの最新実態調査で読み解く現在地 Devin Con Tokyo
akiratom
4
1.8k
Bill One 開発エンジニア 紹介資料
sansan33
PRO
7
20k
dbt と Snowflake と tag
kevinrobot34
2
290
アクセスキーが漏れた日にやるべきこと- 無効化の先にある本当の対応
kazzpapa3
0
350
サービス内で複数のOP・ASを連鎖させる(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
340
Kiro Crew で始める マルチエージェント開発
miu_crescent
PRO
0
200
IHV like なユースケースへのOpenID Connect 関連仕様の適用事例
optim
0
340
RapidCopy2 Matrix I/Oエンジンによるファイルコピーソフトウェアの設計と実装
kengosawa2
1
470
紙 to デジタル
ichien178
0
330
EMの役割で 変わったこと・変わらなかったこと
sansantech
PRO
0
190
APIセキュリティを組織で実現するには~注力する点と設計・実装に入れたい対策~
riiimparm
2
660
markdown-poster Introduction
kazamori
0
380
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Ruling the World: When Life Gets Gamed
codingconduct
0
310
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
300
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Unsuck your backbone
ammeep
672
58k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Optimizing for Happiness
mojombo
378
71k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
400
Utilizing Notion as your number one productivity tool
mfonobong
4
560
Optimising Largest Contentful Paint
csswizardry
37
3.9k
How to Ace a Technical Interview
jacobian
281
24k
Transcript
NJQTγΣϧίʔυೖ $QBX-5!ίϫʔΩϯάεϖʔεכொ $P&EP ݄ ۚ https://speakerdeck.com/owlinux1000
എܠ • $5' $BQUVSF5IF'MBH ͰγΣϧΛ ୣऔ͢Δδϟϯϧ1XO &YQMPJU ͕͋Δ • ͍͍ͩͨͷ͕YΞʔΩςΫνϟ
• ͨ·ʹଞͷΞʔΩςΫνϟͷͰΔ ˠ NJQTͷษڧΛͯ͠ΈΑ͏
എܠ • ໋ྩηοτɾΞʔΩςΫνϟҟͳΔ • Y্ͰɺNJQTͷ࣮ߦϑΝΠϧಈ͔ͳ͍ ˠ ԾతʹΤϛϡϨʔτ͢Δඞཁ͕͋Δ mov eax,
0x0 move v0, zero x86 mips
2FNVʹΑΔڥ࡞ • ຊ࣭Ͱͳ͍ͷͰׂѪ • #VJMEJOHB%FCJBO 4USFUDI2&.6 JNBHFGPS.*14FM<>͕Θ͔Γ͍͢ [1] https://blahcat.github.io/2017/07/14/building-a-debian-stretch-qemu-image-for-mipsel/
[2] https://ja.wikipedia.org/wiki/QEMU#/media/File:Qemu_logo.svg [2]
γΣϧίʔυ • ٛͷҙຯͰɺ߈ܸ༻ͷίʔυͷஅย • $5'Ͱ FYFDWF lCJOTIz /6-- /6--
Λ͢ΔίʔυΛΛࢦ͢ࣄ͕ଟ͍ • ΞηϯϒϦݴޠͰɺγεςϜίʔϧΛ ݺͿඞཁ͕͋Δ
γεςϜίʔϧ • Χʔωϧ͕࣋ͭػೳΛݺͼग़͢ࡍʹར༻ • WϨδελʹγεςϜίʔϧ൪߸ • ྫ PQFO ϑΝΠϧΛ։͘ •
BϨδελʹୈҰҾɾɾɾ • ্هΛઃఆޙɺTZTDBMM໋ྩΛݺͿ https://w3challs.com/syscalls/?arch=mips_o32
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/
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”があるとそこで途切れる
࣮ߦ݁Ռ
͓ΘΓ • NJQTͷγΣϧίʔυͷΈΛֶΜͩ • ڵຯ͕ग़ͨਓͥͻಡΜͰΈͯԼ͍͞
એ https://tokyowesterns.github.io/ctf2017/