how to know os version by docker hash

요즘 따라 docker file에 우분투 버전이 명시가 안되어 있고 hash 값만 있는 경우가 잦다.

따라서 os 버전을 알아내는 최적화 방법을 소개한다.

C
(pwn) amemoyoi ~$ ls
clean.sh  deploy  Dockerfile  Dockerfile_template  Libc_DBG
(pwn) amemoyoi ~$ cat Dockerfile
FROM ubuntu@sha256:27cb6e6ccef575a4698b66f5de06c7ecd61589132d5a91d098f7f3f9285415a9

RUN apt update
RUN apt-get install -y socat

COPY ./deploy/flag /flag
COPY ./deploy/kind_kid_list /kind_kid_list

RUN chmod 755 /flag /kind_kid_list

EXPOSE 8080
CMD socat TCP-LISTEM:8080, reuseaddr, fork EXEC:/kind_kid_list
(pwn) amemoyoi ~$ docker run --rm -it ubuntu@sha256:27cb6e6ccef575a4698b66f5de06c7ecd61589132d5a91d098f7f3f9285415a9
root@f8acb20c37e8:/# ls
bin  boot  dev  etc  home  lib  lib32  lib64  libx32  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@f8acb20c37e8:/# cat /etc/os-release 
PRETTY_NAME="Ubuntu 22.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.1 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
root@f8acb20c37e8:/# 

docker run --rm 에서 —rm 옵션으로 컨테이너에서 나가면 컨테이너가 안남게 하는게 포인트이다.