전체 글 54

[Forensics] 2024 10th 디지털 범인을 찾아라(디범찾) - 1

시나리오문화체육관광부 소속 특별사법경찰관 甲과 한국저작권보호원은 최근 대규모 데이터를 학습하고, 기존 데이터를 기반으로 이용자의 요구에 맞춘 콘텐츠를 생성해 판매하는 불법 생성형 AI(Generative AI) 조직에 대한 중요한 제보를 접수하게 되었다. 이 제보는 저작권 침해와 관련된 심각한 범죄 행위로서, 문화체육관광부와 대검찰청 사이버수사과 간의 긴밀한 공조 하에 대대적인 수사로 이어지게 되었다. 수사 과정에서 밝혀진 바에 따르면, 이 불법 조직은 의뢰자의 요구에 따라 저작권이 보호된 음원을 선정하고, 그 음원의 특정 부분을 변조하거나 길이를 조정하는 등의 작업을 진행하였다. 의뢰자가 변조가 필요한 부분, 변조의 방향성, 그리고 음원의 길이 등 구체적인요구 사항을 제공하면, 판매자는 이를 기반으로 ..

워게임/포렌식 2025.04.11

[Redteam] ATT&CK - Initial Access: Phishing 정리

피싱(Phishing)우리가 사회에서 흔히 껶어보거나 들어본 피싱의 의미는, 개인정보(Private Data)와 낚시(Fishing)을 합친 용어로, 피해자를 기망 또는 협박하여 개인정보 및 금융거래 정보를 요구하거나 피해자의 금전을 이체하도록 하는 나쁜 수법입니다.  레드티밍에서 피싱은 공격가 피싱 문자를 보내어 희생자의 시스템에 접근 권한을 얻도록 쓰입니다. 피싱의 모든 형태는 전기적으로 이루어지는 사회공학 기법 중 하나이며, 피싱은 타겟이 될 수도, *스피어피싱으로 알려질 수 있습니다.*스피어피싱 - 특정 개인, 회사, 산업체를 향하여 공격자에 의해 타겟이 되어 피싱 피해(스팸, 악성코드 등)를 당하게 되는 것.  피해자는 전형적으로 악의적인 의도가 포함된 첨부물이나 링크를 피해자의 시스템에서 코드..

RedTeam/ATT&CK 2025.04.11

[Reversing] 간단한 바이너리 만들고 gdb로 분석하는 법

gdb의 사용법과 어떻게 바이너리를 분석하는지(어셈블리 읽는 법, 스택 상태 확인하는 법) 알아보기 위해Hello World를 출력하는 간단한 바이너리를 컴파일하고 gdb로 분석해보겠습니다. //helloWorld.c#include int main() { printf("Hello World\n!"); return 0;} > gcc -o helloWorld helloWorld.cgcc로 컴파일해서 바이너리를 생성하겠습니다  > gdb -q ./helloWorldpwndbg> disass mainDump of assembler code for function main: 0x0000000000001139 : push rbp 0x000000000000113a : ..

워게임/리버싱 2025.04.03

AFL & ASAN 동작 원리 및 fork

AFL 퍼저는 이전에 설명했듯 Instrumentation-guided genetic 알고리즘을 사용하여 테스트 케이스를 생성하고, 변이하는 방식으로 동작함. Brute Force로 입력을 받으면서 커버리지를 넓히고, 프로그램 제어 흐름에 대한 변경사항을 기록하며, 고유 크래시를 발견한다. AFL 특징- 커버리지 기반 퍼저이기 때문에 매우 효율적인 퍼징이 가능함 - 코드 커버리지 측정을 위한 코드를 컴파일 타임에 삽입 - QEMU를 이용하여 컴파일 타임이 아닌, 런타임시에 코드(어떤 부분이 실행됐고, 어떤 부분에서 실행이 안됐는지를 측정) 삽입도 가능함 -> 코드 삽입을 어디에, 언제 할 것인가가 중요.  AFL 동작 과정1. 프로그램 실행 시작 - AFL이 퍼징할 프로그램을 실행함. 2. fork se..

AFL Fuzzer 관점에서 바라본 Instrumentation-guided genetic algorithm(계측 기반 유전 알고리즘)

AFL 퍼저는 Instrumentation-guided genetic 알고리즘을 사용하여 테스트 케이스를 생성하고, 변이하는 방식으로 동작.Instrumentation-guided genetic algorithm - 계측 기반 유전 알고리즘  Instrumentation-GuidedAFL은 타겟 프로그램을 실행할 때 Instrumentation 기법을 사용하여 코드 커버리지를 추적함. 컴파일 시점에 삽입된 게측 코드 (QEMU(리눅스 커널 구동하는 가상머신)와 같은 동적 바이너리 Instrumentation 기법)을 활용하여 실행 흐름을 모니터링. 이를 통해 어떤 입력이 새로운 코드 경로를 트리거 했는지 알 수 있으며, 효과적인 변이가 가능함 Genetic AlgorithmAFL 특성상 기존의 퍼징 방식..

System vuln research(시스템/소스코드 취약점 분석 방법) - Whitebox Testing, Blackbox Testing, Graybox Testing

소스코드 취약점 분석 방법White Box Testing프로그램 내부 구조의 타당성 여부를 테스트하는 방식. 내부 구조의 해석을 위해 프로그램의 모든 처리 루틴에 대해 시험하는 기본 사항. 가끔 발생하는 조건도 고려하여 처리 루틴을 검증하기 위한 시험 데이터를 작성하여 시험을 실시. 예를 들어, 덧셈의 기능을 하는 코드인 경우, 덧셈이 올바르게 완료 되었는가? 불필요한 단계는 없는가? 음수 혹은 큰 값과 같은 다양한 유형의 입력을 잘 처리하는가? 와 같은 문제를 처리할 수 있음. 백그라운드 코드가 깨끗하고 효율적이며, 예상대로 작동하는지 확인 -> 소스 코드를 살펴 봄으로써 코드 상의 취약점이 있는지 탐색. 장점 - 프로그램 내부 작업에 대한 철저한 가시성 제공. - 개발 프로세스 초기에 숨겨진 버그와 ..

[Fuzzing] Fuzzing study 1weeks - Xpdf(CVE-2019-13288)

어쩌다 보니 퍼징 스터디를 하게 되었습니다. 아직 시스템 해킹도 정복하지 못한 저에게 감사하게도 이런 기회가 왔네요https://github.com/antonio-morales/Fuzzing101?tab=readme-ov-file GitHub - antonio-morales/Fuzzing101: An step by step fuzzing tutorial. A GitHub Security Lab initiativeAn step by step fuzzing tutorial. A GitHub Security Lab initiative - GitHub - antonio-morales/Fuzzing101: An step by step fuzzing tutorial. A GitHub Security Lab init..