EXPLORE THE CURRICULUM
Level 2 · 보안 실습의 첫걸음
워게임과 실습 환경에서 공격 원리와 대응을 배웁니다.
이 레벨의 시작점 프로그래밍·네트워크 기초가 있는 분 · Step 96–175
80 개의 수업
선택 초기화L2워게임 시작하기Step 96–10510 수업
- 096 Bandit 0~5 — 워게임 풀이 사이클SSH로 원격 서버에 접속하고 포트를 지정할 수 있다
- 097 Bandit 6~10 — find 조건 검색 마스터find의 조건(-user, -group, -size, -perm, -mtime, -writable)을 AND로 조합해 원하는 파일만 정확히 뽑는다
- 098 Bandit 11~15 — 인코딩과 네트워크 접속tr로 ROT13 등 문자 치환을 수행하고 원리를 설명한다
- 099 Bandit 16~20 — setuid 첫 만남포트 범위 스캔으로 열린 서비스를 찾고 TLS 여부를 확인한다
- 100 Bandit 21~25 — cron 악용 사고방식/etc/cron.d/를 읽고 "누구 권한으로 무엇이 언제"를 해석한다
- 101 Bandit 26~30 — git 이력에서 비밀 캐기, 그리고 완주제한된 쉘 환경에서 more/vim 경유로 파일을 읽는 우회의 개념을 설명한다
- 102 Natas 0~5 — 웹 워게임의 문을 열다새 사이트를 만나면 소스 보기→주석 검색→robots.txt→경로 추측의 정찰 루틴을 수행한다
- 103 Natas 6~10 — 서버 코드 읽기와 명령어 인젝션PHP 소스에서 include 경로와 비교 로직을 찾아 읽는다
- 104 Natas 11~15 — XOR 분석과 첫 SQL Injection반복 키 XOR 암호에서 알려진 평문 공격(known-plaintext attack)으로 키를 복구한다
- 105 ★ 점검 — 워게임 기법 목록화Bandit 0~30, Natas 0~15에서 쓴 기법을 누락 없이 나열한다
L2Linux 보안 기초Step 106–1105 수업
- 106 리눅스 권한 심화 — setuid, setgid, sticky bitsetuid·setgid·sticky bit의 동작을 각각 한 문장으로 설명한다
- 107 리눅스 로그 탐구 — /var/log/var/log의 주요 파일(auth.log, syslog, kern.log, wtmp 등)의 역할을 말한다
- 108 환경변수와 PATH 인젝션환경변수가 무엇이며 export와 $변수로 읽고 쓴다
- 109 심볼릭 링크와 하드링크 — 파일의 또 다른 이름파일의 실체(inode)와 이름이 분리되어 있다는 구조를 설명한다
- 110 프로젝트: "리눅스 권한 모델의 허점" 정리 문서 — 공격자의 눈으로 복습한다리눅스 권한 우회 지점 4종을 "조건 / 발견 방법 / 악용 방법 / 방어법"의 4단 구조로 정리한다
L2실습 환경과 침투 과정Step 111–13020 수업
- 111 Kali Linux 설치 — 공격자의 작업대를 마련한다Kali Linux가 무엇이며 왜 보안 업계의 표준 작업 환경인지 설명한다
- 112 Metasploitable2 설치와 격리 랩 구성 — 안전한 사격장의 완성의도적 취약 VM이 무엇이며 왜 존재하는지 설명한다
- 113 정찰 1: 타깃 서비스 전수 조사 — 공격은 목록 작성에서 시작된다공격 표면(attack surface)이 무엇인지 설명하고 전수 스캔으로 열거한다
- 114 정찰 2: 취약점 스캐너와 결과 읽기 — 스캐너는 후보 생성기다nmap의 vuln 스크립트 카테고리로 취약점 후보를 자동 수집한다
- 115 CVE 읽는 법: NVD와 Exploit-DB — 번호 하나에 담긴 이야기CVE 번호의 구조(연도-일련번호)를 설명하고, CVE·NVD·Exploit-DB의 역할 차이를 말한다
- 116 Metasploit 입문 — 공격의 표준 조립 공장msfconsole을 실행하고 프롬프트의 변화(일반 셸 → msf 셸)를 인식한다
- 117 ★ 첫 쉘: vsftpd 백도어로 MS2 장악 — 인생 첫 원격 명령 실행Metasploit에서 exploit를 실행해 첫 원격 쉘을 얻는다
- 118 바인드 쉘 vs 리버스 쉘 — 연결의 방향이 전부다바인드 쉘과 리버스 쉘을 nc로 각각 만들어 명령을 실행한다
- 119 netcat 완전 정복 — 네트워크의 스위스 아미 나이프nc의 두 가지 모드(리스너/클라이언트)를 상황에 맞게 고른다
- 120 수동 익스플로잇 1: 프레임워크 없이 공격 — 버튼 뒤의 동작을 손으로 재현한다vsftpd 백도어를 Metasploit 없이 nc만으로 수동 발동시킨다
- 121 수동 익스플로잇 2: 레퍼토리 확장 — 서비스마다 열리는 문이 다르다숨겨진 경로 탐색(디렉터리 버스팅)의 원리를 직접 만든 서버로 실증한다
- 122 패스워드 공격 1: hydra 온라인 브루트포스 — 살아있는 문을 두드리는 공격온라인 브루트포스의 원리(워드리스트 대입)를 직접 만든 도구로 설명한다
- 123 패스워드 공격 2: John the Ripper 오프라인 크래킹 — 훔친 해시는 조용히 깨진다/etc/shadow 한 줄의 형식(계정·알고리즘·솔트·해시)을 읽는다
- 124 패스워드 공격 3 — hashcat과 공격 모드GPU 크래킹이 CPU보다 빠른 이유를 코어 구조로 설명한다
- 125 권한 상승 입문 — 쉘에서 root로제한된 쉘에서 시스템 정보·계정·권한을 열거하는 정찰 명령을 실행한다
- 126 열거 자동화 — linPEAS수동 열거 명령 묶음을 직접 실행해 어떤 정보가 나오는지 안다
- 127 후속 침투(Post-Exploitation) 체크리스트 — 쉘 다음의 시작쉘 획득 직후 수집해야 할 정보의 항목들을 분류해 말할 수 있다
- 128 ★ 프로젝트 — MS2 완전 공략 보고서침투 테스트 보고서의 표준 구조(요약~권고)를 설명할 수 있다
- 129 VulnHub 취약 VM 추가 공략 — 처음 보는 타깃에 루틴을 통째로 적용한다VulnHub에서 입문용 머신을 골라 Host-only 랩에 합류시킬 수 있다
- 130 ★ 점검: 타임어택 모의 침투 — 6시간 안에 전 과정을 돌린다6시간 침투 훈련의 시간 배분표를 세우고 지킬 수 있다
L2웹 보안 기초Step 131–15525 수업
- 131 웹 서버 직접 만들기 — 로그인과 세션sqlite3 DB에 계정을 만들고 로그인 검증을 구현할 수 있다
- 132 Burp Suite 1: 프록시 가로채기 — 브라우저와 서버 사이에 끼어들기프록시가 브라우저와 서버 사이에서 무엇을 하는지 설명할 수 있다
- 133 Burp Suite 2: Repeater와 Intruder — 반복 실험대와 자동 기관총잡은 요청을 Repeater로 보내 반복 실험할 수 있다
- 134 쿠키와 세션 공격 — 서버가 믿는 신분증을 흔들다쿠키와 세션이 로그인 상태를 유지하는 구조를 요청·응답 헤더 수준에서 설명한다
- 135 DVWA 세팅과 SQLi 기초 — Low와 Medium을 넘다DVWA를 Docker로 띄우고 보안 난이도를 조절할 수 있다
- 136 SQLi 심화 — UNION으로 데이터베이스 통째로 빼내기UNION SELECT가 두 결과를 합치는 규칙(컬럼 수 일치)을 설명한다
- 137 Blind SQLi와 sqlmap — 보이지 않아도 빼낸다Boolean-based Blind SQLi의 오라클(참/거짓 답변 장치) 원리를 설명한다
- 138 XSS 기초 — Reflected와 Stored, 브라우저 안의 배신자XSS가 SQL 인젝션과 다른 점(공격 대상이 브라우저)을 설명한다
- 139 XSS 심화: 쿠키 탈취와 필터 우회 — alert를 넘어 세션을 훔친다document.cookie를 공격자 서버로 보내는 실전형 XSS 페이로드를 작성한다
- 140 CSRF: 요청 위조 — 피해자의 브라우저가 대신 클릭한다브라우저의 쿠키 자동 전송 특성이 CSRF를 가능하게 하는 원리를 설명한다
- 141 파일 업로드 공격: 웹쉘 — 게시판에서 서버 장악까지웹쉘이 무엇이고 "업로드 1개가 서버 장악"으로 이어지는 체인을 설명한다
- 142 웹쉘 심화: 직접 작성과 원리 — 한 줄짜리 문을 직접 만든다웹쉘의 핵심 구조(입력 → 실행 → 출력)를 한 줄씩 설명한다
- 143 명령어 인젝션 — 검색창이 서버의 터미널이 되는 순간명령어 인젝션의 성립 조건(입력 결합 + 셸 실행)을 코드에서 찾아낸다
- 144 파일 포함: LFI/RFI — 서버가 "읽어 주는 파일"을 내가 고른다LFI와 RFI의 차이를 include의 동작 방식으로 설명한다
- 145 디렉토리 탐색과 정보 노출 — "주소를 모르면 안전하다"는 착각강제 브라우징(forced browsing)의 원리와 gobuster의 기본 사용법을 안다
- 146 인증 공격 종합 — 정문을 두드리는 네 가지 방법기본 자격증명 점검이 실전 침투의 "첫 5분"인 이유를 설명한다
- 147 ★ DVWA 전 난이도 + 3단 정리표 — 취약점 하나를 "완전히" 안다는 것DVWA 난이도가 올라갈 때 방어 코드가 어떻게 진화하는지 코드 수준에서 설명한다
- 148 OWASP Juice Shop 1: 현대적 웹앱 입문 — 공격 무대가 바뀌었다SPA(싱글 페이지 앱)와 전통 웹앱의 구조 차이를 설명한다
- 149 Juice Shop 2 — 접근 제어와 IDORIDOR이 생기는 조건("인증은 하되 인가를 안 한다")을 설명한다
- 150 Juice Shop 3 — JWT와 비즈니스 로직JWT의 세 덩어리(헤더.페이로드.서명)를 분해하고 내용을 읽는다
- 151 드림핵 웹 입문 — 첫 실전 문제드림핵 워게임의 문제 구성 요소(제목·설명·URL·플래그 제출)를 안다
- 152 드림핵 웹 (누적 16) — 기법의 변형 인식같은 취약점이 다른 기능(검색창, 다운로드, 장바구니)에 숨는 방식을 설명한다
- 153 드림핵 웹 (누적 24) — 리서치로 돌파하기문제에서 기술 스택(Flask, PHP 등)을 식별해 검색 키워드의 재료로 쓴다
- 154 드림핵 웹 (누적 32) — 약점 목록과 문제 선별 전략풀이 기록을 CSV 형식(날짜·문제명·유형·소요분·결과)으로 유지한다
- 155 ★ 프로젝트 — 취약 웹 타깃 독립 공략과 보고서미지의 웹 타깃에 대해 정찰 → 기능 매핑 → 가설 → 검증의 순서를 스스로 진행한다
L2네트워크와 인증Step 156–16611 수업
- 156 MITM 입문 — ARP 스푸핑 1: 신분증 없는 프로토콜ARP 요청(who-has)과 응답(is-at)의 구조와 필드를 설명한다
- 157 ARP 스푸핑 2 — 양방향 가로채기와 평문의 최후단방향과 양방향 스푸핑의 차이를 "무엇이 보이는가"로 설명한다
- 158 패킷 스니핑 심화 — 필터 두 얼굴과 대화 재조립캡처 필터(BPF 문법)와 표시 필터(Wireshark 문법)의 차이를 설명하고 구분해 쓴다
- 159 DNS 스푸핑과 bettercap — 전화번호부를 바꿔치기하다DNS 질의/응답 패킷의 구조(질문 레코드와 응답 레코드)를 설명한다
- 160 SSL/TLS와 HSTS — 중간자를 막는 신분증 제도TLS 핸드셰이크의 단계(Client Hello → 인증서 → 키 합의 → 암호문 통신)를 설명한다
- 161 방화벽과 iptables — 문지기의 규칙을 설계하다체인(INPUT/OUTPUT/FORWARD)과 타깃(ACCEPT/DROP/REJECT)의 의미를 설명한다
- 162 프록시와 익명화 — 대리인 뒤에 숨는 기술과 그 한계포워드 프록시와 리버스 프록시의 차이를 "누구를 대리하는가"로 설명한다
- 163 SSH 터널링과 포트 포워딩 — 암호화된 통로에 다른 길을 싣다로컬(-L), 리모트(-R), 다이나믹(-D) 포워딩의 방향 차이를 그림으로 설명한다
- 164 열거(Enumeration) 도구 총정리 — 돌 하나하나 뒤집는 체계열거 상황(외부 네트워크 / 웹 / 호스트 내부)에 맞는 도구를 지체 없이 고른다
- 165 패스워드 스프레이와 크리덴셜 스터핑 — 잠금을 피해 가로로 걷는 공격온라인 패스워드 공격을 수직(브루트포스) / 수평(스프레이) / 재사용(스터핑)으로 분류한다
- 166 무선 보안: WPA2와 핸드셰이크 — 공기 중에 떠도는 열쇠 재료WPA2 4-way 핸드셰이크의 네 메시지를 순서대로 설명한다
L2보안 관점과 종합 실습Step 167–1759 수업
- 167 사회공학: 인간 해킹 — 방화벽을 우회하는 한 통의 메일사회공학이 "기술이 아니라 심리를 공격하는" 기법임을 사례로 설명한다
- 168 악성코드 구조: 트로이목마와 랜섬웨어 — 만들지 않고 해부하기바이러스/웜/트로이목마/랜섬웨어를 번식 방식 기준으로 구분한다
- 169 암호화와 탐지 회피 개념 — 숨기는 자와 찾는 자의 군비 경쟁난독화와 암호화의 차이를 "되돌리는 열쇠" 관점에서 설명한다
- 170 OSINT 입문 — 소셜미디어 수집과 디지털 발자국OSINT의 정의와 합법의 경계(공개 정보·목적·동의)를 설명한다
- 171 OSINT 심화 — 서브도메인과 자산 열거수동(passive) 열거와 능동(active) 열거의 차이를 설명한다
- 172 ★ 종합 시나리오 1 — 정찰부터 쉘까지정찰 → 스캔 → 열거 → 가설 → 검증 → 쉘의 킬 체인을 독립 수행한다
- 173 시나리오 1 복기와 침투 보고서 — 기록을 문서로 엮는 기술타임라인 기록에서 공격 경로를 재구성한다
- 174 종합 시나리오 2: 웹 침투 → 내부 확장 — 입구 하나가 전체를 연다체인 공격(chain attack)이 무엇인지 설명하고, 웹 침투에서 root까지의 다섯 단계를 나열한다
- 175 Level 2 종합 평가: 공격/방어 대응표 — 양면 사고의 완성Level 2의 주요 공격 기법을 각각 짝이 되는 방어와 한 쌍으로 설명한다