» » » Perl в хэке и хэки в Perl

Презентация на тему Perl в хэке и хэки в Perl

Презентацию на тему Perl в хэке и хэки в Perl можно скачать абсолютно бесплатно на нашем сайте. Предмет презентации : Разные. Красочные слайды и илюстрации помогут вам заинтересовать своих одноклассников или аудиторию. Для просмотра содержимого презентации воспользуйтесь плеером, или если вы хотите скачать презентацию - нажмите на соответствующий текст под плеером. Презентация содержит 17 слайдов.

скачать презентацию

Слайды презентации

Слайд 1: Презентация Perl в хэке и хэки в Perl
Слайд 1
YAPC::Russia 2009

Докладчик: Илья Зеленчук, Perlсlub УрГУ (г. Екатеринбург)

Perl в хэке и хэки в Perl

Слайд 2: Презентация Perl в хэке и хэки в Perl
Слайд 2
Игры

CTF (Capture the Flag) ICFP EACP (Extremely Advanced Computer Programming)

Слайд 3: Презентация Perl в хэке и хэки в Perl
Слайд 3
Perl в хэке

Простоя работа с сетью; Удобен при написании PoC; Обфускация кода; Генерация сложночитаемого С кода; Затрудненный reverse.

Слайд 4: Презентация Perl в хэке и хэки в Perl
Слайд 4

Пример игрового сервиса

Слайд 5: Презентация Perl в хэке и хэки в Perl
Слайд 5

Простой веб клиент

;
Слайд 6: Презентация Perl в хэке и хэки в Perl
Слайд 6
Perl2C

... (3474 строки) xpv_list[79].xpv_pv = savepvn("Hello, MayPerln", 15); { SV **svp; AV *av = (AV*)&sv_list[279]; av_extend(av, 2); svp = AvARRAY(av); *svp++ = (SV*)&PL_sv_undef; *svp++ = (SV*)&PL_sv_undef; *svp++ = (SV*)&sv_list[280]; AvFILLp(av) = 2; } PL_curpad = AvARRAY((AV*)&sv_list[279]); GvHV(PL_incgv) = (HV*)&sv_list[53]; ... (150 строк)

Слайд 7: Презентация Perl в хэке и хэки в Perl
Слайд 7
Perl2bin
Слайд 8: Презентация Perl в хэке и хэки в Perl
Слайд 8
Хэки в Perl

Простой сокет в Perl’e; Sniffer под UNIX без использования libpcap; Прием/отправка пакетов и использованием raw socket; Неблокирующие сокеты.

Слайд 9: Презентация Perl в хэке и хэки в Perl
Слайд 9
Perl sockets

#!/usr/bin/perl use Socket; socket $S, PF_INET, SOCK_STREAM, getprotobyname('tcp‘); my $addr=sockaddr_in(80, inet_aton($ip)); connect $S, $addr or die "Can't open connection: $!n"; send $S, "GET / HTTP/1.0rnrn", 0; print <$S>; close $S;

Слайд 10: Презентация Perl в хэке и хэки в Perl
Слайд 10

Sniffer под Unix без использования libpcap

#!/usr/bin/perl #use Socket; use constant PF_PACKET => 17; use constant SOCK_PACKET => 10; use constant ETH_P_ALL => 0x0003; socket (SOCKET, PF_PACKET, SOCK_PACKET, ETH_P_ALL) or die “Socket error: $!n"; while (){ recv (SOCKET, $buf, 1514, 0); # читаем пакет print unpack ("H*", $buf), "nn"; # выводим его в формате hex }

Слайд 11: Презентация Perl в хэке и хэки в Perl
Слайд 11

Отправка UDP пакета через raw socket

#!/usr/local/bin/perl use Socket; use constant IPPROTO_RAW => 255; $iaddr = inet_aton ('192.168.139.1'); $paddr = sockaddr_in (80, $iaddr); #80 - порт назначения socket(SOCKET, PF_INET, SOCK_RAW, IPPROTO_RAW) or die “Socket error: $!n"; …

Слайд 12: Презентация Perl в хэке и хэки в Perl
Слайд 12

$packet .= pack("C", 69); $packet .= pack ("H2", '00'); $packet .= pack ("n", 28); $packet .= pack ("n", 0); $packet .= pack ("H4", '4000'); $packet .= pack ("C", 64); $packet .= pack ("C", getprotobyname('udp')); $packet .= pack ("n", 0); $source_ip = '207.46.197.32'; $result_source_ip .= pack ("C", $_) for (split('.', $source_ip)); $packet .= $result_source_ip; $destination_ip = '192.168.139.1'; $result_destination_ip .= pack ("C", $_) for (split('.', $destination_ip)); $packet .= $result_destination_ip; $packet .= pack ("n", 25); $packet .= pack ("n", 80); $packet .= pack ("n", 8); $packet .= pack ("H4", '0000');

Слайд 13: Презентация Perl в хэке и хэки в Perl
Слайд 13

Отправка пакетов через packet socket

С какого интерфейса происходит отправка пакета: struct sockaddr { sa_family_t sa_family; //семейство протоколов char sa_data[14]; //14 байтов на описание этого семейства... };

Слайд 14: Презентация Perl в хэке и хэки в Perl
Слайд 14

Пример заполнения структуры и отправки пакета: $addr = PF_PACKET; #семейство $iface = "eth0"; #используемое устройство $socket = pack ('Sa14', $addr, $iface); #упаковываем все это в структуру send(SOCKET, $packet, 0, $socket) or die "Can't send packet:$!n";

Слайд 15: Презентация Perl в хэке и хэки в Perl
Слайд 15

Неблокирующий сокет на Perl (Windows)

… my ($win, $ein); my $addr=sockaddr_in(86, inet_aton("10.0.0.253")); socket SOCK, PF_INET, SOCK_STREAM, 0 or die "Socket: $!n"; ioctl(SOCK, 0x8004667e, pack("I", 1)); connect SOCK, $addr; vec ($win = '',fileno(SOCK),1)=1; $ein=$win; my $nfound = select (undef, $win, $ein, 1); …

Слайд 16: Презентация Perl в хэке и хэки в Perl
Слайд 16

СПАСИБО ЗА ВНИМАНИЕ!

Илья Зеленчук (ilya@hackerdom.ru)

Слайд 17: Презентация Perl в хэке и хэки в Perl
Слайд 17

Запустить netcat, повесить bash, cat’нуть файл, grep’нуть по регвыру...

Или лучше установить Perl?

K.I.S.S.
  • Яндекс.Метрика
  • Рейтинг@Mail.ru