İPUCU

Web & Server Güvenliği Doğru web ve veritabanı sunucusu güvenliği sağlanmadan, bilgisayar korsanları hassas verilerinize erişebilir. Web, Sunucu ve veritabanı güvenliğini nasıl sağlayacağınızı buradan öğrenebilirsiniz.

Seçenekler

ınjectıon paket konular acıklamalı buyrun

19-09-2010 15:46
#1
Üyelik tarihi:
05/2010
Nereden:
FF
Mesajlar:
1.861
Teşekkür (Etti):
102
Teşekkür (Aldı):
463
Konular:
572
Ticaret:
(0) %
[İçindekiler]
1-Giriş
2-genel bilgiler
3-paketler
4-injection yapısız ve calısması
5-paket enjekte etmek

1-Giriş
Bu doküman ile özel teknik yardımıyla bütün ağ trafiğini ve yeni paketleri bulmak mümkündür. Basit C dili gereklidir.
2-genel bilgiler
internetin çalışma katman esasına dayanarak bilgisayarın nezaman olduğuna ve birinci veri ile ikinci veri bağlantı geçişinden öncediğer protokol katmanlarının yapacağı kısmın çalışması.
internetteki katmanları üç tiptir:
a) taşıma katmanı
Bu katman gonderilen bir verileri alır ve birçok kücükkatmana boler, TCP transfer kontrol protokolü ve UDP kullanıcıprotokolleri kullanır.
b) internet katmanı
Bu katman tum host a tek bir belirleyici verir ve tumpaketleri kaynak hosttan duzenler. Tam bir guvenli veri aktarımıgercekleştiremez. Ve bu kataman protokol çeşitlerinden IP ( InternetProtokolu ) yi kullanır.
c) bağlantı katmanı
Bu katmana bağlı olarak çeşitli donanım ile çeşitli bağlantı tipleri:
BBE,IEEE 802,X.25,PPP,SLIP ve IP protokolleri.
3-paketler
paket olusturmanın bir çok zor tekniği vardır.
temel yapısız bir paket ornegi :

+---------------------------------+
| ethernet başlığı | ana paket |
+---------------------------------+
İlk blok paket kaynagını tespit etmek için kullanılır; ilk blogunbitişi e (Ethernet başlıgının bitisi) karakteri ile gosterilir.
TCP/IP ana paketinin basit yapısı aşagıdaki gibidir :
+----------------------------+
| IP datagram | TCP paketi |
+----------------------------+
TCP paketi baska bloklarada bolunmustur.
Sonuc olarak TCP paketi aşagıdaki formdadır :

+--------------------------------------------------------------+
| Ethernet başlığı | IP datagram | TCP başlığı | TCP verisi |
+--------------------------------------------------------------+
Eger TCP paketi olusturmak istiyorsak, paket baslıgı ve ana TCP paketi lazımdır.
Diger paketler için, örnegin ARP, içinde aynıdır ( sonra Ethernet baslıgı ve ana ARP paketi )

4-injection yapısız ve calısması
Paket injector ikiye bolunmustur;
[1]ağ
[2]konsol
birinci kısım ağ trafiğini ve bütün yakalanan paketler ; Bu yüzdeninjector tum paketleri tanımayı dener ( tipini, kaynağını, hedefini,protokolünü) ve ekrana yazar.
İkinci kısım kullanıcıya injector ile etkileşimi sağlayabilir ve filtre listesini paket sniff için ayarlar

Paket injector bir cok yolla paketleri filtreleyebilir ;

[1]paketlerin tipleri
[2]paketlerin tipi birbirine etki eden IP Datagram
[3]kaynak IP
[4]hedef IP
[5]kaynak port
[6]heder port
5- paket injecting
Paket injecting ile paket yapımı ve ağ uzerinden yollanması mumkun olmaktadır.

Paket injector bir dizi kolay kod kullanmaktadır, örnegin eger bizimpaketimizin adı "test.pkt" ise, programın girişi soyle olmadır :
set infile test.pkt <-- hangi paketin inject olacanıgı belirler
do inject <-- paketi inject etmek için emri verir
Bu sadece cok basit bir ornekti, fakat injector baska parametreleredeihtiyaç duyar, örnegin kaynak ve hedef Ethernet adresi gibi .. :
setmyeth aa:aa:aa:aa:aa:aa <- Kaynak ethernet adresini aa:aa:aa:aa:aa:aa olarak ayarlar
setethto bb:bb:bb:bb:bb:bb <- Hedef ethernet adresini bb:bb:bb:bb:bb:bb larak ayarlar
set filleth x <- filleth i x olarak ayarlar( x bir sayı )
set fillethto x <- fillethto i x larak ayarlar( x bir sayı )
set infile test.pkt <-- hangi paketin inject olacanıgı belirler
do inject <-- paketi inject etmek için emri verir
Bunlar haricinde baska fonksiyonlar vardır fakat bunlar kadar onemli degildir.
Paket injector 3 temel fonkisyona sahiptir :
+-----------------+ +------------------+ +------------------------+
| Packet sniffer | -> | Packet injector | -> | Packet sınıflandırma |
+-----------------+ +------------------+ +------------------------+
aşağıdaki kod, paket injection için, L[argo]t kullanarak yazılmıstır.

packetsinjector.c

#include <l[argo]t.h>
int main(****) {
int network; /* ’’ağ dönüşümü’’tarafından ve kullanılan paketleri nezaman yazacağı ve ne zman kapatacağı */
int packet_size; /* ’’paket boyutu’’kullanılan bellek yığını ve paketi ne zaman yazacağı tartışılır. */
int n; /* gonderilen byte */
u_char *packet; /* paket */
u_long src_ip, dst_ip;
u_short src_port, dst_port;
src_ip = l[argo]t_name_resolve("192.168.9.17", L[argo]T_RESOLVE); /* Adresleme duzenleniyor */
if (!src_ip)
l[argo]t_error(L[argo]T_ERR_FATAL, "Bad destination IP ");
src_port = 5000;
dst_ip = l[argo]t_name_resolve("213.93.39.87", L[argo]T_RESOLVE);
if (!dst_ip)
l[argo]t_error(L[argo]T_ERR_FATAL, "Bad src IP ");
dst_port = 80;

packet_size = L[argo]T_IPV4_H + L[argo]T_TCP_H; /* paket boyutunu yanlızcatanımlayarak TCP ve IP başlığını..kullanarak */
l[argo]t_init_packet (packet_size, &packet); /* Ayrı bellek */
if (!packet)
l[argo]t_error(L[argo]T_ERR_FATAL, "l[argo]t_init_packet failed ");
network = l[argo]t_open_raw_sock (IPPROTO_RAW); /* açık ağ arabirimi */
if (network == -1)
l[argo]t_error(L[argo]T_ERR_FATAL, "Cannot open network interface "); /* paket yapı arabirim */

l[argo]t_build_ip (L[argo]T_TCP_H, /* boyut */
IPTOS_LOWDELAY,
242, /* IPID */
0, /* Ayrılmama */
48, /* Bulunma zamnı */
IPPROTO_TCP, /* Protokol */
src_ip, /* Kaynak IP address */
dst_ip, /* Hedef IP address */
NULL, /* Payload */
0, /* payload uzunlugu */
packet); /* paket hafıza baslıgı */

/* paket yapısı */
l[argo]t_build_tcp (src_port, /* kaynak TCP port */
dst_port, /* hedef TCP Port */
0xa1d95, /* islem numarası */
0x53, /* Ack numarası */
TH_SYN, /* SYN flag ının ayarlanması */
1024, /* Pencere boyutu */
0, /* Acil kapalı */
NULL, /* Payload */
0, /* Payload uzunlugu */
packet + L[argo]T_IPV4_H); /* packet hafıza başlığı */
if (l[argo]t_do_checksum(packet, IPPROTO_TCP, L[argo]T_TCP_H) == -1) /* Checksum */
l[argo]t_error(L[argo]T_ERR_FATAL, "l[argo]t_do_checksum failed ");
n = l[argo]t_write_ip (network, packet, packet_size); /* INJECTION */
if (n < packet_size)
l[argo]t_error(LN_ERR_WARNING, "l[argo]t_write_ip only wrote %d bytes ", n);
else
printf("Construction and injection completed, wrote all %d bytes ", n);
if(l[argo]t_close_raw_sock(network) == -1) /* Temizlik */l[argo]t_error(LN_ERR_WARNING, "l[argo]t_close_raw_sock couldn’t closeinterface ");
l[argo]t_destroy_packet(&packet); /* Bos paket maddesi */
return (n == -1 ? EXIT_FAILURE : EXIT_SUCCESS);
}
Bir başka ornek, buda Perl un Net modulu ile kodlanmıstır ;

#!/usr/bin/perl
use Net::RawIP;
use Net::PcapUtils;
use NetPacket::Ethernet qw(:strip);
use NetPacket::TCP;
use NetPacket::IP qw(:strip);
printf " [ Simple Packets Injector ] ";
printf "Functions : ";
printf "[1] - Promiscuous packets sniffer ";
printf "[2] - Packets injector ";
printf "Input function’s number : ";
$funct = <STDIN>;
chomp $funct;
if ($funct eq "1") {
sniffer();
}
elsif ($funct eq "2") {
injector();
}
else {
printf " Unknown function ... ";
exit(1);
}

sub sniffer {
if($> != 0)
{die ’’ağ trafigini sniff lemek için EUID SIFIR olmalı ... ";}
Net::PcapUtils::loop(&sniffit,
Promisc => 1,
FILTER => ’tcp’,
DEV => ’eth0’);

sub sniffit{
my ($args,$header,$packet) = @_;
$ip = NetPacket::IP->decode(eth_strip($packet));
$tcp = NetPacket::TCP->decode($ip->{data});
print "$ip->{src_ip}:$tcp->{src_port} --> $ip->{dest_ip}:$tcp->{dest_port} ";}}
sub injector{
$packet = new Net::RawIP;
$packet->set({

ip => { saddr => ’192.168.1.1’,
daddr => ’192.168.1.2’},
tcp => { source => 2323,
dest => 23,
ack => 1,
seq => 10000000,
ack_seq => 10000000,
data => ’Testing Net::RawIP’}});

$packet->send(0,1);}
Bu basit kodlar ile bu dokumanın sonuna geldik.

..::Selametle::...
Elmino Teşekkür etti.


Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı