HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Песочница
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #4  
Старый 25.11.2019, 13:39
vikaig
Guest
Сообщений: n/a
Провел на форуме:
14443

Репутация: 0
По умолчанию

Цитата:
Сообщение от Seoul  
Seoul said:

Вопрос простой. Можно ли до сих пор ставить ложный айпи в заголовках удп пакетов? Пропустит ли их провайдер?
Мой провайдер - билайн
Если кто-нибудь позволит с включенным wireshark попробовать это провернуть, то будет вообще замечательно
Лучше называть это не фальсификацией, а IP-спуфингом или подменой IP-адреса, не когда не слышал чтоб это называли фальсификацией.

На счет провайдера твоего не знаю, если нет NAT, то вполне вероятно, а с NAT - нет(точнее да, он скорее пропустит, но со своим IP, без спуфа).

Сделал простую отправку UDP датаграммы чтоб прочекать у себя, можешь тоже проверить:

Код:
Code:
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define PACKET_SIZE 8192
#define SOURCE_ADDR "1.2.3.4"
#define SOURCE_PORT 12345
#define DST_ADDR "1.1.1.1"
#define DST_PORT 12345

unsigned short csum(unsigned short *buf, int nwords) {
    unsigned long sum;
    for(sum=0; nwords>0; nwords--) {
        sum += *buf++;
    }
    sum = (sum >> 16) + (sum &0xffff);
    sum += (sum >> 16);

    return (unsigned short)(~sum);
}

int main(int argc, char *argv[]) {
    int sock = socket(AF_INET, SOCK_RAW, IPPROTO_RAW);
    assert(sock != -1);

    const int optval = 1;
    int ret = setsockopt(sock, IPPROTO_IP, IP_HDRINCL, &optval, sizeof(optval));
    assert(ret != -1);

    char packet[PACKET_SIZE] = { 0 };
    struct iphdr *ip = (struct iphdr *)packet;
    struct udphdr *udp = (struct udphdr *)(packet + sizeof(*ip));

    ip->ihl = 5;
    ip->version = 4;
    ip->tos = 16;
    ip->tot_len  = sizeof(*ip) + sizeof(*udp);
    ip->id = htons(12345);
    ip->ttl = 64;
    ip->protocol = 17;
    ip->saddr = inet_addr(SOURCE_ADDR);
    ip->daddr = inet_addr(DST_ADDR);

    udp->source = htons(SOURCE_PORT);
    udp->dest = htons(DST_PORT);
    udp->len = htons(sizeof(*udp));

    ip->check = csum((unsigned short *)packet, sizeof(*ip) + sizeof(*udp));

    struct sockaddr_in sin;
    sin.sin_family = AF_INET;
    sin.sin_port = htons(DST_PORT);
    sin.sin_addr.s_addr = inet_addr(DST_ADDR);

    ret = sendto(sock, packet, ip->tot_len, 0, (struct sockaddr *)&sin, sizeof(sin));
    assert(ret != -1);

    close(sock);

    printf("Datagram sent to %s:%d, from %s:%d", DST_ADDR, DST_PORT, SOURCE_ADDR, SOURCE_PORT);

    return EXIT_SUCCESS;
}
 
Ответить с цитированием
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ