목록KISA 사이버 보안 훈련 (60)
작은 메모장
문제의 쉘코드를 IDA를 통해 분석 어셈블리 코드 형태로 강제 변환한 쉘코드 내부 구조 복호화를 위한 루프또한 보임 이를 통해 이 파일은 쉘코드임을 확신하고 분석 시작 Hax Editer를 사용하여 문제의 값을 찾음 이런식으로 나머지 API또한 찾을 수 있음 쉘코드 행위 분석 VirtualAlloc() 함수는 Heap 메모리를 할당할 때 사용하는 함수 InternetConnectA()함수는 인터넷으로 특정 데이터나 파일을 가져오는 함수 따라서 이 쉘코드는 종합적으로, 정상 실행되는 프로세스를 종료시키고 에러를 발생 시킨 뒤 사용하려는 라이브러리를 로드 후 가상 메모리 생성 이후 Http연결을 통해 인터넷에서 특정 파일을 다운로드 및 실행 하는 과정을 하는 것으로 판단
이 파일들은 전부 쉘코드로 크기가 매우 작음 보통 문자열 탐색을 진행 -> 탐지되지 않는다면 API Hash 탐색을 진행 이 순으로 진행 API Hash 탐색시 사용할 Yara Rule 값 공격자들도 바보가 아니기 때문에, 사용하는 Hash 알고리즘이 전부 다름 가장 많이 사용하는 알고지름은 ror13add로, 상기 4개의 쉘코드 또한 ror13add로 암호화 됨 Yara rule 내부 값 특정 문자로 시작하는 값이 있으면 이를 탐지하는 식으로 구성됨 이를 API 하나하나마자 설정하였음 Yara rule셋을 첫번째 파일에 적용시켜 감지가 되었음 사용한 API가 나왔으니 이를 해석하는 것이 가능 쉘코드 분석 쉘코드와 관련한 주요 API 및 라이브러리 함수는 다음을 따름 기능 주요 API 및 라이브러리 함수..
그래서 바인딩이 무엇인가? 일반적인 프로그램이 실행하면 메모리 공간이 부여 이후 로더가 프로그램을 읽고 그에 필요한 라이브러리를 호출하여 메모리에 적재 사용할 함수를 IAT에 등록시켜 프로그램이 사용할 수 있게 함 이 일련의 과정을 바인딩이라 칭함 이게 왜 문제? 바인딩 과정에 사용되는 로더는 LoadLibrary("Dll name"), GetProcAddress(DLL handler, "function name") 두 함수를 사용 쉘코드 또한 자기가 원하는 작업을 하기 위해서 라이브러리의 함수가 필요함 즉, 쉘코드 또한 바인딩 과정을 통해 사용하려는 함수의 주소값을 취득 이 과정에서 쉘코드는 로더로 바인딩을 하지 않고 스스로 바인딩을 함 -> 로더가 사용하는 두 함수를 똑같이 사용 = 분석하는 쪽에서 ..
쉘 코드의 기본 개념 소프트웨어 취약점을 공격하는 익스플로잇의 페이로드 아주아주 작은 크기의 코드 => 기계어 코드 다양한 방법으로 메모리에 주입 후 실행이 목적 익스플로잇, 문서형 악성코드, 코드 익젝션 기능을 활용하는 악성코드 분석에 필수 대부분 API나 라이브러리 함수를 이용하여 구현 -> 1) 호출하는 라이브러리 함수나 API를 식별 2) 호출한 라이브러리 함수 및 API에 전달하는 파라미터를 확인 쉘 코드의 동작 방식 일반적인 실행파일과 다르게, - 별도의 포맷이 존재하지 않음 - 대부분의 경우 코드 및 데이터로만 구성 - 익스플로잇, 악성코드 등에 의해 메모리에 주입된 후 실행 - 대체로 시스템에 존재할 가능성이 높은 DLL/SO만을 사용 - 쉘코드가 직접 바인딩을 수행(셀프 바인딩) - AP..
스피어피싱 메일 첨부 파일의 일반 유형 MS office 문서 PDF 문서 HWP 문서 RTF 문서 ZIP, jar 등 압축 파일 굉장히 그럴듯 한 메일을 보내 첨부된 파일을 열게 만듬 왜 첨부 파일로 보내는가? 소프트웨어 취약점을 공격해 파일에 내장된 객체(쉘 코드, 스크립트, Exploit, 실행파일 등)를 강제로 실행 악성 문서 파일의 구성요소 - Exploit 문서 파일을 처리하는 소프트웨어(MS office, 한컴 오피스, Adobe PDF 등)의 비정상 동작을 유발, 임의 코드를 강제로 실행하도록 유도하는 문서 내의 데이터 - ShellCode 메모리 상에서 임의로 실행되는 머신 코드 혹은 명령어 공격의 첫 단계로 이 코드를 메모리 상에서 실행시키는 것이 우선적인 목표 - Script / Ma..
기본적인 msg형태의 메일 메일의 이동 경로 및 각종 정보를 담고 있음 바이너리 데이터로 이루어져 있어 이를 eml 형식으로 변환시켜야함 msg2eml을 이용하여 변환 변환은 되었는데 가독성이 매우 떨어짐 때문에 이를 시각화하여 보여줄 수 있는 툴을 사용 SysTools 툴을 사용하여 변환한 메일을 시각화 현재 보여지는 것은 noreply.taxreg 메일 주소에서 derek 메일 주소로 갔음이 표시 됨 이를 자세하게 검사하기 위해서는 Header Form을 검사할 필요가 있음 메일의 Header Form은 가독성이 매우 떨어짐 이를 시각화 하여 보여줄 수 있는 툴을 또 사용 MHA (Mail Header Analyzer) 툴을 사용하여 시각화 실행하면 로컬 서버의 8080번 포트로 서버가 실행됨 이곳에..
스피어피싱을 공격자가 사용하기 위해선 다양한 방법으로 악성 메일을 보내려고 함 이를 파악하고 방지하기 위해서는 이메일 환경에 대해 알고 있어야 함 이메일이 전송되는 과정 1. 메일 발신자가 메일의 메시지를 source의 메일 서버(MSA)가 수신 2. 메일 서버들 그룹에서 목적지를 담당하고 있는 메일서버를 탐색 후 전송 3. 목적지 메일 서버에 메시지가 도착 4. 수신자에게 이메일이 전송 메일은 이러한 과정을 거칠 때마다 그에 대한 로그 데이터가 메일에 쌓임 이 로그 데이터는 RFC822를 기초로 삼고 있음 메일은 크게 Message Envelope, Message Content(Header, Body)로 구성 Message Envelope은 전송자와 수신자의 메일 주소를 담고 있음 마찬가지로 Heade..
LoL은 파일리스 공격을 위해 시행하는 방법 LoL Bins는 이런 공격의 도구가 되는 빌트 인터프리터 오늘날의 공격 양상은 전부 이런식으로 진행됨 이를 이용한 몇 가지 예시... Bitsadmin.exe Background Intelligent Transfer Service (BITS), 원격 호스트로부터 대용량 파일을 전송받을 때 사용 윈도우 업데이트가 이 서비스를 활용 공격자는 이를 이용해 ADS에 은닉한 파일 실행, 지정한 파일 실행, 파일 다운로드 및 복사에 활용 ftp.exe File Transport protocol(FTP) 윈도우에서 기본으로 제공하는 FTP 클라이언트 프로그램 공격자는 이를 지정된 프로그램을 실행하는 용도로 사용 regsvr32 DLL 파일을 서비스 등록에 사용하는 빌트인..