2019獨角獸企業重金招聘Python工程師標準>>>
? ? ? ? ? ? ? ?在Linux中,有一個功能:VDSO(virtual dvnamic shared object),這是一個小型共享庫,能將內核自動映射到所有用戶程序的地址空間。
? ? ? ? ? ? ? ?Docker逃逸利用Dirty Cow漏洞,將Payload寫到VDSO中的一些閑置內存中,并改變函數的執行順序,使得在執行正常函數之前調用這個Shellcode。Shellcode初始化時會檢測是否被root所調用,如果調用,則繼續執行,如果沒有調用則返回,并執行clock_gettime
函數,接下來它會檢測/tmp/.X文件的存在,如果存在,則這時已經是root權限了,然后它會打開一個反向的TCP鏈接,為Shellcode中填寫的ip返回一個Shell。
測試:
1.運行docker ,運行docker 的測試容器
2.進入docker 容器內 docker exec -it test /bin/bash
3.將poc的ip改為容器的ip,make編譯poc,并運行poc
4.測試是否拿到宿主機權限,在poc的shell下執行命令,在宿主機目錄創建test.txt,
5.退出poc和docker,返回宿主機 查看是否有txt文件,發現成功創建
?