Steganography Online Codec

Mój darmowy tool Steganography Online Codec dostał małą aktualizację, pozwalającą na automatyczną konwersję obrazów wykorzystujących ograniczoną paletę barw (np. 256) do formatu RGB, tak żeby można było upchać ukryte bity w składowych kolorów pixeli.

Co to jest steganografia?

Dla nieobeznanych, co to jest? Narzędzie do ukrywania zaszyfrowanych wiadomości w obrazkach i zdjęciach w składowych kolorów RGB pixeli z obrazka (w ich najmniej znaczących bitch tzw. LSB least significant bits), tak, że jest to niewidoczne dla oka w porównaniu z oryginalnym obrazkiem.

Jeszcze nie doczekałem się żadnego praktycznego ataku na moje metody kodowania w tym narzędziu, a było użyte (jako jeden ze stage’ów) w crypto-puzzle, gdzie nagroda wynosiła 20.000 USD.

Dla kogo jest steganografia?

Jeśli chcesz przemycić jakieś dane na froncie wojennym, jesteś reporterem i chcesz ukryć dane w niepozornym obrazku z wakacji lub po prostu interesujesz się steganografią – zajrzyj, to nic nie kosztuje.

Licznik użyć wskazuje na dzień dzisiejszy całkowitą ilość kodowań i dekodowań na 66478, całkiem sporo osób mu zaufało.

PS. W trakcie prac jest wersja okienkowa, konsolowa i WebAPI.

Steganografia w tekście UNICODE

Tego jeszcze nie widziałem, steganografia wykorzystująca kodowanie UNICODE, pozwalająca ukryć wiadomość w znakach o zerowej szerokości. Ciężko to opisać, lepiej zobaczyć w akcji:

https://stegcloak.surge.sh

Przykładowa zakodowana wiadomość

Ha ‍‍⁡‌⁤‍⁤⁡‍‍⁢⁡⁣⁢‌⁢⁡‌⁢‌‍⁢⁡‌⁤⁢⁡⁣‍‌‍⁢‍⁡‌‍⁣⁡⁢‍⁢⁤‌‍‍‍‌⁤‌⁡⁢⁤⁢‌⁡⁢‌‍‍⁢‌⁡⁢⁢⁡‍⁡‍⁢‌‍⁤⁢‍‍⁢⁡‌⁡‍⁢‌‍⁡⁣⁢‌‍‌‍⁡⁢⁤‌⁢⁢⁢⁤‍‌⁢⁢⁡⁢⁡⁣⁢⁢‍⁡⁢‌⁤⁡⁢⁣⁢‍⁣‌⁡‍⁡⁣‍‌⁢⁡⁢⁢‍⁡‍‌‍‍‌⁢⁣‌‍⁤‍‍‌⁢⁡‍⁢⁤⁡‍⁣⁣⁡‌⁡⁣‍‍‌⁡⁢⁡‌⁢⁡‌⁢‍⁣⁡‌⁤‌⁤⁣‍⁡‍⁢⁢⁢‌‍⁡‌⁡⁢⁡‍‍⁢‍⁡⁢⁡‌⁡⁢‍‌⁢‍‍⁤⁢‍⁢⁡⁣‍⁢‍⁢‍ha!

Hasło:

secnews.pl

Dla zrozumienia co znajduje się w zakodowanej wiadomości, można wrzucić tekst po zakodowaniu do:

https://onlinetools.com/unicode/convert-unicode-to-hex

Zobaczymy wtedy, że w środku nie znajduje się „Ha ‍‍⁡‌⁤‍⁤⁡‍‍⁢⁡⁣⁢‌⁢⁡‌⁢‌‍⁢⁡‌⁤⁢⁡⁣‍‌‍⁢‍⁡‌‍⁣⁡⁢‍⁢⁤‌‍‍‍‌⁤‌⁡⁢⁤⁢‌⁡⁢‌‍‍⁢‌⁡⁢⁢⁡‍⁡‍⁢‌‍⁤⁢‍‍⁢⁡‌⁡‍⁢‌‍⁡⁣⁢‌‍‌‍⁡⁢⁤‌⁢⁢⁢⁤‍‌⁢⁢⁡⁢⁡⁣⁢⁢‍⁡⁢‌⁤⁡⁢⁣⁢‍⁣‌⁡‍⁡⁣‍‌⁢⁡⁢⁢‍⁡‍‌‍‍‌⁢⁣‌‍⁤‍‍‌⁢⁡‍⁢⁤⁡‍⁣⁣⁡‌⁡⁣‍‍‌⁡⁢⁡‌⁢⁡‌⁢‍⁣⁡‌⁤‌⁤⁣‍⁡‍⁢⁢⁢‌‍⁡‌⁡⁢⁡‍‍⁢‍⁡⁢⁡‌⁡⁢‍‌⁢‍‍⁤⁢‍⁢⁡⁣‍⁢‍⁢‍ha!” tylko cały zakodowany fragment:

Naprawdę ciekawe i innowacyjne narzędzie w dodatku z pełnymi kodami źródłowymi, polecam:

https://github.com/KuroLabs/stegcloak

Anti-debugging, anti-VM, anti-sanbox i anti-CPU emulator

Wydałem kilka dni temu ulepszoną wersję mojego obufscatora dla języka autoit, czyli AutoIt Obfuscator. Dodane zostało wstrzykiwanie kodu do detekcji wielu narzędzi służących do reversingu i analizy zabezpieczonych skryptów.

Wykrywaj debuggery, wirtualne maszyny, piaskownice (tzw. sandbox) i emulatory CPU w skryptach AutoIt.

Wstrzykiwany kod jest automatycznie wykonywany zaraz na początku działania skryptów i w razie pozytywnej detekcji jakiegokolwiek narzędzia – cicho kończy działanie skryptu, bez żadnego komunikatu o błędzie.

Dodane detekcje to m.in.

Antydebugging

  • Wykrywanie debuggerów dołączonych do do procesu aplikacji

Wykrywanie wirtualnych maszyn (anty-VM)

  • VMware (procesy, pliki, sterowniki, WMI, BIOS, GFX)
  • Oracle Virtual Box (procesy, pliki, sterowniki, BIOS, GFX)
  • Parallels Virtual Machine (procesy, pliki)
  • KVM (sterowniki)

Wykrywanie piaskownic tzw. sandboxów

  • Sprawdzaj podejrzanie małą liczbę rdzeni procesora (wyjdź jeśli jest ich mniej niż 3)
  • Sandboxie (biblioteki DLL)
  • Joe Sandbox (procesy)

Wykrywanie emulatorów CPU

  • WINE (niekonsystencje w funkcjach API, biblioteki DLL, specjalne funkcje API)
  • Bochs (WMI BIOS)
  • QEMU (procesy, WMI BIOS)
  • XEN (procesy)

Trochę mi zajęło skompletowanie tych metod, dlatego są one dostępne jedynie w płatnej wersji obfuscatora, ale wiem, że was na to stać i możecie sobie to przetestować online na

https://www.pelock.com/autoit-obfuscator/

PS. Pozdrawiam Fabka za podsunięcie metod detekcji i w sumie naprowadzenie mnie na możliwość dołączenia tej funkcjonalności do mojego obfuscatora.

PS2. Jeśli znacie jakieś fajne metody detekcji, dopiszcie do komentarzy kod albo linki, ograniczeniem AutoIt jest w teorii brak dostępu do PEB czy TEB legitnymi metodami, więc interesują mnie jedynie rozwiązania oparte o legitne sposoby przez WinAPI i pokrewne funkcje.