본문 바로가기

전체 글115

[SK shieldus Rookies 19기][시스템 / 네트워크 보안] - UDP, TCP, 3-Way Handshking, Scapy, Wireshark 1. UDP(User Datagram Protocol, 사용자 데이터그램 프로토콜) UDP 설명 인터넷 프로토콜 스위트의 주요 프로토콜 가운데 하나로, 데이터그램으로 알려진 단문 메시지를 교환하기 위해서 사용 연결을 설정하지 않고 수신자가 데이터를 받을 준비를 확인하는 단계를 거치지 않고 단방향으로 정보 전송 신뢰성 - 수신자가 메시지를 수신했는지 확인할 수 없음 순서 정렬 - 메시지 도착 순서를 예측할 수 없음 부하 - TCP보다 속도가 일반적으로 빠르고 오버헤더가 적음 8바이트로 고정 출발지 포트, 목적지 포트 : 16비트로 65,536개 길이 : UDP 페이로드와 UDP 헤더를 더한 데이터 그램의 크기 오류검사 : 기본적으로 비활성화 중간에 데이터가 유실되거나 손상되어도 크게 중요하지 않은 프로토콜.. 2024. 4. 12.
[SK shieldus Rookies 19기][시스템 / 네트워크 보안] - DHCP, MAC Address, ARP, 패킷 전송, 통신 체계와 통신 규약, 전송 데이터 구성 1. dig(Domain Information Groper) 1) naver.com 도메인 정보 조회 dig 사용법은 "dig 도메인이름 [레코드유형]" 이다. QUESTION SECTION이 질의 내용인데, www.naver.com 도메인 이름으로 A 유형의 레코드를 질의한 것이다. ANSWER SECTION이 질의 결과로 1개의 CNAME과 4개의 A 레코드가 조회된 것이다. 2) blog.naver.com SOA 조회 gns1.nheos.com. Primary Name Server hostmaster.nheos.com. 관리자 이메일 주소 hostmaster@nheos.com 의미 2024040404 시리얼 번호 10800 Refresh 값 3시간 주기로 Secondary DNS가 Zone Tran.. 2024. 4. 7.
[SK shieldus Rookies 19기][시스템 / 네트워크 보안] - IP, OSI 7 layer, LAN, DNS 1. ipconfig ipconfig 설명 운영체제에서 네트워크 인터페이스 설정을 확인하고 관리하는 데 사용되는 명령어다. 네트워크 인터페이스의 정보를 출력한다. IP 주소 서브넷 마스크 기본 게이트웨이 MAC 주소 DNS 서버 주소 DHCP 서버 주소 1) IP(Internet Protocol) 주소 인터넷 공간에서 각 호스트의 고유한 식별자를 의미 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해서 사용하는 특수한 번호(주소) IPv4 주소를 표기할 때는 8비트 단위의 옥텟(octet)으로 나눠서 각 옥텟은 콤마로 구분해서 표기 10진수로 표기 1옥텟은 0~255 나타낼 수 있음 (1) 주소 구분 네트워크 주소 호스트를 모은 네트워크를 지칭하는 주소 네트워크 주소가 동일한 네트워크를 로컬.. 2024. 4. 5.
[SK shieldus Rookies 19기][애플리케이션 보안] - Python 시큐어코딩 가이드 2 1. 보안 기능 보안과 관련한 기능을 구현하지 않거나 부적절하게 구현한 경우 발생 인증, 인가, 접근통제, 암호화, 권한관리 등을 부적절하게 구현 시 발생하는 보안 약점은 적절한 인증 없는 중요기능 허용, 부적절한 인가 등이 있다. 중요한 정보가 있을 때, 이 중요한 정보를 보호하기 위해서는 인가된 사용자만 접근할 수 있도록 접근 통제를 하고, 식별, 인증, 인가를 해야 한다. 접근 통제에 문제가 생기는 것은 중요 정보에 권한이 없는 사용자에게 중요 정보가 노출된다고 한다. 권한이 없는 사용자가 중요 정보를 획득했을 때 중요 정보를 알지 못하도록 방어하기 위해서 암호화한다. 1) 적절한 인증 없는 중요 기능 허용 인증된 사용자인지 확인하지 않고 기능을 제공할 때 발생 Django 에서 기본적인 인증 로그.. 2024. 4. 2.
[SK shieldus Rookies 19기][애플리케이션 보안] - Python 시큐어코딩 가이드 1 1. 입력데이터 검증 및 표현 Python 시큐어코딩 가이드 프로그램 입력값에 대한 검증 누락 또는 부적절한 검증, 데이터의 잘못된 형식 지정, 일관되지 않은 언어셋 사용 등으로 인해 발생하는 보안 약점으로 SQL 삽입, XSS 등의 공격을 유발할 수 있다. 1) SQL 삽입 입력값에 쿼리 조작 문자열을 확인하지 않고 쿼리문 생성 및 실행에 사용하는 경우 발생 쿼리가 조작되어 실행되기 때문에 권한 밖의 데이터에 접근할 수 있고, 쿼리 실행을 통해서 제공되는 기능을 우회해서 사용해 해당하는 시스템의 제어권을 탈취할 수 있다. (1) 안전한 코딩 기법 DB API 사용 시 인자(arguments)를 통해 외부 입력값을 바인딩해서 사용하면 SQL 삽입 공격으로부터 안전하게 보호할 수 있다. 구조를 정의하고 정.. 2024. 4. 1.
[SK shieldus Rookies 19기][애플리케이션 보안] - Bee box, Upload 1. Upload 취약점 파일 업로드 기능이 제공되는 경우, 파일의 크기와 개수, 종류들 제한하지 않고, 외부에서 접근할 수 있는 경로에 업로드 파일을 저장하는 경우 발생 1) 가이드 파일 크기와 개수를 제한하지 않는 경우 서버의 연결 및 디스크 자원을 고갈시켜 정상적인 서비스를 방해 종류를 제한하지 않는 경우 바이러스와 같은 파일을 업로드해서 해당 서버를 악성코드 유포지로 활용 서버에서 실행할 수 있는 파일을 업로드해서 실행 웹쉘(WebShell) 외부에서 접근할 수 있는 경로에 업로드 파일을 저장하는 경우 URL을 통해서 접근할 수 있는 경로에 위치 Web Document Root 아래에 위치 2) 파일 업로드 기능 확인 방법 form 태그 설명 위 코드가 파일 업로드에 사용되는 코드다. input .. 2024. 3. 31.
[SK shieldus Rookies 19기][애플리케이션 보안] - WebGoat, Bee box, BeEF, XSS, CSRF 1. BeEF를 이용한 XSS 공격 1) 설치 및 실행 (1) 설치 sudo apt install beef-xss 입력으로 설치 (2) 실행 sudo beef-xss 입력 실행 처음 실행하면 기본 비밀번호 재 설정을 해야 한다. 각자의 비밀번호를 입력하고 넘어가면 127.0.0.1:3000 주소로 BeEF 페이지가 열린다. ID에는 beef를 입력하고 각자가 설정한 비밀번호를 입력하고 로그인한다. 2) XSS 공격 (1) XSS - Stored(Blog) 이전 포스팅에서 스크립트로 공격했던 페이지에서 BeEF로 공격 실습한다. (2) hook.js Kali 가상머신에서 XSS 취약점을 가지고 있는 게시판에 hook.js 파일을 실행하는 글을 등록한다. (3) BeEF 확인 BeEF 콘솔에서 스크립트 코드.. 2024. 3. 31.
[SK shieldus Rookies 19기][애플리케이션 보안] - WebGoat, Bee box, XSS 1, 크로스 사이트 스크립트(XSS : Cross-Site Scripting) 공격자가 전달한 스크립트 코드가 사용자 브라우저를 통해 실행 1) 공격자가 전달한 스크립트 코드 사용자에게 가짜 페이지를 제공하고 입력을 유도해서 사용자 정보를 탈취 사용자 브라우저 또는 PC에 저장된 정보를 탈취 브라우저에 설치되어 있는 각종 플러그인의 취약점 활용 사용자 PC의 제어권을 탈취해서 원격지에서 해당 PC를 제어 BeEF 2) 유형 (1) Stored XSS(저장 크로스 사이트 스크립트) 공격자가 입력한 스크립트 코드가 취약한 서버에 저장되고, 사용자가 조회 시 저장된 스크립트 코드가 그대로 사용자 브라우저로 전달되어 실행 공격자가 게시판이 글을 쓸 때 를 입력하면 저장 페이지로 전달되어 그대로 DB에 저장된다... 2024. 3. 30.
[SK shieldus Rookies 19기][애플리케이션 보안] - WebGoat, Bee box, Command Injection 1. Command Injection 애플리케이션에 운영체제 명령어(= 쉘 명령어)를 실행하는 기능이 존재하는 경우, 외부 입력값을 검증, 제한하지 않고 운영체제 명령어 또는 운영체제 명령어의 일부로 사용되는 경우 발생한다. 시스템의 제어권을 탈취해 해당 시스템을 원격에서 공격자가 마음대로 제어할 수 있게 된다. 1) 운영 체제 명령어를 실행하는 기능 (1) Java Runtime.getRuntime().exec("쉘 명령어") 쉘 명령어를 해당 시스템에서 실행하고 결과를 반환 (2) PHP exec("쉘 명령어") exec 설명 (3) Python subprocess.run([쉘 명령어]) os.system("쉘 명령어") 명령어 설명 2) 외부 입력값 검증, 제한 (1) 검증 추가 명령어를 실행하는 .. 2024. 3. 29.
[SK shieldus Rookies 19기][애플리케이션 보안] - WebGoat, Bee box, SQL Injection 1. String SQL Injetcion Injection Flaws > LAB: SQL Injection > Stage 1 : String SQL Injection 목표는 Neville 사용자로 로그인하는 것 1) 로그인 버튼을 클릭했을 때 서버로 전달되는 내용 분석(GET 방식) attack?Screen=18&menu=1100&employee_id=112&password=입력한패스워드&action=Login Larry Stooge (employee) Moe Stooge (manager) Curly Stooge (employee) Eric Walker (employee) Tom Cat (employee) Jerry Mouse (hr) David Giambi (manager) Bruce McGuirre.. 2024. 3. 27.