Keşif iş akışınızı ‘meg’ ile otomatikleştirme


Son birkaç aydır, tarafından geliştirilen bir araçla uğraşıyorum. Tom Hudson isminde meg ve bu araca aşık oldum. meg çıktıyı düzenli dizinlerde ve dosyalarda saklayan hafif bir URL getiricidir. Bu araç, keşif iş akışımın en önemli unsuru haline geldi ve birçok kişisel aracıma dahil edildi.

Tom gelişen bir geçmişe sahip ve bu nedenle toplu tarama sorununu çok iyi anlıyor. Bu yüzden meg kaynak yoğun olmamaya odaklanılarak tasarlandı. Varsayılan olarak araç, web’de gezinen normal bir kullanıcı gibi davranır ve bunun sonucunda bir hizmeti kapatma olasılığı daha düşüktür.

Temel Bilgiler

Temelde koşmak için gereken her şey meg bir uç nokta ve ardından bir ana bilgisayar belirtmektir.

$ `meg`  
$ `meg` / https://edoverflow.com

İkinci komut https://edoverflow.com için üst düzey dizini ister (https://edoverflow.com/). Çoğu protokollerin belirtilmesi gerektiğini unutmamak önemlidir; meg ana bilgisayarlara otomatik olarak önek eklemez. Protokolsüz bir hedef listeniz varsa, mutlaka sed dosyayı açın ve doğru protokolü ekleyin.

$ sed 's#^#http://#g' list-of-hosts > output

Varsayılan olarak meg tüm çıktıları bir dosyada saklar out/ ancak özel bir çıktı dizini eklemek istiyorsanız, tek yapmanız gereken çıktı dizinini komutunuza aşağıdaki gibi eklemektir:

$ `meg` / https://edoverflow.com out-edoverflow/

Web’deki İlginç Dosyaları Keşfetmek

Bir platformu hedeflerken bize daha fazla yardımcı olabilecek veya halka açık olması durumunda başlı başına gerçek bir güvenlik sorunu oluşturabilecek belirli dosyaları belirlemek istediğimizi varsayalım, tek gereken uç noktaların bir listesidir (lists/php) ve bir dizi hedef (targets-all). Bu işlem için, “200 OK” durum kodunu döndüren tüm sayfaları saklamak, gürültünün ve yanlış pozitiflerin çoğunu elememize yardımcı olacaktır (-s 200).

$ `meg` -s 200 \
  lists/php targets-all \
  out-php/ 2> /dev/null

Yukarıdaki komutun çalışması bittiğinde, yapmanız gereken tek şey out-php/ kayıtlı yanıtları bulmak için dizin. Belirli dizeleri manuel olarak grepleyerek başlayabilirsiniz – bu sürecin bir kısmını Bash’te otomatikleştirdiğinizden emin olun. grep ve diziler – ya da Tom’un bana gösterdiği küçük ve güzel numarayı kullanabilirsiniz.

$ cat ~/bin/vimprev
#!/bin/bash
VIMENV=prev vim $@

Tahmin ettiniz – vim önizleme pencereleri! Çıkış dizinindeki her dosya için vim’in içinde önizleyebiliriz. Tüm “çıkış vim” şakaları bir yana, bu harika bir fikir ve bunun için Tom’a yeterince teşekkür edemem.

$ cat /path/to/vimrc
if $VIMENV == 'prev'
 noremap  :n
 noremap  :N
endif
$ export PATH=$PATH:~/bin
$ cd out/
$ vimprev $(find . -type f)

vimrc hüner, bir sonraki dosyaya geçmek için boşluk çubuğunu ve bir öncekine geri silme tuşunu kullanmanıza olanak tanır. Boşluk çubuğunu basılı tut ve çılgına dön! İlginç görünen dosyalar oldukça hızlı bir şekilde ortaya çıkmalı.

Canlı Önizleme

Çıkış dizininde kayıtlı dosyaların canlı önizlemesini istiyorsanız tek yapmanız gereken index Dosyanızı bir web sunucusunda günlüklerinizi takip ettiğiniz şekilde çıktı dizinine yerleştirin.

$ cd out/
$ tail -f index
out/example.com/2d676fb9c99611db7e6cb75ffa1b137673f4ca04 http://example.com/.well-known/security.txt (200 OK)

Deneme Zamanı

Bu yazımı kısa keseceğim ve okuyucuları Tom’un “Pasif Keşif Teknikleri” başlıklı konuşmasını izlemeye teşvik edeceğim. Bu konuşmada açıklanan tüm teknikler kullanılarak otomatikleştirilebilir. meg ve Tom’un gösterdiği gibi bunlar son derece ödüllendirici olabilir.





Source link