Forstå TFTP Protocol


Trivial File Transfer Protocol, og du

Det er ikke noe trivielt om TFTP la meg forsikre dere. Det er faktisk en ganske ryddig protokoll med noen særtrekk. Denne protokollen også skjer for å være en favoritt av ondsinnede hackere for det formål å sende over, eller hente filer. TFTP er også ganske rask, men mer på hastigheten på TFTP litt senere. Mye som andre program laget protokoller dette er fraktet om av IP, og i sin tur bruker UDP for sin transport-protokollen.

Nå TFTP selv har fem ulike meldingstyper som det kan bruke. De er som følger;

  • RRQ, som bryter ut så Les Request
  • WRQ, som bryter ut så Write Request
  • ACK, som bryter ut som Acknowledgement
  • FEIL, som bryter ut som meldingen Error
  • DATA, som bryter ut som, for å lese eller skrive neste del av data

    Nå, hvis du tilfeldigvis å fange opp eventuelle TFTP pakker på ledningen vil du se disse meldingstyper i selve pakken som nevnt i pakken videre ned nedenfor. (Jeg har understreket det) TFTP har også en rekke feilkoder, som kan bli funnet her. Hvis du husker fra vår diskusjon av HTTP og SMTP disse protokollene også hadde status og feilkoder. Disse kodene er nødvendig for å bygge opp en sammenhengende utveksling av data, noe som til tider vil oppleve feiltilstander. Courtesy av disse kodene, enten de er status eller feil, er ulike forhold kommunisert mellom klient og server i spørsmålet.

    Typisk bruk av TFTP-protokollen er for lagring og gjenfinning av Cisco IOS og Catalyst bryterkonfigurasjonsfiler. Jeg har også antydet tidligere, at denne protokollen er sterkt favorisert av hackere som et middel til å hente og lagre filer på infiserte datamaskiner. Du er ikke begrenset til bare å overføre ascii innhold heller, du kan også overføre binære filer i tillegg. På grunn av denne bruken av TFTP av ondsinnede hackere bør du alltid være skeptisk til alle TFTP trafikk på nettverket.

    På med showet!

    Jeg har sagt det før, og jeg sier det igjen. Det er ingenting som "hands on praktisk" å sementere erfaringene. Med det i hånden la oss ta en titt på noen TFTP trafikk. Du vil se nedenfor et lite tekstutdrag, og jeg skal kommentere direkte under pakken i spørsmålet.

    10: 43: 20,926155 IP (tos 0x0, ttl 128, id 69, offset 0, flagg [ingen], Lengde:
    44
    ) 192.168 .1.102.1029 > 192.168.1.101.69: [udp sum ok] 16
    RRQ
    "eksempel"
    oktett
    0x0000: 4500 002c 0045 0000 8011 b660 c0a8 0166 E ..,. E ..... `... f
    0x0010: c0a8 0165 0405 0045 0018 833b 0001 6578 ... e ... E ...; .. ex
    0x0020: 616d 706c 6500 6f63 7465 7400 0000 rikelig. oktett.
    ..

    Denne trafikken ble samlet ved hjelp av en annen versjon av windump, og har dermed resultert i en litt annet utseende enn hva du kanskje er vant til. I pakken rett over oss har vi en lese forespørsel om filen "eksempel". Leseforespørselen er sett i RRQ, som er understreket ovenfor. Etter at det i parentes, er filen som blir forespurt fra TFTP server plassert på 192.168.1.101, på sin port 69. Port 69 er porten forbundet med TFTP, og er også i den reserverte portområdet fra 0-1024. Vi kan også se at "oktett" følger filnavnet eksempel.

    Octet betyr at dataene vil bli overført i åtte bits bytes, i motsetning til den andre overføringsmodus "netascii". Hvis det var netascii, så TFTP vil tolke filen eksempel som blir linjer ascii tekst, og har litt mer overhead til det som jeg ikke vil dekke her. Til slutt vil jeg påpeke at 16 sett før RRQ gjelder mengden av TFTP data som sendes i denne pakken. Hvis vi gjør regnestykket det funker. Vi har en samlet lengde på 44 pakke som vist i overskriften. IP header står for 20 bytes, mens UDP header regnskapet for 8 bytes. De resterende 16 byte med data TFTP fylle ut pakkestørrelsen til det bemerkes totale størrelsen på 44 bytes. Nå på grunn av størrelsen forskjellen mellom TCP og UDP er det klart hvorfor UDP er raskere dvs: den har 12 bytes mindre av informasjon i en overskrift sender. Det gjør for noen raske filoverføringer

    10:. 43: 20,977012 IP (tos 0x0, ttl 64, id 8683, offset 0, flagg [DF], lengde:
    130) 192.168.1.101.32768 > 192.168.1.102.1029: [! Dårlig udp cksum 424c] UDP,
    lengde: 102
    0x0000: 4500 0082 21eb 4000 4011 9464 c0a8 0165 E ... @ @ .. d!... ..e
    0x0010: c0a8 0166 8000 0405 006e 849b 0003 0001 ... f ..... n ......
    0x0020: 5468 6520 6265 7374 2077 6179 2074 6f20 The. best.way.to.
    0x0030: 6c65 6172 6e20 6162 6f75 7420 7468 696e learn.about.thin
    0x0040: 6773 2069 7320 746f 200a 6163 7475 616c gs.is.to..actual
    0x0050: 6c79 2064 6f20 6974 2 079 6f75 7273 656c ly.do.it.yoursel
    0x0060: 662e 204D 7563 6820 6c69 6b65 2 077 6861 f..Much.like.wha
    0x0070: 740a 4920 616d 2064 6f69 6e67 206e 6f77 tI am.doing.now
    0x0080:!. 210a

    Nå hva vi ser ovenfor er TFTP server plassert på 192.168.1.101 sende den forespurte filen "eksempel". Vi kan se i ascii del av pakken, at innholdet av filen eksempel er bare meg og sa at den beste måten å lære på er å faktisk gjøre det selv.

    10: 43: 20,979434 IP (tos 0x0, ttl 128, id 70, offset 0, flagg [ingen], lengde:
    32) 192.168.1.102.1029 > 192.168.1.101.32768: [udp sum ok] UDP, lengde: 4
    0x0000: 4500 0020 0046 0000 8011 b66b c0a8 0166 E .... F ..... k ... f
    0x0010: c0a8 0165 0405 8000 000c f7af 0004 0001 ... e ............
    0x0020: 0000 0000 0000 0000 0000 0000 0000 ..............

    Merk at denne pakken ovenfor er faktisk en bekreftelse pakke. Ganske rart er ikke det som dette er UDP og ikke TCP. Hvorfor ser vi en bekreftelse pakke da? Vel dette faktisk er en del av TFTP-protokollen selv, og de Opcodes som følger med det. Hvor i pakken ovenfor er Opcode du sier? Godt spørsmål! Vi vet at vår IP header slutter ved byte 0165, da disse er de to siste oktetter av destinasjonen IP-adresse. Starter på byte 0405 så er det UDP header, som igjen ender i byte f7af.

    Vi vet nå da at bytes 0004 faktisk representerer Opcode for denne pakken. I dette tilfellet er verdien er fire, og som bryter ut ACK eller Bekreftelse. Etter dette Opcode verdien er blokk antall 0001. Denne blokknummer er også sett i selve pakken overføring av innholdet i filen "eksempel". Ganske ryddig eh? Så på en måte du får en forbindelse orientert økten selv om det er UDP basert. At selv er høflighet av TFTP Opcodes.

    Innpakning opp

    Hvis du ønsker å spille med TFTP-protokollen så jeg oppfordrer deg til å laste ned et gratisprogram man ligger her. Den gode folk på Solarwinds har vært god nok til å tilby opp denne utmerket win32 basert TFTP server for gratis. Kudos til dem! Når du har denne installert på win32 operativsystemet, begynner å eksperimentere med frakte filer frem og tilbake ved hjelp av "få" og "put" kommandoer. Du bør også snuse tilkoblingen mens du gjør dette, slik at du da kan se på den resulterende trafikk. Vel det er det folk for vår diskusjon av TFTP-protokollen. Jeg håper du likte det. Til neste gang! Anmeldelser