Czym jest RichGophishClient?
RichGophishClient to aplikacja w technologii Kotlin Multiplatform (KMP), która umożliwia zarządzanie wieloma instancjami Gophish w jednym miejscu. Dzięki temu użytkownicy mogą centralnie koordynować kampanie phishingowe dla różnych firm i efektywnie zarządzać różnymi poświadczeniami zapisanymi w lokalnej bazie danych SQLite. Funkcję, która dodałem do zwykłego programu Gophish do generowanie treści przy pomocy Ollamy.
Stack technologiczny
- Kotlin Multiplatform: Umożliwia tworzenie aplikacji działających na wielu platformach.
- Ktor: Lekki serwer do obsługi wielodostępności Gophish.
- SQLite i H2: Rozwiązania do zarządzania danymi i ich przechowywania.
- Decompose: Alternatywa dla nawigacji w jetpack compose.
- Ollama API: Integracja AI dla realistycznych treści e-maili i stron internetowych.
- Koin: Dependency injection framework dla Kotlin.
Compose multiplatform?
Podczas pracy nad projektem zauważyłem, że Jetpack Compose, choć jest potężnym narzędziem do budowy interfejsów użytkownika w środowisku Android, nie został jeszcze w pełni zoptymalizowany dla Compose Multiplatform. Na czas, w którym tworzyłem aplikację, wiele funkcji w Compose Multiplatform sprawiało wrażenie kiepsko przeportowanej mobilki. Mimo to uważam, że technologia nabierze popularności z uwagi na zainteresowanie Google w ostatnim czasie.
Przykładowe maile i strony


Modele do generacji treści
Początkowo próbowałem wykorzystać model GPT-4. Jednak ze względu na jego ograniczenia w generowaniu treści potencjalnie szkodliwych, istniało ryzyko zablokowania takich działań, nawet w celach badawczych. W rezultacie zdecydowałem się na użycie Llama w wersji uncensored, która okazała się bardziej elastyczna i pozbawiona restrykcji tego rodzaju. Wyniki pozytywnie mnie zaskoczyły – model generował realistyczne i dopasowane scenariusze phishingowe, co znacząco zwiększyło możliwości testowania w ramach symulowanych kampanii.
Usprawnienia
Gdybym miał dziś ponownie podejść do stworzenia modułu generowania treści phishingowych, skupiłbym się na podejściu agentowym. W tym modelu kluczowym elementem byłaby baza wiedzy, zawierająca dane o najpopularniejszych serwisach internetowych, schematach treści oraz strukturach często wykorzystywanych w phishingu. Agent korzystałby z tej bazy, dynamicznie dobierając odpowiednie elementy i adaptując je do scenariusza kampanii. Takie rozwiązanie pozwoliłoby nie tylko na bardziej realistyczne generowanie treści, ale także zwiększyło efektywność tworzenia złożonych scenariuszy, oszczędzając czas i zasoby.