tcphijack.c, bir TCP bağlantısını ele geçirmeye (hijack) ve TCP iletişimi içine rastgele veri enjekte etmeye olanak tanıyan bir araçtır. Bu araç, BGP kullanılarak gönderilen sahte bir güncelleme mesajına karşı yönlendiricinin (router) tepkisini ölçmek amacıyla, bir kavram kanıtı (proof of concept) olarak yazılmıştır.

Bu aracı kullanabilmek için, tcphijack’in üzerinde çalıştığı makinenin, ele geçirmek istediği TCP iletişimini görebiliyor olması gerekir.
tcphijack’in nasıl kullanılacağını göstermenin en iyi yolu, hızlı bir örnek vermektir:
- Y makinesinden X makinesine Telnet bağlantısı kurun. Oturum açın;
- A makinesinde (Saldırgan), tcphijack’i şu şekilde çalıştırın:
$ sudo ./tcphijack -d 500 -c -s -p telnet -P payload.txt
Farklı anahtarlar (parametreler) şu anlamlara gelmektedir:
-d 500: İletişimle senkronize olduktan ve oturumu ele geçirmek için gereken tüm verileri (sıra ve onay numaraları, port numaraları vb.) elde ettikten sonra, yükümüzü (payload) göndermeden önce uygulanan 500 milisaniyelik gecikmedir.
-c: İstemcinin IP adresini (veya ana bilgisayar adını) belirtmek için kullanılır.
-s: Sunucunun IP adresini (veya ana bilgisayar adını) belirtmek için kullanılır.
-p: Kullanılacak port numarasıdır. Sembolik port isimleri de geçerlidir (/etc/services dosyası sorgulanır).
-P: Yükü (aslında, yükü içeren bir dosyayı) belirtmek için kullanılır.
Bir “tetikleyici” (trigger) dosyası belirtmek için kullanılabilecek bir -t seçeneği de mevcuttur. Tetikleyici dosyası, tetikleyici dosyasındaki içerikle tamamen aynı yüke sahip bir TCP segmenti gelene kadar enjeksiyon işleminin geciktirilmesini sağlar.
- Telnet oturumu sırasında, boşluk tuşuna basın. Bu işlem, Telnet istemcisinin (Y makinesi) sunucuya (X makinesi) ‘ ‘ (0x20) karakterini göndermesine neden olacak; sunucu ise buna karşılık olarak boşluk karakterinin yankısını (echo) geri gönderecektir. Bu noktada tcphijack, TCP oturumunu ele geçirebilmek ve kendi yükünü enjekte edebilmek için, TCP iletişiminin durumu hakkında bilmesi gereken tüm ayrıntılara artık sahiptir.
- Son olarak tcphijack, kendi yükümüzü gönderir. Eğer yük dosyası (payload.txt) bir komut içeriyorsa, bu komut; makine Y üzerinden kurulan Telnet oturumu aracılığıyla kullanıcı tarafından bizzat yazılmışçasına yürütülecektir.
- Lütfen dikkat: TCP oturumunu ele geçirmemizin ardından ciddi bir ACK fırtınası (ACK storm) meydana gelmektedir; zira sunucu, gerçek istemcinin asla göndermediği bir TCP segmentini onaylamaktadır. Bu durumun neticesinde, taraflardan biri pes edip TCP bağlantısını sıfırlayana dek —ki bu süreç birkaç dakika sürebilir— hem sunucu hem de istemci birbirlerine sürekli ACK paketleri göndermeye devam ederler.
- Her zaman olduğu gibi, tcpdump en büyük yardımcınızdır; ağ kablosu üzerinde tam olarak nelerin olup bittiğini size eksiksiz bir şekilde gösterecektir.
Eloy Paris
Cisco Systems Kritik Altyapı Güvence Grubu (CIAG)
İndirme bağlantısı: https://www.cisco.com/public/support/ciag-bgp-tools-1.00.tar.gz