SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Perl в хэке и хэки в Perl




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


        YAPC::Russia 2009
Игры

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




              YAPC::Russia 2009
Perl в хэке

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




                     YAPC::Russia 2009
Пример игрового сервиса




        YAPC::Russia 2009
Простой веб клиент



             ;




     YAPC::Russia 2009
Perl2C
... (3474 строки)
xpv_list[79].xpv_pv = savepvn(quot;Hello, MayPerlnquot;, 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 строк)


             YAPC::Russia 2009
Perl2bin




YAPC::Russia 2009
Хэки в Perl

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




                       YAPC::Russia 2009
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 quot;Can't open connection: $!nquot;;

send $S, quot;GET / HTTP/1.0rnrnquot;, 0;
print <$S>;

close $S;




                    YAPC::Russia 2009
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: $!nquot;;
while (){
          recv (SOCKET, $buf, 1514, 0);      # читаем пакет
          print unpack (quot;H*quot;, $buf), quot;nnquot;; # выводим его в формате hex
}




                               YAPC::Russia 2009
Отправка 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: $!nquot;;

…




                                YAPC::Russia 2009
Отправка UDP пакета
                   через raw socket
$packet .= pack(quot;Cquot;, 69);
$packet .= pack (quot;H2quot;, '00');
$packet .= pack (quot;nquot;, 28);
$packet .= pack (quot;nquot;, 0);
$packet .= pack (quot;H4quot;, '4000');
$packet .= pack (quot;Cquot;, 64);
$packet .= pack (quot;Cquot;, getprotobyname('udp'));
$packet .= pack (quot;nquot;, 0);
$source_ip = '207.46.197.32';
$result_source_ip .= pack (quot;Cquot;, $_) for (split('.', $source_ip));
$packet .= $result_source_ip;
$destination_ip = '192.168.139.1';
$result_destination_ip .= pack (quot;Cquot;, $_) for (split('.', $destination_ip));
$packet .= $result_destination_ip;
$packet .= pack (quot;nquot;, 25);
$packet .= pack (quot;nquot;, 80);
$packet .= pack (quot;nquot;, 8);
$packet .= pack (quot;H4quot;, '0000');

                                       YAPC::Russia 2009
Отправка пакетов
                 через packet socket

С какого интерфейса происходит отправка пакета:

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




                               YAPC::Russia 2009
Отправка пакетов
              через packet socket

Пример заполнения структуры и отправки пакета:

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




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

my ($win, $ein);
my $addr=sockaddr_in(86, inet_aton(quot;10.0.0.253quot;));
socket SOCK, PF_INET, SOCK_STREAM, 0 or die quot;Socket: $!nquot;;

ioctl(SOCK, 0x8004667e, pack(quot;Iquot;, 1));
connect SOCK, $addr;

vec ($win = '',fileno(SOCK),1)=1;
$ein=$win;
my $nfound = select (undef, $win, $ein, 1);

…




                             YAPC::Russia 2009
Perl в хэке и хэки в Perl



СПАСИБО ЗА ВНИМАНИЕ!
    Илья Зеленчук (ilya@hackerdom.ru)




            YAPC::Russia 2009
K.I.S.S.

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



              YAPC::Russia 2009

Weitere ähnliche Inhalte

Andere mochten auch

Wymiana Polsko Włoska 2
Wymiana Polsko Włoska 2Wymiana Polsko Włoska 2
Wymiana Polsko Włoska 2
Carlissian
 
Распределенная обработка потоковых данных
Распределенная обработка потоковых данныхРаспределенная обработка потоковых данных
Распределенная обработка потоковых данных
mayperl
 
Ведение документации в perl6: POD, да не тот !
Ведение документации в perl6: POD, да не тот !Ведение документации в perl6: POD, да не тот !
Ведение документации в perl6: POD, да не тот !
mayperl
 
Работа с большими файлами под перлом‎
Работа с большими файлами под перлом‎Работа с большими файлами под перлом‎
Работа с большими файлами под перлом‎
mayperl
 
Сравнение работы алгоритмов сортировки, реализованных на Perl
Сравнение работы алгоритмов сортировки, реализованных на PerlСравнение работы алгоритмов сортировки, реализованных на Perl
Сравнение работы алгоритмов сортировки, реализованных на Perl
mayperl
 
IMAGES Foto-Ausstellungen 2011
IMAGES Foto-Ausstellungen 2011IMAGES Foto-Ausstellungen 2011
IMAGES Foto-Ausstellungen 2011
edu.support
 

Andere mochten auch (16)

where the wild webmasters are
where the wild webmasters arewhere the wild webmasters are
where the wild webmasters are
 
Wymiana Polsko Włoska 2
Wymiana Polsko Włoska 2Wymiana Polsko Włoska 2
Wymiana Polsko Włoska 2
 
Распределенная обработка потоковых данных
Распределенная обработка потоковых данныхРаспределенная обработка потоковых данных
Распределенная обработка потоковых данных
 
Курс Perl в УрГУ
Курс Perl в УрГУКурс Perl в УрГУ
Курс Perl в УрГУ
 
Prezentacja01
Prezentacja01Prezentacja01
Prezentacja01
 
Ведение документации в perl6: POD, да не тот !
Ведение документации в perl6: POD, да не тот !Ведение документации в perl6: POD, да не тот !
Ведение документации в perl6: POD, да не тот !
 
Написание DSL в Perl
Написание DSL в PerlНаписание DSL в Perl
Написание DSL в Perl
 
Работа с большими файлами под перлом‎
Работа с большими файлами под перлом‎Работа с большими файлами под перлом‎
Работа с большими файлами под перлом‎
 
Сравнение работы алгоритмов сортировки, реализованных на Perl
Сравнение работы алгоритмов сортировки, реализованных на PerlСравнение работы алгоритмов сортировки, реализованных на Perl
Сравнение работы алгоритмов сортировки, реализованных на Perl
 
Использование WebMoney в Perl‎
Использование WebMoney в Perl‎Использование WebMoney в Perl‎
Использование WebMoney в Perl‎
 
Use Perl like Perl
Use Perl like PerlUse Perl like Perl
Use Perl like Perl
 
Anyevent
AnyeventAnyevent
Anyevent
 
Perl + nginx = ♥‎
Perl + nginx = ♥‎Perl + nginx = ♥‎
Perl + nginx = ♥‎
 
IMAGES Foto-Ausstellungen 2011
IMAGES Foto-Ausstellungen 2011IMAGES Foto-Ausstellungen 2011
IMAGES Foto-Ausstellungen 2011
 
А у нас Perl 6 в production :)
А у нас Perl 6 в production :)А у нас Perl 6 в production :)
А у нас Perl 6 в production :)
 
The Story of the Bamboo
The Story of the BambooThe Story of the Bamboo
The Story of the Bamboo
 

Ähnlich wie Perl в хэке и хэки в Perl

Упаковка и развертывание программ на perl под debian‎
Упаковка и развертывание программ на perl под debian‎Упаковка и развертывание программ на perl под debian‎
Упаковка и развертывание программ на perl под debian‎
mayperl
 
『Ficia』インフラとPerlにまつわるエトセトラ
『Ficia』インフラとPerlにまつわるエトセトラ『Ficia』インフラとPerlにまつわるエトセトラ
『Ficia』インフラとPerlにまつわるエトセトラ
Masaaki HIROSE
 
How To Create Custom DSLs By PHP
How To Create Custom DSLs By PHPHow To Create Custom DSLs By PHP
How To Create Custom DSLs By PHP
Atsuhiro Kubo
 
10 мероприятий за 20 месяцев в пяти странах
10 мероприятий за 20 месяцев в пяти странах10 мероприятий за 20 месяцев в пяти странах
10 мероприятий за 20 месяцев в пяти странах
Andrew Shitov
 
421 Ch
421 Ch421 Ch
421 Ch
anjaan
 
R57php 1231677414471772-2
R57php 1231677414471772-2R57php 1231677414471772-2
R57php 1231677414471772-2
ady36
 
тупицын Ec2 Rootconf2009
тупицын Ec2 Rootconf2009тупицын Ec2 Rootconf2009
тупицын Ec2 Rootconf2009
Liudmila Li
 

Ähnlich wie Perl в хэке и хэки в Perl (20)

OpenSPARC
OpenSPARCOpenSPARC
OpenSPARC
 
Groovy Vs Perl
Groovy Vs PerlGroovy Vs Perl
Groovy Vs Perl
 
[Erlang LT] Regexp Perl And Port
[Erlang LT] Regexp Perl And Port[Erlang LT] Regexp Perl And Port
[Erlang LT] Regexp Perl And Port
 
Erlang with Regexp Perl And Port
Erlang with Regexp Perl And PortErlang with Regexp Perl And Port
Erlang with Regexp Perl And Port
 
Упаковка и развертывание программ на perl под debian‎
Упаковка и развертывание программ на perl под debian‎Упаковка и развертывание программ на perl под debian‎
Упаковка и развертывание программ на perl под debian‎
 
『Ficia』インフラとPerlにまつわるエトセトラ
『Ficia』インフラとPerlにまつわるエトセトラ『Ficia』インフラとPerlにまつわるエトセトラ
『Ficia』インフラとPerlにまつわるエトセトラ
 
Revisited
RevisitedRevisited
Revisited
 
Hackday Ml
Hackday MlHackday Ml
Hackday Ml
 
How To Create Custom DSLs By PHP
How To Create Custom DSLs By PHPHow To Create Custom DSLs By PHP
How To Create Custom DSLs By PHP
 
Flickr Open Api Mashup
Flickr Open Api MashupFlickr Open Api Mashup
Flickr Open Api Mashup
 
10 мероприятий за 20 месяцев в пяти странах
10 мероприятий за 20 месяцев в пяти странах10 мероприятий за 20 месяцев в пяти странах
10 мероприятий за 20 месяцев в пяти странах
 
20070329 Phpconf2007 Training
20070329 Phpconf2007 Training20070329 Phpconf2007 Training
20070329 Phpconf2007 Training
 
Основы работы с Memcached
Основы работы с MemcachedОсновы работы с Memcached
Основы работы с Memcached
 
XS Japan 2008 Xen Mgmt Japanese
XS Japan 2008 Xen Mgmt JapaneseXS Japan 2008 Xen Mgmt Japanese
XS Japan 2008 Xen Mgmt Japanese
 
421 Ch
421 Ch421 Ch
421 Ch
 
Rails Deployment with NginX
Rails Deployment with NginXRails Deployment with NginX
Rails Deployment with NginX
 
R57php 1231677414471772-2
R57php 1231677414471772-2R57php 1231677414471772-2
R57php 1231677414471772-2
 
тупицын Ec2 Rootconf2009
тупицын Ec2 Rootconf2009тупицын Ec2 Rootconf2009
тупицын Ec2 Rootconf2009
 
HA+DRBD+Postgres - PostgresWest '08
HA+DRBD+Postgres - PostgresWest '08HA+DRBD+Postgres - PostgresWest '08
HA+DRBD+Postgres - PostgresWest '08
 
Ruby Postgres
Ruby PostgresRuby Postgres
Ruby Postgres
 

Mehr von mayperl (6)

‎Тестирование в проекте REG.RU‎
‎Тестирование в проекте REG.RU‎‎Тестирование в проекте REG.RU‎
‎Тестирование в проекте REG.RU‎
 
Browser sniffing в 21 веке‎
Browser sniffing в 21 веке‎Browser sniffing в 21 веке‎
Browser sniffing в 21 веке‎
 
Что будет с Перлом?
Что будет с Перлом?Что будет с Перлом?
Что будет с Перлом?
 
Вебклуб Perlgolf.ru
Вебклуб Perlgolf.ruВебклуб Perlgolf.ru
Вебклуб Perlgolf.ru
 
Making Your Own CPAN
Making Your Own CPANMaking Your Own CPAN
Making Your Own CPAN
 
10.000 вариантов снять квартиру или сам себе POE-риелтор
10.000 вариантов снять квартиру или сам себе POE-риелтор10.000 вариантов снять квартиру или сам себе POE-риелтор
10.000 вариантов снять квартиру или сам себе POE-риелтор
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Kürzlich hochgeladen (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 

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

  • 1. Perl в хэке и хэки в Perl Докладчик: Илья Зеленчук, Perlсlub УрГУ (г. Екатеринбург) YAPC::Russia 2009
  • 2. Игры • CTF (Capture the Flag) • ICFP • EACP (Extremely Advanced Computer Programming) YAPC::Russia 2009
  • 3. Perl в хэке • Простоя работа с сетью; • Удобен при написании PoC; • Обфускация кода; • Генерация сложночитаемого С кода; • Затрудненный reverse. YAPC::Russia 2009
  • 6. Perl2C ... (3474 строки) xpv_list[79].xpv_pv = savepvn(quot;Hello, MayPerlnquot;, 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 строк) YAPC::Russia 2009
  • 8. Хэки в Perl • Простой сокет в Perl’e; • Sniffer под UNIX без использования libpcap; • Прием/отправка пакетов и использованием raw socket; • Неблокирующие сокеты. YAPC::Russia 2009
  • 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 quot;Can't open connection: $!nquot;; send $S, quot;GET / HTTP/1.0rnrnquot;, 0; print <$S>; close $S; YAPC::Russia 2009
  • 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: $!nquot;; while (){ recv (SOCKET, $buf, 1514, 0); # читаем пакет print unpack (quot;H*quot;, $buf), quot;nnquot;; # выводим его в формате hex } YAPC::Russia 2009
  • 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: $!nquot;; … YAPC::Russia 2009
  • 12. Отправка UDP пакета через raw socket $packet .= pack(quot;Cquot;, 69); $packet .= pack (quot;H2quot;, '00'); $packet .= pack (quot;nquot;, 28); $packet .= pack (quot;nquot;, 0); $packet .= pack (quot;H4quot;, '4000'); $packet .= pack (quot;Cquot;, 64); $packet .= pack (quot;Cquot;, getprotobyname('udp')); $packet .= pack (quot;nquot;, 0); $source_ip = '207.46.197.32'; $result_source_ip .= pack (quot;Cquot;, $_) for (split('.', $source_ip)); $packet .= $result_source_ip; $destination_ip = '192.168.139.1'; $result_destination_ip .= pack (quot;Cquot;, $_) for (split('.', $destination_ip)); $packet .= $result_destination_ip; $packet .= pack (quot;nquot;, 25); $packet .= pack (quot;nquot;, 80); $packet .= pack (quot;nquot;, 8); $packet .= pack (quot;H4quot;, '0000'); YAPC::Russia 2009
  • 13. Отправка пакетов через packet socket С какого интерфейса происходит отправка пакета: struct sockaddr { sa_family_t sa_family; //семейство протоколов char sa_data[14]; //14 байтов на описание этого семейства... }; YAPC::Russia 2009
  • 14. Отправка пакетов через packet socket Пример заполнения структуры и отправки пакета: $addr = PF_PACKET; #семейство $iface = quot;eth0quot;; #используемое устройство $socket = pack ('Sa14', $addr, $iface); #упаковываем все это в структуру send(SOCKET, $packet, 0, $socket) or die quot;Can't send packet:$!nquot;; YAPC::Russia 2009
  • 15. Неблокирующий сокет на Perl (Windows) … my ($win, $ein); my $addr=sockaddr_in(86, inet_aton(quot;10.0.0.253quot;)); socket SOCK, PF_INET, SOCK_STREAM, 0 or die quot;Socket: $!nquot;; ioctl(SOCK, 0x8004667e, pack(quot;Iquot;, 1)); connect SOCK, $addr; vec ($win = '',fileno(SOCK),1)=1; $ein=$win; my $nfound = select (undef, $win, $ein, 1); … YAPC::Russia 2009
  • 16. Perl в хэке и хэки в Perl СПАСИБО ЗА ВНИМАНИЕ! Илья Зеленчук (ilya@hackerdom.ru) YAPC::Russia 2009
  • 17. K.I.S.S. Запустить netcat, повесить Или лучше bash, cat’нуть установить Perl? файл, grep’нуть по регвыру... YAPC::Russia 2009