Mythic

Reading time: 9 minutes

tip

AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE) Azure Hacking'i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

Mythic Nedir?

Mythic, red teaming için tasarlanmış açık kaynaklı, modüler bir komut ve kontrol (C2) çerçevesidir. Güvenlik profesyonellerinin Windows, Linux ve macOS dahil olmak üzere farklı işletim sistemlerinde çeşitli ajanları (payloads) yönetmesine ve dağıtmasına olanak tanır. Mythic, ajanları yönetmek, komutları yürütmek ve sonuçları toplamak için kullanıcı dostu bir web arayüzü sunarak, kontrol edilen bir ortamda gerçek dünya saldırılarını simüle etmek için güçlü bir araçtır.

Kurulum

Mythic'i kurmak için resmi Mythic repo üzerindeki talimatları izleyin.

Ajanlar

Mythic, ele geçirilmiş sistemlerde görevleri yerine getiren payloads olan birden fazla ajanı destekler. Her ajan, belirli ihtiyaçlara göre özelleştirilebilir ve farklı işletim sistemlerinde çalışabilir.

Varsayılan olarak Mythic'te herhangi bir ajan yüklü değildir. Ancak, https://github.com/MythicAgents adresinde bazı açık kaynak ajanlar sunmaktadır.

O repo'dan bir ajan yüklemek için sadece şunu çalıştırmanız yeterlidir:

bash
sudo ./mythic-cli install github https://github.com/MythicAgents/<agent-name>
sudo ./mythic-cli install github https://github.com/MythicAgents/apfell

Yeni ajanlar, Mythic zaten çalışıyorsa bile önceki komutla eklenebilir.

C2 Profilleri

Mythic'teki C2 profilleri, ajanların Mythic sunucusuyla nasıl iletişim kurduğunu tanımlar. İletişim protokolünü, şifreleme yöntemlerini ve diğer ayarları belirtir. C2 profillerini Mythic web arayüzü aracılığıyla oluşturabilir ve yönetebilirsiniz.

Varsayılan olarak Mythic, profil olmadan kurulur; ancak, bazı profilleri repodan https://github.com/MythicC2Profiles indirmeniz mümkündür:

bash
sudo ./mythic-cli install github https://github.com/MythicC2Profiles/<c2-profile>>
sudo ./mythic-cli install github https://github.com/MythicC2Profiles/http

Apollo Agent

Apollo, SpecterOps eğitim tekliflerinde kullanılmak üzere tasarlanmış, 4.0 .NET Framework kullanarak C# ile yazılmış bir Windows ajanıdır.

Bunu şu şekilde kurun:

bash
./mythic-cli install github https://github.com/MythicAgents/Apollo.git

Bu ajan, bazı ek özelliklerle birlikte Cobalt Strike'ın Beacon'una çok benzeyen birçok komuta sahiptir. Bunlar arasında şunlar desteklenmektedir:

Yaygın eylemler

  • cat: Bir dosyanın içeriğini yazdır
  • cd: Geçerli çalışma dizinini değiştir
  • cp: Bir dosyayı bir yerden başka bir yere kopyala
  • ls: Geçerli dizindeki dosyaları ve dizinleri listele veya belirtilen yolu kontrol et
  • pwd: Geçerli çalışma dizinini yazdır
  • ps: Hedef sistemdeki çalışan süreçleri listele (ek bilgi ile)
  • download: Hedef sistemden yerel makineye bir dosya indir
  • upload: Yerel makineden hedef sisteme bir dosya yükle
  • reg_query: Hedef sistemdeki kayıt defteri anahtarlarını ve değerlerini sorgula
  • reg_write_value: Belirtilen kayıt defteri anahtarına yeni bir değer yaz
  • sleep: Ajanın uyku aralığını değiştir, bu aralık ajanın Mythic sunucusuyla ne sıklıkla kontrol yapacağını belirler
  • Ve daha fazlası, mevcut komutların tam listesini görmek için help kullanın.

Yetki yükseltme

  • getprivs: Geçerli iş parçacığı belirtecinde mümkün olan en fazla yetkiyi etkinleştir
  • getsystem: Winlogon'a bir tanıtıcı aç ve belirteci kopyala, böylece yetkileri SYSTEM seviyesine yükselt
  • make_token: Yeni bir oturum açma oturumu oluştur ve bunu ajana uygula, başka bir kullanıcıyı taklit etmeye olanak tanır
  • steal_token: Başka bir süreçten birincil belirteci çal, böylece ajan o sürecin kullanıcısını taklit edebilir
  • pth: Pass-the-Hash saldırısı, ajanın NTLM hash'ini kullanarak bir kullanıcı olarak kimlik doğrulamasına olanak tanır, düz metin parolasına ihtiyaç duymadan
  • mimikatz: Kimlik bilgilerini, hash'leri ve diğer hassas bilgileri bellekten veya SAM veritabanından çıkarmak için Mimikatz komutlarını çalıştır
  • rev2self: Ajanın belirtecini birincil belirtecine geri döndür, böylece yetkileri orijinal seviyeye düşür
  • ppid: Post-exploitation işleri için yeni bir ana süreç kimliği belirterek ana süreci değiştir, iş yürütme bağlamı üzerinde daha iyi kontrol sağlar
  • printspoofer: PrintSpoofer komutlarını çalıştırarak yazıcı sıralayıcı güvenlik önlemlerini aş, böylece yetki yükseltme veya kod yürütme sağlar
  • dcsync: Bir kullanıcının Kerberos anahtarlarını yerel makineye senkronize et, çevrimdışı parola kırma veya daha fazla saldırı için olanak tanır
  • ticket_cache_add: Geçerli oturum açma oturumuna veya belirtilen birine bir Kerberos bileti ekle, böylece bilet yeniden kullanımı veya taklitine olanak tanır

Süreç yürütme

  • assembly_inject: Uzak bir sürece .NET assembly yükleyici enjekte etmeye olanak tanır
  • execute_assembly: Ajanın bağlamında bir .NET assembly çalıştırır
  • execute_coff: Bellekte bir COFF dosyasını çalıştırır, derlenmiş kodun bellekte yürütülmesine olanak tanır
  • execute_pe: Yönetilmeyen bir yürütülebilir dosyayı (PE) çalıştırır
  • inline_assembly: Geçici bir AppDomain içinde bir .NET assembly çalıştırır, böylece ajanın ana sürecini etkilemeden kodun geçici olarak yürütülmesine olanak tanır
  • run: Hedef sistemde bir ikili dosyayı çalıştırır, yürütülebilir dosyayı bulmak için sistemin PATH'ini kullanır
  • shinject: Uzak bir sürece shellcode enjekte eder, böylece rastgele kodun bellekte yürütülmesine olanak tanır
  • inject: Ajan shellcode'unu uzak bir sürece enjekte eder, böylece ajanın kodunun bellekte yürütülmesine olanak tanır
  • spawn: Belirtilen yürütülebilir dosyada yeni bir ajan oturumu başlatır, böylece yeni bir süreçte shellcode'un yürütülmesine olanak tanır
  • spawnto_x64 ve spawnto_x86: Post-exploitation işlerinde kullanılan varsayılan ikili dosyayı, çok gürültülü olan rundll32.exe parametreleri olmadan kullanmak yerine belirtilen bir yola değiştirir.

Mithic Forge

Bu, hedef sistemde yürütülebilecek önceden derlenmiş yükler ve araçlar deposu olan Mythic Forge'dan COFF/BOF dosyalarını yüklemeye olanak tanır. Yüklenebilecek tüm komutlarla, bunları mevcut ajan sürecinde BOF olarak yürütmek mümkün olacaktır (genellikle daha gizli).

Yüklemeye başlamak için:

bash
./mythic-cli install github https://github.com/MythicAgents/forge.git

Sonra, forge_collections kullanarak Mythic Forge'dan bir COFF/BOF modülünü gösterin, böylece bunları seçip ajan belleğine yükleyebilirsiniz. Varsayılan olarak, Apollo'da aşağıdaki 2 koleksiyon eklenmiştir:

  • forge_collections {"collectionName":"SharpCollection"}
  • forge_collections {"collectionName":"SliverArmory"}

Bir modül yüklendikten sonra, forge_bof_sa-whoami veya forge_bof_sa-netuser gibi başka bir komut olarak listede görünecektir.

Powershell & scripting execution

  • powershell_import: Yeni bir PowerShell betiğini (.ps1) ajan önbelleğine ithal eder ve daha sonra çalıştırmak için saklar.
  • powershell: Ajan bağlamında bir PowerShell komutunu çalıştırır, gelişmiş betik yazma ve otomasyon sağlar.
  • powerpick: Bir PowerShell yükleyici derlemesini fedakâr bir süreçte enjekte eder ve bir PowerShell komutunu çalıştırır (powershell kaydı olmadan).
  • psinject: Belirtilen bir süreçte PowerShell'i çalıştırır, başka bir süreç bağlamında betiklerin hedefli olarak çalıştırılmasına olanak tanır.
  • shell: Ajan bağlamında bir shell komutunu çalıştırır, cmd.exe'de bir komut çalıştırmaya benzer.

Lateral Movement

  • jump_psexec: PsExec tekniğini kullanarak Apollo ajan yürütülebilir dosyasını (apollo.exe) kopyalayarak yeni bir ana bilgisayara yan hareket eder ve çalıştırır.
  • jump_wmi: WMI tekniğini kullanarak Apollo ajan yürütülebilir dosyasını (apollo.exe) kopyalayarak yeni bir ana bilgisayara yan hareket eder ve çalıştırır.
  • wmiexecute: WMI kullanarak yerel veya belirtilen uzak sistemde bir komut çalıştırır, taklit için isteğe bağlı kimlik bilgileri ile.
  • net_dclist: Belirtilen alan için alan denetleyicilerinin bir listesini alır, yan hareket için potansiyel hedefleri belirlemek için yararlıdır.
  • net_localgroup: Belirtilen bilgisayardaki yerel grupları listeler, belirtilen bir bilgisayar yoksa localhost'a varsayılan olarak ayarlanır.
  • net_localgroup_member: Yerel veya uzak bilgisayardaki belirtilen bir grup için yerel grup üyeliğini alır, belirli gruplardaki kullanıcıların sayımına olanak tanır.
  • net_shares: Belirtilen bilgisayardaki uzak payları ve erişilebilirliklerini listeler, yan hareket için potansiyel hedefleri belirlemek için yararlıdır.
  • socks: Hedef ağda SOCKS 5 uyumlu bir proxy'yi etkinleştirir, böylece trafiği ele geçirilmiş ana bilgisayar üzerinden tünelleme yapılabilir. proxychains gibi araçlarla uyumludur.
  • rpfwd: Hedef ana bilgisayarda belirtilen bir portta dinlemeye başlar ve trafiği Mythic üzerinden uzak bir IP ve port'a yönlendirir, böylece hedef ağdaki hizmetlere uzaktan erişim sağlar.
  • listpipes: Yerel sistemdeki tüm adlandırılmış boruları listeler, bu da yan hareket veya ayrıcalık yükseltme için IPC mekanizmalarıyla etkileşimde bulunmak için yararlı olabilir.

Miscellaneous Commands

  • help: Belirli komutlar hakkında ayrıntılı bilgi veya ajandaki tüm mevcut komutlar hakkında genel bilgi görüntüler.
  • clear: Görevleri 'temizlendi' olarak işaretler, böylece ajanlar tarafından alınamazlar. Tüm görevleri temizlemek için all belirtebilir veya belirli bir görevi temizlemek için task Num belirtebilirsiniz.

Poseidon Agent

Poseidon, Linux ve macOS yürütülebilir dosyalarına derlenen bir Golang ajanıdır.

bash
./mythic-cli install github https://github.com/MythicAgents/Poseidon.git

Kullanıcı Linux üzerinde bazı ilginç komutlara sahiptir:

Yaygın eylemler

  • cat: Bir dosyanın içeriğini yazdır
  • cd: Geçerli çalışma dizinini değiştir
  • chmod: Bir dosyanın izinlerini değiştir
  • config: Mevcut yapılandırmayı ve ana bilgisayar bilgilerini görüntüle
  • cp: Bir dosyayı bir yerden başka bir yere kopyala
  • curl: İsteğe bağlı başlıklar ve yöntem ile tek bir web isteği gerçekleştir
  • upload: Hedefe bir dosya yükle
  • download: Hedef sistemden yerel makineye bir dosya indir
  • Ve daha fazlası

Hassas Bilgileri Ara

  • triagedirectory: Bir ana bilgisayardaki bir dizin içinde ilginç dosyaları, hassas dosyalar veya kimlik bilgileri gibi bul.
  • getenv: Tüm mevcut ortam değişkenlerini al.

Yanal Hareket Et

  • ssh: Belirlenen kimlik bilgilerini kullanarak ana bilgisayara SSH ile bağlan ve ssh başlatmadan bir PTY aç.
  • sshauth: Belirtilen ana bilgisayara(lar)a belirlenen kimlik bilgilerini kullanarak SSH ile bağlan. Ayrıca, bu komutu uzak ana bilgisayarlarda belirli bir komutu çalıştırmak için veya dosyaları SCP ile kullanmak için de kullanabilirsiniz.
  • link_tcp: TCP üzerinden başka bir ajana bağlan, ajanslar arasında doğrudan iletişime izin verir.
  • link_webshell: Webshell P2P profili kullanarak bir ajana bağlan, ajanın web arayüzüne uzaktan erişim sağlar.
  • rpfwd: Hedef ağdaki hizmetlere uzaktan erişim sağlamak için Ters Port İleri Sarma'yı başlat veya durdur.
  • socks: Hedef ağda bir SOCKS5 proxy başlat veya durdur, ele geçirilmiş ana bilgisayar üzerinden trafiği tünelleme imkanı sağlar. proxychains gibi araçlarla uyumludur.
  • portscan: Açık portlar için ana bilgisayar(lar)ı tarar, yanal hareket veya daha fazla saldırı için potansiyel hedefleri belirlemek için yararlıdır.

Süreç yürütme

  • shell: /bin/sh üzerinden tek bir shell komutunu çalıştır, hedef sistemde komutların doğrudan yürütülmesine izin verir.
  • run: Diskten argümanlarla bir komutu çalıştır, hedef sistemde ikili dosyaların veya betiklerin yürütülmesine izin verir.
  • pty: Etkileşimli bir PTY aç, hedef sistemdeki shell ile doğrudan etkileşim sağlar.

tip

AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE) Azure Hacking'i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin