容器環(huán)境檢測方法總結
在滲透測試過程中,我們的起始攻擊點可能在一臺虛擬機里或是一個Docker環(huán)境里,甚至可能是在K8s集群環(huán)境的一個pod里,我們應該如何快速判斷當前是否在容器環(huán)境中運行呢?
當拿到shell權限,看到數(shù)字和字母隨機生成的主機名大概率猜到在容器里了,查看進程,進程數(shù)很少,PID為1的進程為業(yè)務進程,這也是容器環(huán)境的典型特征。當然,以上這兩種都是比較主觀的判斷。 接下來,我們再來盤點下比較常用的幾種檢測方式。
方式一:查詢cgroup信息
最簡單精準的方式就是查詢系統(tǒng)進程的cgroup信息,通過響應的內容可以識別當前進程所處的運行環(huán)境,就可以知道是在虛擬機、docker還是kubepods里。
cat /proc/1/cgroup
docker 環(huán)境下:
K8s環(huán)境下:

虛擬機環(huán)境下:
方式二:檢查/.dockerenv文件
通過判斷根目錄下的 .dockerenv文件是否存在,可以簡單的識別docker環(huán)境。
K8s&docker環(huán)境下:ls -alh /.dockerenv 可以找到文件。

虛擬機環(huán)境下:是沒有這個.dockerenv文件的。

利用mount查看掛載磁盤是否存在docker相關信息。
K8s&docker環(huán)境下:

虛擬機環(huán)境下:
fdisk -l 容器輸出為空,非容器有內容 輸出。
K8s& docker環(huán)境下 :

虛擬機環(huán)境下:
方式五:查看文件系統(tǒng)以及掛載點
df -h 檢查文件系統(tǒng)掛載的目錄,也能夠簡單判斷是否為docker環(huán)境。
K8s&docker環(huán)境下:

虛擬機環(huán)境:
方式六:環(huán)境變量
docker容器和虛擬機的環(huán)境變量也有點區(qū)別,但不好判斷,但pod里面的環(huán)境變量其實是很明顯的。
K8s環(huán)境下:

