전체 글 182

SUCHAI-FS-Fuzzy-Testing 빌드 및 실행

SUCHAI-FS-Fuzzy-Testing 을 이용해 칠레대학교의 위성 소프트웨어인 SUCHAI를 퍼징해본다.SUCHAI-FS-Fuzzy-Testing 레포지토리는 주요 모듈들이 python으로 구현되어있어 별도의 빌드없이 편리하게 실행해볼 수 있다. https://gitlab.com/tamigr.2293/SUCHAI-FS-Fuzzy-Testing Tamara / SUCHAI-FS-Fuzzy-Testing · GitLabGitLab.comgitlab.com pip dependency 설치다음과 같은 디펜던시들을 설치해준다.파이썬 모듈을 실행하기위해 필요한 디펜던시들이다.pip install fuzzingbookpip install markdown  suchai-fs-fuzzy-testing 설치 및 실행..

공부/SPACE 2024.06.05

DEF CON 29 Aerospace Village - Fuzzing NASA Core Flight System Software, Ronald Brobert Reproduce

NASA의 cFS를 타겟으로 네트워크 퍼저인 fuzzotron을 이용해 퍼징했던DEF CON의 연구를 reproduce 해본다. 아래 링크를 참고하였다. DEF CON 29 Aerospace Village - Fuzzing NASA Core Flight System Software, Ronald Brobert cFS Configuration & Fuzzotron Fuzzing SettingcFS와 Fuzzotron 세팅은 아래 링크를 참고하면 좋다. https://juntheworld.tistory.com/190 cFS 설치 및 실행하는방법Part1 - Setup아래 깃허브 링크에서 cFS를 git clone 해준다.https://github.com/nasa/cFS GitHub - nasa/cFS: Th..

공부/SPACE 2024.06.04

SUCHAI (The Satellite of the University of Chile for Aerospace Investigation) 설치하기

The Satellite of the University of Chile for Aerospace Investigation (SUCHAI) 는 칠레대학교(Physics and Mechanical Engineering Departments of the Faculty of Physical and Mathematical Sciences (FCFM) at University of Chile)에서 만든 CubeSat 오픈소스다. 이 suchai를 설치하는 방법에 대해 정리한다.  빌드 디펜던시 설치 sudo apt install libzmq3-devsudo apt install pkg-config libcsp 빌드CSP(CubeSat Protocol)는 CubeSat과 같은 소형 우주선에서의 통신을 위해 설계된..

공부/SPACE 2024.05.27

Fuzzotron 을 이용한 NASA cFS(Core Flight System) 퍼징하기

1. 소개Fuzzotron이라는 네트워크 퍼저를 이용해 UDP 패킷을 cFS 프로그램으로 전송하여 퍼징을 진행했다.cFS를 설치하는 것은 아래 링크를 참고하면 좋다.https://juntheworld.tistory.com/190 cFS 설치 및 실행하는방법Part1 - Setup아래 깃허브 링크에서 cFS를 git clone 해준다.https://github.com/nasa/cFS GitHub - nasa/cFS: The Core Flight System (cFS)The Core Flight System (cFS). Contribute to nasa/cFS development by creating an account on GitHub.github.comgijuntheworld.tistory.com 참고..

공부/JUN STUDY 2024.05.12

RACC와 CACC 만족하는 테스트 케이스 쉽게찾기

소프트웨어 동적분석에서 Logic Coverage로 분류되는 RACC(Restricted Active Clause Coverage)와 CACC(Correlated Active Clause Coverage)가 있다. RACC와 CACC를 만족하는 test case를 쉽게 찾는 방법을 알아보자. 좀 더 정확하게는 RACC와 CACC의 차이점 구별하는 방법을 쉽게 생각해보자. Predicates 와 Clauses 우선 기본 용어이다. predicate(술어)는 boolean으로 평가되는 표현식(expression)을 뜻한다. clause(절)은 logical operators( ! && || ..) 이 없는 predicate를 뜻한다. (a = n*o) 아래 예시에서 ..

cFS 설치 및 실행하는방법

Part1 - Setup아래 깃허브 링크에서 cFS를 git clone 해준다.https://github.com/nasa/cFS GitHub - nasa/cFS: The Core Flight System (cFS)The Core Flight System (cFS). Contribute to nasa/cFS development by creating an account on GitHub.github.comgit clone https://github.com/nasa/cFS.gitcd cFS# submodule 설치git checkout bootes-rc2git submodule initgit submodule update 이때 submodule update를 해주면 아래와 같이 뜨며cFS/apps/*cFS/..

공부/SPACE 2024.04.22

Canary 우회 ( __fortify_fail() 및 환경변수env를 이용한 Arbitrary Read)

1. flag 값을 전역변수(주소를 알고있는) 에 저장하는 루틴이 있음 2. 주어진 함수나 ROP를 이용해 write할 수 있는 방법이 없음(출력 -> leak 불가) 3. __fortify_fail() 을 이용하여 환경변수에서 파일 이름을 가져오는 경우 사용할 수 있는 canary leak 방법이다. int __cdecl main(int argc, const char **argv, const char **envp) { char buf[256]; // [esp+4h] [ebp-10Ch] BYREF unsigned int canary; // [esp+104h] [ebp-Ch] canary = __readgsdword(0x14u); read_flag(); read(0, buf, 512); return 0; ..

CTF 2024.04.17

C언어 가변인자함수 구현 (...)

C 언어에서 ... 키워드는 가변 인자 목록(variadic arguments)을 의미합니다. 이 키워드는 함수가 고정된 수의 인자 대신 다양한 수의 인자를 받을 수 있게 해 줍니다. 이는 특히 여러 다른 타입의 인자를 다루거나, 호출 시점에 정확한 인자의 수가 결정되지 않는 경우에 유용합니다. 가변 인자 함수의 구현 방법 가변 인자 함수를 구현할 때는 다음과 같은 표준 라이브러리 매크로를 사용합니다: va_list: 인자 목록을 처리하기 위한 변수 타입입니다. va_start: 가변 인자 목록의 초기화를 시작합니다. 첫 번째 매크로 인자는 va_list 타입이고, 두 번째는 가변 인자 바로 앞의 고정된 인자입니다. va_arg: 가변 인자 목록에서 다음 인자를 가져옵니다. 이 매크로는 리스트와 반환할 ..

공부/이모저모 2024.04.12

Stub 함수란

Stub이란? "Stub"은 소프트웨어 개발과 테스트에서 사용되는 용어로, 특히 단위 테스트에서 중요한 역할을 합니다. Stub은 실제로 구현된 복잡한 로직이나 외부 시스템과의 연결을 대신하는 간단하고 제어 가능한 구현을 제공합니다. 이를 통해 개발자는 테스트하고자 하는 부분에 집중할 수 있으며, 테스트가 외부 요소의 영향을 받지 않도록 보장합니다. Stub의 주요 용도: 의존성 제거: Stub을 사용하여 데이터베이스, 네트워크 호출, 하드웨어 입력 등 외부 시스템과의 의존성을 제거할 수 있습니다. 테스트 간소화: 테스트할 시스템을 보다 단순화하여, 오류를 찾기 쉽고 테스트를 빠르게 실행할 수 있습니다. 결과 예측 가능: Stub은 예측 가능한 값을 반환함으로써 테스트 결과의 일관성을 보장합니다. 상태 ..

공부 2024.04.12
728x90