전체 글 11

ChaCha20 Algorithm

ChaCha20 알고리즘은 대칭 키 스트림 암호(Stream Cipher)라고 한다. 이러한 ChaCha20 알고리즘을 자세히 알아보기 전에 대칭 키 스트림 암호에 대해 간단히 알아보도록 하자,스트림 암호(Stream Cipher)? 대칭 키 암호란, 암호화 키와 복호화 키가 동일한 암호로 블록 단위로 암호화하는 블록 암호와 비트 단위로 암호화하는 스트림 암호, 두개로 구분된다.스트림 암호는 블록 암호보다 사용 빈도는 낮지만 가볍고 빠른 동작이 가능해 무선 환경, 스트리밍 서비스같은 환경에서 사용된다.실시간 처리의 경우 블록 암호는 한 블록에 가득 찰 때까지 기다렸다가 암호화를 진행하기에 속도가 좀 지연되지만, 스트림 암호의 경우 한 비트 단위로 암호화를 시킬 수 있기 때문이다. 스트림 암호에 대해서는 ..

Study/Algorithm 2025.04.02

Codegate23+24 rev Review

1. BackTo1986 해당 문제는 codegate 2023에 나온 reversing문제이다. 위 세 파일을 제공해주고, 이는 QEMU로 실행하는 것 같다.QEMU는 리눅스 커널을 구동하는 가상 머신- bzImage : 커널 이미지- start.sh : 실행 스크립트qemu를 처음 구동시켜보았기에 다소 초반부터 헤맸다. 그리고 initramfs.cpio.gz에 main 바이너리 파일이 존재했다. 우선 구동 시키기 위해서 qemu를 윈도우 버전으로 다운로드 해주었다. 그리고 파일 경로에 한국어가 적혀있으면 오류가 났기에 c드라이브로 문제 파일을 옮겨서 실행해주었다. 실행해주면 다음과 같은 게임을 즐길 수 있다.이제 아이다를 통해 함수들을 둘러봤다. Shift+F12를 눌러서 창에서 보았던 LIFE, ST..

Write_Up/REV 2025.03.24

[Malwre_#5-1] Macro Analysis (With. olevba, docx)

우선 저번엔 이 악성코드를 VirusTotal에 올려서 해시값 등 악성 파일의 완전 겉 핥기 정도의 내용을 알아봤다면, 이번엔 자세히 알아보자.olevba? 우선 들어서기 앞서 사용할 도구는 olevba이다. 이 도구는 워드나 엑셀같은 문서형 악성코드를 분석 할 때 매크로 분석 및 추출하는 도구이다. 사용법은 매우 간단하다.olevba (파일경로) > output.txt 위와 같이 명령어를 쳐주면 매크로 분석한 결과가 텍스트 파일로 저장된다.이제 위에서 소개한 명령어로 매크로 결과를 확인해보면 다음과같은 내용을 확인할 수 있다.우선 가장 먼저 AutoExec가 보이는데 이는 문서가 열릴 때 자동으로 실행되는 매크로이다. 두번째부턴 Suspicious로 Type의 이름부터 벌써 의심스럽다는 것을 확인할 수..

Study/REV 2024.12.23

[Malware_#4] About Reflective DLL Injection

DLL을 활용한 공격을 시도하면 공격 흔적을 최소화할 수 있기에 공격자들은 DLL을 즐겨 활용하곤 한다. 저번 초기분석에서 분석하고자 하는 악성파일의 type을 'injector'라고 소개했는데 이에 대한 자세한 분석에 들어가기 전에 개념을 다져보자.DLL을 이용한 공격방식 종류직접 실행- Rundll32.exe : Rundll32.exe를 이용해 직접 DLL 실행Injection- DLL Injection : 실행 중인 타 프로세스 공간에 강제로 DLL 삽입해 Injection함- Reflective DLL Injection : 프로세스의 메모리에 임의의 DLL에 대한 데이터를 삽입 후 직접 매핑하여 실행Hijacking- DLL Hijacking : 합법적인 실행파일의 정상 DLL인것 처럼 실행- D..

Study/REV 2024.11.22

[Malware_#3] 초기 분석 (With. VirusTotal)

저번 글에서 알아본 내용을 토대로 VirusTotal을 이용해 초기 분석을 함으로 악성 파일의 정보에 대해 알아보고, VirusTotal의 기능들에 대해서도 알아보자. 분석 도구 : VirusTotalNameLockheed_Martin_JobOpportunities.docxTypeMicrosoft WORD 문서 파일BehaviorInjectorSHA-256 0d01b24f7666f9bccf0f16ea97e41e0bc26f4c49cdfb7a4dabcc0a494b44ec9b DescriptionInjector With Embeded Malicious Macro 위 표는 가장 중요한 정보를 간략히 적어둔 것이기 때문에  Virus Total 사이트 내용을 더 자세히 설명해보자. Virus Total은 악성코드..

Study/REV 2024.11.19

[HKCERT_CTF_2024] Baby Cracker, Yet another crackme Writeup

Reverse_Baby Cracker 가장 먼저 바이너리 파일을 IDA로 열어주면 main함수가 보이는데, main함수만 보면 되는 간단한 문제였다.  로직을 확인해보면 크게 3단계 조건문으로 나눌 수 있다. 1. 첫번째 조건문- 사용자가 입력한 문자열에 'hkcert24{' 가 포함되어있는가? 2. 두번째 조건 - 사용자가 입력한 문자열의 끝이 '1}' 로 끝나는가?- 그리고 뒤에서 3번째 4번째 5번째 문자열에 대한 방정식이 존재  --> 해당 방정식에서는 4번째 문자열은 'h' 이고, 3번째 + 5번째 = 196임을 알아낼 수 있다. 3. 세번째 조건- '*((char *)off_4058 + i) ^ haystack[i + 9]) == byte_2123[i]' 해당 조건을 만족하는가? 세번째 조건에..

Write_Up/REV 2024.11.18

[ISITDTU_CTF_2024] re01, animal Writeup

Reversing_re01 해당 문제를 IDA를 통해 열어보면 main함수에서 해시값과 비교하고, 조건에 부합하면 flag가 맞다는 문구를 출력하는것을 확인할 수 있다.그치만 이 전에 IDA에서 TlsCallback함수가 존재하는 것을 볼 수 있다. TlsCallback함수는 main보다 먼저 실행되는 함수이기에 이 함수를 먼저 보게되면, 임의로 flag라고 적어둔 주소에 값을 담아주고 what함수를 호출하는 것을 확인할 수 있다. 그리고 이 what함수에서 Flag라고 적어둔 주소에 담긴 값을 하나하나 0x35랑 xor연산하고 있는 것을 볼 수 있다. 이렇게 main함수에 해시값 등등은 볼 필요가 없었고 TlsCallback함수를 먼저 확인하면 풀리는 문제였다. flag : ISITDTU{Congrat..

Write_Up/REV 2024.11.08

[Malware_#2] About Malware

악성 코드 분석에 앞서 악성 코드란 무엇인지, 분석의 목표가 무엇인지와 분석 절차, 악성 코드 유형을 알아보자 Malware (악성 코드) 란?: 컴퓨터 시스템이나 사용자에게 해를 입히기 위해 의도적으로 작성된 랜섬웨어, 트로이 목마, 스파이웨어를 비롯한 모든 소프트 웨어 코드 또는 컴퓨터 프로그램 악성 코드 분석의 목표- 무슨 일이 발생했는지, 감염 시스템과 파일이 무엇인지 인지- 특정 행위와 네트워크에서 탐지하는 방법과 피해 범위 측정 등악성 코드 분석 절차: 악성 코드 분석은 크게 다음 3단계로 진행된다. 1. 초기 분석: 자동화 도구를 이용해 악성 코드의 외형 및 동작을 빠르게 분석함, 의심되는 악성 코드의 파일 용량, 패킹 여부, 보고된 악성 코드와의 유사성 비교 등을 수행도구 - virusto..

Study/REV 2024.11.05