Bazı internet servis sağlayıcıları (ISP), dağıttığı router’ların dışında başka bir router kullanılmaması için PPPoE şifresini veya yaygın olarak bilinen diğer adıyla WAN şifresini kullanıcılarından gizleyebiliyor.

Hizmet aldığım bir ISP, router’ın admin arayüzünde ONT cihazı ile yetkilendirme için gerekli olan PPPoE şifresini kullanıcılardan gizlemekte. Bu sebeple şifresini bilmeden farklı bir router kullanmak mümkün olmuyor. Bir gün farklı bir modem kullanmak durumunda kalınca PPPoE şifresini öğrenmek zorunda kaldım. Fakat nasıl yapıldığını göstermeden önce neyin ne olduğunu anlatmak istiyorum.

WAN, birbirine bağlı olan cihazların oluşturduğu ağlara deniyor ve aynı zamanda ise router’larda bulunan bir portun da adıdır. Bu portu, fiber kablodan gelen sinyali dijital sinyale çeviren ONT cihazını router’a bağlarken kullanıyoruz. Router ile ONT cihazı birbirleriyle PPPoE protokolü üzerinden iletişim kuruyor. Router bu cihaza PPPoE protokolü üzerinden yetkilendirme için kullanıcı adı ve şifre gönderir. Bu yetkilendirme bilgileri ISP tarafından belirlenir ve doğrulamasını yaparak erişime izin verir.

Şifreyi öğrenmek için yapacağımız işlem aslında çok basit; kişisel bilgisayara bir PPPoE sunucusu kurup, router’dan gelen PPPoE yetkilendirme isteklerini yakalamak.

Aşağıdaki örnekte Debian ve Ubuntu’da da bulunan pppoe isimli paketten faydalanacağız. Daha sonra Wireshark’ın komut satırı aracı olan tshark‘ı kullanacağız.

İlk adımda paketleri yükleyerek başlıyoruz:

sudo apt install pppoe tshark

İkinci adımda /etc/ppp/pppoe-server-options isimli dosya oluşturup aşağıdaki parametreleri ekleyip kaydediyoruz:

require-pap
lcp-echo-interval 10
lcp-echo-failure 2

Şu komutla da kaydedebilirsiniz:

sudo tee /etc/ppp/pppoe-server-options > /dev/null <<EOT
require-pap
lcp-echo-interval 10
lcp-echo-failure 2
EOT

Üçüncü adımda /etc/ppp/pap-secrets dosyasının içeriğini aşağıdaki gibi değiştiriyoruz:

* * * *

Değiştirmeyi şu komutla da yapabiliriz:

echo "* * * *" | sudo tee /etc/ppp/pap-secrets

Şimdi ethernet kablosunun bağlı olduğu interface adını ip link komutuyla öğrenelim. Genelde eth0 olur fakat farklı da olabilir (mesela bendeki enp3s0).

İlk önce pppoe sunucusunu başlatıyoruz:

sudo /usr/sbin/pppoe-server -k -I eth0

Daha sonra tshark ile pap.password filtresini uygulayarak ethernet kablosunun bağlı interface’i dinlemeye başlıyoruz ve çıktısını pap.log dosyasına kaydediyoruz.

tshark -i eth0 -Y "pap.password" -l -T fields -e pap.peer_id -e pap.password | tee -a pap.log

Bu esnada konsolunuzu açık bırakın ve router’ınızın WAN portuna takılı ethernet kablosunun karşı ucunu, bilgisayarınızın ethernet portuna takın (ONT cihazı yerine kendi bilgisayarınıza takacaksınız). Ardından router’ınızı açıp kapatın ve PPPoE yetkilendirme isteklerinin tshark tarafından yakalanabilmesi için bir süre bekleyin. Maksimum 2 dakika içerisinde kullanıcı adı ve şifre bilgisi yakalanmış olacaktır.