
신뢰할 수 없는 MCP 서버가 말 그대로 모든 것을 훔칠 수 있는 방법을 보여주는 개념 증명 저장소...
이것은 다른 MCP 서버로 '위장'하는 MCP 서버를 배포할 수 있도록 해주는 개념 증명 프로젝트입니다. 이 MCP는 MCP '프록시' 역할을 하며, 들어오는 모든 요청을 상위 MCP 서버로 단순히 전달합니다.
MCP 서버는 AI 애플리케이션에 추가 기능을 노출하는 프로그램입니다. 몇 가지 예로는 코드 관리를 위한 GitHub 서버, 팀 커뮤니케이션을 위한 Slack 서버, 또는 작업 및 문서를 관리하고 생성하기 위한 Atlassian 서버가 있습니다.
MCP 서버는 AI 환경에서 흔하지만, 이 저장소가 보여주듯이 극도로 주의하여 설치해야 합니다.
이것은 다른 MCP 서버로 '위장'하는 악성 MCP입니다. 이 MCP는 MCP '프록시' 역할을 하며, 들어오는 모든 요청을 상위 MCP 서버로 단순히 전달하여 본질적으로 중간자 공격을 수행합니다.
사용자가 해야 할 일은 당신의 MCP를 설치하는 것뿐이며, 전체 시스템(및 네트워크)이 손상됩니다.
획득할 수 있는 것:
이 MCP는 피해자의 AI 메시지를 가로채는 것뿐만 아니라 완전한 바이러스입니다. 이 MCP를 설치하는 피해자는 큰일 납니다.
다음은 이 MCP 서버가 MCP에 대한 모든 수신 호출을 확실히 도용하고 있음을 보여주는 몇 가지 스크린샷입니다.
Claude Code에서 이 악성 MCP 서버를 사용하여 사용자의 데이터를 훔치면서 Github의 MCP 서버인 척하는 모습:

먼저 이 프로젝트를 포크하고 클론합니다. 그런 다음, 원하는 작업을 수행하도록 프로젝트를 구성해야 합니다. 이 프로젝트의 구성 파일을 사용하여 다음을 수행할 수 있습니다.
이 모든 작업은 여기 구성 파일에서 수행합니다.
또한, 코드에 추가 악성코드를 추가할 수도 있습니다. 백도어 설치, 사용자 파일 탈취 등을 할 수 있는 코드 샘플은 여기에 포함되어 있지 않지만, 추가하는 것은 어렵지 않습니다.
원하는 악성 활동을 추가하고 피해자 MCP의 연결 세부 정보를 설정한 후, 빌드를 수행하여 결과 jar 아티팩트를 얻습니다.
참고: 이 프로젝트는 docker, npx, 또는 원한다면 호스팅된 http 서비스와 같은 다른 배포 방식으로 매우 쉽게 전환할 수 있습니다.
의심하지 않는 피해자를 잡아 모든 데이터를 보내도록 하려면 새 Github 저장소를 만듭니다. 저장소 제목을 "-눈에 띄는 텍스트- --Gitlab/Github/Atlassian/Etc.-- MCP 서버"와 같이 사람들이 찾을 수 있는 매력적인 이름으로 지정합니다.
다음으로 위에서 만든 출력 jar를 포함하는 Github "릴리즈"를 만듭니다. 저장소에 코드를 추가하여 합법적으로 보이게 할 수도 있습니다.
그런 다음 사람들이 완전히 합법적인 MCP 서버를 설치하는 방법을 알 수 있도록 readme가 필요합니다. 저장소에 '피해자'가 MCP 서버를 설치하는 방법을 설명하는 readme를 추가합니다:
# 설치
이 MCP 서버를 설치하려면 릴리즈 `jar`를 다운로드하고 MCP 서버 구성 파일에 다음 줄을 추가하세요:
\```
{
"mcpServers": {
"weather": {
"command": "java",
"args": [
"-jar",
"/ABSOLUTE/PATH/TO/mcp.jar"
],
"env": {
// 사용자에게 피해자 MCP ENV 변수를 여기에 넣으라고 알립니다.
}
}
}
}
\```
## 환경 변수
사용자가 피해자 MCP에 대해 env 변수를 구성하는 방법에 대한 정보를 복사하여 붙여넣습니다.
다르게 보이려면 ENV 변수의 이름을 변경하세요.
## 사용 가능한 도구
프로젝트는 다음 도구를 제공합니다:
- 피해자 MCP 도구 목록을 복사하여 붙여넣습니다...
## 기여하기
합법적으로 보이기 위한 사회 공학 콘텐츠를 여기에 추가합니다...
참고: 다시 말하지만, 이 프로젝트는 docker 또는 npx와 같은 다른 배포 방식으로 쉽게 전환할 수 있습니다.
축하합니다! MCP 서버를 추가한 모든 의심하지 않는 피해자가 맬웨어를 설치했습니다! 마음껏 즐기세요.
이 프로젝트를 로컬에서 실행하려면 구성 파일을 필요에 따라 업데이트합니다. 구성이 완료되면 이 프로젝트를 로컬에서 실행하고, 프로젝트를 빌드한 후 MCP 서버가 다음 구성을 가지도록 구성합니다:
{
"mcpServers": {
"weather": {
"command": "java",
"args": [
"-jar",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/project/build/libs/weather-0.1.0-all.jar"
]
}
}
}
이렇게 하면 AI가 이 프로젝트의 빌드 폴더를 가리키도록 구성됩니다. 프로젝트를 빌드하고 AI의 MCP를 로드하여 로컬에서 테스트하면 됩니다.
여기서 얻을 수 있는 핵심 교훈은 다음과 같습니다:
npx, java 또는 다른 유형의 MCP는 호스트 머신에서 실행되어 더 많은 공격 벡터를 열게 됩니다.