docker 容器环境 检测方法

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

1.背景

现在有研究表明,人们目前有使用Docker进行恶意代码重现工作的倾向。Docker的反检测可分为三部分:CPU反检测,内存反检测和存储数据反检测。该技术利用了AUFS的层叠镜像技术,使得我们的Docker反检测技术可以很容易地实现在镜像的一层中——反检测层。这样,只需要将反检测层动态地部署到Docker容器中,即可实现对Container环境的CPU、内存和存储的封装,从而遮蔽掉Container特征。这样的话,该容器中的恶意代码也就无法检测其自身是否在Container中运行了。

2.cgroup方法

在Host和Container中执行cat /proc/1/cgroup命令的结果是不同的,可以利用这一点进行判断。(或者cat /proc/self/cgroup命令也行)

在Host中执行cat /proc/1/cgroup命令的结果:

root@ubuntu:~# cat /proc/1/cgroup
10:hugetlb:/
9:cpuset:/
8:memory:/
7:cpu,cpuacct:/
6:perf_event:/
5:blkio:/
4:net_cls,net_prio:/
3:freezer:/
2:devices:/
1:name=systemd:/

在Container中执行cat /proc/1/cgroup命令的结果:

root@33b328a4095b:/go/src/github.com/docker/docker# cat /proc/1/cgroup
10:hugetlb:/docker/33b328a4095bc92e9d427bc9f702d87b7f20c3ea6c12137a35783bc4fd942478
9:cpuset:/docker/33b328a4095bc92e9d427bc9f702d87b7f20c3ea6c12137a35783bc4fd942478
8:memory:/docker/33b328a4095bc92e9d427bc9f702d87b7f20c3ea6c12137a35783bc4fd942478
7:cpu,cpuacct:/docker/33b328a4095bc92e9d427bc9f702d87b7f20c3ea6c12137a35783bc4fd942478
6:perf\_event:/docker/33b328a4095bc92e9d427bc9f702d87b7f20c3ea6c12137a35783bc4fd942478
5:blkio:/docker/33b328a4095bc92e9d427bc9f702d87b7f20c3ea6c12137a35783bc4fd942478
4:net\_cls,net\_prio:/docker/33b328a4095bc92e9d427bc9f702d87b7f20c3ea6c12137a35783bc4fd942478
3:freezer:/docker/33b328a4095bc92e9d427bc9f702d87b7f20c3ea6c12137a35783bc4fd942478
2:devices:/docker/33b328a4095bc92e9d427bc9f702d87b7f20c3ea6c12137a35783bc4fd942478
1:name=systemd:/docker/33b328a4095bc92e9d427bc9f702d87b7f20c3ea6c12137a35783bc4fd942478

3.find docker方法

在Host和Container中的文件系统中,有关于docker的文件、目录有很大差别。因此可以通过枚举文件系统中关于docker的文件,进行判断。

在Host中执行find / -name docker命令的结果:

root@ubuntu:~# find / -name /usr/lib/docker
/usr/bin/docker
/var/lib/docker
/var/lib/docker/aufs/diff/4d465ea0a041fe7ea0dfff03f1bfed15524ea35354b6c23e5aaeb05bf5341039/go/src/github.com/docker
/var/lib/docker/aufs/diff/0933def894f49be2f894483f42f31ba26110a8a7a68fc294b8b47d4fee5ab46a/usr/bin/docker
/var/lib/docker/aufs/diff/0933def894f49be2f894483f42f31ba26110a8a7a68fc294b8b47d4fee5ab46a/run/docker
/var/lib/docker/aufs/diff/0933def894f49be2f894483f42f31ba26110a8a7a68fc294b8b47d4fee5ab46a/etc/docker
/run/docker
/etc/init.d/docker
/etc/bash_completion.d/docker
/etc/docker
/etc/default/docker
/etc/apparmor.d/cache/docker
/etc/apparmor.d/docker
/sys/fs/cgroup/hugetlb/docker
/sys/fs/cgroup/cpuset/docker
/sys/fs/cgroup/memory/docker
/sys/fs/cgroup/cpu,cpuacct/docker
/sys/fs/cgroup/perf_event/docker
/sys/fs/cgroup/blkio/docker
/sys/fs/cgroup/net_cls,net_prio/docker
/sys/fs/cgroup/freezer/docker
/sys/fs/cgroup/devices/docker
/sys/fs/cgroup/systemd/docker

在Container中执行find / -name docker命令的结果:

root@33b328a4095b:/go/src/github.com/docker/docker# find / -name docker     
/etc/bash_completion.d/docker
/go/src/github.com/docker
/go/src/github.com/docker/docker
/go/src/github.com/docker/docker/docker
/go/src/github.com/docker/docker/builder/dockerfile/parser/testfiles/docker
/go/src/github.com/docker/docker/contrib/init/sysvinit-debian/docker
/go/src/github.com/docker/docker/contrib/init/sysvinit-redhat/docker
/go/src/github.com/docker/docker/contrib/completion/bash/docker
/go/src/github.com/docker/docker/vendor/src/github.com/docker
/var/lib/docker
/docker-py/docker

4.环境变量方法

在Host和Container中执行env命令查看环境变量的结果是不同的,可以利用这一点进行判断。(或者cat /proc/1/environ命令也可)

在Host中执行env命令的结果:

root@ubuntu:~# env
XDG_VTNR=7
XDG_SESSION_ID=c2
CLUTTER_IM_MODULE=xim
XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/root
SESSION=ubuntu
TERM=xterm-256color
SHELL=/bin/bash
VTE_VERSION=4002
WINDOWID=58720266
UPSTART_SESSION=unix:abstract=/com/ubuntu/upstart-session/0/1451
GNOME_KEYRING_CONTROL=
GTK_MODULES=unity-gtk-module
USER=root
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
SSH_AUTH_SOCK=/run/user/0/keyring/ssh
DEFAULTS_PATH=/usr/share/gconf/ubuntu.default.path
XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/usr/share/upstart/xdg:/etc/xdg
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
DESKTOP_SESSION=ubuntu
QT_IM_MODULE=ibus
QT_QPA_PLATFORMTHEME=appmenu-qt5
PWD=/root
XDG_SESSION_TYPE=x11
JOB=unity-settings-daemon
XMODIFIERS=@im=ibus
GNOME_KEYRING_PID=
LANG=en_US.UTF-8
MANDATORY_PATH=/usr/share/gconf/ubuntu.mandatory.path
IM_CONFIG_PHASE=1
COMPIZ_CONFIG_PROFILE=ubuntu
GDMSESSION=ubuntu
SESSIONTYPE=gnome-session
GTK2_MODULES=overlay-scrollbar
XDG_SEAT=seat0
HOME=/root
SHLVL=1
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
UPSTART_INSTANCE=
UPSTART_EVENTS=xsession started
XDG_SESSION_DESKTOP=ubuntu
LOGNAME=root
COMPIZ_BIN_PATH=/usr/bin/
QT4_IM_MODULE=xim
XDG_DATA_DIRS=/usr/share/ubuntu:/usr/share/gnome:/usr/local/share/:/usr/share/
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-y6EgZti58V
LESSOPEN=| /usr/bin/lesspipe %s
INSTANCE=
UPSTART_JOB=unity7
XDG_RUNTIME_DIR=/run/user/0
DISPLAY=:0
XDG_CURRENT_DESKTOP=Unity
GTK_IM_MODULE=ibus
LESSCLOSE=/usr/bin/lesspipe %s %s
XAUTHORITY=/root/.Xauthority
_=/usr/bin/env

在Container中执行env命令的结果:

root@33b328a4095b:/go/src/github.com/docker/docker# env
RSRC_COMMIT=ba14da1f827188454a4591717fff29999010887f
HOSTNAME=33b328a4095b
TERM=xterm
REGISTRY_COMMIT=47a064d4195a9b56133891bbb13620c3ac83a827
SECCOMP_VERSION=2.2.3
OSX_SDK=MacOSX10.11.sdk
OSX_CROSS_COMMIT=8aa9b71a394905e6c5f4b59e2b97b87a004658a4
REGISTRY_COMMIT_SCHEMA1=ec87e9b6971d831f0eff752ddb54fb64693e51cd
LVM2_VERSION=2.02.103
DOCKER_CROSSPLATFORMS=linux/386 linux/arm   darwin/amd64    freebsd/amd64 freebsd/386 freebsd/arm   windows/amd64 windows/386
PATH=/go/bin:/usr/local/go/bin:/osxcross/target/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
NOTARY_VERSION=v0.2.0
GOARM=5
PWD=/go/src/github.com/docker/docker
GO_TOOLS_COMMIT=823804e1ae08dbb14eb807afc7db9993bc9e3cc3
TOMLV_COMMIT=9baf8a8a9f2ed20a8e54160840c492f937eeaf9a
HOME=/root
SHLVL=1
DOCKER_PY_COMMIT=e2878cbcc3a7eef99917adc1be252800b0e41ece
GO_LINT_COMMIT=32a87160691b3c96046c0c678fe57c5bef761456
DOCKER_BUILDTAGS=apparmor seccomp selinux
GOPATH=/go:/go/src/github.com/docker/docker/vendor
container=docker
GO_VERSION=1.6
_=/usr/bin/env

5.Dropped capabilities方法

帖子上提到了:”Otherwise, if you are root, you can try to perform mknod or mount operation, if it fails, you are most likely in a container with dropped capabilities.”

6.Mount方法

在Host和Container中执行mount命令的结果是不同的,可以利用这一点进行判断。

在Host中执行mount命令的结果:

root@ubuntu:~# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=1997320k,nr_inodes=499330,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=402932k,mode=755)
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (rw,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event,release_agent=/run/cgmanager/agents/cgm-release-agent.perf_event)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset,clone_children)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb,release_agent=/run/cgmanager/agents/cgm-release-agent.hugetlb)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=27,pgrp=1,timeout=0,minproto=5,maxproto=5,direct)
mqueue on /dev/mqueue type mqueue (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
vmware-vmblock on /run/vmblock-fuse type fuse.vmware-vmblock (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
cgmfs on /run/cgmanager/fs type tmpfs (rw,relatime,size=100k,mode=755)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=402932k,mode=700)
gvfsd-fuse on /run/user/0/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
gvfsd-fuse on /run/user/0/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)
tracefs on /sys/kernel/debug/tracing type tracefs (rw,relatime)

在Container中执行mount命令的结果:

root@33b328a4095b:/go/src/github.com/docker/docker# mount
none on / type aufs (rw,relatime,si=f93f2580cb95eee4,dio,dirperm1)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev type tmpfs (rw,nosuid,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666)
mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /sys/fs/cgroup type tmpfs (rw,nosuid,nodev,noexec,relatime,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event,release_agent=/run/cgmanager/agents/cgm-release-agent.perf_event)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset,clone_children)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb,release_agent=/run/cgmanager/agents/cgm-release-agent.hugetlb)
/dev/sda1 on /var/lib/docker type ext4 (rw,relatime,errors=remount-ro,data=ordered)
/dev/sda1 on /etc/resolv.conf type ext4 (rw,relatime,errors=remount-ro,data=ordered)
/dev/sda1 on /etc/hostname type ext4 (rw,relatime,errors=remount-ro,data=ordered)
/dev/sda1 on /etc/hosts type ext4 (rw,relatime,errors=remount-ro,data=ordered)
shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=65536k)
devpts on /dev/console type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
none on /sys/kernel/security type securityfs (rw,relatime)
none on /tmp type tmpfs (rw,relatime)

7.设备文件方法(不成功)

在Host和Container中执行ls /dev命令的结果是不同的,可以利用这一点进行判断。

但是目前还没发现本质的不同点。

8.文件系统方法

在Host和Container中执行df -h命令的结果是不同的,可以利用这一点进行判断。

在Host中执行df -h命令的结果:

root@ubuntu:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            2.0G     0  2.0G   0% /dev
tmpfs           394M   12M  383M   3% /run
/dev/sda1        36G  9.7G   24G  29% /
tmpfs           2.0G  928K  2.0G   1% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
cgmfs           100K     0  100K   0% /run/cgmanager/fs
tmpfs           394M   52K  394M   1% /run/user/0

其中,cgmanager是cgroup的管理器daemon,运行于root下。

在Container中执行df -h命令的结果:

root@8a601702e06f:/go/src/github.com/docker/docker# df -h
Filesystem      Size  Used Avail Use% Mounted on
none             36G  9.7G   24G  29% /
tmpfs           2.0G     0  2.0G   0% /dev
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/sda1        36G  9.7G   24G  29% /etc/hosts
shm              64M     0   64M   0% /dev/shm
none            2.0G     0  2.0G   0% /tmp

 

 

linux磁盘管理 1、df 命令 查看挂栽磁盘信息文件系统 1K-块 已用 可用 已用% 挂载点 /dev/sda3 29140072 997840 281422324% / devtmpfs 494184 0 4941840% /dev tmpfs504076 0 5040760% /dev/shm tmpfs504076 6856 4972202% /run tmpfs504076 ... 阅读详情

相关推荐

Linux磁盘管理

磁盘管理,swap分区,逻辑卷管理,软raid

weixin_44478363的博客 1762

linux 挂载错误Transport endpoint is not connected

mount了mfs后,重新挂载之后,出现如下错误: /usr/local/mfs/bin/mfsmount -H 192.168.103.101 /mnt/  fuse: bad mount point `/mnt/': Transport endpoint is not connected  see: /usr/local/mfs/bin/mfsmount -h for help

clh604的专栏 6万+

基于网络安全的Docker逃逸

这段shellcode初始化的时候会检查是否被root调用,如果是则继续执行,如果不是,则接着执行clock_gettime函数,接下来它会检测/tmp/.X文件的存在,如果存在,则这时已经是root权限了,然后它会打开一个反向的TCP链接,为Shellcode中填写的ip返回一个Shell。主从管理、默认通过2375端口通信。上面命令的含义是进入test这个容器,当宿主机上执行exec命令来进入我们运行了脚本的容器的时候,宿主机就会反弹root权限的shell给我们的vps的监听端口,至此利用结束。

kali_Ma的博客 3243

Linux - 深入理解/proc及一些使用场景

文章目录前言背景一、二、使用场景1.文件恢复① 文件被删除时,有进程在访问2.文件被删除时,没有进程在访问总结 前言 本文主要关于Linux下/proc目录的理解及一些用法。 背景 在做YARN改造优化时,需要自动判断NM是否部署在docker上,采用的方法是读/proc/1/cgroup文件,发现在/proc下有很多对NM改造有用的信息如meminfo, cpuinfo,并且即使是root用户也是无法手动修改这些内容。 一、 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任

Deegue 2269

Docker容器环境检测方法【代码】

Docker容器环境检测方法【代码】参考资料:Determining if a process runs inside lxc/Dockerhttp://stackoverflow.com/questions/20010199/determining-if-a-process-runs-inside-lxc-docker第1章 背景现在有研究表明,人们目前有使用Docker进行恶意代码重现工作的倾向

Casbin开源社区 6307

rost反剽窃检测系统_Docker容器环境检测方法【代码】

此文章为转载文章,因为写的非常不错,故此想转载一下,如有冒犯请联系我删除。Docker容器环境检测方法【代码】参考资料:Determining if a process runs inside lxc/Dockerhttp://stackoverflow.com/questions/20010199/determining-if-a-process-runs-inside-lxc-doc...

weixin_39984098的博客 277

BadSecrets Docker部署指南:如何在容器环境中运行密钥检测

BadSecrets是一个功能强大的密钥检测库,能够跨多个Web框架识别已知的密钥和敏感信息。本指南将详细介绍如何通过Docker容器化部署BadSecrets,让你快速搭建安全检测环境,轻松发现应用程序中的密钥泄露风险。 ## 📋 准备工作:Docker环境搭建 在开始部署BadSecrets之前,请确保你的系统已安装DockerDocker Compose。如果尚未安装,可以通过以下命

gitblog_00560的博客 1050

Docker容器逃逸

最简单精准的方式就是查询系统进程的cgroup信息,通过响应的内容可以识别当前进程所处的运行环境,就可以知道是在虚拟机、docker还是kubepods里。一个容器技术,类似于VM虚拟机,别人环境封装好打包成一个镜像,使用docker技术就能快速把这个镜像环境还原出来。通过判断根目录下的 .dockerenv文件是否存在,可以简单的识别docker环境。攻击者攻击虚拟空间磁盘,拿到最高权限也是虚拟空间的权限,而不是真实物理环境的权限。在容器内部创建一个新的容器,并将宿主机目录挂载到新的容器内部。

m0_74402888的博客 1374

后渗透——Docker容器逃逸

在渗透测试中,如果获取了目标主机的 shell,但发现其运行在 docker 环境中,要进一步渗透,就需要逃逸到宿主机。另外,还可能存在更复杂的场景,例如物理机运行虚拟机,虚拟机再运行 docker 容器,这种情况下还需要实现虚拟机逃逸。本文主要总结关于 docker 容器逃逸的相关技术与方法。涉及内核漏洞的提权原理都比较复杂,很难理解,会用 poc 就行了。其余逃逸很大程度都是通过挂载进行逃逸。要么本容器挂载,要么本容器里再创建一个容器挂载。

未完成的歌~的博客 3372

Container Escape Check 容器逃逸检测教程

Container Escape Check 容器逃逸检测教程 1. 项目的目录结构及介绍 container-escape-check/ ├── LICENSE ├── README.md ├── README_ZH.md ├── container-escape-check.sh └── img/ └── example.png LICENSE: 项目的许可证文件,采用MIT许可证...

gitblog_00011的博客 473

Docker环境检测方式

检测方法 首先我们需要先判断是否在docker环境里,常用的两个检测方式 方式一:检查/.dockerenv文件是否存在 ls -al / 方式二:检查/proc/1/cgroup内是否包含"docker"等字符串 ls -al /proc/1/cgroup ...

Fly_鹏程万里 1739

容器安全守护神:Wazuh监控Docker与K8s威胁全景指南

你是否正面临容器环境下的安全困境?特权容器漏洞、镜像篡改、异常网络行为——这些威胁可能在瞬间导致数据泄露或服务中断。Wazuh作为开源安全平台,提供扩展检测与响应(XDR)和安全信息与事件管理(SIEM)能力,专为容器环境打造深度防护体系。通过原生Docker引擎集成和K8s监控模块,Wazuh能实时追踪容器生命周期、检测异常行为并自动响应威胁。 ## Wazuh容器监控核心能力 Wazuh通...

gitblog_00072的博客 791

Docker-Sonarqube完全指南:如何在容器中快速部署代码质量检测平台

SonarQube是一款强大的代码质量检测平台,通过Docker容器化部署可以极大简化安装流程并确保环境一致性。本文将详细介绍如何使用Docker快速部署SonarQube,帮助开发团队轻松实现代码质量自动化检测。 ## 为什么选择Docker部署SonarQube? 使用Docker部署SonarQube具有以下显著优势: - **环境一致性**:避免因操作系统差异导致的部署问题 - **快

gitblog_00468的博客 836

BEVFormer复现(使用docker搭建训练环境

本文在docker容器中搭建了bevformer的训练环境,完成了算法训练和测试,将其执行环境封装为docker镜像,提供下载,免去反复配置环境的痛苦

Aitotra的博客 3799

如何快速打造容器环境的终极提示方案:Starship Docker支持深度解析

Starship 是一款轻量级、速度极快且可无限定制的命令行提示工具,能够为任何 shell 提供强大的环境信息展示功能。在容器化开发日益普及的今天,Starship 的 Docker 支持功能让开发者在命令行中就能实时掌握容器环境状态,极大提升开发效率。 ## 为什么选择Starship作为容器环境提示工具? Starship 采用 Rust 编写,启动速度毫秒级,不会给你的终端带来任何性能

gitblog_01119的博客 1117

centos环境判断当前操作系统是否虚拟机或容器

一,阿里云ECS的centos环境 1,执行systemd-detect-virt [root@yjweb ~]# systemd-detect-virt kvm 说明阿里云的ecs是在一个kvm环境中运行 2,看dmidecode的system信息也行 [root@yjweb ~]# dmidecode -t system # dmidecode 3.2 Getting SMBIOS data from sysfs. SMBIOS 2.8 present. Handle 0x0100, .

IT- 研究者 3373

python代码进去docker容器内_如何检测在Python中的docker容器中运行?

我试图找出我的脚本是在docker容器中运行还是不在python脚本中运行。在比如:if inside_docker():do_stuff()else:do_some_other_stuff()为了做到这一点,我找到了唯一的方法,就是我可以检查主机名(用platform.node()),如果主机名与我的计算机不一样,那么它就不在docker中(因为主机名docker是一些奇怪的哈希或其他东西)。在...

weixin_39757122的博客 812

Docker安全基准测试终极指南:如何快速检测生产环境容器安全配置

Docker安全基准测试(Docker Bench for Security)是一款自动化脚本工具,能够检查生产环境中部署Docker容器的数十种常见最佳实践,帮助用户快速发现容器安全配置问题。基于CIS Docker Benchmark 1.6.0标准开发,这款工具为Docker社区提供了便捷的自我评估方案,确保容器部署符合行业安全标准。 ## 📋 什么是Docker安全基准测试? Doc

gitblog_01177的博客 316

Psalm与Docker集成:容器环境中的静态分析终极指南

在现代PHP开发中,静态分析工具已经成为保证代码质量的重要利器。Psalm作为一款强大的PHP静态分析工具,能够帮助开发者在代码运行前就发现潜在的错误和问题。而将Psalm与Docker容器技术相结合,可以为开发团队提供更加标准化和可复现的代码分析环境。🎯 ## 为什么要在Docker中使用Psalm? **Docker容器环境**为Psalm的使用带来了诸多优势: - **环境一致性*

gitblog_00492的博客 648
上一篇: linux c pid获取进程名 进程名获取pid
下一篇: linux 权限 775 777 区别
whatday
博客等级 码龄20年 3649粉丝 96原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值