2025/02 3

Beginners: DH101 - 2 (리눅스 사용법)

DreamHack의 Beginners 로드맵을 기반으로 정리한 글입니다.셸(Shell)셸은 유저가 리눅스 시스템을 이용할 수 있는 인터페이스이다. 셸은 유저에게 입력을 받고 운영체제가 그것을 프로그램으로 처리하면 그 결과를 유저에게 출력한다.  Ubuntu를 기준으로 했을 때, 터미널을 실행하면 bash 셸이 자동으로 실행된다. 셸 프롬프트(Shell Prompt)user@user-VirtualBox:~$ 이것을 셸 프롬프트라고 부른다. 유저는 셸 프롬프트를 보고 셸이 명령어를 입력 받을 준비가 되었음을 알 수 있다. user@user-VirtualBox:~$ iduid=1000(user) gid=1000(user) groups=1000(user),4(adm),24(cdrom),27(sudo),30(di..

Beginners: DH101 - 1 (컴퓨터 과학 기초)

DreamHack의 Beginners 로드맵을 기반으로 정리한 글입니다.진법진법은 임의의 숫자 혹은 문자를 사용하여 수를 표현하는 체계를 말한다. n진법은 한 자릿수를 n가지(0 ~ n-1)의 숫자 혹은 문자로 나타낼 수 있다. 10진법, 2진법, 16진법으로 나타낸 수는 각각 10진수(decimal), 2진수(binary), 16진수(hexadecimal)라고 한다. 10진법: 10개(0 ~ 9)의 숫자로 수를 표현실생활에서는 손가락 10개로 숫자를 세고, 각 자릿수를 0 ~ 9까지의 수로 나타낸다. 사람들이 자연스럽게 사용하고 있는 수 체계가 바로 10진법이다. 2진법: 2개(0, 1)의 숫자로 수를 표현컴퓨터는 사람과 다르게 10진법이 아닌 2진법을 사용한다. 흔히 컴퓨터를 두고 '0과 1로 이루어..

System Hacking: Shellcode - 2

DreamHack의 System Hacking 로드맵을 기반으로 정리한 글입니다.Exploit Tech: 2. execve Shellcode▶ 리눅스 계층 셸(Shell, 껍질)이란 운영체제에 명령을 내리기 위해 사용되는 인터페이스로, 운영체제의 핵심 기능을 하는 프로그램을 커널(Kernel, 호두 속 내용물)이라고 하는 것과 대비된다. 셸을 획득하면 시스템을 제어할 수 있게 되므로 통상적으로 셸 획득을 시스템 해킹의 성공으로 여긴다. execve 셸코드는 임의의 프로그램을 실행하는 셸코드인데, 이를 이용하면 서버의 셸을 획득할 수 있다. 또한, 다른 언급없이 셸코드라고 하면 이를 의미하는 경우가 많다. 최신의 리눅스는 대부분 sh, bash를 기본 셸 프로그램으로 탑재하고 있으며, 이 외에도 zsh, ..