Journey to Security 154

[방화벽] iptables 저장/복구 방법

1. iptables 룰의 기본 특징1️⃣ iptables 룰은 왜 저장이 필요한가iptables 룰은 커널 메모리에 적재된다.직접 iptables -A 나 iptables -I로 추가한 룰은 현재 실행 중인 시스템에서는 작동하지만, 재부팅하면 전부 사라진다.영구적으로 유지하려면 룰을 파일로 덤프하고, 부팅 시 복원하는 별도 프로세스가 필요하다. 상태 저장 위치 재부팅 후 iptables -A 직후커널 메모리❌ 사라짐iptables-save > 이후파일(/etc/sysconfig/iptables)✅ 복구 가능 2️⃣ 핵심 명령어 3개 (root 사용자 기준) 🔵 iptables-saveiptables-save > /etc/sysconfig/iptables 현재 커널 메모리에 적재된 모든 테이블(f..

[방화벽] 리눅스 호스트 방화벽 iptables에 대해 알아보자

iptables는 리눅스 서버 운영에서 매우 중요하다.클라우드 환경과 컨테이너 오케스트레이션 도구들이 내부적으로 iptables 규칙을 생성하기 때문에 iptables를 잘 다루어야 네트워크 디버깅을 할 수 있다. 참고로 리눅스 커널 3.13부터 iptables의 후속 기술인 nftables가 도입되었고, 최신 배포판들은 nftables를 기본으로 채택하고 있다.그럼에도 도커와 쿠버네티스는 여전히 내부적으로 iptables 규칙을 대량 생성하고, 많은 운영 환경의 기존 스크립트가 iptables 문법으로 작성되어 있기 때문에 iptables를 이해하는 것이 중요하다.1. iptables의 특징1️⃣ 호스트 기반 방화벽방화벽은 위치에 따라 크게 두 가지로 나뉜다.네트워크 방화벽은 네트워크 경계에서 트래픽을..

DVWA 문제풀이: Command Injection

1. Command Injection 개념Command Injection은 사용자 입력값이 서버 측 OS 명령어 실행 함수(shell_exec, system, exec 등)에 그대로 전달될 때 발생하는 취약점이다.공격자는 ;, &&, | 같은 명령어 구분자(separator)를 이용해 의도하지 않은 명령어를 추가 실행시킨다. 구분자 동작 방식 ;앞 명령 결과와 무관하게 순차 실행&&앞 명령이 성공해야 뒤 명령 실행||앞 명령이 실패해야 뒤 명령 실행|앞 명령의 출력을 뒤 명령의 입력으로 전달 🔵 DVWA 실습 조건 : ping 기능 DVWA의 Command Injection 실습 화면을 보면 단순한 입력창 하나만 있다.IP 주소를 입력하면 서버가 해당 IP로 ping을 실행하고 결과를 브라우저에 출..

DVWA 문제풀이: Netcat을 이용한 Reverse Shell 공격

1. Reverse Shell이란?일반적인 원격 접속(Normal Shell)은 공격자가 피해 서버에 접속을 시도하는 방향이다.반면 Reverse Shell은 방향이 반대다.피해 서버가 공격자 쪽으로 먼저 연결을 맺는다. 이 방향 역전이 중요한 이유는 방화벽 정책 때문이다.대부분의 서버는 외부에서 들어오는 연결(Inbound)을 엄격하게 차단하지만, 서버가 외부로 나가는 연결(Outbound)은 상대적으로 허용하는 경우가 많다. Reverse Shell은 이 비대칭성을 이용한다. 2. Reverse Shell 실습Step 1️⃣ 공격자 PC(kali)에서 리스너 열기nc는 Netcat의 줄임말로, TCP/UDP 연결을 자유롭게 열고 닫을 수 있는 네트워크 유틸리티다.stdin/stdout을 네트워크 소켓..

DVWA 애플리케이션으로 웹 취약점 실습하기

1. DVWA란?DVWA(Damn Vulnerable Web Application)는 의도적으로 취약하게 설계된 PHP/MySQL 기반 웹 애플리케이션이다.합법적이고 통제된 환경에서 공격 기법과 도구를 테스트할 수 있도록 만들어졌으며, 보안 교육 플랫폼으로 활용된다.핵심 특징은 다음과 같다.Low / Medium / High / Impossible 4단계 난이도 제공SQL Injection, XSS, CSRF, Command Injection 등 주요 웹 취약점 포함각 레벨의 소스코드를 직접 비교할 수 있는 "View Source / Compare All Levels" 기능2. 환경 구성 docker run -d -p 80:80 vulnerables/web-dvwa *현재 서버에서 80번 포트가 사용중이..

[SQLi] 취약한 웹앱 공격 실습 (2) UNION-based 데이터 탈취

📌실습 목표 : 상품 검색 폼에 UNION SELECT를 삽입해 users 테이블의 계정 정보(username, password)를 검색 결과 화면에 그대로 출력시킨다. 1. 취약한 코드search_vuln.php 의 핵심 부분이다.$keyword = $_GET['keyword'];$query = "SELECT id, name, price, description FROM products WHERE name LIKE '%$keyword%'"; products 테이블에서 4개 컬럼을 SELECT하고 있다.이 구조가 UNION 공격의 핵심 단서다. 2. UNION 공격 원리 3. 단계별 공격 실습 http://192.168.100.25:8080/vuln/search_vuln.php 접속 후 keyword ..

보안이슈#4. Nginx 메모리 취약점

최근 국내 정보보안 전문 매체 보안뉴스와 The Hacker News 는 전 세계 웹 서버 시장의 핵심 소프트웨어인 NGINX에서 복수의 취약점이 공개됐다고 보도했다.이 취약점은 단순한 보안 패치 권고 이상의 의미를 가진다. 전 세계 웹 서버 시장의 핵심 소프트웨어인 NGINX에서 무려 18년간 발견되지 않은 취약점이 공개된 직후, 실제 공격에 악용되기 시작했기 때문이다. F5 내부 연구팀 depthfirst가 발견한 두 취약점은 NGINX Plus와 NGINX Open Source 모두에 영향을 미치며, 조건에 따라 원격 코드 실행(RCE)까지 이어질 수 있다. 특히 CVE-2026-42945는 공개 시점 기준 CVSS 9.2점(Critical)으로 평가됐고, 취약한 코드가 2008년에 처음 도입된 것..

[SQLi] 취약한 웹앱 공격 실습 (1) 로그인 우회

📌실습 목표 : 취약한 로그인 폼에 SQL 페이로드를 삽입해 비밀번호 없이 임의 계정으로 로그인한다.1. 취약한 코드login_vuln.php 의 핵심 부분이다.$username = $_POST['username'];$password = $_POST['password'];$query = "SELECT * FROM users WHERE username = '$username' AND password = '$password'"; 로그인 페이지에서 사용자가 입력하는 값이 쿼리 문자열에 그대로 붙어버린다. 여기서 공격이 시작된다. 2. 공격 원리 3. 페이로드 3종 실습브라우저에서 http://192.168.100.25:8080/vuln/login_vuln.php 로 접속하고 아래 페이로드를 순서대로 입력해..

[SQLi] 취약한 실습용 웹 애플리케이션 만들기 (Claude AI 이용)

SQL 인젝션 실습을 위해 Claude AI를 이용해서 다음과 같이 전체 실습 환경을 구성했다.Windows 10/11 (호스트)└── VMware Workstation └── Rocky Linux 9 (192.168.100.25) └── Docker Engine └── sqli_net (bridge network) ├── sqli_web (PHP 8.2 + Apache 2.4) :8080 └── sqli_db (MySQL 8.0) :3306 내부전용1. 하이퍼바이저 — VMware Workstation보안 실습의 첫 번째 원칙은 격리다.아무리 실습용이라도 취약한 코드를 실서버나 로컬 머신에..

PwnKit(CVE-2021-4034)을 이용한 리눅스 로컬 권한 상승과 대응

리눅스 시스템의 권한 관리 프레임워크인 Polkit(PolicyKit)에서 발견된 CVE-2021-4034(PwnKit) 취약점에 대해서 알아본다.이 취약점은 pkexec 유틸리티가 인자값(argv)을 처리하는 과정에서 발생하는 메모리 참조 오류를 악용하여, 일반 사용자 계정에서 root 권한을 획득하는 로컬 권한 상승(LPE) 공격이다. 1. 전체 공격 아키텍처 및 흐름공격자는 낮은 권한의 계정으로 시스템에 접근한 뒤, pkexec의 SUID 특성과 환경 변수 조작을 결합하여 root 권한을 탈취한다. ✅ pkexec이란? pkexec은 리눅스 시스템에서 Polkit(PolicyKit)이라는 프레임워크를 기반으로, 일반 사용자가 다른 사용자(보통 root)의 권한으로 특정 명령을 실행할 수 있게 해주는..