dll injection 예제

Posted by | august 02, 2019 | Ikke-kategoriseret | No Comments

DLL 주입이란 무엇입니까? DLL 주입은 단순히 다른 프로세스의 공간에 DLL을 강제로 주입한 다음 해당 코드를 실행합니다. 이 작업을 수행하는 일반적인 기술은 다음과 같은 코드 조각으로 나타낼 수 있습니다. 나는 DLL 주입을 사용하는 최근 몇 가지 악성 코드를 리버스 엔지니어링했습니다, 나는 종류의 그것이 어떻게 작동하는지 이해하지만, 이 게시물은 정말 나와 함께 클릭. 좋은 작품! DLL 주입을 통해 액세스 할 수 있도록 주입하는 동안 값을 전달할 수 있는지 알고 싶었는데 다른 프로세스의 주소 공간에 코드를 삽입하고 해당 프로세스를 대신하여 해당 코드를 실행하는 방법입니다. 이러한 작업을 수행하려면 관리자 권한이 필요합니다. DLL 주입 자체에 대 한 나쁜 이름을 얻고 있다 이후 그것은 주로 악성 코드에 의해 사용 (기억 미터 프레터는 또한이 작업을 수행 할 수 있습니다 ?) 하지만 그냥 스텔스 보다 더 있다. 이에 확장하려면, 나는이 모든 단계에 단계적으로 리버스 엔지니어링 스택 교환 쓰기 단계에서이 대답을 인용하려고이 문서가 너무 긴 만들 것 그래서, 나는 자세히 주입을 수행하는 방법에 대한 몇 가지 우수한 쓰기를 연결하려고합니다. 악성 코드는 먼저 주입에 대한 프로세스를 대상으로해야합니다 (예를 들어, svchost.exe). 이 작업은 일반적으로 API(CreateToolhelp32Snapshot, Process32First 및 Process32Next)의 세 가지 응용 프로그램 인터페이스(API)를 호출하여 프로세스를 검색하여 수행됩니다. CreateToolhelp32Snapshot 지정된 프로세스 또는 모든 프로세스의 힙 또는 모듈 상태를 등록 하는 데 사용 되는 API이며, 그것은 스냅 샷을 반환 합니다. Process32First는 스냅샷의 첫 번째 프로세스에 대한 정보를 검색한 다음 Process32Next를 루프에서 사용하여 이를 반복합니다. 대상 프로세스를 찾은 후 맬웨어는 OpenProcess를 호출하여 대상 프로세스의 핸들을 가져옵니다. 예, 일부 DLL이 대상 프로세스에 로드되지 않을 수 있음을 이해할 수 있지만, 이것은 예를 보여주기 위해 순수하게 설계된 기본 구현이므로 여기에 포함되지 않았습니다.

이러한 기능을 원할 경우 직접 만들어야 합니다. 그것을 할 많은 이유 (합법적인 또는 그렇지 않으면) 있다. 예를 들어 맬웨어 작성자는 신뢰할 수 있는 프로세스에 DLL을 로드하여 악의적인 활동을 숨기거나 보안 장치를 우회하려는 반면, 다른 한편으로는 원래 프로그램의 기능을 확장할 수 있습니다. 그러나 두 활동 단계는 동일합니다. 이제 반사 DLL 주입 방법을 살펴보겠습니다: 이제 프로세스의 주소 공간에 DLL을 주입하는 데 사용할 전체 프로세스를 제시할 차례입니다. 우리가 무엇을 할 거 야의 명확한 표시를 얻으려면, 아래 그림을 봐, 어디 우리가 에 DLL을 주입 거 야 프로세스는 보라색 색상으로 표시 하 고 이름 victim.exe. 그러나, 우리가 명확히할 필요가 퍼즐의 두 가지 다른 조각이있다. 첫째, 일부 프로세스에 DLL을 주입하려면 먼저 주입하려는 DLL이 있어야 합니다. DLL은 녹색으로 표시되며 이름 inject.dll이 있습니다. 그러나 우리는 또한 피해자의 주소 공간에 DLL을 주입 할 수있는 프로그램이 있어야합니다. 해당 프로그램은 파란색으로 표시되며 이름 program.exe가 있습니다.

맬웨어는 호스트 프로그램(예: DLL 주입)에 코드를 삽입하는 대신 프로세스 비우기라는 기술을 수행할 수 있습니다. 프로세스 비우는 맬웨어가 대상 프로세스의 메모리에서 합법적인 코드를 매핑 해제(중공)하고 악의적인 실행 파일을 통해 대상 프로세스의 메모리 공간(예: svchost.exe)을 덮어쓰는 경우에 발생합니다. 그림 5: 후크 주입을 사용한 Locky RansomwareSha256: 5d6ddb8458e5ab999f3e7d9aa21490ff4e5bc9808e18b9e20b6dc2c5b27927ba1 모두 DLL 주입 및 후킹은 강력한 기술이며 악성 소프트웨어뿐만 아니라 악성 소프트웨어에서 널리 사용됩니다. 년. 적용할 수 있는 많은 수정 프로그램이 있지만 맬웨어의 즐겨찾기는 다소 보안과 관련된 것(예: DisableNX, DisableSEH, InjectDLL 등)입니다.