일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- ctf
- igoat
- Docker
- 안드로이드
- CTF-d
- InsecureBank
- Volatility
- kibana
- MFT
- otter
- lord of sql injection
- Openstack
- NTFS
- XSS
- logstash
- beebox
- vulnhub
- 2018
- Suninatas
- elasticsearch
- base64
- frida
- foremost
- Strings
- 파이썬
- 인시큐어뱅크
- diva
- SQL Injection
- ESXi
- Reflected XSS
- Today
- Total
목록LINUX/Docker (12)
Information Security
이 사이트의 컨테이너를 불러온 뒤 워드프레스 설치를 했다. 워드프레스를 다운로드했다. 압축을 풀면 wordpress 디렉터리가 생성된 것을 알 수 있다. 컨테이너로 접속 후 소유자를 daemon으로 변경했다. 해당 디렉터리의 파일들을 backup 디렉터리로 옮겼다. cp 명령어로 wordpress를 컨테이너로 복사했다. wordpress 디럭터리의 파일들을 밖으로 옮겼다. 127.0.0.1 접속하면 wordpress가 설치된 것을 알 수 있다.
private registry 만들었다. 127.0.0.1:5000/v2/ 서비스 접속 가능한지 확인했다. tag 명령어 입력 후 images 확인 시 생성된 것을 확인할 수 있다. docker info 명령어를 통해 Regitry를 확인할 수 있다. push 명령어로 docker 이미지를 업로드하였다. -f 옵션은 이미지를 강제로 삭제해주는 옵션이다. 방금 업로드한 image를 불러왔다.
hub.docker.com/ 페이지에서 회원가입 후 로그인했다. echo_test를 tag를 변경했지만 삭제되지 않고 추가된 것을 알 수 있다. push 명령어로 이미지 빌드한 것을 다운로드하였다. history 명령어로 용량을 확인할 수 있고 이미지를 만들어지는 동안 실행된 docker 명령어도 확인할 수 있다.
test_server.py 코드를 실행시킨다. 다른 터미널에서 접속을 시도한 것을 알 수 있다. 이미지 빌드를 위한 docker 코드를 작성했다. docker build 하는 과정이다. dockerfile 소스코드 대로 등록이 된 것을 알 수 있다. images 명령어를 통해 등록한 것을 볼 수 있다. echo_test image를 -t 옵션을 주면 실행시키면 동작하는 것을 알 수 있다. 접속이 된 것을 알 수 있다.
/var/www 경로에 컨테이너 경로 입력 후 ro(읽기 전용) 권한만 준다. 127.0.0.1 접속 시 403에러를 보여준다. nginx가 읽을 수 있는 /var/www 파일이 없기 때문에 에러 페이지를 보여준다. 컨테이너가 아닌 로컬에서 index.html 파일을 만들었다. test1234 메시지를 보여주는 것을 알 수 있다. 해당 경로(777권한 설정), rw 옵션, 환경변수를 설정 후 jupternotebook을 설치했다. 설치가 완료되면 token을 알려준다. 해당 port 번호를 접속 후 token 번호를 입력하고 로그인한다. python을 선택 후 파이썬 프로그래밍이 동작하는 것을 알 수 있다.
Hostname이 Docker 컨테이너로 변경되어 쉘로 접속된 것을 알 수 있다. Docker 컨테이너의 파일 시스템을 확인할 수 있다. 로그는 파일에 담긴 로그가 아니라 프로그램이 실행되면서 에러 출력되는 로그들이다. test.txt 파일에 test1234 값을 저장 후 docker cp 명령어를 이용해 docker 안으로 복사했다. 이번에는 Docker 안에서 밖으로 복사가 된 것을 알 수 있다. Docker 컨테이너 이름만 보이게 할 수 있고 docker 전체를 중지 후 삭제시킬 수 있다. rm 옵션을 해도 삭제되지 않았는 데 docker 정지 시 rm 명령어가 동작해 삭제된것을 알 수 있다.
hub.docker.com/r/jupyter/datascience-notebook nginx 설치를 하고 env_name=test1234 환경변수를 적용했다. docker 쉘로 접속 후 printenv 명령어로 확인해 보니 test1234 환경변수를 확인할 수 있다. mysql 환경변수를 적용 후 mysql 다운로드하였다. exec 명령어로 바로 mysql로 접속했다. MySQL 명령어가 동작하는 것을 알 수 있다.
왼쪽: 이미지 A를 지운다 하더라도 이미지 B에서 레이어 A, B, C를 사용하고 있기 때문에 지워지지 않음 오른쪽: 이미 존재하는 레이어 A, B는 새로 다운로드 받을 필요가 없음 Storage Driver가 설치된 위치 overlay2라는 것을 알 수 있다. Docker가 설치 된 위치 /var/lib/docker라는 것을 알 수 있다. docker가 설치된 디렉터리에서 image, overlay2, containers 크기를 확인할 수 있다. docker의 image의 정보를 알 수 있다. 실제 파일시스템을 구성하는 부분이다. rmi 명령어로 삭제 시 이미지가 삭제되는 부분이다. cache-id 확인 서로 다른 것을 알 수 있다. layerdb는 overlay2의 정보를 가지고 있고 실제로 데이터를..