Docker
- ta sẽ cài đặt docker (nếu chưa cài)
- ta phải đọc nội dung file Docker bằng lệnh
- Docker sẽ chia ra nhiều loại
Dockerfile thông thường
- đọc hết nội dung trong Dockerfile để xem yêu cầu của Docker (thường là ta thêm file flag)
- lưu ý thông tin của PORT
- built docker:
dấu "." là đại diện cho thư mục hiện tại
-t là nametag/tagged
vì ta đang muốn built docker nên về tendocker ta có thể đặt tên mình muốn
- kiểm tra những docker mình đã built
lúc nãy ta build, bh ta run
tham số –rm (là 1 images, tạo 1 container/đĩa iso)
pwn.red/jail
- ta kiểm tra Dockerfile nó sẽ copy những file nào (flag.txt chẳng hạn)
- rồi built docker bằng lệnh
- tên docker có thể đặt theo ý mình dễ nhớ
- built thành công, ta sẽ thiết lập
built bth
built để lắng nghe từ port
- mặc định dạng docker red/jail là port 5000
- ta sẽ kiểm tra các docker hiện có
- ta sẽ chạy docker bằng quyền shell
docker-compose
- đọc file "docker-compose.yml"
lệnh này là vừa build vừa run cho ta
- kết nối bên terminal khác:
- build docker với quyền shell
<service> lấy trong file docker-compose
debug động (mục đích tìm libc):
- ta sẽ đọc file "xinetd.conf"
- kiểm tra file nào sẽ chạy khi ta
nc 0 <PORT>
- kiểm tra pid của tiến trình netcat
check libc via Docker_shell
- đầu tiên ta lấy shell trong Docker như mấy cái hướng dẫn trên
- sau đó mở thêm terminal mới cùng vào shell trên
- 1 cái run file
- 1 cái xem pid tiến trình đó
ps aux | grep <file>
- rồi
cat /proc/<pid>/maps
cách này không chắc lắm =)))
leak libc via gdbserver
- follow flags in
build-docker.sh
- run
./build-docker.sh
and connect to gdbserver to get shell in the image
- connect from the terminal
debug docker
- sử dụng gdb-peda
- thêm nội dung sau vào Dockerfile