Hacking  
  Wrzesień 26 2017 07:43:03  
 
Nawigacja
folder Portal
. Artykuły
. Download
. Forum
. Szukaj
. FAQ
. Regulamin
folder Hacking
. Gry Hakerskie
. Filmy
folder Delphi
. Kursy
. Faq
. Źródła
. Komponenty
. Artykuły
folderWebmaster
. JavaScripts
. Skrypty PHP
folderRóżne
. Kontakt
. Zlokalizuj ip
Aktualnie online
. Gości online: 5

. Użytkowników online: 0

. Łącznie użytkowników: 153,721
. Najnowszy użytkownik: goReadyRoowl
Ostatnie artykuły
. Metoda ataku symlin...
. Asembler x86 w pigułce
. Binder plików z komp...
. [Asembler/MASM] Pobi...
. Braifuck 4 fun
Nawigacja
Artykuły » Programowanie » Binder plików z kompresją (Asembler)
Binder plików z kompresją (Asembler)
Wstęp

Programy typu Binder służą do ukrywania innych szkodliwych programów, takich jak wirusy, keyloggery czy konie trojańskie poprzez łączenie ich w jeden plik wykonywalny ze zwykłymi plikami/programami. Bindery pozwalają na łączenie dwóch lub więcej plików.


Budowa i zasada działania

Bindery składają się z dwóch plików: pliku bindera i pliku nazywanego stub. Czasami nie widać tego, gdyż mamy jeden plik bindera, w którym plik stub jest zapisany i wypakowywany jest dopiero przed operacją łączenia. Binder zapisuje do pliku stub wybrane pliki, które przy uruchomieniu programu stub są wypakowywane i uruchamiane. Plik wynikowy, który otrzymujemy wzrasta dodatkowo o rozmiar pliku stub, dlatego celem osoby programującej narzędzie jest stworzenie możliwie jak najmniejszego i najbardziej zoptymalizowanego kodu stub'a.

Jako, że celem bindera jest maskowanie i ciche uruchomienie jakiegoś szkodliwego programu, ogólna zasada działania prezentuje się następująco: atakujący wybiera pliki jakie mają być połączone w jeden
binder zapisuje do programu stub wybrane pliki przy uruchomieniu programu stub przez ofiarę, ukryte pliki są wypakowywane i uruchamiane

Jeżeli chodzi o miejsce przechowywania maskowanych plików, z tego co zauważyłem najczęściej dodawane są one do zasobów. W bardziej zaawansowanych binderach są one dodatkowo kompresowane i szyfrowane, co zmniejsza rozmiar pliku i wykrywalność, a czasem nawet sprawia, że złośliwy kod jest całkowicie niewykrywalny przez programy antywirusowe. Co do uruchamiania maskowanych plików, najczęściej są one wypakowywane do katalogu systemowego lub tymczasowego (temp), jednak spotyka się aplikacje uruchamiające złośliwy kod bez zapisu go na dysk twardy. Wszystko zależy od pomysłowości i umiejętności autora narzędzia.


Najpopularniejsze techniki stosowane w binderach

Zmiana ikony

Binder często posiada opcję zmiany ikony szkodliwego programu. Atakującemu daje to możliwość wybrania ikony jakiegoś popularnego programu lub innej ikony mającej na celu zmylić ofiarę.


Zmiana rozmiaru (zwiększenie rozmiaru programu)

Gdy złośliwe oprogramowanie pisane jest np. w języku Assembler lub w ogóle, jeżeli plik ma mały rozmiar (podejrzliwie mały, gdyż np. ma udawać większy program) często stosowaną metodą jest dopisanie do końca pliku pustych bajtów lub stworzenie sekcji w zasobach z jakimiś nieznaczącymi danymi.


Zmiana rozmiaru (zmniejszenie rozmiaru programu)

Czasem program ma zbyt duży rozmiar, np. ma jeżeli ma być on ściągany przez aplikację typu Trojan Downloader liczy się każdy bajt. Wtedy oprogramowanie pisane jest w języku niskiego poziomu (najczęściej w Assemblerze) albo w języku wysokiego poziomu, ale z jak najmniejszym użyciem dodatkowych bibliotek. Również stosowane są procedury kompresujące, najczęściej darmowe, ogólnodostępne biblioteki.


Szyfrowanie maskowanych plików

Szyfrowanie, czasem połączone z kompresją utrudnia programom antywirusowym rozpoznanie złośliwych fragmentów programu. W amatorskich produkcjach, które przeglądałem spotyka się najczęściej szyfrowanie xor'em, ror/rol lub oparte o gotowe implementacje algorytmów szyfrujących.


Szyfrowanie nazw funkcji

Ta technika stosowana jest nie tylko w binderach. Polega ona na sprawieniu, że w kodzie programu, ani w tabeli importów (ang. Import Table) - tutaj należy zapoznać się z budową plików PE (Portable Executable) - nazwy używanych funkcji nie będą widoczne lub dodawane są inne funkcje dla zmyłki. W amatorskich produkcjach najczęściej spotykałem się z wywoływaniem funkcji po adresie (pobieranie jej adresu poprzez funkcję GetProcAddress).


Uruchamianie bez wypakowywania (ang. no files dropped)

Jest to uruchomienie złośliwego kodu "prosto do pamięci" (ang. run into memory). Tutaj stosowane są różne techniki, najczęściej widziałem "wstrzykiwanie" kodu programu do uruchomionego już procesu, lub tworzenie nowego procesu w trybie SUSPENDED, wstrzykiwanie kodu i aktywowanie procesu. Jest to już nieco "wyższa filozofia" i wymaga większej wiedzy programistycznej, jednak można spotkać się z przykładami udostępnianymi adeptom tej "sztuki" przez tych bardziej już zaawansowanych.


Rozpoznawanie czy program zawiera w sobie ukryte pliki

Po wykonaniu skanowania pliku na skanerze antywirusowym, albo nawet przeskanowaniu go przez kilka/kilkanaście programów antywirusowych na skanerze on-line, nawet jeżeli wyświetli się informacja, że plik jest czysty, nigdy nie możemy być tego w 100% pewni. Obserwując amatorskie produkcje najczęściej bindery umieszczają maskowane pliki w sekcji zasobów. Używają edytora zasobów (ang. resource editor), np. ResourceHacker, możemy przeglądnąć te sekcje zasobów i sami spróbować ocenić, czy jest tam coś podejrzanego. A co na przykład jest podejrzane? Na przykład zasób typu RC_DATA (surowe dane binarne) dość dużego rozmiaru, czasem nawet o wiele większy niż sam program! Dodatkowo, jeżeli autor nie zaszyfrował plików możemy sprawdzić początek tych danych i czasem da się zauważyć, że to kompletny program wykonywalny (m.in. po sygnaturze MZ i nazwach funkcji). Bardzo przydatne są tutaj umiejętności z dziedziny nazywanej Inżynierią Odwrotną (ang. Reverse Engineering).

Jeżeli sam nie radzisz sobie z analizą podejrzanego pliku, śmiało wyślij go tutaj na forum - na pewno jakaś osoba pomoże Ci w tym.

Implementacja prostego bindera w Asemblerze

Użyte technologie

Do napisania tego bindera użyłem asemblera MASM32 ze środowiskiem WinAsm. Wszystko jest w czystym WinAPI. Do kompresji użyłem biblioteki aPLib.

Cechy programu
- Łączenie dowolnej ilości plików
- Łączenie plików o dowolnym rozszerzeniu
- Łatwe przeciąganie plików na listę metodą Drag&Drop
- Bardzo mały rozmiar pliku stub. Tylko 6 kilobajtów
- Uruchamianie plików z różnych folderów (Systemowy, Windows, Recycler, Bieżący)
- Możliwość zmiany ikony pliku wynikowego
- Kompresja (biblioteka aPLib)
- Możliwość ustawienia plikom atrybutów Ukryty i systemowy


Kody źródłowe

Binder:
- binder.asm
- binder.inc
- binderwindow.rc
Stub:
- stub.asm


Asemblacja, konsolidacja, kompilacja skryptu zasobów
Ściągnij powyższe źródła i zapisz pod odpowiednimi nazwami. Pobierz także bibliotekę aPLib i skopiuj ją do folderu z plikami źródłowymi bindera. Otwórz notatnik i stwórz w nim plik build.bat taki jak poniżej:
Kod źródłowy
@echo off
 
C:\masm32\bin\ml /c /coff stub.asm
C:\masm32\bin\Link /SUBSYSTEM:WINDOWS /OPT:NOREF stub.obj
 
C:\masm32\bin\rc /v binderwindow.rc
C:\masm32\bin\cvtres /machine:ix86 binderwindow.res
 
C:\masm32\bin\ml /c /coff binder.asm
C:\masm32\bin\Link /SUBSYSTEM:WINDOWS /OPT:NOREF binder.obj binderwindow.obj
 
pause>nul




Zapisz ten skrypt w folderze z kodami źródłowymi i go uruchom. Poczekaj chwilę. Twój binder jest gotowy!


Zakończenie

Mam nadzieję, że artykuł przybliżył zasadę działania tego typu oprogramowania i łatwiej będzie Ci się teraz przed nimi zabezpieczyć.
Oceny
Tylko zarejestrowani użytkownicy mogą oceniać zawartość strony
Zaloguj się lub zarejestruj, żeby móc zagłosować.

Świetne! Świetne! 100% [1 głos]
Bardzo dobre Bardzo dobre 0% [0 głosów]
Dobre Dobre 0% [0 głosów]
Średnie Średnie 0% [0 głosów]
Słabe Słabe 0% [0 głosów]
Logowanie
Nazwa użytkownika

Hasło



Nie masz jeszcze konta?
Zarejestruj się

Nie możesz się zalogować?
Poproś o nowe hasło
Shoutbox
Musisz zalogować się, aby móc dodać wiadomość.

05-09-2017 00:59
https://www.youtub
e.com/watch?v=fS0l
FNzl5uE

05-09-2017 00:58
https://www.youtub
e.com/watch?v=fS0l
FNzl5uE ZARABIANIE NA NECIE GRUBA FORSE BEZ INWESTYCIJ

30-08-2017 03:38
online payday loans direct lenders <a href="http://cashad
vances2017.com"
Chytry guaranteed payday loans</a> &lt;a href=&quot;http://c
ashadvances2017.co
m&quot;&gt; payda

07-08-2017 13:23

05-08-2017 00:33
forex trading online now blogspot search images http://anicinag.7m
.pl/qifyly/forex-m
ix-repinox-wikiped
ia-dictionary.html
forex omsk bird polandball philippines http://dandireli.7
m.pl/pylalyga

Licznik
30,419,512 unikalne wizyty