Ну, я сделал простой скрипт для отправки пакета, где мне нужно прочитать ответ, если ответ - это то, что им нужно, тогда распечатка была хорошей, если бы не распечатка была плохая. Теперь, если ip IS vuln, тогда скрипт работает и печатает, что его вульгарно. Теперь, если его не вуль, тогда скрипт просто зависает и застревает при отправке полезной информации из HEX-данных.Розетки, не закрывающиеся в Perl
use IO::Socket;
use strict;
print "Connecting..\n";
my $socket = IO::Socket::INET->new(
PeerAddr => '23.113.161.164', # 38.124.108.67 <-- NON vuln ip for testing
PeerPort => 123, # 23.113.161.164 <-- This IS a vuln ip!
Proto => 'udp',
Timeout => 1);
die "Error With Sockets!: $!\n" unless $socket;
print "Connected!\n";
my $payload = "\x97\x00\x00\x00\xAA\x00\x00\x00";
my $good = "\x97\x00\x00\x00";
$socket->send($payload) or die "Nothing got sent.";
my $data;
$socket->recv($data,4);
my $response = substr($data,0,8);
$response = reverse($response);
print $response;
if ($response == "\x97\x00\x00\x00") {
print "IP IS VULN\n";
} else {
print "IP IS NOT VULN\n";
exit;
}
Пример ошибки:
Использование NON vuln ф:
[email protected]:~# perl 2.pl
Connecting..
Connected!
(Вот где он застревает)
Использование vuln ф:
[email protected]:~# perl 2.pl
Connecting..
Connected!
▒IP IS VULN
(Как вы можете видеть, что все в порядке)
Это где сценарий застревает:
$socket->send($payload) or die "Nothing got sent.";
Любая помощь будет принята с благодарностью.
Всегда используйте 'предупреждения использования'. У вашего кода есть большая ошибка, которая найдет. – ikegami