이하임2025. 4. 27. 23:16Fuzzer 조사 - Fuzzing과 Fuzzer에 대한 이해

팀 내부 프로젝트에 앞서 fuzzer에 대한 내용을 다시 간단하게 조사해서 정리하려는 목적으로 글을 작성한다. 1. FuzzingFuzzing이란?Fuzzing(퍼징)은 소프트웨어의 보안 취약점이나 안정성 문제를 찾아내기 위한 자동화된 테스팅 기법이다.이 기법은 프로그램에 무작위로 생성된 데이터를 입력해서 프로그램이 어떻게 반응하는지 관찰하는 방식으로 작동한다. 이러한 과정을 통해서 소프트웨어가 예외적인 입력에 대해서 어떻게 반응하는지를 테스트하고 그로 인해 발생할 수 있는 크래시, 메모리 누수, 논리 오류 등을 탐지할 수 있다. Fuzzing 의 종류Fuzzing은 웹 애플리케이션, 브라우저, 운영체제 커널, 장치 드라이버 등 다양한 환경에서 활용되는데 특히 보안 취약점을 사전에 식별하고 대응하기 위한..

CPIO 아카이브 파일
이하임2025. 2. 19. 20:06CPIO 아카이브 파일

서문공유기 펌웨어 에뮬레이션을 시도하면서 QEMU를 사용하는 방법을 알아보았다. 그러던 중에 QEMU의 -initrd 명령어로 루트 펌웨어 파일을 전달하는 과정에서 파일을 로드할 수 없다는 오류가 발생했다.따라서 이러한 오류를 해결하기 위해서 알게 된 방법 중 하나가 binwalk를 통해서 추출한 ubifs-root 디렉토리를 cpio 포맷으로 만들어진 아카이브로 압축해서 ‘램 디스크’로 전달하는 방법이었다.이 과정에서 CPIO에 대해서 알아보면서 글을 작성하게 되었다. 1. CPIO란CPIO: CPIO는 “Copy In and Out”의 약자로 파일과 디렉토리를 하나의 아카이브 파일로 만들거나 추출하는 것에 특화된 도구이다.기능 및 역할단순하게 데이터를 묶거나 푸는 역할을 하는 도구로 다른 압축 도구와..

이하임2025. 2. 12. 17:46ASLR에 대해서

목표 바이너리에서 ASLR의 부재를 확인하고 ROP 체인을 이용해서 exploit을 진행하려던 중에 처음에 ASLR이 걸려있지 않다고 판단한 것이 잘못 확인한 사실인 것을 알게 되었다. 따라서 ASLR 기법과 그 확인 방법에 간단히 조사해서 정리하게 되었다.  1. ASLR이란?ASLR(Address Space Layout Randomization)은 공격자가 메모리 주소를 예측하기 어렵게 만들어서 메모리 손상 취약점 공격을 방지하기 위한 기술이다.ASLR은 데이터 영역인 라이브러리, 스택, 힙 등의 주소를 무작위화한다. 따라서 버퍼 오버플로우나 ROP, RTL과 같은 메모리 기반 공격을 어렵게 만들어서 공격자가 정확한 주소를 알아내기 힘들다.  2. ASLR 검사 방식 및 확인 방법1. /proc/sy..

임문주2025. 2. 9. 21:41HTTP COOKIE

HTTP 쿠키란?HTTP 쿠키(HTTP Cookie)는 웹사이트가 사용자의 웹 브라우저에 저장하는 작은 데이터 조각입니다. 주로 사용자 인증, 세션 유지, 사용자 설정 저장 등에 활용되며, 웹사이트의 기능성을 향상하는 역할을 합니다. 1. HTTP 쿠키의 개념쿠키는 서버와 클라이언트 간의 상태 정보를 유지하기 위한 메커니즘입니다. 쿠키는 다음과 같은 주요 속성을 가집니다.이름(Name): 쿠키의 식별자값(Value): 저장할 데이터도메인(Domain): 쿠키가 유효한 도메인경로(Path): 쿠키가 적용될 경로만료 시간(Expiration Time): 쿠키의 유효기간보안(Security) 속성: 보안 설정 (예: Secure, HttpOnly, SameSite 등) 2. HTTP 쿠키 전달 과정서버와 클라..

임문주2025. 2. 9. 21:40Stack Buffer Overflow

Stack Overflow? VS Stack Buffer Overflow?스택 오버플로우(Stack Overflow)는 스택 영역이 너무 많이 확장돼서 발생하는 버그를 뜻합니다.스택 버퍼 오버플로우(Stack Buffer Overflow)는 스택에 위치한 버퍼에 버퍼의 크기보다 많은 데이터가 입력되어 발생하는 버그를 뜻합니다. Buffer?버퍼(Buffer) : 데이터가 목적지로 이동되기 전에 보관되는 임시 저장소데이터의 처리속도가 다른 두 장치가 있을 때, 이 둘 사이에 오가는 데이터를 임시로 저장해 두는 것은 일종의 완충 작용을 합니다.현대에는 이런 완충의 의미가 많이 희석되어 데이터가 저장될 수 있는 모든 단위를 버퍼라고 부르기도 합니다.스택에 있는 지역 변수는 ‘스택 버퍼’, 힙에 할당된 메모리 ..

이예은2025. 1. 31. 20:31plt와 got

1. PLT와 GOT  1) PLT(Procedure Linkage Table)     외부 라이브러리의 프로시저를 연결해주는 테이블.      puts 함수를 실행하려고 하면 puts함수는 puts@plt로 점프한다. (call puts@plt)     plt에서는 got를 통해 함수의 실제 주소에 접근한다. (jmp qword ptr[rip+0x2fca])     이때 puts 함수안에 있는 _dl_runtime_resolve_fxsave라는 함수를 통해 구해진 뒤 비로소 실제 함수 주소가 got에 저장된다.         이 과정 전까지는 puts@plt+6으로 저장된다. 이 과정을 "runtime resolve"라고 한다.        2) GOT(Global Offset Table)     PL..

IPv6 Stateless Address Auto-Configuration (SLAAC)
조민우2025. 1. 31. 16:03IPv6 Stateless Address Auto-Configuration (SLAAC)

IPv6 Stateless Address Auto-configuration (SLAAC) | NetworkAcademy.io네트워크의 각 IPv6 노드는 로컬 세그먼트를 벗어나 통신하기 위해 고유한 글로벌 주소가 필요하다. 이런 주소를 얻기 위한 몇 가지 방법이 있다.Manual assignment모든 노드는 관리자가 수동으로 IPv6 주소를 설정할 수 있다. 그러나 이는 확장성이 떨어지고 사람의 실수에 취약한 방법이다.DHCPv6 (The Dynamic Host Configuration Protocol version 6)호스트에게 주소를 동적으로 할당하는 가장 널리 채택된 프로토콜이다. 이 프로토콜은 네트워크에 DHCP 서버가 필요하며, 추가적인 설정이 요구된다.SLAAC (Stateless Addre..

CVE-2019-13288
조민우2025. 1. 31. 14:51CVE-2019-13288

OverviewCVE-2019-13288는 조작된 파일로 인한 infinite recursion이 발생하는 취약점이다.이 취약점의 내용은 함수가 재귀적으로 호출되면서 스택 메모리가 소진되고 프로그램 충돌로 이어지는 것이다.Ubuntu20.04.02 LTS 환경에서 진행했다.Download and build target# target directory 생성cd $HOMEmkdir fuzzing_xpdf && cd fuzzing_xpdf/sudo apt install build-essential# donwload targetwget tar -xvzf xpdf-3.02.tar.gz# configure 스크립트를 실행해 설치 환경을 설정한다.# --prefix 옵션은 프로그램이 설치될 경로를 지정한다.# mak..

공유기 파괴일지
석정원2025. 1. 29. 20:24공유기 파괴일지

배경 공유기 취약점 분석 프로젝트를 진행하면서 하드웨어 해킹을 처음 경험하게 되었습니다. 소프트웨어적인 취약점 분석과 달리, 직접 장치를 분해하고 접근하는 과정에서 예상치 못한 문제가 많이 발생했습니다. 그 과정에서 공유기를 망가뜨린 적도 있었는데, 같은 시행착오를 겪지 않도록 이 경험을 공유하고자 합니다.      파괴일지 1. USB to TTL첫 번째 공유기를 파괴시킨 범인 1. USB to TTL 컨버터는 하드웨어 해킹에서 일반적으로 사용되는 도구로, UART 포트를 호스트와 연결해 시리얼 통신을 가능하게 합니다. 직접적으로 공유기를 파괴한 원인은 아니지만, 일부 관여하였습니다. 보통 저가형 컨버터가 많이 사용되기 때문에, 프로젝트에서도 저가형 제품을 활용했습니다. 시리얼 통신을 원활하게 하기 위..

Debugging with MIPSel + Musl Env
석정원2025. 1. 29. 20:23Debugging with MIPSel + Musl Env

MIPSel ArchitectureMIPSel은 MIPS(Microprocessor without Interlocked Pipeline Stages) 아키텍처의 리틀 엔디안(Little-Endian) 버전을 의미합니다. MIPS는 RISC(Reduced Instruction Set Computing) 기반의 CPU 아키텍처로, 임베디드 시스템, 네트워크 장비, IoT 기기 등에서 널리 사용됩니다.특징리틀 엔디안(Little-Endian)데이터를 저장할 때 **낮은 바이트(LSB, Least Significant Byte)**부터 메모리에 저장합니다.예: 0x12345678은 메모리에 78 56 34 12로 저장됩니다.이는 빅 엔디안(Big-Endian)과 반대 방식입니다.RISC 아키텍처단순하고 고정된 ..

image