Session Hijacking | 세션 하이재킹
·
Hacking/Network
Session Hijacking | 세션 하이재킹Session | 세션사용자와 컴퓨터, 또는 두 대의 컴퓨터간의 활성화된 상태 즉, 특정 두 호스트 등이 연결이 지속되고 있는 상태이다. Session Hijacking | 세션 하이재킹세션 가로채기ex) 누군가 작업을 하다가 잠시 자리를 비운 pc를 몰래 사용해 원하는 작업을 하는 것현재 살아있는 세션을 가로채는 것이다.클라이언트나 서버가 알지 못하도록 해야한다. (클라이언트가 새로운 세션을 서버에 요청하면 안됨) 더보기[웹 개발 시 중요한 점]로그아웃 기능을 구현 시 단순히 "현재 페이지를 닫는다" 는 것에 집중하면 안된다.현재 연결된 세션을 끊어야한다. 즉, 서로 통신하는 두 호스트가 모두 알지 못하도록 하면서 C가 세션을 가로채야하므로 굉장히 까다롭..
Spoofing | 스푸핑
·
Hacking/Network
Spoofing | 스푸핑사전적 의미 : 속이다 ARP 스푸핑ARP (Address Resolution Protocol) : IP 주소로 MAC 주소를 찾는 프로토콜2계층 통신을 위한 프로토콜 > 서로 MAC 주소의 정보를 알아야 통신이 가능함∴ 동일 네트워크 내부망에서만 사용 가능ARP 프로토콜을 이용하여 MAC 주소를 속이는 공격 기법ARP 프로토콜이 가지는 취약성을 이용스위칭 환경에서 스니핑을 하기 위해 사용됨 (결과적으로 스니핑이 목적)MAC 주소를 속여 랜에서의 통신 흐름을 왜곡IP 주소는 의미가 없음즉, 공격하고자 하는 시스템에 서로의 IP 주소에 공격자의 MAC 주소를 넣어 공격자를 통해 소통이 되도록 한다. ARP ProtocolIP 주소에 대해서 그 주소에 해당하는 MAC 주소가 무엇인지..
Sniffing | 스니핑
·
Hacking/Network
Sniffing | 스니핑사전적 의미 : 코를 킁킁거리다수동적 (Passive) 공격 : 도청과 엿보기 네트워크를 통해서 흐르는 정보를 중간에서 가로채는 공격스니핑 공격의 종류다른 이의 대화를 엿듣는 것도청 (Eavesdropping)전화선이나 UTP에 태핑(Tapping)을 해서 전기적 신호를 분석해 정보를 찾아내는 것A에서 들어오고 나가는 모든 패킷을 감시하고 싶다.A에서 들어오고 나가는 모든 정보들이 공격자를 통해 전달이 되도록 하는 방법이 스니핑이다. 스니핑의 특징공격 대상은 스니핑 공격에 노출되어있다는 것을 알기가 어려움유선 통신망으로 연결되어 있어야함LAN 안에서만 (동일 네트워크 안에서만) 스니핑이 가능하다.패킷이 공격자를 통과해서 전달이 되도록 하려면, 항상 공격자에게도 패킷이 전송되어야하..
DoS | 서비스 거부 공격
·
Hacking/Network
DoS (Denial of Service) Ping of deathPing네트워크와 시스템이 정상적으로 작동하는지 확인하기 위한 유틸리티ICMP (Internet Control Messaging Protocol) 사용 : 호스트 서버와 인터넷 게이트웨어 사이에서 메세지를 제어하고 오류를 알려줌 > 정상적으로 전송이 되지 않으면 Reply3계층 프로토콜로, IP 프로토콜 (비연결성) 과는 다른 프로토콜이다.인터넷에서 라우터를 거치면서 전송이 되는데, 존재하지 않는 주소로 전송한다면 이 IP패킷은 없어지지 않고 머물게 된다.TTL (Time to Live) 라우터를 하나 거칠 때 마다 TTL의 수가 줄어드는데, TTL의 수가 0이 되면 패킷은 없어진다. (전송하지 않음) Ping of death윈도우 95,..
UPX packing & unpacking
·
Hacking/Reversing
Binary PackingBinary packing is the technique of compressing executable files to obscure their content, making it harder for security application to detect or analyze them.실행 파일을 압축하여 그 내용을 숨기는 기술로, 보안 애플리케이션이 해당 파일을 분석하거나 탐지하게 어렵게 만든다.바이너리 패킹은 실행 파일을 압축하고 암호화하여 그 구조를 숨기는 방식이다. 실행될 때 패커라는 소프트웨어가 파일을 압축하고 실행 시점에서 이를 다시 압축 해제하여 정상적으로 작동하게 만든다 IDA로 UPX packing된 파일을 확인하면 프로그램의 로직적인 부분이 꼬여있는 것을 확인할 수..
정보 보안 개론 | 보안 기초
·
Hacking
보안의 중요성유비쿼터스 (Ubiquitous) : 언제, 어디서나 네트워크를 통해 컴퓨터 시스템에 접근하여 원하는 정보를 얻고 원하는 서비스를 사용할 수 있는 컴퓨팅 환경IOT (Internet of Things) : 모든 사물이 인터넷으로 연결되어 자동으로 동작하며 능동적으로 제어할 수 있는 환경  이러한 시대에 통제의 부재로 인해 위험한 일이 발생할 수 있음 해킹Definition | 정의Hacking is about finding inventive solutions using the properties and laws of a system in ways not intended by its designer디자이너가 의도하지 않았던 방법으로 시스템의 특성이나 규칙을 이용한 창조적인 사용법을 찾는 것 T..
[Exploit] Return Oriented Programming (ROP chain)
·
Hacking/Pwnable
Return Gadgetret로 끝나는 어셈블리 조각원하는 명령어 + ret으로 이루어진 가젯들이다가젯(gadgets) : 해당 프로그램이 사용하는 메모리에 이미 있는 기계 명령어  ROP chain리턴 가젯을 사용하여 복잡한 실행 흐름을 구현하는데, 이를 통해 ret2libc, ret2dl-reslove, GOT overwiret 등 payload를 구성할 수 있다.원하는 가젯들을 조합하여 원하는 흐름으로 이어지게 하기 때문에, 한번에 실행 흐름을 제어할 수 없을 때 주로 사용한다.따라서 보통은 ret2libc 등과 조합하여, NX를 bypass 하기 위해 많이 사용된다 * 보통은 pie가 걸려있지 않아야 주소가 code, data segment의 주소가 변경되지 않기에 해당 보호기법이 없어야 사용하기..
[Pwnable] Return to Library
·
Hacking/Wargame
문제 : https://dreamhack.io/wargame/challenges/353 Return to LibraryDescription Exploit Tech: Return to Library에서 실습하는 문제입니다.dreamhack.io Environment Arch: amd64-64-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x400000)NX enabled : stack, heap 등에 실행 권한이 없음 ASLR 적용됨PIE 없음 Code Analysis// Name: rtl.c// Compile: gcc -o rtl rtl.c -fno-..
[Exploit] Return to Library
·
Hacking/Pwnable
Library자주 사용하는 소스코드를 미리 작성하여 프로그래머가 원할 때 빠르게 사용할 수 있게 가공된 형태컴파일 시간 단축소스 코드를 쉽게 사용 가능소스 코드의 일부를 보호 및 비공개 가능PLT & GOTPLT (procedure linkage table) : 외부 라이브러리에서 함수가 plt에 매핑되어 있다.GOT (golbal offset table) : 함수의 주소를 담고 있는 테이블로 plt가 got를 참조한다.PLT와 GOT에 대한 자세한 설명 : https://m-in-zu.tistory.com/77 Static Link vs Dynamic LinkCompile | 컴파일컴파일은 인간이 이해할 수 있는 언어로 작성된 소스코드를 CPU가 이해할 수 있는 언어로 변환하는 작업즉, 바이너리 형태로..
[Mitigation] ASLR
·
Hacking/Pwnable
Definition | 정의Address Space Layout Randomization바이너리가 실행될 때마다 스택, 힙, 공유 라이브러리 등을 임의의 주소에 할당하는 기법 커널에서 지원하는 보호기법으로, 운영체제마다 ASLR이 구현되어 있는 방식이 다르다리눅스를 기반으로 설명할 예정ASLR 확인하기명령어cat /proc/sys/kernel/randomize_va_space0 : No ASLR1 : Conservative Randomization - Stack, Library, vdso등 2 : Conservative Randomization + brk : brk로 할당한 영역까지checksec리눅스의 경우, checksec로 확인할 수 있음대부분의 보호 기법은 checksec로 확인 가능하다 (win..