[Ghidra] 리버스 엔지니어링 기드라 실전 가이드 스터디 - chapter 5(level4-GO바이너리)
·
Security/리버싱
0. GoGo는 빠르고 병렬 프로세싱을 구현하기 쉬우며 크로스 컴파일링이 가능해 어플리케이션 개발에 인기 있는 언어디다.Zebrocy, WellMess, Mirai의 C2서버는 Go로 구현되었으며 최근 멀웨어는 Go로 쓰인 경우도 있어 알아둬야한다. 1. level4 crackme(Go)level 4 크랙미는 go 언어로 구현된 바이너리를 분석해야한다. file 명령어에서 Go Build ID를 보아 이 파일이 go 언어로 쓰인 것을 알 수 있다. 파일을 실행하면 Access code를 입력하고 코드가 다르면 Bad Code가 나온다.2. Go 바이너리 배경지식 C/C++로 컴파일하면 엔트리 포인트가 Winmain이나 main이지만 Go는 _rt0_amd64_linux나 _rt0_386_window처럼..
[Ghidra] 리버스 엔지니어링 기드라 실전 가이드 스터디 - chapter 5(level3)
·
Security/리버싱
1. level3 crackme(bof)level 3 크랙미 디스어셈블 결과이다. param_2를 입력받아 welcome param_2를 하고 주사위 게임을 해서 10번 연속으로 맞춰야 게임을 이길 수 있다.undefined8 main(int param_1,undefined8 *param_2){ int iVar1; undefined8 uVar2; char name [24]; uint seed; uint random_val; FILE *File; uint i; uint local_c; if (param_1 == 2) { seed = 0; File = fopen("/dev/urandom","r"); fread(&seed,4,1,File); fclose(File); ..
[Ghidra] 리버스 엔지니어링 기드라 실전 가이드 스터디 - 기드라 취약점 3
·
Security/리버싱
1. 기드라 취약점?기드라에서 발견된 취약점으로 이번에는 CVE-2019-16941 임의 코드 실행 취약점을 다룬다. 기드라에 XML을 바탕으로 바이너리를 검색하는 Function Bit Pattern Explorer Plugin에서 취약점이 발견되었다. 원인이 되는 코드는 XML파일을 디코딩하는 부분인 FilebitPatterInfoReader.java이다. 이 취약점으로 기드라 9.0.9까지 영향을 받는다. 2. 구현기드라에서 Plugin에서 Function Bit Pattern Explorer Plugin을 활성화하고 플러그인을 사용해 Dump Function Pattern infoScripts를 사용해 XML파일을 생성하고 그 파일에 XML 페이로드를 삽입하면 된다. 위 코드와 같은 페이로드..
[Ghidra] 리버스 엔지니어링 기드라 실전 가이드 스터디 - chapter 5(level2)
·
Security/리버싱
1. level2 crackme(base64)level 2 크랙미 디스어셈블 결과이다. param_2를 입력받아 encode_custom_base64로 인코딩 후에 4PpnRoanRomTze4SKPo+Zwd3IejS와 비교한다.값이 같으면 correct가 나온다.undefined8 main(int param_1,undefined8 *param_2){ int iVar1; undefined8 uVar2; char *__s1; size_t __n; if (param_1 == 2) { __s1 = (char *)encode_custom_base64(param_2[1]); __n = strlen("4PpnRoanRomTze4SKPo+Zwd3IejS"); iVar1 = strncmp(_..
[Ghidra] 리버스 엔지니어링 기드라 실전 가이드 스터디 - chapter 5(level1)
·
Security/리버싱
1. CrackMe란?리버스 엔지니어링을 배우기 위해 만들어진 연습용 프로그램으로 프로그램을 리버스 엔지니어링해서 비밀번호를 밝혀 풀어낸다.5장에서는 멀웨어에서 자주 사용되는 인코딩 방법을 다루는 4문제를 푼다. 2. level1 crackme(xor)level 1 크랙미 디스어셈블 결과undefined8 main(void){ char *pcVar1; size_t sVar2; undefined8 uVar3; long in_FS_OFFSET; int local_6c; int local_68 [12]; byte local_38 [40]; long local_10; local_10 = *(long *)(in_FS_OFFSET + 0x28); local_68[0] = 0x29; local..
[tools]stegsolver
·
Security/tools
보호되어 있는 글입니다.
[tools] hashcat
·
Security/tools
보호되어 있는 글입니다.
[Ghidra] 리버스 엔지니어링 기드라 실전 가이드 스터디 - 00
·
Security/리버싱
1. 스터디 시작 배경리버스 엔지니어링을 처음 접한 건 4학년 1학기 소프트웨어 리버스 엔지니어링 수업이었습니다. 당시엔 어려웠지만 컴퓨터 구조를 이해하는 데 큰 도움이 되었습니다. 수업 이후 한동안 손을 놓고 있었으나, 보안 분야를 깊이 공부할수록 리버싱 역량이 필요하다는 것을 느꼈지만. 혼자서는 꾸준히 공부하기 어려울 것 같아, 계획적으로 학습하고 서로 긍정적인 자극을 주고받기 위해 리버싱 스터디에 참여하게 되었습니다. 2. 교재 선정: 리버스 엔지니어링 기드라 실전 가이드 『리버스 엔지니어링 기드라 실전 가이드』를 주 교재로 선정했습니다.업계 표준인 IDA Pro는 비용 부담이 큰 반면, NSA에서 공개한 기드라(Ghidra)는 무료이면서도 강력한 디컴파일 기능을 제공하여 접근성이 높기 때문입니다...
[System hacking] 시스템 보안 수업 후기
·
Security/시스템해킹
4학년 2학기에 시스템 보안 수업을 들었다.3학년 2학기에 들을까 고민했지만 다른 수업이 많아서안 들었다가 수업을 들은 형의 후기가 너무 재밌고 좋았다고 했고 보안 수업을 듣고 싶어서 들었다. 4학년 1학기에 리버싱 수업을 들었기에, 스택이나 BOF 같은 기본 개념은 익숙했다.운영체제 환경만 윈도우에서 리눅스로 바뀐 느낌이라 초반에는 수월하게 따라갈 수 있었다.수업은 컴퓨터 아키텍쳐, gdb, shellcode, fsb, checksec순으로 진행되었다. 수업은 통해 시스템 해킹과 각종 방어기법, 스택구조등을 알게 되었고 자연스럽게 드림핵에서 문제를 풀고ctf대회에 나가서 잘하고 싶다고 생각하게 만들었다. 블로그에 포스팅도 수업 내용에서 배운 것 위주로 포스팅했었다.하지만 시험이 너무 아쉬워서 후기를 ..