# Máquina atacante do lab "Teste de Intrusão Express" — Kali enxuto (só o essencial).
# Build é feito uma vez por máquina (docker compose up -d --build); depois fica em cache.
FROM kalilinux/kali-rolling

ARG DEBIAN_FRONTEND=noninteractive

# Toolset express: recon, scan, exploração e força bruta — o suficiente para o trabalho.
# (Lista avulsa em vez do metapacote kali-linux-headless = imagem MUITO menor e build mais rápido.)
RUN apt-get update && apt-get install -y --no-install-recommends \
      nmap \
      metasploit-framework \
      sqlmap \
      gobuster \
      nikto \
      hydra \
      exploitdb \
      seclists \
      smbclient \
      enum4linux \
      netcat-traditional \
      net-tools \
      iproute2 \
      tcpdump \
      dnsutils \
      iputils-ping \
      curl wget python3 less vim ca-certificates
# Listas do apt mantidas de propósito: assim 'apt install <pacote>' funciona em runtime
# sem exigir 'apt update' antes (evita o "não consigo instalar nada" relatado pelo aluno).

# Mensagem de boas-vindas com os alvos e os primeiros comandos.
RUN printf '%s\n' \
  '' \
  '  ╔══════════════════════════════════════════════════════════╗' \
  '  ║   LAB: Teste de Intrusão Express — ataque SÓ este lab     ║' \
  '  ╚══════════════════════════════════════════════════════════╝' \
  '  Alvo na rede labnet (use o nome, o Docker resolve o IP):' \
  '    • alvo  -> Metasploitable 2 (SO + serviços vulneráveis)' \
  '' \
  '  Comece por:   nmap -sC -sV alvo' \
  '  Wordlists:    /usr/share/seclists' \
  '' \
  > /etc/motd \
 && echo '[ -f /etc/motd ] && cat /etc/motd' >> /root/.bashrc

# Ajustes para rodar DENTRO de container (descobertos testando o lab):
#  1) nmap: o pacote vem com file-capabilities (cap_net_raw,cap_net_admin,...=eip);
#     no container o exec de binario com essas caps falha com "Operation not permitted".
#     Como o atacante roda como root (e o Docker ja concede NET_RAW), basta remove-las.
#  2) wordlist: o pacote 'seclists' renomeia a DirBuster com prefixo. Cria-se o nome
#     canonico que o roteiro usa: directory-list-2.3-medium.txt.
RUN command -v setcap >/dev/null 2>&1 || apt-get install -y --no-install-recommends libcap2-bin; \
    setcap -r /usr/lib/nmap/nmap 2>/dev/null || true; \
    ln -sf DirBuster-2007_directory-list-2.3-medium.txt \
       /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt

WORKDIR /work
CMD ["/bin/bash"]
