전체 글 51

NSO의 페가수스(Pegasus) 악성코드 분석

서 론 요즘 이슈가 되고 아이폰도 해킹한다는 그 NSO의 페가수스!!! ''' NSO그룹은 국가의 정부기관을 대상으로 테러와 범죄를 막는 데 사용하는 최고 수준의 스파이웨어 기술을 개발하는 기업이다. NSO그룹이 페가수스를 개발한 목적 또한 범죄나 테러를 막기 위함이다. 멕시코 정부가 스파이웨어를 사용, 마약왕 ‘엘 차포’의 인맥들이 사용하는 휴대전화에 침투해 그의 은신처를 찾아낸 사례는 페가수스가 범죄조직과 싸우는 데 유용한 무기가 될 수 있음을 보여준다. ''' 원래의 페가수스를 만든 목적은 이렇다고한다. 자세한 내용은 아래의 링크를 참고하면 될 것 같다. https://www.dailysecu.com/news/articleView.html?idxno=105797 https://m.boannews.c..

Malware 2021.08.07

Proxy DLL Hijacking for kernel32.dll 삽질

서론 특정 바이너리에서 무조건 kernel32.dll을 로드할 것이고, kernel32.dll에 있는 함수들 중 createfile을 후킹한 후 나머지 함수들은 래핑하는 라이브러리를 만들고자 했다. Windows Dll Search Order에 따라 가능한 얘기인 줄 알았는데, kerenel32 하이재킹은 Dll search order이랑 거리가 먼 얘기였다. 암튼 이러한 삽질을 하면서 배운 내용들을 써본다. [*] Proxy Hijacking이란? 우리는 사용자가 원하는 특정 함수를 후킹해준다. 예를들어 사용자가 Kernel32.dll에 있는 'GetStringScripts'함수를 후킹하고싶다고 가정하자. 그러면 우리는 GetStringSciprt함수를 제외한 나머지 함수들을 랩핑만하면 된다. 이렇게 ..

ETC 2021.08.01

epoll을 사용한 I/O Multiplexing

소마 플젝을 진행하는데 있어서 'I/O Multiplexing' 기법이 필요했고, 이를 구현하기 위해서는 select, poll, epoll의 시스템 호출? 등이 있다고 한다. 그 중 epoll을 사용한다. 그 이유는 가장 성능이 좋아서이다.!! 그래서 나는 epoll을 공부할때 , 참고했던 블로그만 적어 두려한다. 마치 큐레이션처럼 ^^ I/O 멀티플렉싱이란? - 멀티플렉싱? 하나의 전송로를 통해 여러 종류의 데이터를 전송하는 방식을 말한다. - 하나의 서버로 다수의 클라이언트에게 서비스를 제공하는 것을 말한다. 멀티플렉싱 서버를 구현하는데 있어서 select, epoll 방식이 존재한다. select 함수 - 멀티플렉싱의 대표적인 모델이다. - windwos에서도 동일한 이름으로 기능을 제공하기때문에..

ETC 2021.07.26

특정 프로세스 차단 드라이버 개발 (최종)

최종적으로 개발한 것이 '아이지키미'라는 프로그램과 같이 사용자가 원하는 프로세스를 차단하는 드라이버를 제작하였다. 미니필터로 하려다가, PsSetCreateProcessNotifyRoutineEx을 이용하여 구현했다. 위 사진과 유저가 특정 프로세스를 추가하면 DeviceIoControl API로 커널 드라이버로 ControlCode를 보낸다. 그러면 드라이버는 해당 ControlCode에 해당하는 동작(추가,삭제)등을 한다. 차단리스트는 드라이버에서 메모리에 올려 관리한다. 일단 차단 리스트는 C:\file.txt로 관리하는데, 이때 파일에대한 핸들을 드라이버가 가짐으로써 삭제, 변조를 방지한다. 어려움 1. WCHAR -> CHAR로 형변환하는게 까다로웠다.. 2. 프로세스 삭제 및 관리 ( 동적할..

WindowsDriver 2021.07.07

Mini Filter Driver Dev Part1. (feat. 개념)

'미니 필터 드라이버'를 제작하는데 있어서 필요한 내용만 정리하였다. 디바이스 스택이란? - 하나의 디바이스를 관리하기 위해 여러 드라이버가 필요하다 - 드라이버들은 디바이스를 관리하기 위해 자신의 디바이스 오브젝트 생성 - 여러 개의 디바이스 오브젝트가 스택으로 형성된다. 디바이스 스택 형성과정 - 디바이스가 연결되면, 버스드라이버가 이를 발견하고 자신의 디바이스 오브젝트를 생성한다.(버스 드라이버) - 약속이 되어있다면, Function Driver가 그 위에 디바이스 오브젝트를 만든다. (기능 드라이버) - 필터드라이버가 있다면 그 위에 디바이스 오브젝트를 생성한다. 필터 드라이버) 버스 드라이버란? - 모든 디바이스에 대해 존재하며, 하드웨어와 컴퓨터 사이의 연결을 관리한다. 필터드라이버란? - ..

WindowsDriver 2021.06.20