Hacking TCP/IP with tcpping

tcpping adalah sebuah Tools dan saya menulis untuk menentukan latency jaringan antara dua titik meskipun penyaringan ICMP. Idenya adalah cukup banyak hanya seperti ping normal, tapi bukannya menggunakan ICMP, ia akan mengirimkan paket TCP SYN ke target dan waktu berapa lama untuk menerima SYN berikutnya / ACK atau RSTS..

Semuanya dimulai ketika saya sedang surfing di sekitar penyedia berbagai web hosting. Di antara kriteria lainnya, saya mencoba untuk menemukan satu yang tidak terlalu tinggi latency dari mesin saya di sini di rumah jadi bekerja pada mereka tidak akan menjadi fest lag lengkap. Tapi sejumlah penyedia memiliki ICMP disaring sehingga Anda tidak bisa ping situs web mereka, dan tidak bisa mengatakan apa latency seperti.

Tools ini menggunakan libnet untuk membuat dan mengirimkan sebuah paket SYN dibuat untuk taget, and libpcap dan libpcap untuk mengendus untuk lalu lintas kembali. Jika port yang Anda pilih (default 80) pada server target memiliki layanan ini, target mengirimkan kembali paket SYN / ACK. Sistem operasi lokal Anda mendapatkan paket ini, tidak tahu apa yang harus dilakukan dengan itu, dan kemudian mengirimkan target paket RST. Ini sebenarnya cukup bagus karena membersihkan semuanya jadi kami tidak dapat dituduh menciptakan ton setengah terbuka koneksi TCP. Jika Anda memilih port pada target yang tidak memiliki layanan ini (dan tidak disaring), target mengirimkan kembali paket RST. Anda OS lokal hanya menurunkan ini.

Berikut adalah beberapa contoh output, secara default ping port 80 (web server yang berjalan):
[6:22pm] trixie:~/proj/tcpping-% sudo ./tcpping bekasi
TCP PING bekasi.internal.kehlet.cx (10.16.81.2:80) on en1
SYN/ACK from 10.16.74.2: seq=1 ttl=64 time=1.047ms
SYN/ACK from 10.16.74.2: seq=2 ttl=64 time=0.965ms
SYN/ACK from 10.16.74.2: seq=3 ttl=64 time=1.081ms
SYN/ACK from 10.16.74.2: seq=4 ttl=64 time=1.245ms
^C
--- bekasi.internal.kehlet.cx TCP ping statistics ---
4 SYN packets transmitted, 4 SYN/ACKs and 0 RSTs received, 0.0% packet loss
round-trip min/avg/max = 0.965/1.084/1.245 ms


Berikut adalah Tools dalam tindakan terhadap port 92, yang akan mengirimkan kembali RSTS (no service yang berjalan pada port itu):
[6:22pm] trixie:~/proj/tcpping-% sudo ./tcpping -p 92 bekasi
TCP PING bekasi.internal.kehlet.cx (10.16.81.2:92) on en1
RST from 10.16.74.2: seq=1 ttl=64 time=0.862ms
RST from 10.16.74.2: seq=2 ttl=64 time=1.040ms
RST from 10.16.74.2: seq=3 ttl=64 time=1.019ms
RST from 10.16.74.2: seq=4 ttl=64 time=1.044ms
^C
--- bekasi.internal.kehlet.cx TCP ping statistics ---
4 SYN packets transmitted, 0 SYN/ACKs and 4 RSTs received, 0.0% packet loss
round-trip min/avg/max = 0.862/0.991/1.044 ms


Dengan modus verbose (-v), alat akan menunjukkan paket-paket yang sebenarnya. Berikut adalah sebuah situs yang menyaring ping ICMP, tapi kita bisa menyiasati itu dengan tcp ping:
[6:25pm] trixie:~/proj/tcpping-% sudo ./tcpping -v www.apollohosting.com
TCP PING www.apollohosting.com (208.56.13.233:80) on en1
1076828929.146519 10.16.74.8:8674 -> 208.56.13.233:80 [S]
1076828929.238506 208.56.13.233:80 -> 10.16.74.8:8674 [SA]
SYN/ACK from 208.56.13.233: seq=1 ttl=48 time=90.847ms
1076828929.240317 10.16.74.8:8674 -> 208.56.13.233:80 [R]
1076828930.241348 10.16.74.8:61062 -> 208.56.13.233:80 [S]
1076828930.326531 208.56.13.233:80 -> 10.16.74.8:61062 [SA]
SYN/ACK from 208.56.13.233: seq=2 ttl=48 time=85.162ms
1076828930.328364 10.16.74.8:61062 -> 208.56.13.233:80 [R]
1076828931.329304 10.16.74.8:17802 -> 208.56.13.233:80 [S]
1076828931.412466 208.56.13.233:80 -> 10.16.74.8:17802 [SA]
SYN/ACK from 208.56.13.233: seq=3 ttl=48 time=83.164ms
1076828931.414274 10.16.74.8:17802 -> 208.56.13.233:80 [R]
1076828932.415249 10.16.74.8:60598 -> 208.56.13.233:80 [S]
1076828932.496567 208.56.13.233:80 -> 10.16.74.8:60598 [SA]
SYN/ACK from 208.56.13.233: seq=4 ttl=48 time=81.255ms
1076828932.498290 10.16.74.8:60598 -> 208.56.13.233:80 [R]
^C
--- www.apollohosting.com TCP ping statistics ---
4 SYN packets transmitted, 4 SYN/ACKs and 0 RSTs received, 0.0% packet loss
round-trip min/avg/max = 1.000/85.107/90.847 ms


Anda dapat melihat dari atas perilaku yang saya dijelaskan: kita mengirim paket SYN palsu, target mengirimkan kembali SYN / ACK (di mana titik tools mencetak informasi waktu). Hanya setelah itu OS lokal mengirim RST ke target.

Jika tools ini berguna bagi Anda saya akan merasa senang dan jika masih bingung, silakan beritahu saya.

No comments:

 

I'M A LAMER DON'T TROLL ME mas[TER] Copyright © 2013 | Powered by rifsivk yum