Reconecte o cliente de recepção da oficina

NmapBeginner
Pratique Agora

Introdução

A Willow Workshop precisa da lista de participantes de CLAY-OPEN, mas seu cliente de listas ainda aponta para uma porta antiga que está fechada. No mesmo ambiente de treinamento há um serviço de referência útil e um arquivo que devem ser preservados. Sua tarefa é encontrar o serviço atual, reconectar o cliente e salvar a lista atual completa.

Você usará Nmap para distinguir uma porta aberta, um protocolo identificado e a função de negócio realmente necessária. Basta conhecer o básico de terminal e caminhos; as opções necessárias serão explicadas. Todas as pessoas e registros são sintéticos. São serviços HTTP reais dentro de um único contêiner de treinamento, não máquinas separadas. Use a aba Terminal durante todo o trabalho. Examine apenas as portas TCP 8100-8199 de 127.0.0.2. Não altere os serviços nem as configurações da plataforma.

Leia uma lista que funciona

Nesta etapa você verá uma consulta de negócio bem-sucedida antes de investigar a conexão com falha. Comece em Terminal. cd muda o diretório de trabalho desta sessão de shell. Todos os caminhos relativos seguintes partem desse local; execute novamente se abrir outro terminal.

cd /home/labex/project/workshop

O workshop-client preparado é um pequeno cliente HTTP. ./ seleciona o programa no diretório atual. Ele lê uma URL base de um arquivo de endereço, solicita /roster.tsv, mostra os registros e pode salvar a resposta sem alterações. Não procura outros servidores nem corrige a configuração. --endpoint escolhe o arquivo de endereço e --save escolhe o arquivo de saída. Leia o endereço de referência com cat, que exibe um arquivo de texto:

cat reference.txt

Você verá http://127.0.0.2:8120. O endereço identifica o destino, e a porta após os dois-pontos seleciona o serviço que está escutando. HTTP é o protocolo de requisição e resposta deste cliente.

./workshop-client --endpoint reference.txt --save reference-roster.tsv

Espere Session: ORIENTATION, dois registros e Saved 2 records to reference-roster.tsv. O arquivo usa TSV: uma linha de cabeçalho e registros cujas colunas são separadas por caracteres de tabulação. session_id identifica a sessão; as demais colunas descrevem o participante e o item. Este é um exemplo de referência funcional, não o resultado de CLAY-OPEN.

Sem --endpoint, o cliente lê endpoint.txt. Examine-o:

cat endpoint.txt

Agora teste a configuração atual:

./workshop-client --save roster.tsv

Este comando falha intencionalmente com Client error e uma explicação de conexão recusada. Não há programa escutando na porta antiga. É uma falha de conexão, não uma recusa de permissão HTTP nem um problema de formato da lista. Uma falha não salva uma lista. Mantenha reference.txt, o programa cliente e todos os serviços inalterados. Você pode alterar endpoint.txt e criar arquivos de evidência e de download neste local de trabalho.

Encontre as portas dos serviços permitidos

Nesta etapa você encontrará portas candidatas sem adivinhar a aplicação. Permaneça em Terminal, em /home/labex/project/workshop. Uma porta TCP open aceitou uma conexão, mas isso não informa qual sessão ela atende.

A varredura padrão do Nmap verifica um conjunto de portas comuns, não todas as portas. Seu escopo permitido é todo o intervalo 8100-8199. -sT seleciona uma varredura TCP connect, que aqui não precisa de privilégios de pacotes brutos. -n ignora a resolução reversa de nomes, e -p especifica o intervalo de portas. -oX salva XML estruturado; Nmap também imprime resultados legíveis. O XML relaciona alvo, protocolo, porta e estado para inspeção posterior.

nmap -sT -n -p 8100-8199 -oX ports.xml 127.0.0.2

Espere portas TCP 8120, 8142 e 8187 abertas, com o restante do intervalo fechado. A coluna SERVICE pode mostrar nomes convencionais ou unknown. Sem identificação ativa, esses nomes são pistas do banco de portas, não prova da aplicação em execução. Não escolha um serviço só por estar aberto ou por ter um nome conhecido.

Um erro de digitação no alvo ou intervalo induz a conclusões erradas. Execute novamente o comando corrigido para substituir ports.xml. Se mais tarde não encontrar um arquivo, verifique o diretório com pwd e volte com o cd da etapa 1. Não amplie o escopo para endereços ou portas da plataforma.

Identifique os serviços candidatos

Nesta etapa você identificará os candidatos e comparará suas descrições de negócio. Continue em Terminal. -sV envia sondas de aplicação; --version-light usa um conjunto menor para reduzir trabalho desnecessário. Uma versão de produto desconhecida não prova que o serviço está quebrado.

O Nmap Scripting Engine, ou NSE, pode fazer requisições de aplicação específicas. Leia a ajuda do único script necessário:

nmap --script-help http-title

http-title busca o título de uma página HTML. A informação de passagem de trabalho declara os três candidatos como endereços HTTP da oficina. O + inicial executa explicitamente esse script mesmo se o banco de protocolos antigo não reconhecer uma porta ou cabeçalho de servidor incomum. Isso é adequado neste escopo HTTP conhecido; não é motivo para forçar scripts arbitrários contra serviços sem relação com a tarefa. --script-args passa argumentos nomeados; http-title.url=/about solicita a página de descrição em vez do caminho padrão.

nmap -sT -n -sV --version-light --script=+http-title --script-args=http-title.url=/about -p 8120,8142,8187 -oX services.xml 127.0.0.2

Espere por Nmap done. Compare as linhas http-title: Orientation é a referência; Clay Archive, a sessão antiga; Clay Open Studio, o candidato a CLAY-OPEN. A porta do endereço atual é 8187. A coluna VERSION pode variar e continuar como unknown mesmo quando o script HTTP explícito funciona. Leia a resposta real do script em vez de inventar uma versão.

Um título reduz os candidatos, mas não prova a identidade nem a integridade da lista. O cliente fará essa verificação a seguir. Não edite títulos ou registros dos servidores para fazer o serviço errado parecer atual. Se interromper uma varredura, execute-a novamente e aguarde a conclusão; XML incompleto não serve como evidência.

Reconecte e salve a lista atual

Nesta etapa você transformará o resultado da varredura em uma configuração funcional do cliente. Permaneça em Terminal. O arquivo de endereço contém uma URL HTTP base, sem /about ou /roster.tsv; o cliente acrescenta o caminho do recurso.

printf escreve texto formatado. Aqui, '%s\n' significa uma string seguida de uma quebra de linha. Aspas simples mantêm o texto entre elas literal. > substitui o arquivo indicado pela saída, portanto use apenas o destino editável endpoint.txt:

printf '%s\n' 'http://127.0.0.2:8187' > endpoint.txt
cat endpoint.txt

Agora consulte o serviço configurado e salve sua resposta original completa:

./workshop-client --save roster.tsv

Espere Session: CLAY-OPEN, três registros de participantes e Saved 3 records to roster.tsv. Leia o arquivo realmente salvo:

cat roster.tsv

O cabeçalho deve ser seguido por W01/Ana/Clay kit, W02/Sam/Glaze kit e W03/Lee/Clay kit, todos em CLAY-OPEN. Um arquivo histórico pode retornar HTTP 200 e uma lista válida e ainda assim ser o resultado de negócio errado. Corrija o endereço e execute o cliente novamente se obtiver outra sessão. Uma URL base malformada gera um Client error explicado; substitua a única URL em vez de alterar o programa fornecido.

Por fim, leia a referência novamente para garantir que o trabalho útil existente continua disponível:

./workshop-client --endpoint reference.txt --save reference-roster.tsv

Esta última consulta ainda deve retornar ORIENTATION. Sua lista atual permanece em roster.tsv. O arquivo histórico também continua disponível para sua finalidade original. Não é necessário reiniciar o servidor, corrigir sua configuração nem remover serviços.

Resumo

Você encontrou portas TCP permitidas, reuniu evidências ativas de serviço e HTTP e reconectou um cliente real à sessão correta. A lista completa, o endereço correto e os serviços de referência e arquivo preservados demonstram o resultado. Só uma porta aberta, um nome conhecido, uma versão de produto ou HTTP 200 não bastam.