
사후 침투 도구로, 모니터링 애플리케이션으로부터 프로세스를 숨깁니다.
#ProcessHider
이 도구는 침투 테스트 및 기타 화이트햇 활동에만 사용할 수 있습니다. 불법 사용은 절대 금지됩니다!
ProcessHider는 작업 관리자 및 Process Explorer와 같은 모니터링 도구로부터 프로세스를 숨기도록 설계된 사후 침투 도구로, 관리자가 페이로드의 프로세스를 발견하지 못하도록 합니다. 이 도구는 OS 버전을 자동으로 감지하여 올바른 버전을 사용함으로써 32비트 및 64비트 버전 모두에서 작동합니다.
ProcessHider는 EXE 파일 또는 PowerShell 스크립트로 제공됩니다.
이 도구는 BSD-3 라이선스를 따릅니다:
Copyright (c) 2016, M00nRise
All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
프로젝트를 빌드하려면 루트 디렉토리에 있는 "build-me.bat"를 사용하세요. 완전한 스크립트는 EXE와 PowerShell의 두 가지 버전이 있습니다.
EXE를 사용하려면 MainFile\ 디렉토리에 있는 메인 파일 ProcessHider를 cmd에서 다음 옵션을 사용하여 호출하세요:
PowerShell을 사용하려면 PowerShell\Output\fullScript.ps1을 사용하고, exe와 동일한 인수를 사용합니다.
예시 사용법:
`ProcessHider -i 5454,3672 -n "chrome.exe,notepad.exe" -x "cmd.exe"`
참고: -i 또는 -n 중 하나 이상을 사용해야 합니다. 이 hider는 자신도 숨기도록 합니다.
이 프로젝트는 다음 라이브러리와 프로젝트를 사용합니다:
The findvs script is taken from EasyHook: https://easyhook.github.io/
Invoke-ReflectivePEInjection by clymb3r, available at https://github.com/PowerShellMafia/PowerSploit/blob/master/CodeExecution/Invoke-ReflectivePEInjection.ps1
Xgetopt by Hans Dietrich, available at http://www.codeproject.com/Articles/1940/XGetopt-A-Unix-compatible-getopt-for-MFC-and-Win32
NtHookEngine by Daniel Pistelli, available at http://www.codeproject.com/Articles/21414/Powerful-x-x-Mini-Hook-Engine
ReflectiveDLLInjection by Stephen Fewer of Harmony Security, available at https://github.com/stephenfewer/ReflectiveDLLInjection
"Easy way to set up global API hooks" by Sergey Podobry, Apriorit Inc, available at http://www.codeproject.com/Articles/49319/Easy-way-to-set-up-global-API-hooks
이러한 라이브러리나 VC++ 런타임에 대한 종속성은 없으며, 모두 정적으로 연결되어 있습니다.
먼저, hider는 OS가 32비트인지 64비트인지 확인하고 사용할 올바른 버전을 선택합니다. 그런 다음 데몬을 실행하여 금지된 모니터링 도구 중 하나를 찾습니다. 하나를 찾으면 DLL 인젝션을 사용하여 페이로드를 실행합니다. 페이로드는 NtQuerySystemInformation 호출을 후킹합니다. NtQuerySystemInformation은 OS 도구가 활성 프로세스를 열거하는 데 사용하는 메서드이며, 결과에서 지정된 각 프로세스(및 데몬)를 삭제합니다.
기여는 언제나 환영합니다. PowerShell 스크립트 작업 시 "fullScript"가 아닌 "daemon-integration" 및 "Invoke-ReflectivePEInjectionLite"에서 작업해야 합니다. 빌드 스크립트가 이러한 파일을 fullScript의 소스로 사용하기 때문입니다.