Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
monomorph — MD5-Monomorphic Shellcode Packer - 모든 페이로드가 동일한 MD5 해시를 가집니다 | Kitploit
도구/GitHubGitHub/davidbuchanan314/monomorph
Payload GenerationExploitationHash AnalysisShellcodeCryptographyShellcode GenerationPayload DevelopmentBinary Exploitation
GitHubdavidbuchanan314/monomorph

monomorph

MD5-Monomorphic Shellcode Packer - 모든 페이로드가 동일한 MD5 해시를 가집니다

저장소 보기
7916183년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
root@kitploit:~
                                                
                                                
                                                
    ════════════════════════════════════╦═══    
     ╔═╦═╗ ╔═╗ ╔═╗ ╔═╗ ╔═╦═╗ ╔═╗ ╔══╔═╗ ╠═╗     
    ═╩ ╩ ╩═╚═╝═╩ ╩═╚═╝═╩ ╩ ╩═╚═╝═╩  ╠═╝═╩ ╩═    
    ════════════════════════════════╩═══════    
                                  By Retr0id    
                                                
    ═══ MD5-Monomorphic Shellcode Packer ═══    
                                                
                                                
USAGE: python3 monomorph.py input_file output_file [payload_file]

어떤 기능을 하나요?

최대 4KB의 압축된 셸코드를 실행 가능한 바이너리로 거의 즉시 패킹합니다. 출력 파일은 항상 동일한 MD5 해시를 갖습니다: 3cebbe60d91ce760409bbe513593e401

현재 Linux x86-64만 지원됩니다. 이 기술을 다른 플랫폼으로 포팅하는 것은 간단하지만, 각 버전은 다른 MD5를 갖게 됩니다. APE와 같은 다중 플랫폼 폴리글롯 파일을 사용하는 것도 가능합니다.

예제 사용법:

root@kitploit:~
$ python3 monomorph.py bin/monomorph.linux.x86-64.benign bin/monomorph.linux.x86-64.meterpreter sample_payloads/bin/linux.x64.meterpreter.bind_tcp.bin

왜?

사람들은 이전에 단일 충돌을 사용하여 바이너리를 "좋은" 모드와 "나쁜" 모드 사이에서 전환했습니다. Monomorph는 이 개념을 한 단계 더 발전시킵니다.

일부 사람들은 여전히 파일 샘플을 참조하기 위해 MD5를 사용합니다. 다양한 이유가 있지만 저에게는 이해가 되지 않습니다. 그중 누군가가 Monomorph로 패킹된 코드를 조사하게 된다면 매우 혼란스러울 것입니다.

어떻게 작동하나요?

인코딩하려는 각 비트에 대해 충돌하는 MD5 블록이 FastColl를 사용하여 미리 계산되었습니다. 여기에 요약된 대로, 각 충돌은 전체 MD5 해시를 변경하지 않고 교체할 수 있는 블록 쌍을 제공합니다. 로더는 런타임에 어떤 블록이 선택되었는지 확인하여 비트를 디코딩합니다.

4KB의 데이터를 인코딩하려면 4*1024*8개의 충돌을 생성해야 하며(몇 시간 소요), 최종 파일에서 4MB의 공간을 차지합니다.

속도를 높이기 위해 FastColl을 약간 수정하여 실제로 더 빠르게 실행하고 병렬로 실행할 수 있도록 했습니다. 더 효율적인 병렬화 방법이 분명 있지만, 제 단순한 접근 방식은 N개의 인스턴스를 동시에 시작하고 첫 번째 인스턴스가 완료될 때까지 기다린 후 나머지를 모두 종료하는 것입니다.

이미 사전 계산을 완료했기 때문에 페이로드 재구성은 거의 즉시 가능합니다. 미리 계산된 블록의 상태를 전환하는 것은 Ange Albertini가 구현한 기술을 사용하여 수행됩니다.

탐지 가능한가요?

네. 전혀 은밀하지 않으며, 그럴 의도도 없습니다. detectcoll을 사용하여 충돌 블록을 탐지할 수 있습니다.

도구 다운로드