Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Uzyskanie dostepu do chronionego procesu.


Rekomendowane odpowiedzi

Opublikowano
Witam, jestem tu nowy także prosze o doze wyrozumiałości ;)

 

Zajmuję się inżynierią wsteczną i programowaniem od jakiegoś czasu, hobbysta/pasjonat.

Napotkałem ostatnio następujący problem, potrzebuje uzyskać dostęp do procesu aby wstrzyknąć mój *.dll.

 

Program jest uruchamiany przez launcher, który uruchamia usługe, która w końcu uruchamia sterownik. Zostawia on ObRegisterCallback() na uzyskanie handle'a, CreateRemoteThread itd. Chciałbym znaleźć dziure aby "dobrać" sie do pamięci chronionego procesu bez użycia sterownika. (Launcher przy odpalaniu sprawdza czy uruchomiony jest TestMode, tj. ładuje prosty niepodpisany sterownik i patrzy na efekt). Mam pare pomysłów:

 

1) Ustawić hook na ntdll LoadLibrary, sprawdzić skad zostało wywołana funkcja, jeżeli przez mój cel, to uruchom eksportowana funkcje (dllki są whitelistowane) która metodą manualnego mapowania wstrzyknie mój dll.

2) Poszukać dziury w launcherze. Musi miec on uprawnienia czytania i pisania do aplikacji którą atakuje, więc wstrzyknąc do niej mój dll a nastepnie manualne mapowanie własciwego dll. Niestety w tym przypadku coś idzie nie tak przy ataku na launcher, nie uruchamia sie nawet okno konsoli, przy innych procesach działa.

3)Niedługo bedę próbować z AppInit i SetWindowsHookEx() ustawionym na shell, napisze jak będzie jakiś progress.

 

Wiem że to wszystko można obejść schodząc do ring0 ale wtedy to już walka z DSE, ewentualne zrobienie certyfikatu a 200$ to dosyć dużo jak na moją kieszeń. 

Liczę na jakikolwiek odzew waszego community bo siedzę nad problemem już od dłuższego czasu i naprawde nie wiem jak się za to wszystko zabrać.

Wszystkie pytania mile widziane,

Serdecznie pozdrawiam,

macho105.

Opublikowano

sprobuj przez dllproxy, ten exek MUSI uzywac jakiejs dllki, zmodyfikuj dllmaina tego exeka tak by po zaladowaniu ladowal twoja dllke, proste

 

Oczywiście że używa, tylko że sprawdza podpisy cyfrowe kazdego pliku który próbuje wejść z celem w interakcje. Modyfikacja kodu spowoduje że certyfikat nie będzie już ważny i nie uzyskam dostępu.

Opublikowano

Okej zmieniam podejście. Zmienie klucz w rejestrze odpowiadający za odpalanie *.exe w taki sposób żeby każda aplikacja uruchamiała się przez mój launcher. W tym momencie zanim mój cel zdąży wprowadzić ochrone na konkretny PID ja będę już wstrzyknięty. Mam tylko problem, nie wiem jak napisać taki launcher, w sensie musi dostawać argumenty, żebym wiedział jaką aplikacje mam uruchomić.

HKEY_CLASSES_ROOT\exefile\shell\open\

To nasz klucz w rejestrze, zmieniamy wartość na:

"C:\Logger.exe" "%1" %*

I  w tym momencie wszystkie *.exe bedą odpalane przez Logger.exe. Tu przykladowy logger napisany w assemblerze:

.386
.model flat, stdcall
option casemap:none
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib
include \masm32\include\shell32.inc
includelib \masm32\lib\shell32.lib
.data
szOpen byte 'open',0
.code
start:
invoke GetCommandLine
invoke ShellExecute,0,addr szOpen,eax,NULL,NULL,SW_SHOWNORMAL
invoke ExitProcess,0
end start

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...