Step 255. Hack The Box Starting Point 완주 — 한 수 위의 무대로
Level 3 — CTF 실전과 공격 스킬 심화 | 난이도 ★★★☆☆ | 예상 소요 시간 5시간
전제: Step 251~253(THM 루틴과 리눅스 privesc), Step 254(윈도우 입문)를 마쳤다. 리버스 쉘의 개념은 Level 2에서 배웠다.
- 준비물: 인터넷 연결, Hack The Box 계정(무료 가입), 공격 머신(Kali 또는 WSL+도구), Step 251의 루틴 기록 문서.
- ⚠️ 이 챕터의 실습은 내 랩·합법 플랫폼 전용입니다. 허가 없는 시스템에 적용하면 범죄입니다. Hack The Box(
hackthebox.com)는 운영자가 공격 연습용으로 공식 개방한 합법 학습 플랫폼입니다 — 이 플랫폼의 머신 외에는 오늘의 기술을 쓰지 않습니다. - 실측 안내: 3-3의 TTY 업그레이드 명령은 내 WSL(Ubuntu 24.04)에서 동작을 실측(2026-09-09)했고, HTB 머신의 접속·공략 화면은 전부 화면 예시입니다.
TryHackMe가 "안내가 있는 실습장"이었다면, Hack The Box(HTB)는 "안내를 거의 떼어낸 실전"입니다. 힌트가 적고, 머신은 날것에 가깝고, 같은 머신을 전 세계의 다른 플레이어와 동시에 두드립니다. 그래서 HTB Easy 하나는 THM Easy 서너 개에 맞먹는 훈련량입니다.
다행히 HTB도 진입로를 마련해 두었습니다 — Starting Point입니다. HTB식 머신의 규칙을 가르치는 튜토리얼 머신 묶음으로, 오늘 이것을 처음부터 끝까지 완주하는 것이 과제입니다. 여기서 배우는 규칙 — 플래그 두 개, 힌트의 최소화, 동시 접속 환경 — 이 다음 세 챕터(Step 256~258) 전부의 토대입니다.
1. 학습 목표
이 챕터를 끝내면 다음을 할 수 있습니다:
- HTB와 THM의 구조적 차이(힌트, 머신 운영, 플래그 방식)를 설명한다
- HTB VPN에 접속하고 Starting Point 머신을 배포한다
- user.txt / root.txt 두 플래그 구조와 제출 방식을 안다
- 불안정한 쉘을 풀 TTY로 업그레이드하는 명령 순서를 외운다
- 다중 사용자 환경의 예절(유니크 파일명, 조용한 스캔)을 지킨다
2. 배경 지식 — 오늘의 도구와 개념
오늘의 도구 한눈에 보기
| 구분 | 내용 |
|---|---|
| 언어·환경 | Hack The Box 플랫폼 + 공격 머신(Kali/WSL) + HTB VPN |
| 오늘의 명령 | sudo openvpn 파일.ovpn, python3 -c 'import pty; pty.spawn("/bin/bash")', export TERM=xterm |
| 필요한 개념 | Starting Point, 두 플래그 구조, 리버스 쉘 안정화, 다중 사용자 머신 |
| 오늘의 산출물 | Starting Point 완주 + HTB식 머신 규칙 노트 |
2-1. THM과 HTB — 무엇이 다른가
같은 "실전 머신 플랫폼"이지만 설계 철학이 다릅니다.
| 항목 | TryHackMe | Hack The Box |
|---|---|---|
| 안내 | 태스크와 질문이 길을 보여 줌 | 질문 없음 — 플래그만 있음 |
| 힌트 | 룸 안에 공식 힌트 | 포럼 힌트(비공식, 스포일러 주의) |
| 머신 | 룸마다 내 전용 머신 | 여러 사용자가 같은 머신을 동시에 공격 |
| 플래그 | 질문의 답(문자열 다양) | user.txt와 root.txt 두 개로 고정 |
| 난이도 체감 | Easy는 정말 입문 | Easy도 "표준 기법의 총합" 수준 |
핵심 차이는 질문의 유무입니다. THM에서는 질문이 체크리스트였습니다(Step 251). HTB에는 그 지도가 없습니다 — 정찰부터 root까지의 경로를 스스로 그려야 합니다. 그래서 여러분의 루틴 문서가 지도를 대신합니다.
2-2. Starting Point — HTB의 등산로 입구
Starting Point는 HTB가 공식으로 제공하는 입문 머신 시리즈입니다. 난이도는 "Very Easy"로 표시되지만, 역할은 튜토리얼입니다 — HTB 머신이 어떻게 생겼는지, 플래그를 어디서 어떻게 제출하는지, VPN은 어떻게 다른지를 차례로 가르칩니다.
THM 룸과 달리 각 머신에는 짧은 안내와 함께 "이 머신에서 배우는 것"이 정해져 있습니다. 어떤 머신은 FTP 익명 접속을, 어떤 머신은 웹 쉘과 리버스 쉘을 다룹니다. 순서대로 진행하면 HTB식 공략의 기본 동작이 한 바퀴 돌도록 설계되어 있습니다.
2-3. 두 개의 플래그 — user.txt와 root.txt
HTB 머신의 완료 조건은 고정되어 있습니다.
user.txt — 일반 사용자 쉘을 얻었다는 증거 (보통 /home/사용자/ 아래)
root.txt — 최고 권한까지 갔다는 증거 (보통 /root/ 아래)
이 구조가 주는 메시지가 중요합니다. 침투(foothold)는 절반일 뿐입니다. 웹 취약점으로 쉘을 얻어도 user.txt까지이고, root.txt는 권한 상승을 요구합니다. THM Easy 룸에서 "쉘 = 거의 완료"였던 감각을 여기서 교정합니다 — HTB에서는 user와 root 사이에 반드시 한 고비가 더 있습니다.
2-4. 리버스 쉘 안정화 — 왜 화살표 키가 깨지는가
웹 취약점 등으로 얻는 리버스 쉘은 대부분 비(非) TTY 쉘입니다. 증상으로 알아보실 겁니다 — 화살표 키를 누르면 ^[[A 같은 문자가 찍히고, Ctrl+C를 누르면 쉘 자체가 죽고, 탭 자동완성이 안 됩니다.
원인은 쉘이 의사 터미널(pseudo-TTY) 없이 파이프 위에서 돌기 때문입니다. 해결 순서는 정해져 있습니다.
# 1. 파이썬으로 TTY를 만든다
python3 -c 'import pty; pty.spawn("/bin/bash")'
# 2. 백그라운드로 돌린다
Ctrl+Z
# 3. 내 터미널을 날것 모드로 바꾸고 쉘로 복귀한다
stty raw -echo; fg
# 4. 터미널 종류를 선언한다
export TERM=xterm
이 네 줄은 HTB에서 하루에도 몇 번씩 치게 될 순서입니다. 외우는 것이 아니라 손에 새기는 것이 목표입니다. 3-3에서 실제로 확인해 봅니다.
2-5. 다중 사용자 머신의 예절
THM 룸 머신은 내 전용이었지만, HTB의 Starting Point와 무료 머신은 여러 플레이어가 동시에 공격합니다. 이것이 만드는 현상들:
- 내가 올려 둔 파일이 사라져 있다 → 다른 누군가가 지웠거나 머신이 리셋됨
- 이미 뚫려 있는 흔적이 있다 → 다른 플레이어가 심어 둔 쉘/백도어
- 스캔이 겹쳐 서비스가 느려진다 → 대상은 한 대인데 공격자가 여럿
대응 규칙은 세 가지입니다. ① 파일명은 유니크하게 — /tmp/exploit.sh 말고 /tmp/ex-내닉네임.sh. ② 스캔은 조용히 — 동시 접속자를 배려해 속도를 무리하게 올리지 않기. ③ 남의 파일은 건드리지 않기 — 이 무대는 경쟁이 아니라 각자의 연습장입니다.
3. 따라 하기
3-1~3-2는 HTB 접속 흐름(화면 예시), 3-3은 내 WSL에서의 TTY 업그레이드 실측, 3-4~3-5는 Starting Point 공략 루틴(화면 예시)입니다.
3-1. 가입과 VPN 접속
hackthebox.com에서 무료 계정을 만듭니다.- Starting Point 페이지로 이동해 VPN 설정 파일을 내려받습니다 — THM과 마찬가지로 OpenVPN 방식입니다.
- 공격 머신에서 접속합니다 (화면 예시):
sudo openvpn starting_point.ovpn
...
Initialization Sequence Completed
THM과 같은 절차지만 터널이 다릅니다 — HTB용 ovpn으로 접속해야 HTB의 10.10.x.x 대역이 보입니다. THM 터널을 켜 둔 채로 HTB 머신을 두드리면 응답이 없습니다. 둘을 동시에 켜지 말고, 바꿀 때는 기존 터미널에서 Ctrl+C로 끊고 다시 접속하세요.
3-2. 첫 머신 배포
Starting Point의 첫 머신에서 "Spawn Machine"을 누릅니다 (화면 예시):
export TARGET=10.129.10.10 # HTB는 10.129.x 대역이 많습니다
ping -c 3 $TARGET
64 bytes from 10.129.10.10: icmp_seq=1 ttl=63 time=52.1 ms
읽는 법: THM과 동일합니다 — 응답이 오면 VPN과 머신이 살아 있는 것입니다. 다만 HTB 머신은 다른 플레이어의 공격으로 일시적으로 느려질 수 있으니, 핑이 간헐적이면 잠시 후 다시 확인하세요.
3-3. TTY 업그레이드 실측 — 내 WSL에서 확인
이 명령은 리버스 쉘에서 쓰는 것이지만, 동작 확인은 로컬에서도 됩니다. 제가 실측 환경(WSL, Ubuntu 24.04.4, Python 3.12.3)에서 확인한 결과를 먼저 보여 드립니다.
입력 (실측 — 쉘에 한 줄씩):
printf 'tty\nexit\n' | python3 -c 'import pty; pty.spawn("/bin/bash")'
출력 (실측, 2026-09-09):
root@XI3492:...# tty
/dev/pts/2
root@XI3492:...# exit
읽는 법: tty 명령이 /dev/pts/2라는 의사 터미널 장치를 돌려줬습니다. TTY 없이 실행된 쉘에서는 이 명령이 not a tty를 출력합니다 — 이 한 줄이 "업그레이드가 먹혔다"는 검증입니다. 리버스 쉘 위에서 python3 -c 'import pty; pty.spawn("/bin/bash")'를 친 뒤 tty를 쳐서 /dev/pts/N이 나오면 성공, not a tty가 나오면 아직 비 TTY 상태입니다.
참고로 실측 환경에는 script(util-linux 2.39.3)와 nc도 있었고 socat은 없었습니다. 타깃 머신에 파이썬이 없을 때의 대안으로 script -qc /bin/bash /dev/null도 같은 일을 합니다 — 대안이 여럿이라는 사실이 중요합니다.
3-4. Starting Point 공략 루틴 — 머신당 한 장의 노트
각 머신을 이렇게 진행합니다 (화면 예시):
nmap -sV -p- $TARGET
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
읽는 법: Starting Point의 초반 머신들은 이렇게 서비스가 하나둘만 열려 있습니다 — "이번에는 이 서비스를 배워라"는 설계입니다. 열린 것이 ftp 하나면, 조사는 ftp 익명 로그인부터:
ftp $TARGET
Name (10.129.10.10:user): anonymous
230 Login successful.
읽는 법: anonymous 로그인이 통하면 그것이 입구입니다. 머신마다 이 "입구 하나"를 찾는 연습을 하고, 찾을 때마다 노트에 기록합니다.
# Starting Point 노트
| 머신 | 입구(foothold) | 배운 것 |
|------|----------------|---------|
| (1번 머신) | ftp anonymous 로그인 | 익명 FTP 열거 |
| (2번 머신) | 웹 기본 페이지 → 알려진 기본 자격증명 | 기본값은 반드시 시도 |
| ... | ... | ... |
이 표가 Step 257의 "입구 유형 표"의 씨앗입니다.
3-5. 플래그 제출까지 — 완주의 정의
쉘을 얻은 뒤의 마무리 순서입니다 (화면 예시):
# 일반 사용자 쉘에서
cat /home/user/user.txt
a1b2c3d4e5f6... (화면 예시)
# 권한 상승 후
cat /root/root.txt
f6e5d4c3b2a1... (화면 예시)
두 플래그를 머신 페이지의 입력란에 각각 제출하면 머신이 "완료"로 바뀝니다. 완주의 정의를 분명히 합니다 — Starting Point의 모든 머신에서 user와 root 둘 다 제출하는 것이 오늘의 완료 기준입니다. user만 찍고 넘어간 머신은 미완입니다.
4. 미션과 연습문제
미션 — Starting Point 완주와 규칙 노트
- HTB 계정을 만들고 Starting Point용 VPN으로 접속합니다
- Starting Point 머신을 처음부터 순서대로 공략합니다 — 각 머신에서 user.txt와 root.txt를 모두 제출합니다
- 머신마다 "입구가 무엇이었나"를 3-4의 표 형식으로 기록합니다
- 적어도 한 머신에서는 리버스 쉘을 얻은 뒤 2-4의 네 단계로 풀 TTY 업그레이드를 수행하고,
tty출력으로 검증합니다 - 파일을 올릴 때 유니크한 파일명 규칙을 적용합니다 (예:
/tmp/도구-내닉네임.확장자) - 완주 후, "HTB Easy 머신에 임하는 전략"을 다섯 줄 이내로 메모합니다 — 다음 챕터의 작전 문서가 됩니다
연습문제
문제 1. THM 룸의 질문 목록이 체크리스트 역할을 했습니다(Step 251). HTB에는 그것이 없습니다. 그 빈자리를 무엇이 채워야 하는지 설명해 보세요.
문제 2. 리버스 쉘에서 화살표 키가 깨지는 이유를 "의사 터미널" 개념으로 설명하고, 해결 네 단계의 각 줄이 무엇을 하는지 써 보세요.
문제 3. HTB 머신이 user.txt와 root.txt 두 개의 플래그를 두는 이유 — 즉 "침투"와 "완료"를 분리하는 설계가 가르치려는 것은 무엇인지 써 보세요.
문제 4. 다중 사용자 머신에서 /tmp/shell.sh 같은 흔한 파일명을 쓰면 어떤 일이 생길 수 있는지, 두 가지 이상 써 보세요.
5. 모범 답안과 완료 기준
미션 모범 답안
완주 노트의 형태 예시입니다 (내용은 여러분의 실제 풀이로 채웁니다):
# HTB Starting Point 완주 노트 (완료일: ____)
- VPN: starting_point.ovpn, 10.129.x 대역 확인
| 머신 | 입구 | 상승 | 배운 것 | TTY 업그레이드 |
|------|------|------|---------|----------------|
| #1 | ftp anonymous | 불필요(바로 root급) | 익명 FTP | - |
| #2 | 웹 기본 자격증명 | sudo -l → GTFOBins | 기본값 시도 | O |
| ... | ... | ... | ... | ... |
# HTB Easy 전략 메모 (Step 256용)
1. 정찰은 풀스캔 + 버전, 웹이면 경로 스캔까지 한 세트
2. 질문이 없으니 내 루틴 문서가 체크리스트다
3. user와 root 사이에는 반드시 한 고비 — Step 253 패턴 노트를 펼친다
4. 6시간 막히면 포럼 공식 힌트 1단계까지 (스포일러 없는 것만)
5. 파일명은 유니크하게, 스캔은 조용히
검증하는 법: ① HTB 프로필에서 Starting Point 전 머신에 완료 표시가 있는가. ② 각 머신의 노트에 입구가 한 줄로 설명되는가. ③ TTY 업그레이드를 tty 출력으로 검증한 기록이 있는가. ④ 전략 메모가 "다음에 무엇을 할 것인가"로 쓰여 있는가(감상이 아니라 절차로).
연습문제 해답
문제 1 해답. 내 루틴 문서와 열거 결과가 채웁니다. THM에서는 제작자가 질문으로 "찾아야 할 것의 목록"을 제공했지만, HTB에서는 nmap -sV -p-의 출력 자체가 목록이 됩니다 — 열린 포트와 버전이 곧 "이 머신에서 조사할 것들"입니다. 그래서 Step 251부터 쌓아 온 루틴 문서(정찰 → 조사 → 가설 → 검증의 명령 순서)가 지도를 대신하고, 막혔을 때의 회귀 지점도 질문 목록이 아니라 "열거를 더 했는가"라는 자기 점검이 됩니다.
문제 2 해답. 리버스 쉘은 소켓 파이프 위에서 돌기 때문에 터미널 장치가 없고, 방향키·탭·Ctrl+C 같은 제어 문자를 해석할 주체(의사 터미널)가 없어 그대로 문자로 찍힙니다. 해결 네 단계: ① python3 -c 'import pty; pty.spawn("/bin/bash")'는 파이썬의 pty 모듈로 의사 터미널을 만들고 그 위에 bash를 얹습니다. ② Ctrl+Z는 그 쉘을 잠시 백그라운드로 보내 내 로컬 터미널을 조작할 수 있게 합니다. ③ stty raw -echo; fg는 내 터미널을 날것 모드(제어 문자를 있는 그대로 전달)로 바꾼 뒤 쉘로 복귀합니다. ④ export TERM=xterm은 쉘이 화면 제어에 쓸 터미널 종류를 선언해 방향키와 화면 지우기가 동작하게 합니다.
문제 3 해답. "들어가는 것"과 "지배하는 것"은 다른 기술이라는 사실입니다. user.txt는 초기 침투(foothold) — 공개 취약점, 설정 실수, 약한 자격증명으로 문을 여는 기술을 증명합니다. root.txt는 권한 상승 — 시스템 내부를 열거하고 설정 꼬임이나 취약 구성을 찾아내는 별개의 기술을 요구합니다. 두 개로 나눠 두면 학습자는 자기가 어느 쪽에서 막히는지를 정확히 알게 됩니다 — user까지 빠른데 root에서 늘 막힌다면 보강할 것은 침투가 아니라 privesc입니다.
문제 4 해답. ① 다른 플레이어가 같은 이름의 파일을 올리면 덮어써집니다 — 내 쉘이 남의 코드로 바뀝니다. ② 다른 플레이어가 "청소"하면서 지워 버릴 수 있습니다. ③ 머신 리셋 없이도 충돌이 나서 "분명 올렸는데 없다"는 혼란에 시간을 태웁니다. ④ 반대로 남의 파일을 내가 덮어써서 남의 풀이를 망가뜨릴 수 있습니다. 그래서 /tmp/ex-내닉네임.sh처럼 유니크한 이름이 다중 사용자 머신의 기본 예절입니다.
완료 기준 체크리스트
- [ ] HTB 계정을 만들고 Starting Point VPN으로 접속했다
- [ ] Starting Point 머신 전부에서 user.txt와 root.txt를 제출했다
- [ ] 머신별 입구 기록 표를 작성했다
- [ ] 풀 TTY 업그레이드 네 단계를 실제로 수행하고
tty로 검증했다 - [ ] 유니크 파일명 규칙을 적용했다
- [ ] THM과 HTB의 차이를 다섯 항목 이상 말할 수 있다
- [ ] HTB Easy 전략 메모를 다섯 줄 이내로 작성했다
6. 흔한 실수와 해결
벽 1. HTB 머신에 ping이 안 간다 — 그런데 VPN은 켜져 있다
증상 (출력 예시):
--- 10.129.10.10 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss
원인: THM용 ovpn으로 접속한 채 HTB 머신을 두드리는 경우가 제일 흔합니다. 터널은 열려 있지만 엉뚱한 네트워크에 연결된 상태입니다.
해결: 접속에 쓴 ovpn 파일 이름을 확인하세요 — Starting Point용 파일인지. ip addr show tun0의 주소 대역도 힌트입니다. 터널을 끊고(Ctrl+C) 올바른 파일로 다시 접속한 뒤, 머신이 부팅 중이면 1~2분 기다렸다가 재시도하세요.
벽 2. 리버스 쉘에서 Ctrl+C를 눌렀다가 쉘이 죽었다
증상: 실행 중인 명령을 끊으려고 Ctrl+C를 눌렀더니 쉘 연결 자체가 끊겼습니다.
원인: 비 TTY 쉘에서는 Ctrl+C가 명령이 아니라 쉘 프로세스 전체로 갑니다.
해결: 침투 직후 제일 먼저 TTY 업그레이드(2-4의 네 줄)부터 하세요. 쉘이 죽었다면 리스너(nc -lvnp 포트)는 살려 두고, 트리거(취약 페이지 재호출 등)를 다시 발생시켜 재접속합니다. 그래서 리버스 쉘 트리거는 "다시 칠 수 있는 형태"로 남겨 두는 것이 습관입니다.
벽 3. python3 -c 'import pty; ...'를 쳤는데 python3이 없다
증상 (출력 예시):
/bin/sh: 1: python3: not found
원인: 타깃 머신에 파이썬이 없습니다 — 최소 설치 머신에서 흔합니다.
해결: 대안 순서대로 시도하세요. ① python -c ... (파이썬 2), ② script -qc /bin/bash /dev/null (util-linux의 script — 제 실측 환경에도 있던 표준 도구입니다), ③ socat 계열. 어떤 대안이 통했는지 노트에 기록해 두면 다음 머신에서 바로 꺼내 씁니다.
벽 4. 분명 올려 둔 파일이 사라졌다
증상: /tmp에 올린 스크립트가 잠시 후 없습니다.
원인: 다중 사용자 머신입니다 — 다른 플레이어가 지웠거나, 머신이 리셋됐거나, 운영 측 정리 작업일 수 있습니다.
해결: 유니크 파일명 규칙으로 우선 충돌을 피하고, 중요한 파일은 공격 머신에 원본을 두고 필요할 때 다시 올리세요. 머신이 리셋되면 플래그 외의 모든 상태가 초기화됩니다 — "머신 위의 것은 전부 휘발성"이라고 생각하면 마음이 편합니다.
벽 5. Starting Point인데도 첫 머신에서 한 시간째 답이 안 나온다
증상: nmap까지는 했는데 다음이 안 떠오릅니다.
원인: Starting Point는 각 머신에 안내 텍스트가 있습니다 — 읽지 않고 머신만 보고 있을 가능성이 큽니다.
해결: 머신 페이지의 설명을 처음부터 다시 읽으세요. "이번 머신의 주제는 FTP입니다" 식의 문장이 실질적인 힌트입니다. 그래도 막히면 nmap 결과의 서비스 이름과 버전을 그대로 검색 엔진에 넣어 보세요. Starting Point 단계에서의 검색은 부끄러운 것이 아니라 학습 그 자체입니다 — 다만 Step 256부터는 규칙이 달라진다는 것만 기억해 두세요.
7. 정리
오늘의 개념
| 개념 | 한 줄 설명 |
|---|---|
| Hack The Box | 힌트를 최소화한 실전형 머신 플랫폼 |
| Starting Point | HTB 입문용 튜토리얼 머신 시리즈 |
| user.txt / root.txt | 침투 증거 / 지배 증거 — HTB의 두 플래그 |
| foothold | 초기 침투 — 시스템에 처음 발을 디딘 지점 |
| 비 TTY 쉘 | 의사 터미널 없는 쉘 — 방향키·탭·Ctrl+C가 깨짐 |
| 의사 터미널(pty) | 프로그램이 터미널인 척 연결해 주는 장치 |
| 다중 사용자 머신 | 여러 플레이어가 동시에 공격하는 공유 표적 |
오늘의 명령어·도구
| 명령 | 하는 일 |
|---|---|
sudo openvpn 파일.ovpn |
HTB VPN 접속 (THM과 별개 터널) |
python3 -c 'import pty; pty.spawn("/bin/bash")' |
TTY 업그레이드 1단계 |
stty raw -echo; fg |
TTY 업그레이드 3단계 (복귀) |
export TERM=xterm |
터미널 종류 선언 — 방향키 복구 |
script -qc /bin/bash /dev/null |
파이썬 없을 때의 TTY 대안 |
tty |
현재 쉘이 TTY 위인지 검증 (/dev/pts/N이면 성공) |
ftp $TARGET → anonymous |
익명 FTP 로그인 시도 |
명령어보다 중요한 감각
Starting Point 완주가 남기는 것은 뱃지가 아니라 세 가지 감각입니다. 첫째, 질문 없는 머신 앞에서 스스로 길을 그리는 법 — nmap 출력이 곧 문제지라는 감각. 둘째, 쉘을 얻는 것과 그 쉘을 "쓸 만한 상태"로 만드는 것은 별개의 단계라는 감각 — TTY 업그레이드 네 줄은 이제 손가락이 기억해야 합니다. 셋째, 이 무대는 혼자 쓰는 연습장이 아니라는 감각 — 유니크 파일명과 조용한 스캔은 기술이기 전에 태도입니다. 다음 챕터부터는 안내도 튜토리얼도 없는 Easy 머신입니다. 오늘의 노트가 거기서 여러분의 지도가 됩니다.
전부 체크되면 Step 255 완료입니다. 사이드바의 체크박스를 눌러 진도를 저장하세요.