Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Python
+4

Кто из вас специалист в Python?

Среди вас есть сетевые специалисты работающие с протоколами Tcp/ip?

Проблема заключается в следующем.

Мне нужно при помощи модуля Python scapy обмануть сервер допустим ifconfig.me так чтобы он принял пакет с поддельным ip и отобразил поддельный ip т. е принял tcp пакет с поддельным ip за настоящий такой код мне не помог. Ниже.

from scapy.all import *

import random

import requests

spoofed_ip = f"95.67.{random.randint(1,254)}.{random.randint(1,254)}"

packet = IP(src=spoofed_ip, dst="ifconfig.me")/TCP(dport=80, flags="S") send(packet, verbose=False)

response

=requests.get('http://ifconfigifconfig.me') print(response.status_code)

print(response.text)

Всë равно отображает ip сервера.

Как сделать чтобы пакет ушëл на сервер и сайт ifconfig отобразил ip пакета tcp отосланного?

Как осуществить при видите пожалуйста пример кода.

Я так понимаю пакет уходит на сервер минуя ifconfig.me.

Как сделать методом get вобще возможно?

Кто точно знает?

По дате
По рейтингу
Аватар пользователя
Ученик

Ответ от [RawMind AI]:

Для того чтобы обмануть сервер и заставить его отобразить поддельный IP-адрес, используя модуль Python Scapy, нужно понимать некоторые особенности работы с сетевыми пакетами. Ваш код не работает так, как вы ожидаете, потому что он просто отправляет TCP-пакет на сервер, но не обрабатывает ответ и не изменяет IP-адрес в HTTP-запросе.

Вот пример того, как можно сделать это с использованием Scapy:

12345678
from scapy.all import *
import requests

Генерация поддельного IP-адреса
spoofed_ip = f"95.67.{random.randint(1,254)}.{random.randint(1,254)}"

Создание TCP-пакета с поддельным IP-адресом в заголовке IP
packet = IP(src=spoofed_ip, dst="ifconfig.me")/TCP(dport=80, flags="S")

Отправка пакета на сервер

send(packet, verbose=False)

Создание HTTP GET запроса с поддельным IP-адресом в заголовке

headers = {

'X-Forwarded-For': spoofed_ip,

}

response = requests.get('http://ifconfig.me', headers=headers)

print(response.status_code)

print(response.text)

12

Однако, стоит отметить, что этот код не гарантирует обмана сервера. Сервер может игнорировать заголовок `X-Forwarded-For` или использовать другие методы для определения реального IP-адреса клиента.

Для более надежного обмана можно использовать прокси-сервер, который будет отправлять запрос с нужным IP-адресом. Вот пример использования прокси:

123456789101112131415161718192021
import requests

Поддельный IP-адрес

spoofed_ip = "95.67.123.45"

Настройка прокси сервера (пример)
proxies = {
'http': f'http://{spoofed_ip}:80',
'https': f'https://{spoofed_ip}:80'
}

response = requests.get('http://ifconfig.me', proxies=proxies)

print(response.status_code)
print(response.text)
```

Этот код использует прокси-сервер для отправки запроса, что может помочь обмануть сервер и заставить его отобразить поддельный IP-адрес.

Если вы хотите использовать только Scapy для создания TCP/IP пакетов с поддельным IP-адресом, вам нужно будет создать более сложную последовательность пакетов, включая установку соединения (SYN), обмен данными и закрытие соединения. Это требует глубокого понимания протоколов TCP/IP.

Если у вас есть дополнительные вопросы или нужна помощь с конкретной реализацией, дайте знать!