Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 03/28/14 in all areas

  1. Randurile de mai jos constituie ceea ce mi s-a parut ca este important de stiut/retinut despre acest protocol. Nu exista o sursa anume, este o comasare a informatiilor(asadar se pot repeta unele chestii) asa cum le-am inteles eu (deci pot sa apara unele erori) TCP - Transmission Control Protocol ================================================================================== Specificatii complete, oficiale : RFC 793 (Request For Coment - RFC) Cuprins 1. Cum functioneaza TCP 2. Caracteristici principale TCP 3. Explicatii caracteristici 4. Segmentul TCP: 5. TCP Flags 7. Stabilirea si incheierea conexiunii Protocol : un set de reguli ce prezinta formatul utilizat la comunicarea intre sisteme. ================================================================================== 1. Cum functioneaza TCP -> inainte ca transferul datelor sa inceapa, TCP stabileste o conexiune intre doua procese de aplicatie prin stabilirea/setarea parametrilor de protocol. Acesti parametrii sunt stocati intr-o structura variabila denumita TCB (transmission control blocks). Odata ce conexiunea a fost stabilita, transferul datelor poate incepe. In timpul transmisiei parametrii se pot modifica pentru a eficientiza transmisia sau pentru a preveni congestiile. La sfarsit,conexiunea este inchisa. in anumite imprejurari conexiunea poate fi terminata fara o inchidere formala (FIN-> FIN/ACK..) ============================================================================================================================================= 2. Caracteristici principale TCP TCP, Protocol la nivelul transport (transport layer) - peste IP- este: -> orientat pe flux -> sparge datele trimise in bucati mai mici la nivelul sursei si le reasambleaza la nivelul destinatarului -> de incredere , verifica starea pachetelor, erorile, daca pachetele au fost primite etc, -> orientat/bazat pe conexiune (deschide/ inchide o comunicatie intre 2 hosturi) -> complex -> doar unicast -> utilizat pentru cele mai multe aplicatii : web(HTTP), email (SMTP), transfer fisiere(FTP), terminal (telnet), etc TCP : furnizeaza servicii complete la nivelul transport aplicatiilor. TCP : furnizeaza o conexiune de incredere intre ambele capete ale transmisiunii. Aceasta conexiune trebuie setata, mentinuta si apoi inchisa TCP : divizeaza fluxul de date in in unitati de marimi limitate numite "segmente". Aceste segmente sunt reasamblate intr-o maniera de incredere la nivelul destinatarului. Increderea se obtine prin mentinerea secventei originale la asamblarea segmentelor si cererea de retransmisie a datelor pierdute sau corupte. In timp ce protocolul IP furnizeaza adresarea logica a segmentelor si este responsabil pentru transmiterea lor in retele, protocolul TCP furnizeza o adresare aditionala care permite infiintarea/setarea unor conexiuni pentru mai multe aplicatii si servicii in acelasi timp. Fiecare aplicatie care cauta conexiune TCP este asignata unui port. TCP : furnizeaza o conexiune logica in ambele sensuri concomitent (full duplex) intre 2 procese la nivelul aplicatie(layer 5). TCP : da voie destinatarului sa controleze rata la care (cantitatea in care) sender-ul ii trimite date, pentru a evita buffer overflow-ul. =============================================================================================================================================== 3. Explicatii caracteristici TCP - Protocol orientat pe conexiune: -> procesele participante stabilesc o conexiune si negociaza parametrii acesteia. Negocierea se face prin transmiterea unor blocuri de control (TCB -transmission control blocks). La sfarsitul transmisiei conexiunea trebuie inchisa : TCP inchide fiecare sens al conexiunii in mod separat, ceea ce permite ca fluxul de date intr-un sens sa continue chiar si dupa ce celalalt sens a fost inchis. TCP - Protocol de incredere: -> inseamna fie ca toate segmentele/datele au fost livrate cu succes fie conexiunea e "stricata". TCP este creat sa mearga peste IP si astfel nu isi asuma ca serviciile care stau la baza retelei sunt de incredere: pentru a asigura increderea, fiecarei bucati de data ii este atribuit un numar si este angajata o cerere repetitiva automata (ARQ - automatic repeat request) selectiva, care sa ceara retransmiterea bucatilor pierdute sau corupte. TCP: In secventa(secvential) -> garanteaza ca datele sunt primite de procesul destinatar in aceasi ordine in care au fost trimse. Secventierea este implementata prin acelasi mecanism utilizat la detectarea bucatilor lipsa. Toate datele primite sunt stocate intr-un bufer de intrare in functie de numarul primit de fiecare bucata in parte. Procesul care destinatar, citeste datele din buffer in secventa corecta. TCP: Protocol orientat pe flux -> conexiunea poate fi perceputa ca fiind continua in ciuda faptului ca serviciile care stau la baza retelei trimit datele in bucati. Aceste bucati pot avea diverse marimi si pot avea o limita de marime maxima. Procesul sender poate trimite datele fie in mod continuu fie in rafale/explozie. Toate datele de trimis sunt stocate intr-un buffer de iesire, fiind mai apoi partitionate, sparte in bucati, numite segmente conform protocolului TCP si apoi sunt trimise peste retea. In partea destinatarului, datele(segmentele) primite sunt stocate intr-un bufer de intrare conform cu secventierea discutata anterior si de unde procesul destinatar le poate citi fie bucata cu bucata (segment cu segment)) fie byte dupa byte. TCP : Protocol full duplex: -> fiecare parte implicata in transmisiune are control asupra ei. Spre exemplu fiecare parte poate trimite date in orice moment sau poate incheia transmisiunea in orice moment. =============================================================================================================================================== 4. Segmentul TCP - desi este protocol Byte-oriented, transmiterea unui byte per pachet IP ar fi ineficienta. Asa ca se datele sunt impartite in bucati (chunk) denumite segmente. Ficare segment e incapsulat in datagrama IP si apoi trimis. - fiecare segment este constituit din header/antet (obligatoriu) si date (optional) Header-ul este format din: -> Adresa port sursa : (16 biti) numarul portului asignat procesului care trimite optiunile sau datele din segment; -> Adresa port destinatar: (16 biti) numarul portului asignat procesului care primeste optiunile sau datele continute in segment; -> Numar secventa : (32 biti) contine numarul asignat primului byte al datelor trimise in segment; cand este stabilita conexiunea, fiecare parte genereaza propriul sau numar de secventa initial (ISN - initial sequence number) aleator, care este incrementat cu unu cu fiecare byte de date. -> Numar de confirmare(Acknowledgment No): (32biti) contine numarul secventei pentru urmatorul segment care se asteapta sa fie primit de ceqalalta parte. -> Lungime antet (header length): (4 biti) contine marimea headerului segmentului, impartita la 4. Deoarece headerul poate avea intre 20-60 bytes plaja de valori este cuprinsa intre 5 si 15. -> Rezervat : (6 biti) camp rezervat pentru o utilizare viitoare; -> Control : (6 biti) contine flaguri de control a transmisiunii (URG, ACK, PSH, RST, SYN, FIN); -> Marime fereastra (window size) : (16 biti) contine contine informatii despre marimea ferestrei de transmisie pe care cealalta parte trebuie sa o mentina. -> Checksum : (16 biti) contine valoarea de control. Aceasta se obtine astfel: se umple initial cu valoarea 0. Se adauga un pseudo-header cu informatii din IP. Se trateaza intregul segment cu cu pseudo headerul ca un flux de numere de 16 biti. Daca numarul de bytes este par, se adauga 0 la sfarsit. Se adauga toate numerele de 16 biti utilizand metoda "1’s complement binary arithmetic". Se complementeaza rezultatul si se introduce in camplu Checksum. : Mod de verificare Checksum: destinatarul (receiver-ul) calculaeaza valoarea de control pentru pachetul primit,care include si valoarea de control initiala, dupa adaugarea pseudo-headerului. Daca noua valoare de control nu este 0 inseamna ca pachetul este corupt si se va renunta la el. -> Pointerul "Urgent " (urgent pointer) : (16 biti) este utilizat doar daca este setat falagul "URG". Defineste locatia ultimului byte urgent din sectiunea de date a segmentului. Datele urgente sunt acele date trimise in afara secventei -> Optiuni : (pana la 40 bytes) pot fi adaugate headerului optiuni pana la maxim 40 bytes (320 biti). Optiunile sunt umplute/captusite (ha, ha, suna ca dracu padded in romana) cu zero-uri astfel incat numarul total de byte din header sa fie divizibil cu 4. --->TCP options: classification : end of options : 1 byte, utilizat ca padding la sfarsitul optiunilor; no operation (used for padding): 1 byte, utilizat pentru a umple spatiul intre optiuni si ca padding; setting maximum segment size : defineste marimea maxima a unei bucati de date -chunk ; setting window scale factor; time stamp. =============================================================================================================================================== 5. TCP Flags –CWR: Congestion Window Reduced (ECE ACK) –ECE (ECN-Echo): Indicates congestion –URG: (Urgent pointer field significant) - Urgent. Daca acest bit este setat atunci pointerul urgent este valid. –ACK: (Acknowledgment field significant) - Confirmare. Daca acest bit este setat, numarul de confirmare este valid. –PSH: (Push function) - daca acest bit este setat, cealalta parte nu trebuie sa mai stocheze in buffer datele de trimis ci sa le trimita de indata ce sunt disponibile, fara sa le mai tina in buffer. –RST: (Reset the connection) - daca acest bit este setat, trebuie sa se renunte la conexiune imediat din cauza unei conditii speciale –SYN: (Synchronize sequence numbers) - bitul este setat in segmentul de cerere de conexiune in momentul stabilirii acesteia –FIN: (Finalyze : No more data from sender) - daca acest bit este setat inseamna ca senderul a terminat de transmis datele si nu mai are nimic altceva de transmis iar conexiunea poate fi inchisa. Procesul va astepta date in continuare pana cand cealalta parte trimite de asemenea FIN. =============================================================================================================================================== 6. Porturi bine-cunoscute utilizate cu TCP Port -- Protocol Description -- RFC/STD # 7 -- Echo -- Echoes a received data back to its sender -- STD20 9 -- Discard -- Discards any data that are received -- STD21 13 -- Daytime -- Returns the date and the time in ASCII string format -- STD25 19 -- Chargen -- Sends back arbitrary characters until connection closed -- STD22 20 -- FTP -- Data File Transfer Protocol (data transmission connection, unencrypted) -- STD9 21 -- FTP -- Control File Transfer protocol (control connection, unencrypted) -- STD9 22 -- SSH -- Secure Shell (SSH)—used for secure logins, file transfers (scp, sftp),and port forwarding -- RFC4250-4256 23 -- Telnet -- Telnet (unencrypted) -- STD8, STD27-32 25 -- SMTP -- Simple Mail Transfer Protocol (sending email) -- STD10 37 -- Time -- Returns the current time in seconds since 1/1/1900 in a 32 bit format -- STD26 53 -- Nameserver -- Domain Name Service -- STD13 80 -- HTTP -- Hypertext Transfer Protocol -- RFC2616 110 -- POP3 -- Post Office Protocol 3 (email download) -- STD53 111 -- RPC -- SUN Remote Procedure Call -- RFC5531 143 -- IMAP -- Interim Mail Access Protocol v2 (email access) -- RFC2060 443 -- SHTTP -- Secure Hypertext Transfer Protocol -- RFC2660 995 -- POP3 -- POP3 over TLS/SSL -- RFC2595 ============================================================================================================================================= 7. Stabilirea si incheierea conexiunii -> Stabilirea conexiunii intre 2 hosturi (A si B)se face in 4 pasi: hostul A trimite un segment prin care anunta ca vrea sa stabileasca o conexiune(SYN)). Acest segment contine informatiile initiale despre traficul de la A la B hostul B trimite un segment confirmand (ACK) primirea cererii de la A; hostul B trimite un segment cu informatia despre traficul de la B la A(SYN); hostul A trimite un segment confirmand (ACK) primirea cererii de la B; Pasii 2 si 3 pot fi uniti intr-un singur segment si rezulta "three-way handshaking" -> Incheierea conexiunii intre 2 hosturi. Poate fi initiata de oricare dintre procese : "four-way handshaking" hostul A trimite hostului B un segment prin care anunta ca vrea sa inchida conexiunea (FIN); hostul B trimite hostului A un segment de confirmare a cererii (ACK) - in acest moment conexiunea de la A la B este inchisa dar de la B la A ramane inca deschisa. cand hostul B este pregatit sa incheie si el conexiunea trimite un segment in care anunta acest lucru (FIN) hostul A trimite hostului B un segment de confirmare a cererii de inchidere si astfel conexiunea se inchde la amnele capete Daca unul din procese doreste sa abandoneze conexiunea in imprejurari anormale va trimite un segment cu RST(ReSeT nu Romanian Security Team! ) pentru a o distruge. ===================================2014@int21h.exe==========================================================================================================
    2 points
  2. Aceasta oferta speciala costa 99$ din 399$ este valabila pina la 31 martie 2014, Penetration Testing Student curs este fara certificare.... https://www.elearnsecurity.com/lp/pts-launch.php ce inveti in curs https://www.elearnsecurity.com/collateral/syllabus_ptsv2.pdf
    1 point
  3. Are you reading this blog? If so, you are committing a crime under 18 USC 1030(a) (better known as the “Computer Fraud & Abuse Act” or “CFAA”). That’s because I did not explicitly authorize you to access this site, but you accessed it anyway. Your screen has a resolution of 1920x1080. I know this, because (with malice aforethought) I clearly violated 18 USC 1030(a)(5)(A) by knowingly causing the transmission of JavaScript code to your browser to discover this information. So we are all going to jail together. That's silly, you say, because that’s not what the law means. Well, how do you know what the law means? The law is so vague that it’s impossible to tell. The CFAA was written in 1986. Back then, to access a computer, you had to have an explicit user account and password. It was therefore easy to tell whether access was authorized or not. But then the web happened, and we started accessing computers all over the world without explicit authorization. So, without user accounts or other form of explicit authorization, how do we tell if access to a website is “authorized” or not? Well, we could come up with a theory of “implicit” authorization. Obviously I intend people to read this blog, and therefore, I’ve implicitly authorized you to do so. Likewise, your browser makes your screen size available to JavaScript so that websites can render better, so it’s implicit that you’ve authorized me to grab this information. But what are the limits of implicit authorization? Let’s say you are reading a website that has “articleId=31337” at the end. You wonder what the next article is, so you go to the URL and change it “articleId=31338” and hit return. Have you “exceeded authorized access”? It’s hard to say. If article “31337” is public, why not “31338”? But in our scenario, let’s say that article “31338” is a press release that is not intended to be published until tomorrow announcing the quarterly corporate earnings. While the article itself is online, a link to it won’t be posted to the home page until tomorrow, so not even Google spiders can find it. Because you’ve gotten early access, you can make a huge profit buying/selling stocks. Is it your fault for accessing the pre-posted financial results? Or their fault for making them accessible? What does the Computer Fraud and Abuse Act say on this matter? A well-known legal phrase is “ignorance of the law is no defense”. But that doesn’t really apply here. You know the law exists. You may have read it in detail. You may have even consulted your lawyer. It’s just that nobody can tell precisely whether this act as crossed the line between “authorized” and “unauthorized” access. We won’t know until if and when somebody tries to prosecute you. Let’s say that instead of trying to profit from your accidental discovery, you simply post it to your blog, saying “look at what these idiots have done”. As a Fortune 500, the FBI takes notice, searches your home, confiscates all your computers, arrests you, and successfully convicts you under the CFAA. This is selective enforcement. The FBI doesn’t go after everyone who adds one to a URL, only those who embarrass the Fortune 500. They don’t go after any cow in the herd, only those who stick their heads up. This violates the concept of “rule of law”. Everyone isn’t treated equally under law, some are treated more equally than others. For cybersecurity researchers like me, this creates chilling effect. In order to fix security we have to point out when it’s broken. When we see this broken press release, what do we do? Do we keep our head down, or do we speak up? Even if we'll probably be found innocent, why take the risk? Better to keep quiet. This is the issue behind the recent conviction of Andrew Auernheimer for “hacking” AT&T. The guy isn’t a criminal. He wasn’t trying to profit. He simply noticed that AT&T had made user accounts publicly available, and published proof. He believed that since the information was publicly available he was not exceeding authorization. He stuck his head up above the herd. For that, he was convicted today under the CFAA and is on his way to jail (well, currently still out on bail awaiting sentencing). By the way, this post is based on the legal concept “void for vagueness". It’s good reading. Errata Security: You are committing a crime right now Vechi, dar interesant.
    1 point
  4. Plecand de la ideea vizualizarii unui videoclip privat pe YouTube am ajuns sa descopar mai tarziu cum se pot sterge anumite comentarii de la videoclipuri. In legatura cu vizualizarea unui video privat, am reusit sa obtin doar durata unui videoclip privat, numele celui care l-a incarcat, vizualizari si cred ca si cate likeuri are sau dislike, de asta nu sunt sigur. Raspunsul a fost unul favorabil Revin la comentarii, inlocuind ID-ul unui video public cu cel al unui videoclip privat am ajuns sa obtin niste informatii, asa am procedat si aici sau cel putin asa imi pare mie, am adaugat parametrul care apartinea de comentariu unui videoclip pe care eu il detineam. Totul se agata de forma simpla prin care puteai adauga un comentariu Ex: 500 char remaining http://i.imgur.com/y4fmeM5.png Am copiat acel parametru si l-am adaugat unui videoclip de-al meu. http://i.imgur.com/3sVNTKK.png Aveam: http://www.youtube.com/watch?v=video&lc=xxxxx (aici e lc-ul comentariului). Accesand linkul cu comentariul el apare la video-ul nostru cu permisiunea de a il sterge. Da, se putea pune si la alte videoclipuri dar acolo nu aveam acces la el ca sa il sterg. Imaginea e de atunci http://i.imgur.com/mSgI9A6.png Comentariul a aparut cu permisiunea de a-l sterge. Si aici raspunsul lor a fost unul favorabil pe care prefer sa il tin.
    1 point
  5. Poate aveti nevoie Dorks List Site 1 - CXSecurity.com
    -1 points
×
×
  • Create New...