Sebagian besar alat OSINT cepat usang. Web berubah di bawahnya, situs memindahkan titik akhir, captcha berevolusi, dan alat tersebut mati dalam dua tahun. Maigret adalah pengecualiannya. Ia telah berjalan selama bertahun-tahun, mendukung lebih dari 3.000 situs, menyediakan paket Python, bot Telegram, dan antarmuka web, dan rekayasa di dalamnya adalah sebuah kelas master kecil tentang cara membangun pemindai yang tidak rusak setiap kali situs berubah.
Panduan ini ditujukan untuk para insinyur, bukan untuk pencarian biasa. Ini menjelaskan apa yang dilakukan Maigret, kasus penggunaan penelitian dan keamanan yang sah yang membenarkannya, arsitektur yang memungkinkannya berskala ke ribuan situs, dan bagaimana pola pengujian yang sama yang digunakan Maigret (basis data tanda tangan, deteksi penyimpangan, verifikasi rekursif) diterjemahkan ke dalam pekerjaan pengujian API yang Anda lakukan setiap hari dengan Apidog.
button
Jika Anda belum membacanya, postingan kami Pengujian API tanpa Postman di tahun 2026 membahas ide pencocokan pola dan deteksi penyimpangan serupa dalam domain yang lebih ramah.
TL;DR
- Maigret mengumpulkan berkas publik tentang seseorang hanya berdasarkan nama pengguna, memeriksa lebih dari 3.000 situs untuk mencari akun dan mengekstrak informasi profil publik.
- Rekayasanya mengesankan: basis data tanda tangan situs yang di-versi, pencarian rekursif, deteksi penyimpangan otomatis, bypass captcha, dan mode ringkasan AI opsional.
- Penggunaan yang sah meliputi investigasi OSINT oleh jurnalis, pemulihan akun, pencarian orang hilang, audit keamanan, dan pemantauan penyalahgunaan merek perusahaan.
- Keterlibatan tim merah yang berwenang mengandalkan alat seperti Maigret untuk memetakan permukaan serangan publik suatu organisasi; menggunakannya pada orang tanpa persetujuan mereka melanggar batas pelecehan dan penguntitan.
- Ide arsitektur (deteksi berbasis tanda tangan, verifikasi rekursif, peringatan penyimpangan otomatis) dapat langsung diterapkan pada pengujian API; kami menunjukkan cara menerapkannya dengan Apidog.
- Unduh Apidog untuk mendesain dan menguji asersi bergaya tanda tangan pada API Anda sendiri dengan cara yang sama seperti Maigret menguji situs.
button
Apa itu Maigret dan Apa Bukan
Maigret adalah alat Python, berlisensi MIT, yang dikelola oleh soxoj. Ringkasan README: “mengumpulkan berkas tentang seseorang berdasarkan nama pengguna dari lebih dari 3.000 situs.” Jalankan pip install maigret, berikan nama pengguna, dan ia akan menanyakan situs-situs di basis datanya, mengambil informasi profil publik apa pun yang ada di balik setiap akun yang ditemukan, dan menghasilkan laporan.

Tiga hal yang perlu diperjelas.
Ia hanya menggunakan data publik. Tanpa login, tanpa penyalahgunaan kredensial, tanpa kunci API. Jika sebuah situs mengekspos profil kepada pengunjung anonim, Maigret membacanya; jika tidak, ia mengembalikan “nama pengguna tidak ditemukan” atau halaman yang ditandai.
Ini banyak digunakan dalam konteks penelitian yang sah. Jurnalis di outlet investigasi besar, sukarelawan orang hilang, tim pencegahan penipuan dan perlindungan merek, serta tim merah yang berwenang menggunakannya setiap hari. README Maigret sendiri mencantumkan referensi dalam kurikulum OSINT akademik.
Ini dapat disalahgunakan. Seperti alat OSINT lainnya, menjalankannya pada individu pribadi tanpa persetujuan mereka melanggar batas etika dan di banyak yurisdiksi batas hukum. Undang-undang penguntitan di UE, AS, dan sebagian besar wilayah lain berlaku. Baca peraturan lokal Anda sebelum mengarahkannya kepada siapa pun.
Sisa artikel ini berfokus pada rekayasa dan pola pengujian yang dapat ditransfer, bukan pada alur kerja penargetan manusia.
Basis Data Tanda Tangan Situs
Ide rekayasa terbaik dalam Maigret adalah basis data tanda tangan situs. Setiap entri menjelaskan satu situs dengan informasi yang cukup agar pemindai dapat memutuskan:
- Apakah nama pengguna ada di situs ini?
- Seperti apa tampilan halaman “ditemukan”?
- Seperti apa tampilan halaman “tidak ditemukan”?
- Informasi apa yang bisa kita ekstrak dari halaman yang ditemukan?
- Apakah situs ini memiliki batasan laju atau captcha?
Basis data tersebut berformat JSON, di-versi dalam repositori, dan diperbarui secara otomatis dari GitHub setiap 24 jam saat alat dijalankan. Jika pengelola memperbarui tanda tangan untuk situs yang baru saja berubah, setiap instalasi Maigret akan mengambilnya keesokan harinya tanpa perlu menginstal ulang.
Pola ini persis sama dengan yang Anda inginkan untuk suite pengujian API. Proyek Anda memiliki 50, 500, atau 5.000 titik akhir. Setiap titik akhir memiliki tanda tangan: kode status yang diharapkan, bentuk respons, amplop kesalahan. Ketika vendor mengubah bentuknya, Anda ingin suite pengujian gagal dengan cepat dengan perbedaan yang berguna. Kami membahas ide yang sama dalam pengembangan API berorientasi kontrak dan dalam panduan pengujian server MCP.
Bagaimana Maigret Mendeteksi “Nama Pengguna Ditemukan” vs “Tidak Ditemukan”
Pemindai yang naif melakukan HTTP GET pada https://example.com/user/<username> dan memeriksa kode status. Itu mungkin berfungsi untuk sekitar 10 persen situs nyata. 90 persen lainnya mengembalikan 200 dengan halaman “tidak ada pengguna tersebut”, atau 200 dengan halaman utama yang di-cache, atau 200 dengan tantangan captcha.
Basis data Maigret menjelaskan setiap situs dengan serangkaian aturan deteksi yang lebih kaya:
- Templat
urlMaindanurl - Daftar
presenseStrs(substring yang harus muncul saat pengguna ada) - Daftar
absenceStrs(substring yang mengonfirmasi bahwa pengguna tidak ada) - Regex untuk ekstraksi nama pengguna dari halaman
- Header opsional (beberapa situs memerlukan agen pengguna khusus)
- Tag untuk kategori dan negara
Putusan “ditemukan” memerlukan semua presenseStrs hadir dalam respons dan tidak ada absenceStrs. Putusan “tidak ditemukan” adalah kebalikannya. Hal lainnya adalah hasil “tidak diketahui” yang dapat diselidiki pengguna secara manual.
Ini adalah jenis asersi multi-sinyal yang sama yang Anda inginkan saat menguji API yang kompleks. Status 200 saja tidak cukup; Anda juga perlu melakukan asersi pada konten badan respons. Apidog mendukung asersi kode status dan konten badan respons dalam permintaan yang sama, yang merupakan padanan pengujian API dari presenseStrs ditambah absenceStrs Maigret.
Pencarian Rekursif dan Ekstraksi Informasi
Setelah Maigret menemukan akun, ia melakukan dua hal lagi.
Ia melakukan scraping halaman profil publik untuk pengenal tambahan: alamat email tertaut, nomor telepon, nama asli, nama pengguna lain. Aturan ekstraksi juga digerakkan oleh tanda tangan, didefinisikan per situs. Profil LinkedIn menghasilkan bidang yang berbeda dari profil GitHub.
Kemudian ia melakukan rekursi. Pengenal baru dimasukkan kembali ke dalam lingkaran pencarian, memperluas berkas di seluruh akun yang tertaut. Nama pengguna di satu situs mungkin mengarah ke nama asli; nama itu mungkin membuka akun yang berbeda di situs lain; akun itu mungkin tertaut ke pegangan Instagram; dan seterusnya.
Untuk OSINT, ini adalah perbedaan antara “Saya menemukan satu akun Twitter” dan “Saya melacak orang ini di 12 layanan.” Untuk suite pengujian API, pola yang sama juga berharga: ketika Anda menemukan bidang yang tidak terdokumentasi dalam respons satu titik akhir, ikuti itu. Ini sering menunjuk ke titik akhir terkait, sistem hilir, atau kasus uji yang hilang.
Penanganan Captcha dan Batasan Laju
Maigret sebagian mem-bypass captcha dan mendeteksi batasan laju dengan membaca bentuk respons. Strategi bypass meliputi:
- Memutar agen pengguna
- Menghormati header coba lagi per-situs
- Kembali ke domain seluler atau yang disederhanakan dari situs
- Merutekan melalui Tor atau I2P jika situs mengizinkan
README jujur bahwa ini sebagian. Jika sebuah situs memiliki anti-otomasi yang agresif, Maigret mencatat “captcha terdeteksi” dan membiarkan pengguna menyelidiki secara manual. Alat ini tidak mencoba mengalahkan pertahanan yang hostile; ia bekerja dengan situs yang mengizinkan akses anonim dasar.
Polanya dapat ditransfer: saat Anda membangun klien API atau penjalankan uji, rancanglah untuk mendeteksi respons batasan laju dan mundur dengan anggun, bukan untuk melakukan brute-force melaluinya. Sikap defensif yang sama yang menjaga Maigret tetap di sisi yang benar dari persyaratan vendor menjaga pengujian API Anda agar tidak membuat IP tim Anda diblokir.
Masalah Penyimpangan Tanda Tangan
Basis data 3.000 situs hanya berguna jika tetap terkini. Situs mendesain ulang halaman profil, mengubah pola URL, menambahkan captcha, atau diakuisisi dan diganti merek. Tanda tangan yang usang mengembalikan negatif palsu (pencarian Anda tidak menemukan apa pun) atau positif palsu (ia menemukan akun yang tidak ada).
Maigret mengatasi hal ini dengan tiga lapisan:
- Pembaruan otomatis dari repositori GitHub pusat setiap 24 jam
- Permintaan tarik komunitas yang memelihara tanda tangan situs individu
- Sebuah flag
--updateyang memaksa pengambilan data baru - Harness pengujian bawaan yang memvalidasi setiap tanda tangan terhadap nama pengguna yang sudah ada sebelum dikirim
Item ketiga adalah yang paling sering diabaikan oleh sebagian besar tim rekayasa. Maigret menyimpan nama pengguna yang sudah dikenal untuk setiap situs (biasanya pengembang atau pemelihara yang telah menyetujui). Harness tersebut menanyakan nama pengguna tersebut dan mengonfirmasi bahwa tanda tangan masih berfungsi. Penyimpangan terdeteksi, tanda tangan ditandai, kontributor diberitahu.
Ini persis jenis suite regresi yang Anda inginkan untuk kontrak API Anda sendiri. Apidog mendukung pola yang sama: simpan respons yang diketahui baik per titik akhir, putar ulang terhadap titik akhir langsung sesuai jadwal, bedakan hasilnya, dan berikan peringatan tentang penyimpangan. Panduan API DeepSeek V4 kami mencakup sisi manual dari ini untuk satu vendor tertentu.
Mode Ringkasan AI Opsional
Flag --ai mengubah temuan mentah Maigret menjadi ringkasan investigasi singkat menggunakan titik akhir LLM yang kompatibel dengan OpenAI. Anda menyediakan kunci API; Maigret menyusun prompt dan panggilan tersebut.
Ini adalah contoh yang bagus tentang LLM sebagai pascaproses yang dilakukan dengan benar. Model tidak pernah memutuskan apakah nama pengguna cocok; itu berbasis aturan dan deterministik. Model hanya meringkas, yang memang ahli dalam hal itu, dan beroperasi pada input yang terbatas. Halusinasi terbatas.
Arsitektur yang sama bekerja dengan baik untuk pemantauan API: asersi berbasis aturan deterministik di Apidog, dengan pascaproses LLM yang mengubah laporan eksekusi menjadi ringkasan yang ramah Slack pada akhirnya. Postingan kami penggunaan komputer vs API terstruktur menjelaskan mengapa lapisan terstruktur harus selalu didahulukan.
Kasus Penggunaan Sah yang Perlu Diketahui
Lima konteks di mana menjalankan Maigret jelas tepat.
- Pemulihan akun untuk diri sendiri. Temukan setiap akun lama yang terhubung dengan nama pengguna yang Anda gunakan pada tahun 2014. Berguna sebelum audit privasi atau saat menutup jejak digital.
- Pemantauan penyalahgunaan merek. Perusahaan menjalankan Maigret pada nama merek atau produk mereka untuk mendeteksi akun peniru. Sebagian besar yurisdiksi mendorong jenis pemantauan ini; beberapa bahkan mewajibkannya.
- Pekerjaan sukarela orang hilang. Organisasi pencarian dan penyelamatan serta orang hilang menggunakan Maigret dengan persetujuan keluarga untuk melacak jejak digital. Selalu berkoordinasi dengan penegak hukum; bekerja secara mandiri di sini seringkali membuat investigasi lebih sulit.
- Keterlibatan tim merah yang berwenang. Tim pentest di bawah cakupan kontrak yang ditandatangani menggunakan Maigret untuk memetakan permukaan serangan publik suatu organisasi. Kontrak menentukan cakupannya; alat ini hanyalah implementasinya.
- Jurnalisme investigatif. Reporter yang menyelidiki penipuan, pelanggaran figur publik, atau kejahatan terorganisir menggunakan alat OSINT di bawah tinjauan editorial dan hukum.
Apa yang tidak ada dalam daftar ini: mencari orang asing karena penasaran, mengawasi mantan pasangan, atau membangun kumpulan data tentang orang yang tidak menyetujui. Penggunaan tersebut melanggar batas hukum di sebagian besar yurisdiksi dan batas etika di mana pun.
Pola dari Maigret yang Dapat Anda Terapkan pada Pengujian API
Lima ide rekayasa yang dapat diterjemahkan secara langsung.
- Basis data tanda tangan daripada pemeriksaan kode manual. Definisikan perilaku yang diharapkan setiap titik akhir sebagai data, bukan kode. Vendor baru ditambahkan tanpa perlu kompilasi ulang.
- Asersi multi-sinyal. Kode status ditambah konten badan respons ditambah pemeriksaan header, semuanya diperlukan. Mengurangi positif palsu dari respons yang di-cache atau halaman kesalahan generik.
- Tanda tangan yang diperbarui secara otomatis. Ambil asersi terbaru dari repositori pusat sesuai jadwal. Proyek Apidog mendukung sinkronisasi cloud; gunakan itu. Kami membahas alur kerja di pengujian API tanpa Postman.

- Deteksi penyimpangan. Jadwalkan pemutaran ulang berkala terhadap fixture yang diketahui baik dan bedakan hasilnya. Peringatan pada perubahan bentuk sebelum merusak produksi.
- LLM sebagai pascaproses, bukan LLM sebagai hakim. Biarkan aturan deterministik memutuskan lulus/gagal. Gunakan LLM hanya untuk mengubah laporan menjadi sesuatu yang mudah dibaca.
Terapkan ini dan suite pengujian API Anda akan mendapatkan umur panjang yang sama dengan Maigret. Sebagian besar suite pengujian mati karena ditulis sekali, di-kode secara manual, dan tidak pernah diperbarui. Arsitektur Maigret adalah model untuk yang dapat bertahan.
Kesalahan Umum Saat Menjalankan Maigret
Untuk para insinyur yang bereksperimen dengan alat itu sendiri.
- Menjalankan tanpa
-adan mengasumsikan kelengkapan. Defaultnya memindai 500 situs teratas berdasarkan lalu lintas. Jika investigasi Anda membutuhkan ekor panjang, gunakan-auntuk 3.000+ situs penuh. Perhatikan bahwa proses akan memakan waktu lebih lama. - Mengabaikan tag. Flag
--tagsmenyaring berdasarkan kategori atau negara. Pengguna di Rusia atau Jepang akan terlewatkan oleh default yang berpusat pada AS; penyaringan tag akan menangkapnya. - Melewatkan pembaruan otomatis. Basis data tanda tangan lama menghasilkan positif palsu dan negatif palsu. Biarkan pembaruan otomatis berjalan, atau gunakan
--updatesecara manual sebelum investigasi serius. - Menjalankannya di Tor tanpa izin dari situs target. Beberapa situs memblokir node keluar Tor; Maigret mendeteksinya. Jangan menafsirkan pemblokiran Tor sebagai sinyal tentang pengguna.
- Mempercayai bidang yang diekstrak tanpa memverifikasi. Alat ini mengekstrak apa yang diekspos halaman. Halaman dapat direkayasa. Perlakukan temuan sebagai petunjuk, bukan sebagai bukti.
Kasus Penggunaan Dunia Nyata
Konsultan keamanan menggunakan Maigret sebagai langkah pertama dalam setiap keterlibatan cakupan tim merah. Outputnya masuk ke laporan kick-off sehingga klien melihat permukaan serangan publik mereka sebelum keterlibatan dimulai.
Seorang penyelidik penipuan lepas menggunakan Maigret dengan flag --ai untuk meringkas pemindaian 3.000 situs menjadi ringkasan 200 kata untuk klien non-teknis. Pencarian deterministik adalah datanya; LLM adalah lapisan yang mudah dibaca.
Tim rekayasa menggunakan ide arsitektur yang sama (basis data tanda tangan, deteksi penyimpangan, pemutaran ulang berkala) untuk menjaga suite pengujian API internal mereka tetap terkini di 200 microservice. Mereka membangunnya di Apidog; prinsip-prinsipnya adalah milik Maigret.
Kesimpulan
Maigret adalah contoh nyata tentang cara membangun alat yang dapat berskala hingga ribuan aturan deteksi tanpa rusak setiap kali permukaan di bawahnya berubah. Rekayasanya patut dipelajari meskipun Anda tidak pernah menjalankan investigasi OSINT: basis data tanda tangan, asersi multi-sinyal, data yang diperbarui secara otomatis, deteksi penyimpangan, dan pascaproses LLM semuanya dapat ditransfer ke pekerjaan pengujian API yang Anda lakukan setiap hari.
Lima poin penting:
- Maigret memeriksa lebih dari 3.000 situs untuk nama pengguna menggunakan basis data tanda tangan yang di-versi dan diperbarui secara otomatis.
- Deteksi multi-sinyal (string kehadiran ditambah string ketiadaan) mengalahkan pemeriksaan kode status sederhana untuk keandalan.
- Penyimpangan adalah musuh setiap suite pengujian berumur panjang; pemutaran ulang berkala terhadap fixture yang dikenal akan mendeteksinya sejak dini.
- LLM sebagai pascaproses (flag
--ai) adalah arsitektur yang tepat: aturan deterministik, output ringkasan. - Pola yang sama berfungsi untuk pengujian API di Apidog; kami telah menerapkannya di seluruh suite kontrak pelanggan kami.
Langkah selanjutnya: baca format basis data situs Maigret, lalu buka Apidog dan rancang satu titik akhir dalam proyek Anda dengan cara yang sama: digerakkan oleh tanda tangan, multi-sinyal, dengan fixture yang disimpan untuk deteksi penyimpangan. Disiplin ini akan membuahkan hasil pertama kali vendor mengganti nama bidang pada jam 2 pagi dan suite Anda mendeteksinya sebelum pengguna mengetahuinya.
button
FAQ
Apakah Maigret legal untuk digunakan?
Itu tergantung pada yurisdiksi dan targetnya. Menjalankannya pada diri sendiri, pada akun yang Anda miliki, pada perusahaan yang Anda memiliki otorisasi tertulis untuk diuji, atau sebagai bagian dari jurnalisme yang berwenang, umumnya tidak masalah. Menjalankannya pada individu yang tidak curiga dapat melanggar undang-undang penguntitan dan pelecehan di UE, AS, Inggris, dan sebagian besar wilayah lain. Baca peraturan setempat Anda sebelum penggunaan apa pun yang menargetkan pihak ketiga.
Apakah Maigret berfungsi tanpa Python?
Paket resminya adalah Python 3.10+. Penulis memelihara bot Telegram untuk pencarian biasa dan pengaturan Cloud Shell untuk pengguna yang tidak menginginkan instalasi lokal.
Seberapa akurat klaim 3.000 situs tersebut?
Basis data situs di repositori mencantumkan lebih dari 3.000 entri; tidak semuanya aktif pada saat tertentu. Pembaruan otomatis menjaga subset yang berfungsi tetap terkini. Pemfilteran tag membantu Anda fokus pada situs yang mungkin relevan dengan cakupan Anda.
Apa yang ditambahkan mode AI?
Flag --ai menggunakan LLM yang kompatibel dengan OpenAI untuk meringkas temuan deterministik menjadi laporan yang mudah dibaca. Ini tidak mengubah pencarian itu sendiri; ini hanya melakukan pascaproses. Bawa kunci API Anda sendiri.
Bisakah saya menggunakan Maigret di CI?
Untuk investigasi OSINT, tidak; itu adalah pekerjaan interaktif. Pola arsitektur yang digunakan Maigret (basis data tanda tangan, deteksi penyimpangan, pemutaran ulang terjadwal) adalah persis apa yang seharusnya ada dalam pipeline CI Anda untuk pengujian API. Apidog mengimplementasikannya secara native.
Apa bedanya dengan Sherlock?
Sherlock adalah leluhur yang lebih tua dan lebih sederhana. Maigret memperluasnya dengan ekstraksi informasi, pencarian rekursif, penanganan captcha, mode ringkasan AI, dan basis data situs yang lebih kaya. Keduanya berlisensi MIT dan patut diketahui.
Di mana saya melaporkan tanda tangan yang usang?
README menunjuk ke masalah GitHub dan permintaan tarik di repositori Maigret. Kontribusi komunitas menjaga basis data tetap terkini; satu PR per situs yang usang adalah hal yang biasa.
