-
Soft
Witam,
Moje pytania:
-jak się nazywa program za pomocą którego można "przejąć" czyjegoś kompa
(mam tu na myśli terminologie)
-mam drugi komputer z dostępem fizycznym do niego, i chciałbym napisać jakiegoś softa który po wgraniu do niego by mi umożliwił kontrole na nim.
rozumiem że źródła nie dostane, ale jakieś wskazówki? (oczywiście w gre wchodzi tylko c++)
Pozdrawiam
-
-
pierwsze pytanie: trojan
drugie pytanie: trojan ew. backdoor, chociaż ten ostatni nie umożliwia kontroli jako takiej, ale umozliwia późniejszy dostęp bez wiedzy właściciela (też nie zawsze, jak trafisz na kumatego albo co gorsza dla Ciebie na hakera) do innego kompa po jego pomyślnym "przejęciu"
Źródeł faktycznie nie dostaniesz, ale napisanie czegos takiego wymaga nie tylko wiedzy z zakresu C/C++, ale również programowania systemowego dla docelowej platformy, programowania sieciowego (gniazda i te sprawy - a tu z kolei wymagana jest znajomość protokołów sieciowych).
Sama znajomość cout<<"Hello world"; raczej nie wystarczy do stworzenia trojana.
Zacznij od czegoś prostszego (jakis prosty serwer, do tego klient, odpal sobie to na dwóch kompach, popatrz jak działa, spróbuj dodać jakies proste operacje wykonywane w tej architekturze, tj. client-server, i tak kroczek za kroczkiem - więcej Ci nie podpowiem już, jak masz trochę pojęcia, do reszty sam dojdziesz)
-
Zależy co rozumiesz pod pojęciem "przejąć kompa". Jeżeli sam fakt uruchomienia swojego kodu
na kompie ofiary, bez możliwości "normalnego" jego odpalenia, to potrzebujesz jakiegoś
exploita. Sam program umożliwiający kontrolę nad zaatakowaną maszyną to trojan (uruchomiony przez
wspomnianego exploita, ew. odpalony ręcznie przez Ciebie lub użytkownika).
Możesz napisać wszystko od zera, tzn. zaprojektować protokół do komunikacji serwera
(program odpalony na kompie ofiary) z klientem (program odpalony na kompie atakującego).
Zaimplementować interpreter poleceń obsługujący szereg komend np. wylistowanie zawartości
katalogu, przesłanie pliku na serwer, wysunięcie klapki CD;) itd...
Możesz też, skorzystać z tego co już istnieje, na początek proponuję coś prostego, stosunkowo
łatwe do zaimplementowania, a dające dużo satysfakcji:
Napisz prosty serwer TCP, który nasłuchuje na jakimś porcie. Po zaakceptowaniu połączenia,
serwer odpala powłokę systemową (cmd.exe) jako osobny (ukryty) proces.
Standardowe wejście, wyjścia odpalonego procesu podepnij pod gniazdo właśnie odebranego połączenia.
Klienta wogóle nie musisz pisać wystarczy np. netcat.
Później tylko: "nc ip-ofiary port" i masz zdalny dostęp do kompa.
Oczywiście cmd.exe jest dobre na początek. W następnym etapie,
napisz swój interpreter z zaawansowanymi funkcjami jak np:
wbudowany sniffer, możliwość forwardowania połączeń i co tylko
sobie wymyślisz. Proponuje, aby program pobierał polecenia
ze standardowego wejścia, natomiast rezultaty wysyłał do standardowego
wyjścia. Dzięki temu będzie mógł wykorzystać napisany w pierwszym etapie
serwer TCP, który zamiast cmd.exe będzie odpalał Twój interpreter.
(Zauważ, że klienta nadal nie potrzebujesz, wystarczy zwykły nc).
Jako kolejny etap, proponuje wymianę komponentu serwera. Może to być
coś bardziej zaawansowanego. Np. aplikacja obchodząca osobistego firewalla,
tworząca ukryty kanał komunikacyjny (steganografia) itp...
Oczywiście, aplikacja będzie wykorzystywać stworzony w poprzednim etapie
interpreter, stworzy tylko kanał komunikacyjny z maszyną atakującego.
Jeżeli mogę coś poradzić, to nie pisz monolita typu wszystko w jednym
(interpreter, serwer). Twórz samodzielne komponenty komunikujące
się ze sobą za pośrednictwem np. standardowych strumieni wej/wyj.
Dzięki temu będziesz mógł je łączyć w dowolne konfiguracje, zależnie od potrzeby.