Dalam ekosistem Command and Control (C2) framework yang terus berkembang, Mythic telah menjadi salah satu platform favorit bagi tim red team profesional karena arsitektur modularnya yang memungkinkan pengembangan agent-agent custom dengan fitur-fitur spesifik. Agent terbaru yang menarik perhatian komunitas adalah Poopsie — sebuah C2 agent cross-platform yang ditulis dalam bahasa pemrograman Nim dan dirancang untuk menjadi lightweight, efisien, serta kaya fitur untuk operasi red team di berbagai lingkungan. Poopsie menawarkan dukungan penuh terhadap token impersonation, process injection, dan berbagai metode eksekusi yang menjadikannya salah satu agent Mythic paling lengkap yang tersedia saat ini.
Poopsie dibuat oleh developer dengan handle @haha150 dan dirilis di bawah MythicAgents organization di GitHub. Meskipun masih relatif baru dengan 6 stars dan 2 forks, fitur-fitur yang ditawarkan oleh Poopsie sangat mengesankan untuk ukuran agent yang masih dalam pengembangan aktif. Tool ini mendukung Windows dan Linux sebagai target platform, serta menyediakan berbagai C2 profile termasuk HTTP, HTTPX, WebSocket, DNS, TCP, dan SMB. Dukungan terhadap banyak C2 profile ini memberikan fleksibilitas yang sangat besar bagi operator untuk menyesuaikan komunikasi C2 dengan kondisi jaringan target, mulai dari HTTP tunneling yang blend-in dengan traffic normal hingga SMB-based communication untuk pivot di dalam jaringan internal.
Salah satu fitur unggulan Poopsie adalah implementasi token impersonation yang sangat lengkap. Tool ini mendukung dua fungsi utama: make_token dan steal_token, keduanya beroperasi pada level thread untuk memastikan impersonation yang tepat sasaran. make_token memungkinkan pembuatan logon session baru dengan credential yang ditentukan dan menggunakannya untuk impersonasi user tertentu — mendukung baik LOGON32_LOGON_NEW_CREDENTIALS maupun LOGON32_LOGON_INTERACTIVE. Sementara itu, steal_token menduplikasi token dari proses target berdasarkan PID dan menggunakannya untuk impersonasi — sangat berguna untuk mengakses resource yang hanya bisa diakses oleh user tertentu yang prosesnya sedang berjalan di sistem.
Ketika token impersonation aktif, Poopsie secara otomatis menerapkan impersonated token ke semua operasi selanjutnya. Fungsi run menggunakan CreateProcessAsUserW untuk menjalankan program dengan credential yang sudah di-impersonate, sementara semua operasi file seperti cat, cp, download, dan upload otomatis menggunakan token yang sedang aktif. UNC path operations juga mendukung impersonated credentials, yang berarti operator bisa mengakses network shares remote dengan credential user lain tanpa perlu menjalankan command secara terpisah. Fungsi whoami menampilkan konteks user saat ini termasuk informasi impersonated user, dan rev2self mengembalikan ke token asli proses.
Dari sisi process injection, Poopsie menawarkan beberapa kemampuan canggih yang biasanya hanya ditemukan pada agent-agent mature seperti Cobalt Strike atau Sliver. Fitur shinject memungkinkan injeksi shellcode ke remote process manapun yang dipilih oleh operator, sementara inline_execute mengimplementasikan BOF (Beacon Object File) loader untuk menjalankan kode native tanpa perlu injeksi ke process lain. Fitur donut menggunakan donut framework untuk mengkonversi .NET assembly menjadi shellcode dan mengeksekusinya melalui injeksi, sementara inject_hollow mengimplementasikan process hollowing — teknik yang mengganti konten process yang sudah berjalan dengan shellcode attacker tanpa membuat process baru.
Untuk operasi post-exploitation, Poopsie menyediakan suite lengkap command yang dirancang untuk extraction information, lateral movement, dan persistence. execute_assembly memungkinkan menjalankan .NET assembly secara in-memory tanpa perlu Write-to-Disk, yang sangat penting untuk menghindari AV/EDR detection. powerpick menjalankan PowerShell command tanpa perlu powershell.exe — menghindari script block logging dan constrained language mode yang biasa diterapkan oleh tim keamanan. portscan melakukan scanning port secara background dengan incremental approach, sementara clipboard dan clipboard_monitor mengekstrak konten clipboard termasuk monitoring perubahan clipboard secara real-time.
Poopsie juga dilengkapi dengan built-in SOCKS5 proxy yang memungkinkan operator melakukan pivoting melalui agent tanpa perlu tool tambahan. Dengan menjalankan command socks, agent akan membuka SOCKS5 proxy server yang bisa digunakan oleh tool-tool external seperti proxychains atau browser untuk mengakses jaringan internal melalui agent. Fitur ini sangat berguna untuk operasi yang memerlukan akses ke service-service internal yang tidak bisa diakses langsung dari attacker machine — cukup arahkan traffic melalui SOCKS proxy Poopsie yang berjalan di dalam jaringan target.
Dari sisi build dan deployment, Poopsie mendukung beberapa mode output termasuk Executable (default), Shellcode, DLL, dan Service. Arsitekture yang didukung adalah x64 dan x86. Fitur keamanan build mencakup message encryption menggunakan AES-256, payload compression menggunakan UPX, dan shellcode encryption dengan berbagai varian termasuk XOR, RC4, dan ChaCha20. Untuk evasion, Poopsie menyediakan debug mode untuk logging detail, sleep obfuscation menggunakan teknik Ekko (khusus x64 Windows), opsi self-delete setelah execution, dan mode daemonize untuk menyembunyikan console window atau menjalankan di background. Kombinasi fitur-fitur ini menjadikan Poopsie salah satu agent dengan opsi OPSEC paling lengkap di ekosistem Mythic.
Pemilihan Nim sebagai bahasa pemrograman untuk Poopsie juga merupakan keputusan strategis yang menarik. Nim menghasilkan native code yang kompak dan efisien, memiliki syntax yang relatif mudah dibaca, dan mendukung cross-compilation ke berbagai platform dengan mudah. Dibandingkan dengan agent berbasis C atau Go yang lebih umum di ekosistem C2, Nim menawarkan ukuran binary yang lebih kecil dan compile time yang lebih cepat, sementara tetap menghasilkan kode native yang bisa berinteraksi langsung dengan Windows API melalui library winim/lean. Pilihan bahasa ini juga memberikan keuntungan evasion karena EDR dan AV belum memiliki signature sebanyak yang mereka miliki untuk agent berbasis C atau Go.
Analisa Retasan
Poopsie menunjukkan bahwa ekosistem C2 agent sedang mengalami diversifikasi yang sangat cepat. Dengan munculnya agent-agent berbasis Nim seperti Poopsie, operator red team kini memiliki alternatif yang lebih ringan dan lebih sulit dideteksi dibandingkan agent-agent berbasis bahasa yang lebih konvensional. Dari perspektif blue team, ini berarti pendekatan deteksi berbasis biner signature menjadi semakin tidak relevan karena setiap agent baru menghasilkan binary yang unik.
Yang paling menarik dari Poopsie dari sudut pandang pertahanan adalah kombinasi antara token impersonation yang lengkap dengan process injection yang canggih. Dalam satu agent, operator bisa mencuri token dari proses sistem, menjalankan kode dengan credential user lain, melakukan injeksi ke process lain, dan bahkan menjalankan .NET assembly secara in-memory — semua tanpa perlu tool tambahan. Tim keamanan di Indonesia harus memastikan bahwa EDR mereka mampu memantau tidak hanya anomali pada proses execution, tetapi juga anomali pada token manipulation, thread-level impersonation, dan akses ke Windows API yang tidak biasa seperti
MakeTokenatauNtCreateThreadEx.
Sumber: GitHub – MythicAgents/Poopsie | Penulis: @haha150 | Bahasa: Nim 66.9%, Python 28.9% | License: MIT
