Ngrok ile HTTP Tünelleme ve Wireshark ile Trafik Analizi

kaleileriteknoloji
3 min readJul 16, 2021

--

İç ağımızdaki bir web sunucusunu internette nasıl yayınlayabiliriz?

Bu sorunun en pratik cevaplarından biri muhtemelen ngrok ile HTTP tünelleme aracılığıyla olacaktır.

Bu uygulamada Apache servisinin dinlediği port 81 olarak değiştirilmiş ve ngrok aracılığıyla internette yayın yapması sağlanmış ve wiresharkla trafik analizi yapılmıştır.

Apache servisinin dinlemiş olduğu portu değiştirmek için /etc/apache2/ports.conf içersinde Listen ifadesi karşısında bulunan değer 81 olarak değiştirilmiştir.

Daha sonra aşağıdaki komut kullanılarak Apache sunucusu yeniden başlatılmıştır:

systemctl restart apache2

Şimdi ise ngrok kurulum ve yapılandırma işlemini ele alalım. İlk olarak https://ngrok.com adresine girip kayıt olup, sayfada oturum açıyoruz.

Daha sonra “Download for Linux” butonuna basarak ngroku indiriyoruz.

Aşağıdaki komutu kullanarak ngrokun dizine çıkartalım.

unzip ngrok-stable-linux-amd64.zip

Sonraki aşamada ise ngrok ile doğrulama işlemi için aşağıdaki kod çalıştırılmalıdır. Her bir hesapta bu authtoken değişmektedir.

Şimdi 81 nolu portu dinleyen Apache servisini ngrok tünelleme aracıyla internette hizmete açalım.

Bunun için aşağıdaki komut çalıştırılmalıdır:

./ngrok http 81

Ngrok çalışması sonucu aşağıdaki şekildedir:

http://18b09fd62909.ngrok.io web tarayıcımız ile istek yaptığımızda ngrok aracılığıyla lokalimizdeki 81 nolu portu dinleyen servis ile iletişim kuracaktır.

Anasayfaya safari üzerinden görüntülenmiştir.

Trafik analizi aşamasında 10,11 ve 12 nolu paketlerde 3lü el sıkışma sağlanmıştır. Kaynak ve hedef IP adresleri olarak IPv6 loopback IP adresi kullanıldığı gözlemlenmiştir.

13 nolu pakette 3.133.228.214 IP adresi ile lokaldeki IP adresimiz arasında veri alışverişi başlamıştır.

3.133.228.214 IP adresinin whois kaydına baktığımızda aşağıdaki şekilde görüldüğü üzere Amazon Tehcnologies Inc. şirketine ait olduğu gözlemlenmiştir.

15 nolu pakette kaynak ve hedef IP adresi IPv6 loopback adresi olduğu gözlemlenmiştir.

15 nolu paketin HTTP akışını gözlemlemek için isteği sağ tıklayıp Follow -> HTTP Stream butonuna basıyoruz.

1 ile belirtilen header bilgisi aşağıdaki şekildedir:

X-Forwarded-For : Public-IP

2 nolu ile belirtilen adreste isteğin ngrok.io’ya yapıldığı görüntülenmektedir.

X-Forwarded-Proto alanında http ifadesi görüntülendiği için saldırganın lokaldeki bir web servisini ngrok kullanarak internete açtığı gözlemlenmiştir.

X-Forwarded-Proto alanında http ifadesini tespit ettiğimiz için wiresharkta http filtresini uygulayabiliriz.

Yukarıdaki görselde görüldüğü gibi kaynak ve hedef IP adresi olarak IPv6 loopback adresinin kullanılması bize bütün isteklerin ngrok aracılığıyla yapıldığı düşündürmüştür. HTTP istekleri incelendiğinde 15 nolu paketteki gibi host alanında 18b09fd62909.ngrok.io gözlemlenecektir.

Bu yazı yayınlandıktan sonra bu link( 18b09fd62909.ngrok.io) inaktif olacaktır.

--

--