a13x4nd7u Posted January 5, 2009 Report Posted January 5, 2009 Vrei sa faci ca si cum un calculator s-a conectat la un anumit site/server TCP?Raspunsul la intrebare este insusi acest post, dar o sa mai explic si alte mici parti ale conexiunilor TCP (adica folosind protocolul TCP), adica majoritatea conexiunilor.Acest post explica baza unei conexiuni (desi multi fac programe prin care un client se conecteaza la server fara sa stie de fapt ce se intampla).Nu este mare lucru, dar ideea de baza de aici poate fi folosita pentru a face atacuri complexe si efective.In mod normal pentru ca sa faci o conexiune TCP/IP trebuie sa trimiti un pachet SYN, sa primesti unul SYN+ACK si sa o inchizi cu ACK.Noi nu avem cum sa primim SYN+ACK ca sa "inchidem" conexiunea.Poate va intrebati "Ce este asa de important in acel pachet?"Raspunsul este acknowledgment number (care este important doar daca primim ACK), un numar pe care trebuie sa il trimitem inapoi ca sa aratam ca noi suntem cu adevarat calculatorul care a trimis cererea de conexiune.Dar, folosind wireshark oricine poate observa ca acel numar este aproape intotdeauna 1.Asa ca putem face acest lucru usor.1. Folosind ip-ul victimei si portul X tu trimiti un pachet cu care arati ca vrei sa faci o conexiune noua (SYN).2. Trimitem pachetul cu SYN+ACK aproape imediat (nu vrem sa ajunga primul, pentru ca desi rar, se mai intampla).3. Dupa aceea putem trimite de exemplu cererea unei pagini cu un pachet simplu si date: "GET /index.html HTTP/1.1" .Dupa aceste 3 pachete TCP/IP victima o sa primeasca pe portul X un pachet SYN+ACK (cel pe care noi l-am ghicit) si continutul paginii index.html de pe serverul pe care am deschis noi conexiunea si poate si alte pachete ca RST (in cazul in care serverul vrea sa reseteze conexiunea) sau FIN+ACK in cazul in care vrea sa o inchida (asta se intampla la serverele web, serverul vrand sa inchida conexiunea imediat dupa ce a trimis continutul paginii).Ca sa nu las oarecum neterminat (pentru ca orice conexiune se si inchide) o sa incerc sa explic si cum se inchide o conexiune.Acest lucru este un pic mai complicat (si nu o sa poti ghici asa de usor acknowledgement number).Notam calculatorul care vrea sa inchida conexiunea cu A si pe celalalt cu B.A ii trimite lui B FIN+ACK;B ii trimite lui A ACK;B ii trimite lui A FIN+ACK;A ii trimite lui B ACK.Dar dupa ce te-ai conectat nu mai poti ghici acknowlidgement number ca sa inchizi conexiunea. (cel putin eu nu am reusit)Este facut de mine de la 0 din ceea ce am citit pe wikipedia, dar am mai folosit si wireshark ca sa observ reteaua, netul sau simple programe ale mele.Astept pareri. Quote
Guest Praetorian Posted January 6, 2009 Report Posted January 6, 2009 Eu nu am inteles titlul... [ ce vrea sa reprezinte ] Quote
OrIaX Posted January 6, 2009 Report Posted January 6, 2009 Vrei sa faci ca si cum un calculator s-a conectat la un anumit site si nu stii cum?No Offence : Dar suna de parca faimosul si renumitul Bahoi a pus titlul (P***`n P****) Quote
a13x4nd7u Posted January 7, 2009 Author Report Posted January 7, 2009 Am descoperit (dar nu cred ca sunt primul) cum poti sa pacalesti un server ca un IP oarecare s-a conectat la el (poate sa nu fie IP-ul tau).Asta cred ca e important in ceea ce am scris in tutorialul asta, restul este baza TCP/IP.Dar m-am exprimat cam aiurea, recunosc.EDIT:Poti sa ii trimiti si date, dar nu vei primi raspuns (pentru ca nu e IP-ul tau).N-am inteles absolut nimicPoate nu am explicat asa de bine si poate ca mai trebuie ceva despre conexiuni TCP ca sa intelegi tot. Vrei sa faci ca si cum un calculator s-a conectat la un anumit site si nu stii cum?No Offence : Dar suna de parca faimosul si renumitul Bahoi a pus titlul (P***`n P****)Titlul e cel mai aiurea. Quote
inthel Posted January 13, 2009 Report Posted January 13, 2009 bun pai si ai vreo aplicatie practica pt ceea ce ai descoperit? Quote
a13x4nd7u Posted January 13, 2009 Author Report Posted January 13, 2009 bun pai si ai vreo aplicatie practica pt ceea ce ai descoperit?Nu am inca program pentru asta. Trebuie creata o functie pentru fiecare tip de pachet (SYN SYN+ACK, trimitere date).Daca vrei sa il fac il fac (in C pentru Linux), dar imi ia ceva timp.Pentru Windows vor trebui facute cateva mici modificari (dar sunt un pic pesimist pentru ca nu mi-a mers niciun program cu socketuri in C pe Windows). Quote
noidee Posted January 14, 2009 Report Posted January 14, 2009 Cea mai tare aplicatie pentru asa ceva se numeste DOS attack. Daca deschizi multe conexiuni fara sa le inchizi si serverul nu e configurat bine va cadea. Quote
Nytro Posted January 15, 2009 Report Posted January 15, 2009 SYN Attack:Screenshot: http://www.clipartof.com/images/free_hosting/large/0180-0802-2504-2548_synattackscreenshot.bmpDownload: http://www.savefile.com/files/1402122 Quote