Remote Code Execution through GDB Remote Debugging Protocol
2015-09-01 00:16:00 Author: blog.orange.tw(查看原文) 阅读量:40 收藏

在準備 DEFCON CTF 時額外想到的小玩具,
很多人使用 GDB remote debugging 時為了方便遠端使用,會將 port 綁在 0.0.0.0 上使得攻擊者可以連接上做一些事情

至於可以做哪些事情,不來個遠端代碼執行就不好玩了XD

大部分的工作都基於 Turning arbitrary GDBserver sessions into RCE 這篇文章,
修改部分則是加上 arm 及 x64 的支援以及把 code 改好看點....XD

比較 tricky 的部分則是 GDB 在 extended-remote 後,GDB 預設的處理器架構會是 i386
如果遠端的處理器架構非 x86 的架構下會失敗,所以必須用 set architecture 指定處理器架構
(原文章因為都在 x86 架構下所以沒這個問題XD)
但是在 run 之前無法知道所處的處理器架構所以變成一個很尷尬的狀態XD

另外一個有趣的是如何檢測掃描到的 port 是否為 GDB remote debugging protocol
送個

$?#3f

就可以判斷,接著就可以寫成 script 就可以批次掃描處理了XD

最後 PoC,在本機跑

gdbserver --remote-debug 0.0.0.0:31337 /bin/ls

配合下面 Exploit 就可以拿 shell XD

不多說,貼 code


文章来源: http://blog.orange.tw/2015/08/remote-code-execution-on-gdb-remote.html
如有侵权请联系:admin#unsafe.sh