Challeballes MCP Workshop

Låt AI göra jobbet medans du dricker öl

Intro

Vad är MCP?

Model Context Protocol (MCP) är ett öppet protokoll som möjliggör kommunikation mellan AI-modeller och externa verktyg. Det låter dig bygga kraftfulla integrationer där AI kan interagera med databaser, API:er, säkerhetsverktyg och operativsystem.

Varför MCP för CTF och pentest?
MCP ger dig möjlighet att kombinera kraften i Kali Linux med Claude's förmåga att resonera, planera och utföra komplexa analyser. Istället för att manuellt köra kommandon kan du beskriva vad du vill uppnå och låta Claude orkestrera verktygen.

Arkitektur: Windows Host + Kali VM

I denna workshop använder vi en hybrid-setup där Claude körs på Windows men exekverar kommandon i en Kali Linux VM:

  • Windows (Host): Kör Claude Desktop och MCP-bryggan
  • Kali Linux (VM): Kör säkerhetsverktyg och exponerar dem via REST API
  • MCP Brygga: Översätter mellan MCP-protokollet och Kali API:et

Huvudkomponenter

Vi kommer använda följande projekt: MCP-Kali-Server.
Man är också välkommen att bygga en egen om man hellre vill det :)

  • Kali API Server (kali_server.py): Flask-baserad REST API som exekverar kommandon i Kali
  • MCP Server (mcp_server.py): Python-applikation som exponerar Kali-funktioner som MCP-verktyg
  • Claude Desktop: AI-klient som använder MCP-verktygen

Installation & Setup

Översikt: Windows + Kali VM

I denna workshop kör vi Claude Desktop på Windows (host) och Kali Linux i en VM (guest). Arkitekturen ser ut såhär:

Arkitektur:
Claude Desktop (Windows)MCP Bridge (Windows)Kali API (Kali VM)Verktyg

Vi använder två komponenter:

  • kali_server.py: REST API som exponerar Kali-kommandon (körs i Kali VM)
  • mcp_server.py: MCP-brygga som översätter mellan MCP och Kali API (körs på Windows, startas av Claude)

Steg 1: Förutsättningar

  • Windows 10/11 med Python 3.10 eller senare
  • Kali Linux VM (VMware, VirtualBox, Hyper-V, etc.)
  • Nätverksanslutning mellan Windows och Kali VM
  • Claude Desktop installerat på Windows
Ladda ner Claude Desktop:
Besök claude.ai/download för att installera på Windows.

Steg 2: Klona MCP-Kali-Server Repository

Ladda ner projektet från GitHub på din Windows-maskin:

git clone https://github.com/Wh0am123/MCP-Kali-Server.git
cd MCP-Kali-Server

Alternativt, ladda ner komponenterna manuellt.

Steg 3: Installera Python-beroenden (Windows)

Installera nödvändiga paket på Windows-maskinen:

pip install mcp requests

Steg 4: Setup Kali VM

4.1 - Kopiera kali_server.py till Kali

Överför kali_server.py till din Kali VM via SCP, delad mapp eller annan metod.

4.2 - Installera beroenden i Kali

# I Kali VM
sudo apt update
pip3 install Flask --break-system-packages

4.3 - Starta Kali API-servern

# I Kali VM
python3 kali_server.py --ip 0.0.0.0

Servern kommer att lyssna på port 5000. Anteckna Kali VM:s IP-adress (använd ip a för att hitta den).

Steg 5: Konfigurera Claude Desktop (Windows)

Redigera Claude Desktop-konfigurationen, observera att man kan behöva skapa filen om den inte finns:

C:\Users\{username}\AppData\Roaming\Claude\claude_desktop_config.json

Lägg till följande konfiguration (byt ut IP-adressen och sökvägen):

{
    "mcpServers": {
        "kali_mcp": {
            "command": "py",
            "args": [
                "C:\\Users\\Charlie\\mcp_server.py",
                "--server",
                "http://192.168.222.128:5000/"
            ]
        }
    }
}
Viktigt:
  • Byt C:\\Users\\Charlie\\mcp_server.py mot din sökväg till mcp_server.py
  • Byt 192.168.222.128 mot din Kali VM:s IP-adress
  • Byt py mot ditt python alias. T.ex py,python eller python3

Steg 6: Verifiera Setup

6.1 - Testa Kali API

Från Windows, testa att Kali API:et svarar:

# PowerShell eller CMD
curl http://192.168.222.128:5000/health

6.2 - Starta om Claude Desktop

Stäng och starta om Claude Desktop för att ladda den nya konfigurationen.

Viktigt: Se till att kali_mcp dyker upp och är påslagen

6.3 - Testa MCP-anslutningen

Öppna Claude Desktop och testa med en enkel prompt:

Kan du köra "whoami" i Kali?
Vinst!
Om Claude svarar med resultat från Kali så fungerar din setup. Du är nu redo att börja använda Kali-verktyg genom Claude!

Felsökning

Problem: Kan inte nå Kali API
  • Kontrollera att kali_server.py körs i Kali
  • Verifiera IP-adressen med ip a i Kali
  • Kontrollera att Kali VM:s firewall tillåter port 5000
  • Testa ping från Windows till Kali: ping 192.168.222.128
Problem: Claude hittar inte verktygen
  • Kontrollera att Python är installerat på Windows (testa med py --version)
  • Verifiera att alla Python-beroenden är installerade
  • Kolla Claude Desktop-loggarna för felmeddelanden
  • Testa att köra mcp_server.py manuellt för att se eventuella fel

Effektiva Prompts

Grundläggande Prompt-struktur

För bästa resultat med MCP, strukturera dina prompts tydligt och ge så mycket kontext som möjligt.

Mer kontext = Bättre resultat

Inkludera gärna:

  • Flaggformat
  • IP / URL / Filsökväg till uppgiften
  • CTF kategori
  • CTF beskrivning
  • Eventuella pointers t.ex om du har listat ut första steget men kört fast

Exempel

Kan du hjälpa mig lösa en CTF utmaning i "Cryptography"-kategorin.
Flaggformat: picoCTF{xxx}
Jag har fått två filer som jag lagt under: /home/kali/Desktop/CTF/
CTF beskrivning: "Can you get sense of this code file and write the function that will decode the given encrypted file content."
Använd kali_mcp
Observera att Claude inte kan köra program interaktivt, dvs om den väntar på input från ett program eller netcat anslutning så kommer den fastna.

Man kan då behöva avbryta och komma med ny input som hänvisar att använda python för att interagera med programmet eller anslutningen

Ibland vill Claude installera nya tools (med sudo). Den kommer då vänta på sudo lösenordet i kali förutsatt att den inte redan körs som root.
Tips: Tveka inte att avbryta och kom med ny kontext om du märker att Claude snöar in sig i fel sak

Testuppgifter (CTF)

Testa dina färdigheter med dessa CTF-utmaningar! Använd MCP-verktygen för att lösa dem.

(Ja flaggan ligger direkt i JavaScripten, men det är inte poängen här)

Cryptography
Custom encryption (PicoCTF)
Medel

Can you get sense of this code file and write the function that will decode the given encrypted file content.

Find the encrypted file here flag_info and code file might be good to analyze and get the flag.

Forensics
MSB (PicoCTF)
Medel

This image passes LSB statistical analysis, but we can't help but think there must be something to the visual artifacts present in this image...

Download the image here

Reverse Engineering
Packer (PicoCTF)
Enkel

Reverse this linux executable? binary.

Mer?

Är du sugen på att testa fler uppgifter kan du testa några på: https://play.picoctf.org/practice

Testa gärna några i kategorin WEB!

Felsökning

Vanliga Problem och Lösningar

Problem: Kommandon verkar inte exekverara / Claude använder inte MCP servern

Lösning:
  • Kontrollera att kali_mcp är påslaget i chatten
  • Under Settings->Capabilities, se till att "Code execution and file creation" är avstängt. Annars kommer Claude försöka köra något eget race istället för att använda vår MCP.
Problem: MCP-server svarar inte

Lösning:
  • Kontrollera att servern körs: curl http://localhost:8000/health
  • Kolla loggar för felmeddelanden
  • Verifiera att rätt port används i konfigurationen
Problem: Claude hittar inte verktygen

Lösning:
  • Starta om Claude Desktop efter konfigurationsändringar
  • Kontrollera att sökvägen i claude_desktop_config.json är korrekt
  • Verifiera att MCP-servern har registrerat verktygen korrekt
Problem: Timeout vid verktygsanrop

Lösning:
  • Öka timeout-värdet i MCP-serverkonfigurationen
  • Vissa verktyg (som Nmap) kan ta lång tid - var tålmodig
  • Använd mindre omfattande scans eller skit i nmap/gobuster, ge en prompt som säger explicit att undvika det

Nätverksproblem

  • Kontrollera firewall-inställningar om servern inte kan nås
  • Verifiera att rätt IP-adress och port används
  • Testa med telnet localhost 8000 för att bekräfta anslutning
Behöver mer hjälp?
Kolla MCP-dokumentationen på modelcontextprotocol.io eller gemenskapen på GitHub.

👮‍♂️ Är du redo för en större uppgift?

Stockholm
IT-säkerhetsanalytiker till polisens SOC
https://www.linkedin.com/jobs/view/4319488146

Till polisens SOC (Security Operations Center) söker vi nu ytterligare IT-säkerhetsanalytiker som arbetar resultatinriktat och gärna delar med sig av sin kunskap till sina kollegor.

Beskrivning

Du kommer att övervaka och arbeta i en stor IT-miljö med ny teknik och höga säkerhetskrav. Via larm och threat hunting ska du hitta spår efter hotaktörer som kan störa polisens operativa förmåga. En stor del av tiden kommer du också att vidareutveckla vår IT-säkerhetsövervakning genom att analysera nya trender, utveckla ny detektion och samarbeta med andra grupper inom Polisen.


Arbetsuppgiften som IT-säkerhetsanalytiker innebär att:

  • Identifiera och analysera säkerhetsincidenter genom IT-säkerhetsövervakning och threat hunting.
  • Utveckla detektion (detection engineering) inom en eller flera plattformar både med host- och nätverksinriktning.
  • Löpande verifiera och kvalitetssäkra framtagen detektion.
  • Genomföra purple team-övningar tillsammans med polisens penetrationstestare.
  • Samverka med andra teknikgrupper inom Polisen.