본문 바로가기

정보보호31

[윈도우즈 보안과 악성코드 기초] KISA 특강 3 : readme 보호되어 있는 글 입니다. 2024. 5. 19.
[윈도우즈 보안과 악성코드 기초] KISA 특강 2 : findme 보호되어 있는 글 입니다. 2024. 5. 19.
[윈도우즈 보안과 악성코드 기초] 기초 동적 분석 - Practical Malware Analysis Lab01-04.exe 보호되어 있는 글 입니다. 2024. 4. 18.
[윈도우즈 보안과 악성코드 기초] 기초 동적 분석 - Practical Malware Analysis Lab01-03.exe 보호되어 있는 글 입니다. 2024. 4. 18.
[윈도우즈 보안과 악성코드 기초] 기초 동적 분석 - Practical Malware Analysis Lab01-02.exe 보호되어 있는 글 입니다. 2024. 4. 18.
[윈도우즈 보안과 악성코드 기초] 기초 동적 분석 - Practical Malware Analysis Lab01-01.exe 보호되어 있는 글 입니다. 2024. 4. 18.
[Dreamhack] Reversing Basic Challenge #3 https://dreamhack.io/wargame/challenges/17 rev-basic-3Reversing Basic Challenge #3 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출dreamhack.io 바이너리를 분석하여 correct를 출력하도록 리버싱 해야 되는 문제이다.  문제 파일을 실행해보면 입력 창이 뜬다.아무 값이나 입력을 해보면 Wrong이라고 한다.Correct를 출력해내기 위해서 문제 파일을 x64dbg로 열어봤다.   [마우스 우클릭 > 다음을 찾기 > 모든 모듈 > 문자열 참조] 문자열 참조를 통해 Correct 문자열을 찾았다.  .. 2024. 4. 6.
[윈도우즈 보안과 악성코드 기초] PE 파일 헤더와 섹션 PE(Portable Excutable) 파일 PE 파일이란? Win32 기본 파일 형식 exe, scr, sys, dll, ocx 등 Process : EXE +DLL 실행 과정 PE 파일 실행 dll은 더블 클릭해도 실행되지 않음! dll은 exe가 call 해야 실행이 됨 PE 헤더 정보를 메모리에 매핑 실제 프로세스를 위한 메모리 할당 섹션 정보를 메모리에 복사 Import 정보 처리 기준 재배치 처리 실제 프로그램 코드로 분기 https://learn.microsoft.com/ko-kr/windows/win32/debug/pe-format PE 파일 포맷 윈도우 실행 파일 포맷: DLL, PE(Portable Executable) PE file header PE file header에서 대부분의.. 2024. 4. 6.
[윈도우즈 보안과 악성코드 기초] 기초 정적 분석 기초 정적 분석 목표 악성코드의 기능을 파악하기 위해 코드나 프로그램의 구조를 분석하는 과정 악성코드를실행하지 않고 분석하는 과정인 정적분석의 기본을 수행할 수 있다. 주요 사용 기법 (기초 정적 분석 방법) 악성 여부를 판단하는 안티바이러스 도구 악성코드를 판별하는 해시 정보 검증 파일의 문자열, 함수, 헤더에서 주요 정보 수집 안티바이러스 스캐닝 악성코드 탐지(기본) 패턴 매칭 분석: file signatures를 검색하여 찾는 방법 주로 많이 사용하는 방법 heuristic : 변조, 신종 등 악성코드를 변조시키거나, 신종을 나오게 하는 방법 악성코드 실행 및 탐지 (안티바이러스 도구) http://www.virustotal.com 패턴 매칭 분석 구글이 인수하여 운영 중인 사이트 VirusTota.. 2024. 4. 6.
[윈도우즈 보안과 악성코드 기초] PE 파일 구조 PE(Portable Excutable) 파일 PE 파일이란? Win32 기본 파일 형식 exe, scr, sys, dll, ocx 등 Process : EXE +DLL 실행 과정 PE 파일 실행 dll은 더블 클릭해도 실행되지 않음! dll은 exe가 call 해야 실행이 됨 PE 헤더 정보를 메모리에 매핑 실제 프로세스를 위한 메모리 할당 섹션 정보를 메모리에 복사 Import 정보 처리 기준 재배치 처리 실제 프로그램 코드로 분기 https://learn.microsoft.com/ko-kr/windows/win32/debug/pe-format notepad.exe(win7) 구조 notepad.exe -> 보통 C:\Windows\System32에 있음 PEview를 통해 notepad.exe의 구.. 2024. 3. 30.
[윈도우즈 보안과 악성코드 기초] 리버싱 이론 실습_crackme#1, #3 abex' crackme #1 abex' crackme #1은? 크랙 연습 공개 프로그램 - Error 메시지 창에서 OK 창이 나오게 해야 됨 디버깅 - EP 확인하기 주석 창을 보면 세 개의 메시지 창이 뜨는 프로그램이란 걸 알 수 있음 장점: 시작 주소와 EP가 동일 (시작하자마자 시작 주소가 나옴) 매우 간단하고 명확하게 작성됨 (stub code가 없음) 교육용 목적이라 그럼 사용 함수 분석 MessageBox: 메시지 창을 띄우는 함수 파라미터: Style → Title → Text → hOwner 총 4개 이 메시지 함수를 띄우기 위해선 위에 4개의 파라미터가 필요한 것 GetDriveTypeA: 드라이브 타입을 가져오는 API 함수 디스크 드라이브가 이동식, 고정식, CD-ROM, RAM .. 2024. 3. 30.
[abex' crackme] #5 문제 풀이 파일을 실행하면 시리얼 값을 입력하라는 알림 창이 뜬다. 아무 값이나 입력하고 Check 버튼을 클릭하면 에러 알림 창이 뜬다. 004010FC에서 EAX와 0을 비교하여 분기하므로 004010F7에서 IstrcmpiA가 비교를 한다고 생각해서 004010F7에 BP를 설정했다. BP 설정 후 실행을 하니 String1과 String 2에 메시지가 추가됐다. String1에 시리얼 번호가 있다. 해당 시리얼 키를 입력했더니 Well Done 팝업 창이 떴다. 2024. 3. 29.
[abex' crackme] #4 문제 풀이 파일을 실행하면 Serial을 입력하라는 입력 창이 뜬다. 입력은 되지만 Registered 버튼이 활성화되지 않는다. 이뮤니티 디버거로 열어서 주석을 봤을 때, 이 부분이 올바른 시리얼 값을 입력했을 때에 출력된 문자들로 추측된다. 여러 함수 중 vbaStrCmp 함수가 있는 것을 확인했다. 정해진 시리얼 값과 비교하는 함수라고 추측해서 해당 부분에 BP를 설정했다. F9로 해당 주소로 이동했더니 시리얼 입력 창이 떴다. 아무거나 입력했더니 레지스터 값들이 변경됐다. 특히 ECX 레지스터를 보면 유니코드 값이 보인다. 이 값을 시리얼 값이라고 추측해서 입력해봤더니 Registered 버튼이 활성화되어 문제를 풀 수 있었다. 2024. 3. 29.
[네트워크 패킷 분석] 침해사고 샘플 분석 사례 문제 및 풀이 1 패킷 안에 도메인 정보들이 많은 경우엔 와이어샤크에서 Statistics > Resolved Addresses 도구를 이용해 패킷 안에 도메인이 몇 개가 들어 있는 지 분석해야 한다. 그러나 지금 분석하는 패킷은 도메인 정보가 그렇게 많지는 않다. 패킷들이 어디서 많이 발생했는 지 확인하기 위해서 Statistics > Protocol Hierarchy를 본다. TCP와 TCP 중에서도 HTTP의 비중이 높은 것을 확인할 수 있다.이는 웹서비스를 통해서 공격 행위가 일어났다는 것을 의미한다.MIM Multipart Media Encapsulation은 별로 없기 때문에 공격자가 크지 않은 데이터를 첨부 파일로 사용했다고 예측할 수 있다.Line-base text data는 공격자가 요청해서 출력이 브라우.. 2023. 4. 14.
[소프트웨어보안] 프로그래밍 관점에서의 소프트웨어 보안 프로그래머의 잘못된 가정 프로그래머가 갖는 잘못된 신뢰 가정 1. 운영체제는 안전하고, 방화벽은 트랙픽을 필터링한다. 2. 네트워크에서 오는 입력은 안전할 것이다. 3. 컴파일된 프로그램은 읽을 수 없다. - 단지 읽기 어려운 것일 뿐 - 모호하지만, 감추지 않음(난독화의 경우라도) - 리버싱도구의 진화 • 코드에 담겨진 비밀 내용이 나타남 • 클라이언트/서버의 통신이 악용될 수 있음 4. 나의 웹페이지는 입력을 점검할 것이 다. 따라서 프로그램에 데이터가 도착할 때 적정한 포멧을 가질 것이다. - 직접 http 요청을 제작 - 요청을 보내기 직전에 변경 - 모든 입력은 서버 측에서 재검증해야함 - 특별한 인코딩이 포함되어 있을 수 있음 Memory corruption attacks memory corr.. 2022. 12. 6.