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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
maldev-for-dummies — 악성코드 개발에 관한 워크숍 | Kitploit
도구/GitHubGitHub/chvancooten/maldev-for-dummies
ExploitationShellcodeMalware AnalysisLearning & EducationRed TeamingPayload DevelopmentLabs & Practice
GitHubchvancooten/maldev-for-dummies

maldev-for-dummies

악성코드 개발에 관한 워크숍

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

초보자를 위한 멀웨어 개발

EDR 시대에, 레드팀 운영자는 더 이상 사전 컴파일된 페이로드를 사용하여 빠져나갈 수 없습니다. 따라서 멀웨어 개발은 모든 운영자에게 필수적인 기술이 되고 있습니다. 멀웨어 개발을 시작하는 것이 어렵게 보일 수 있지만, 실제로는 매우 쉽습니다. 이 워크숍은 시작하는 데 필요한 모든 것을 보여줍니다!

이 저장소에는 Hack in Paris 2022 및 X33fcon 2023에서 진행되었거나 진행될 'MalDev for Dummies' 워크숍의 슬라이드와 함께 제공되는 실습 자료가 포함되어 있습니다. 슬라이드는 '대면'으로 발표되도록 설계되었지만, 자료와 실습은 여기에서 계속 제공되어 자신의 속도에 맞춰 완료할 수 있습니다. 학습 과정은 결코 서두르면 안 됩니다! 질문이나 제안이 있으면 이 저장소에 이슈와 풀 리퀘스트를 보내주세요.

⚠ 면책 조항: 멀웨어 개발은 (공격적) 보안 분야를 발전시키고 방어 체계를 날카롭게 유지하기 위해 좋은 목적으로 사용될 수 있고 사용되어야 하는 기술입니다. 만약 이 기술을 사용하여 허가받지 않은 활동을 수행한다면, 이 워크숍이 대상으로 하는 '바보'보다 더 큰 바보이며, 여기서 나가십시오.

워크숍 설명

안티바이러스(AV) 및 엔터프라이즈 탐지 및 대응(EDR) 도구가 점점 더 성숙해짐에 따라, 레드팀은 앞서 나가야 할 필요성을 느끼고 있습니다. execute-assembly와 수정되지 않은 페이로드를 디스크에 저장하는 시대는 지나갔습니다. 운영 기간을 일주일 이상 유지하려면 페이로드 생성 및 멀웨어 개발 수준을 높여야 합니다. 그러나 이 분야에서 시작하는 것은 어려울 수 있으며, 적절한 리소스를 찾는 것이 항상 쉬운 것은 아닙니다.

이 워크숍은 이 분야의 초보자를 대상으로 하며, 멀웨어 개발자로서의 첫 걸음을 안내합니다. 주로 공격적 실무자를 대상으로 하지만, 방어적 실무자도 참여하여 기술을 넓힐 수 있습니다.

워크숍 동안 이론을 다룬 후, 실습 환경을 설정할 것입니다. 현재 기술 수준과 주제에 대한 편안함에 따라 완료할 수 있는 다양한 실습이 있습니다. 그러나 워크숍의 목표는 학습하는 것이며, 명시적으로 모든 실습을 완료하는 것이 아닙니다. 멀웨어 개발을 위해 선호하는 프로그래밍 언어를 자유롭게 선택할 수 있지만, 워크숍 중 지원은 주로 C# 및 Nim 프로그래밍 언어에 제공됩니다.

워크숍에서는 자체 멀웨어 구축을 시작하는 데 필요한 주요 주제를 논의할 것입니다. 여기에는 다음이 포함되지만 이에 국한되지는 않습니다:

  • Windows API
  • 파일 형식 및 실행 방법
  • 셸코드 실행 및 인젝션
  • AV 및 EDR 우회 방법

시작하기

멀웨어 개발을 시작하려면 호스트 머신에서 실행 중인 방어 도구의 방해를 받지 않도록 개발 머신이 필요합니다. 저는 개발에 Windows를 선호하지만, Linux나 MacOS도 괜찮습니다. 원하는 편집기/IDE를 설치하고(I는 C#을 제외한 거의 모든 것에 VS Code를 사용하며, C#에는 Visual Studio를 사용합니다), 선택한 MalDev 언어에 필요한 도구 체인을 설치하세요:

  • C#: Visual Studio는 C# 개발에 필요한 .NET 패키지를 포함하는 옵션을 제공합니다. Visual Studio 없이 개발하려면 .NET Framework를 별도로 다운로드할 수 있습니다.
  • Nim lang: 다운로드 지침을 따르세요. Choosenim은 설치 과정을 자동화하는 편리한 유틸리티입니다.
  • Golang (@nodauf의 PR 감사합니다): 다운로드 지침을 따르세요.
  • Rust: Rustup을 사용하여 Rust와 필요한 도구 체인을 설치할 수 있습니다.

열심히 작업한 결과가 격리되지 않도록 Windows Defender를 비활성화하거나 적절한 제외 항목을 추가하는 것을 잊지 마세요! 나중에 AV와 같은 방어 제어가 활성화된 별도 머신에서 테스트할 수 있습니다.

ℹ 참고: 종종 apt와 같은 패키지 관리자나 Chocolatey 또는 Winget(이제 기본 내장!)과 같은 소프트웨어 관리 도구를 사용하여 종속성 설치 및 관리를 편리하고 반복 가능한 방식으로 자동화할 수 있습니다. 그러나 패키지 관리자의 버전은 실제 버전보다 몇 버전 뒤쳐질 수 있다는 점에 유의하세요! 아래는 언급된 도구를 한 번에 설치하는 예제 명령입니다.

root@kitploit:~
choco install -y nim choosenim go rust vscode visualstudio2019community dotnetfx

프로그램 컴파일

이 워크숍에서 논의할 언어는 컴파일 언어입니다. 즉, 컴파일러를 사용하여 소스 코드를 선택한 형식의 바이너리 실행 파일로 변환합니다. 컴파일 과정은 언어마다 다릅니다.

C#

C# 코드(.cs 파일)는 직접(csc 유틸리티 사용) 또는 Visual Studio 자체를 통해 컴파일할 수 있습니다. 이 저장소의 대부분의 소스 코드(보너스 실습 3의 솔루션 제외)는 다음과 같이 컴파일할 수 있습니다.

ℹ 참고: 아래 명령을 "Visual Studio 개발자 명령 프롬프트"에서 실행하여 csc의 위치를 알 수 있도록 하세요. Visual Studio 버전에 맞는 "x64 네이티브 도구 명령 프롬프트"를 사용하는 것이 좋습니다. /unsafe 플래그는 저수준 기능에 직접 접근하는 대부분의 스크립트에서 필요합니다.

root@kitploit:~
csc filename.exe

/optimize 플래그로 컴파일 시간 최적화를 활성화할 수 있습니다. /target:winexe를 추가하여 콘솔 창을 숨기거나 /target:library로 DLL로 컴파일할 수 있습니다(단, 코드 구조가 이에 적합한지 확인하세요).

Nim

Nim 코드(.nim 파일)는 nim c 명령으로 컴파일됩니다. 이 저장소의 소스 코드는 다음과 같이 컴파일할 수 있습니다.

root@kitploit:~
nim c filename.nim

빌드 크기를 최적화하고 디버그 정보를 제거하려면(opsec에 훨씬 좋습니다!) 다음 플래그를 추가할 수 있습니다.

root@kitploit:~
nim c -d:release -d:strip --opt:size filename.nim

선택적으로 --app:gui를 추가하여 콘솔 창을 숨길 수도 있습니다.

Golang

Golang 코드(.go 파일)는 go build 명령으로 컴파일됩니다. 이 저장소의 소스 코드는 다음과 같이 컴파일할 수 있습니다.

root@kitploit:~
GOOS=windows go build

빌드 크기를 최적화하고 디버그 정보를 제거하려면(opsec에 훨씬 좋습니다!) 다음 플래그를 추가할 수 있습니다.

root@kitploit:~
GOOS=windows go build -ldflags "-s -w"

Rust

Rust 코드(.rs 파일)는 cargo 명령을 통해 컴파일됩니다. Cargo를 사용하여 종속성을 관리하고 프로젝트를 빌드할 수 있습니다. 이 저장소의 소스 코드는 프로젝트 폴더로 이동하여 다음 명령을 실행하여 컴파일할 수 있습니다.

root@kitploit:~
cargo build

빌드 크기를 최적화하고 디버그 정보를 제거하려면 다음 플래그를 추가할 수 있습니다. 컴파일 시간 opsec 옵션은 각 Cargo.toml 파일의 [profile.release] 섹션도 참조하세요.

root@kitploit:~
cargo build --release

종속성

C#

대부분의 솔루션은 종속성 없이 컴파일할 수 있습니다. 종속성이 필요한 경우 적절한 NuGet 패키지에 연결된 Visual Studio 프로젝트가 제공됩니다.

Nim

대부분의 Nim 프로그램은 Windows API와 상호 작용하기 위해 "Winim"이라는 라이브러리에 의존합니다. Nim을 설치한 후 Nimble 패키지 관리자로 라이브러리를 설치할 수 있습니다:

root@kitploit:~
nimble install winim

Golang

이 저장소의 소스 코드에서 일부 종속성이 사용됩니다. Go를 설치한 후 다음과 같이 설치할 수 있습니다:

root@kitploit:~
go mod tidy

Rust

일부 예제는 Windows API를 호출하기 위해 windows-sys 크레이트에 의존합니다. Cargo를 사용하고 있으므로 테스트 또는 릴리스 빌드를 컴파일할 때 패키지가 자동으로 관리됩니다.

리소스

워크숍 슬라이드는 시작하는 데 사용할 수 있는 몇 가지 리소스를 참조합니다. 관련 블로그나 코드 조각과 같은 추가 리소스는 각 실습의 README.md 파일에 나열되어 있습니다!

도구 다운로드