IT 118

[System Hacking] shell_basic: orw를 통해 flag 파일 얻기

1. mycode 어셈블리 작성하기 이 문제에서 orw를 하기 위해서는 아래와 같은 syscall이 필요하다. 1. open("/home/shell_basic/flag_name_is_loooooong", RD_ONLY, NULL) 2. read(fd, buf, 0x30) 3. write(1, buf, 0x30) 따라서 위를 수행하는 어셈블리를 아래와 같이 작성했다. "/home/shell_basic/flag_name_is_loooooong"의 hex를 stack에 push하기 xor rax, rax push rax mov rax, 0x676e6f6f6f6f6f6f push rax mov rax, 0x6c5f73695f656d61 push rax mov rax, 0x6e5f67616c662f63 push ..

IT/Wargame 2024.02.29

[Shellcode] objdump을 이용한 byte code 추출

예시 어셈블리 코드 (shellcode.asm)의 byte code를 추출해보겠습니다. shellcode.asm section .text global _start _start: xor eax, eax push eax push 0x68732f2f push 0x6e69622f mov ebx, esp xor ecx, ecx xor edx, edx mov al, 0xb int 0x80 1. nasm 설치 sudo apt-get install nasm 2. shellcode.o 생성 nasm -f elf shellcode.asm 3. shellcode.o 파일을 어셈블리 언어로 변환하여 출력 objdump -d shellcode.o 4. shellcode.bin 생성 objcopy --dump-section .t..

IT/시스템 보안 2024.02.28

[Shellcode] execve

목적 execve 셸코드를 이용하면 임의의 프로그램을 실행할 수 있는데요, 만약 그것이 셸 프로그램이라면, 서버의 셸을 획득한 것이므로, 서버의 시스템을 제어함으로써 시스템 해킹을 성공한 것이 됩니다. ※ 셸(Shell): 운영체제에 명령을 내리기 위해 사용되는 사용자의 인터페이스 방법 1. execve 셸코드 작성 linux의 다양한 셸 프로그램 중 기본인 /bin/sh를 실행하는 execve 셸코드를 작성해보겠습니다. execve 셸코드는 스켈레톤 코드 (C언어로 작성됨) + 셸코드 (어셈블리) 의 구조입니다. 스켈레톤 코드 __asm__( ".global run_sh\n" // C에서 run_sh에 접근 가능하도록 global로 설정 "run_sh:\n" // 아래 어셈블리 코드는 예시이며, 각 l..

IT/시스템 보안 2024.02.28

[Shellcode] orw: open-read-write

목적 공격 대상이 되는 시스템의 파일을 유출해 내는 것입니다. 방법 아래는 linux 환경에서 진행한 것입니다. 0. 공격 대상이 될 파일 작성 실습을 위한 예시입니다. echo 'flag{this_is_open_read_write_shellcode!}' > /tmp/flag 1. orw 셸코드 작성 “/tmp/flag” 파일을 읽는 orw 셸코드를 작성해 보겠습니다. orw 셸코드는 스켈레톤 코드 (C언어로 작성됨) + 셸코드 (어셈블리) 의 구조입니다. 스켈레톤 코드 __asm__( ".global run_sh\n" // C에서 run_sh에 접근 가능하도록 global로 설정 "run_sh:\n" // 아래 어셈블리 코드는 예시이며, 각 line은 \n으로 구분되어야 함 "xor rdi, rdi\n..

IT/시스템 보안 2024.02.27

[Stack Frame] 프로시저 호출 시의 스택 프레임 살펴보기

코드가 쭉 진행되다가 특정 프로시저가 호출되면, 프로시저가 실행되고 나서 다시 원래의 실행 흐름으로 돌아옵니다. 예시 코드 0x400000: call func: push  &  jmp 0x400005: mov esi, eax...0x401000: push rbp 0x401001: mov rbp, rsp 0x401004: sub rsp, 0x30 0x401008: mov BYTE PTR[rsp], 0x3 ...0x401020: leave: mov rsp, rbp  &  pop rbp 0x401021: ret: pop rip  &  jmp rip   빠르게 보는 전 과정의 메모리 변화  상세한 작동 1. 프로시저 호출2. function prologue: 기존 상태의 기록, 새로운 stack frame의 마..

IT/시스템 보안 2024.02.20

[Docker] multi-container application: Docker compose

이전 글 👇 2024.02.07 - [IT/DevOps] - [Docker] Database 유지하기: 2. Bind mount [Docker] Database 유지하기: 2. Bind mount이전 글 👇 2024.02.06 - [IT/DevOps] - [Docker] Container의 filesystem, Database 유지하기: 1. Volume mount [Docker] Container의 filesystem, Database 유지하기: 1. Volume mount 이전 글 👇 2024.02.05 - [IT/DevOps] - [Docker] Application 공intoky.tistory.com Docker Compose 대부분의 Application들은 Database를 필요로 하고, Ap..

IT/DevOps 2024.02.07

[Docker] Database 유지하기: 2. Bind mount

이전 글 👇 2024.02.06 - [IT/DevOps] - [Docker] Container의 filesystem, Database 유지하기: 1. Volume mount [Docker] Container의 filesystem, Database 유지하기: 1. Volume mount 이전 글 👇 2024.02.05 - [IT/DevOps] - [Docker] Application 공유하기: Docker registry, Docker Hub [Docker] Application 공유하기: Docker registry, Docker Hub 이전 글 👇 2024.02.05 - [IT/DevOps] - [Docker] Application 업데이트하기 [Doc intoky.tistory.com Bind mou..

IT/DevOps 2024.02.07

[Docker] Container의 filesystem, Database 유지하기: 1. Volume mount

이전 글 👇 2024.02.05 - [IT/DevOps] - [Docker] Application 공유하기: Docker registry, Docker Hub [Docker] Application 공유하기: Docker registry, Docker Hub 이전 글 👇 2024.02.05 - [IT/DevOps] - [Docker] Application 업데이트하기 [Docker] Application 업데이트하기 이전 글 👇 2024.02.04 - [IT/DevOps] - [Docker] Overview, Containerize an application [Docker] Overview, Containerize an applicat intoky.tistory.com Container의 filesyste..

IT/DevOps 2024.02.06

[Docker] Application 공유하기: Docker registry, Docker Hub

이전 글 👇 2024.02.05 - [IT/DevOps] - [Docker] Application 업데이트하기 [Docker] Application 업데이트하기 이전 글 👇 2024.02.04 - [IT/DevOps] - [Docker] Overview, Containerize an application [Docker] Overview, Containerize an application Overview Docker는 우리가 만드려는 Application을 우리의 infrastructure(e.g. 호스트 컴퓨터?)로부터 intoky.tistory.com Share the application ✅ 큰 그림 ✅Docker Hub에서 새 repository 만들기 repository 이름은 getting-st..

IT/DevOps 2024.02.05