Translate

Mostrar mensagens com a etiqueta ftp. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta ftp. Mostrar todas as mensagens

segunda-feira, 1 de março de 2021

💀🔥 Top 10 vulnerabilidades reais em z/OS (com exemplos práticos)

 

Bellacosa Mainframe apresenta as 10 vulnerabilidades mais comuns em Mainframe

💀🔥 Top 10 vulnerabilidades reais em z/OS (com exemplos práticos)

“O perigo no mainframe não é o sistema…
é quem configura.”


🧨 1. RACF mal configurado (*PUBLIC liberado)

Cenário clássico:

// Dataset crítico liberado
PERMIT DATASET.PROD.FINANCE CLASS(DATASET) ID(*PUBLIC) ACCESS(READ)

💥 Resultado:

  • qualquer usuário pode ler dados financeiros

✔️ Ataque:

  • exfiltração via TSO, FTP ou batch

🔥 Correção:

  • remover *PUBLIC
  • usar grupos restritos

🧠 2. Usuário com SPECIAL indevido

Erro comum:

  • dar SPECIAL “temporário” e esquecer

💥 Resultado:

  • usuário vira “quase root”

✔️ Ataque:

  • altera RACF
  • cria backdoors

🔥 Exemplo:

ALTUSER HACKER SPECIAL

⚙️ 3. APF Library Injection

👉 Se atacante conseguir inserir lib na APF:

💥 Resultado:

  • código roda em modo supervisor

✔️ Ataque:

  • escalar privilégio total

🔥 Exemplo:

  • adicionar dataset na APF via:
SETPROG APF,ADD,DSNAME=HACK.LOADLIB,VOLUME=SYS001

🧬 4. Programas com AC=1 (Authorized)

👉 Programas autorizados são perigosíssimos

💥 Cenário:

  • programa mal protegido

✔️ Ataque:

  • executa código privilegiado

🔥 Exemplo:

  • load module vulnerável em:
SYS1.LINKLIB

🧾 5. JCL Injection

👉 Entrada controlada por usuário dentro de JOB

💥 Exemplo:

//STEP1 EXEC PGM=IEFBR14
//SYSIN DD *
DELETE PROD.DATA
/*

✔️ Ataque:

  • execução de comandos não autorizados

🔥 Lição:

  • validar input sempre

🌐 6. FTP mal configurado

👉 FTP aberto é porta escancarada

💥 Problema:

  • acesso sem restrição
  • upload/download liberado

✔️ Ataque:

  • baixar datasets
  • subir payload

🔥 Exemplo:

ftp> get 'PROD.CLIENTES'

🧑‍💻 7. CICS sem segurança adequada

👉 Transações abertas

💥 Cenário:

  • transação sem autenticação

✔️ Ataque:

  • acesso direto a dados sensíveis

🔥 Exemplo:

  • acessar transação:
CEMT I TASK

🔐 8. Falta de logging (SMF desligado ou fraco)

👉 Sem trilha = sem investigação

💥 Resultado:

  • ataque invisível

✔️ Ataque:

  • ações sem rastreabilidade

🔥 Correção:

  • ativar SMF 80 (RACF), 30 (job), 110 (CICS)

🧠 9. Senhas fracas / padrão

👉 O clássico que nunca morre

💥 Exemplo:

  • USER: OPERADOR
  • PASS: OPERADOR

✔️ Ataque:

  • brute force / guessing

🔥 Correção:

  • regras RACF (PASSWORD RULES)

🔗 10. Integração insegura (APIs / z/OS Connect)

👉 O ponto mais moderno… e mais perigoso

💥 Cenário:

  • API exposta sem controle forte

✔️ Ataque:

  • acesso indireto ao mainframe

🔥 Exemplo:

  • chamada REST acessando backend CICS sem validação

🧠🔥 Padrão ouro dos ataques

👉 90% dos casos seguem esse fluxo:

  1. credencial fraca ou vazada
  2. acesso TSO / FTP
  3. enumeração de datasets
  4. exploração (APF / AC=1 / CICS)
  5. persistência
  6. exfiltração

💀 MITO vs REALIDADE (nível hardcore)

MitoRealidade
RACF protege tudo               só se bem configurado
APF é seguroé arma nuclear
Ninguém acessa TSOatacante ama TSO
Mainframe é isoladoAPI abriu a porteira

☢️Maior falha de sempre

Backdoor em online. As vezes para corrigir erros em produção são criados programinhas ocultos com muito poder de atualização. Caso caia em mãos erradas o estrago esta feito. Sem log, sem rastro, oculto entre programas quentes.

De boas inteçoes o inferno esta cheio.

🚀 Conclusão Bellacosa

“Mainframe não é hackeado por força…
é hackeado por permissão.”


 

 

sábado, 24 de março de 2007

Como Funciona o FTP no Ambiente Mainframe (Modo Batch e Modo Online)

 

Bellacosa Mainframe tranferindo arquivos com FTP

Como Funciona o FTP no Ambiente Mainframe (Modo Batch e Modo Online)

O FTP (File Transfer Protocol) é uma das formas mais tradicionais de transferir arquivos entre Mainframes, servidores Linux, Windows, Unix e plataformas Cloud.

No z/OS, o FTP pode ser executado de duas formas:

Modo Online (TSO)

Modo Batch (JCL)


O que é FTP?

FTP significa:

File Transfer Protocol

É um protocolo utilizado para:

  • Enviar arquivos

  • Receber arquivos

  • Trocar datasets

  • Integrar sistemas


Arquitetura Básica

Mainframe
     ↓
FTP
     ↓
Servidor Linux

ou

Mainframe A
      ↓
FTP
      ↓
Mainframe B

Modos de Transferência

ASCII

Converte caracteres.

Utilizado para:

JCL
COBOL
TXT
PROC

BINARY

Não converte conteúdo.

Utilizado para:

LOADLIB
XMIT
ZIP
PDF
Executáveis

FTP Online (TSO)

Executado diretamente no terminal TSO.


Passo 1 – Entrar no FTP

No prompt TSO:

FTP 192.168.1.100

ou

FTP servidor.empresa.com

Passo 2 – Informar Usuário

Name:

Digite:

USER01

Passo 3 – Informar Senha

Password:

Digite:

*******

Conexão Estabelecida

Connected to server.

Comandos Básicos


Listar Diretório

LS

ou

DIR

Mudar Diretório

CD /home/arquivos

Ver Diretório Atual

PWD

Enviando Arquivos

Exemplo

Dataset:

USER.CLIENTES

Comando:

PUT 'USER.CLIENTES' clientes.txt

Fluxo:

Dataset Mainframe
      ↓
PUT
      ↓
Arquivo Linux

Recebendo Arquivos

GET clientes.txt 'USER.CLIENTES'

Fluxo:

Linux
 ↓
GET
 ↓
Dataset z/OS

Definindo Modo ASCII

ASCII

Definindo Modo BINARY

BINARY

Exemplo Completo Online

FTP servidor.empresa.com

USER user01
PASS senha

ASCII

PUT 'USER.COBOL.SOURCE(MEUCOBOL)' programa.cbl

QUIT

Resultado:

programa.cbl

enviado para o servidor.


FTP Batch (JCL)

Muito utilizado em produção.


Vantagens

✅ Automação

✅ Execução noturna

✅ Integração Batch

✅ Sem intervenção humana


Estrutura Básica

//FTPJOB JOB ...
//STEP01 EXEC PGM=FTP
//SYSPRINT DD SYSOUT=*
//INPUT DD *
...
/*

Exemplo 1 – Enviar Arquivo

//FTPJOB JOB CLASS=A,MSGCLASS=X

//FTPSTEP EXEC PGM=FTP
//SYSPRINT DD SYSOUT=*
//OUTPUT   DD SYSOUT=*
//INPUT DD *

192.168.1.100

USER01
SENHA

ASCII

PUT 'USER.CLIENTES' clientes.txt

QUIT

/*

Fluxo

JCL
 ↓
FTP
 ↓
Servidor
 ↓
clientes.txt

Exemplo 2 – Receber Arquivo

//FTPJOB JOB CLASS=A

//FTPSTEP EXEC PGM=FTP
//SYSPRINT DD SYSOUT=*
//INPUT DD *

192.168.1.100

USER01
SENHA

ASCII

GET clientes.txt 'USER.CLIENTES'

QUIT

/*

Exemplo 3 – Transferindo XMIT

Arquivo:

USER.COBOL.XMIT

Sempre usar:

BINARY

JCL:

//FTPSTEP EXEC PGM=FTP
//INPUT DD *

192.168.1.100

USER01
SENHA

BINARY

PUT 'USER.COBOL.XMIT' COBOL.XMIT

QUIT

/*

Recebendo Arquivo XMIT

GET COBOL.XMIT 'USER.COBOL.XMIT'

Depois:

RECEIVE INDSN('USER.COBOL.XMIT')

FTP Entre Mainframes

Muito comum.


Mainframe A:

BANCO A

PUT 'PROD.CLIENTES'

BANCO B

Criando Dataset Remoto

Muitos servidores FTP do z/OS aceitam:

SITE

Exemplo:

SITE RECFM(F B) LRECL(80) BLKSIZE(8000)

Depois:

PUT CLIENTES.TXT 'USER.CLIENTES'

SITE Command

Muito importante.

Permite definir:

  • LRECL

  • BLKSIZE

  • RECFM

  • SPACE


Exemplo

SITE

RECFM(FB)
LRECL(80)
CYLINDERS
PRIMARY=5
SECONDARY=2

FTP Seguro

Atualmente utiliza-se:

FTPS

FTP com TLS.


SFTP

Via SSH.


Fluxo:

Mainframe
 ↓
SFTP
 ↓
Linux

Exemplos de Uso Real


Banco

PIX
 ↓
FTP
 ↓
Arquivo BACEN

Seguradora

Batch Noturno
 ↓
FTP
 ↓
Parceiro

Governo

Arrecadação
 ↓
FTP
 ↓
Receita

Erros Mais Comuns

Login Inválido

530 Login Incorrect

Dataset Não Encontrado

550 File Not Found

Permissão Negada

550 Access Denied

ASCII x BINARY

Erro clássico.

Enviar XMIT em ASCII:

Arquivo Corrompido

Correto:

BINARY

Boas Práticas

✅ XMIT → BINARY

✅ LOADLIB → BINARY

✅ Texto COBOL → ASCII

✅ Usar FTPS/SFTP

✅ Automatizar via JCL

✅ Validar retorno FTP


Resumo Rápido

ComandoFunção
FTP hostConectar
PUTEnviar
GETReceber
ASCIIModo texto
BINARYModo binário
DIRListar
CDTrocar diretório
QUITEncerrar
SITEDefinir atributos
RECEIVERestaurar XMIT

Exemplo Clássico de Produção

JOB Batch
      ↓
FTP
      ↓
Arquivo Remessa
      ↓
Banco Parceiro
      ↓
Processamento
      ↓
Arquivo Retorno
      ↓
FTP GET
      ↓
Mainframe

Esse é um dos cenários mais comuns em bancos, seguradoras, telecomunicações e órgãos governamentais que utilizam Mainframe para integração de arquivos em larga escala.