<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Ako želite da vidite **vašu kompaniju reklamiranu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
SIP (Session Initiation Protocol) je **signalizacijski i kontrolni protokol poziva** koji se široko koristi za uspostavljanje, modifikaciju i prekidanje multimedijalnih sesija, uključujući glas, video i trenutne poruke, preko IP mreža. Razvijen od strane **Internet Engineering Task Force (IETF)**, SIP je definisan u **RFC 3261** i postao je de facto standard za VoIP i ujedinjene komunikacije.
1.**Tekstualni protokol**: SIP je tekstualni protokol, što ga čini čitljivim za ljude i lakšim za otklanjanje grešaka. Baziran je na modelu zahteva-odgovora, sličnom HTTP-u, i koristi metode poput INVITE, ACK, BYE i CANCEL za kontrolu poziva.
2.**Skalabilnost i fleksibilnost**: SIP je visoko skalabilan i može se koristiti u malim implementacijama, kao i u velikim preduzećima i provajderskim okruženjima. Može se lako proširiti novim funkcionalnostima, što ga čini prilagodljivim različitim slučajevima upotrebe i zahtevima.
3.**Interoperabilnost**: Široka upotreba i standardizacija SIP-a osiguravaju bolju interoperabilnost između različitih uređaja, aplikacija i provajdera usluga, promovišući besprekornu komunikaciju na različitim platformama.
4.**Modularni dizajn**: SIP radi sa drugim protokolima poput **RTP (Real-time Transport Protocol)** za prenos medija i **SDP (Session Description Protocol)** za opisivanje multimedijalnih sesija. Ovaj modularni dizajn omogućava veću fleksibilnost i kompatibilnost sa različitim vrstama medija i kodeka.
5.**Proxy i preusmeravajući serveri**: SIP može koristiti proxy i preusmeravajuće servere za olakšavanje rutiranja poziva i pružanje naprednih funkcionalnosti poput preusmeravanja poziva, transfera poziva i glasovne pošte.
6.**Prisustvo i trenutne poruke**: SIP nije ograničen samo na glasovnu i video komunikaciju. Takođe podržava prisustvo i trenutne poruke, omogućavajući širok spektar aplikacija za ujedinjenu komunikaciju.
Uprkos mnogim prednostima, SIP može biti kompleksan za konfigurisanje i upravljanje, posebno kada se suočava sa NAT prelazom i problemima sa firewall-om. Međutim, njegova fleksibilnost, skalabilnost i široka podrška u industriji čine ga popularnim izborom za VoIP i multimedijalnu komunikaciju.
1.**INVITE**: Koristi se za **inicijaciju nove sesije (poziva)** ili modifikaciju postojeće. Metoda INVITE prenosi opis sesije (obično koristeći SDP) kako bi obavestila primaoca o detaljima predložene sesije, poput vrsta medija, kodeka i transportnih protokola.
2.**ACK**: Služi za **potvrdu prijema** konačnog odgovora na INVITE zahtev. Metoda ACK obezbeđuje pouzdanost INVITE transakcija pružanjem potvrde o prijemu od kraja do kraja.
3.**BYE**: Koristi se za **prekidanje uspostavljene sesije (poziva)**. Metoda BYE se šalje od strane bilo koje strane u sesiji kako bi se naznačilo da žele prekinuti komunikaciju.
4.**CANCEL**: Služi za **otkazivanje čekajućeg INVITE** zahteva pre uspostavljanja sesije. Metoda CANCEL omogućava pošiljaocu da prekine INVITE transakciju ako promeni mišljenje ili ako nema odgovora od primaoca.
5.**OPTIONS**: Koristi se za **upitivanje mogućnosti SIP servera ili korisničkog agenta**. Metoda OPTIONS se može poslati kako bi se zatražile informacije o podržanim metodama, vrstama medija ili drugim ekstenzijama, a da se pritom ne uspostavi sesija.
6.**REGISTER**: Koristi ga korisnički agent da **registruje svoju trenutnu lokaciju kod SIP registarskog servera**. Metoda REGISTER pomaže u održavanju ažurnog mapiranja između korisnikovog SIP URI-ja i njegove trenutne IP adrese, omogućavajući rutiranje i dostavu poziva.
1.**SUBSCRIBE**: Definisana u RFC 6665, metoda SUBSCRIBE se koristi za **zahtevanje obaveštenja** o stanju određenog resursa, poput prisustva korisnika ili statusa poziva.
2.**NOTIFY**: Takođe definisana u RFC 6665, metoda NOTIFY se šalje od strane servera kako bi **obavestila pretplaćeni korisnički agent** o promenama u stanju praćenog resursa.
3.**REFER**: Definisana u RFC 3515, metoda REFER se koristi za **zahtevanje da primalac izvrši transfer ili uputi na treću stranu**. Ovo se obično koristi za scenari
1.**Request-Line**: `INVITE sip:jdoe@example.com SIP/2.0` - Ova linija označava metod (INVITE), URI zahteva (sip:[jdoe@example.com](mailto:jdoe@example.com)) i verziju SIP-a (SIP/2.0).
2.**Via**: `Via: SIP/2.0/UDP pc33.example.com;branch=z9hG4bK776asdhds` - Via zaglavlje specificira transportni protokol (UDP) i adresu klijenta (pc33.example.com). Parametar "branch" se koristi za detekciju petlji i uparivanje transakcija.
3.**Max-Forwards**: `Max-Forwards: 70` - Ovo zaglavlje ograničava broj puta koliko zahtev može biti prosleđen preko proksija kako bi se izbegle beskonačne petlje.
4.**To**: `To: John Doe <sip:jdoe@example.com>` - To zaglavlje specificira primaoca poziva, uključujući njegovo ime (John Doe) i SIP URI (sip:[jdoe@example.com](mailto:jdoe@example.com)).
5.**From**: `From: Jane Smith <sip:jsmith@example.org>;tag=1928301774` - From zaglavlje specificira pošiljaoca poziva, uključujući njegovo ime (Jane Smith) i SIP URI (sip:[jsmith@example.org](mailto:jsmith@example.org)). Parametar "tag" se koristi za jedinstveno identifikovanje uloge pošiljaoca u dijalogu.
6.**Call-ID**: `Call-ID: a84b4c76e66710` - Call-ID zaglavlje jedinstveno identifikuje sesiju poziva između dva korisnička agenta.
7.**CSeq**: `CSeq: 314159 INVITE` - CSeq zaglavlje sadrži broj sekvence i metod koji se koristi u zahtevu. Koristi se za uparivanje odgovora na zahteve i otkrivanje poruka van redosleda.
8.**Contact**: `Contact: <sip:jsmith@pc33.example.com>` - Contact zaglavlje pruža direktnu rutu do pošiljaoca, koja se može koristiti za sledeće zahteve i odgovore.
9.**User-Agent**: `User-Agent: ExampleSIPClient/1.0` - User-Agent zaglavlje pruža informacije o softveru ili hardveru pošiljaoca, uključujući njegovo ime i verziju.
10.**Allow**: `Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO` - Allow zaglavlje navodi SIP metode koje podržava pošiljalac. Ovo pomaže primaocu da razume koje metode mogu biti korišćene tokom komunikacije.
11.**Content-Type**: `Content-Type: application/sdp` - Content-Type zaglavlje specificira medija tip poruke, u ovom slučaju SDP (Session Description Protocol).
12.**Content-Length**: `Content-Length: 142` - Content-Length zaglavlje označava veličinu tela poruke u bajtovima.
13.**Telo poruke**: Telo poruke sadrži SDP opis sesije, koji uključuje informacije o tipovima medija, kodecima i transportnim protokolima za predloženu sesiju.
*`v=0` - Verzija protokola (0 za SDP)
*`o=jsmith 2890844526 2890842807 IN IP4 pc33.example.com` - Originator i identifikator sesije
*`s=-` - Naziv sesije (jedan crtića ukazuje na odsustvo naziva sesije)
*`c=IN IP4 pc33.example.com` - Informacije o konekciji (tip mreže, tip adrese i adresa)
*`t=0 0` - Informacije o vremenu (vreme početka i završetka, 0 0 znači da sesija nije ograničena)
*`m=audio 49170 RTP/AVP 0` - Opis medija (tip medija, broj porta, transportni protokol i lista formata). U ovom slučaju, specificira se audio tok koristeći RTP/AVP (Real-time Transport Protocol / Audio Video Profile) i format 0 (PCMU/8000).
*`a=rtpmap:0 PCMU/8000` - Atribut koji mapira format (0) na kodek (PCMU) i njegovu frekvenciju taktovanja (8000 Hz).
Metod REGISTER se koristi u protokolu za inicijaciju sesije (SIP) kako bi omogućio korisničkom agentu (UA), poput VoIP telefona ili softfona, da **registruje svoju lokaciju kod SIP registracionog servera**. Ovaj proces omogućava serveru da zna **gde da usmeri dolazne SIP zahteve namenjene registrovanom korisniku**. Registracioni server obično čini deo SIP proxy servera ili posebnog registracionog servera.
Ova početna REGISTER poruka se šalje od strane UA (Alice) registrar serveru. Ona uključuje važne informacije kao što su željeno trajanje registracije (Expires), SIP URI korisnika (sip:[alice@example.com](mailto:alice@example.com)), i kontakt adresa korisnika (sip:alice@192.168.1.100:5060).
Registar server odgovara sa "401 Unauthorized" porukom, koja uključuje "WWW-Authenticate" zaglavlje. Ovo zaglavlje sadrži informacije potrebne UA-u da se autentifikuje, kao što su **autentifikaciono područje, nonce i algoritam**.
UA šalje još jedan REGISTER zahtev, ovog puta uključujući **"Authorization" zaglavlje sa potrebnim podacima za autentifikaciju, kao što su korisničko ime, realm, nonce i vrednost odgovora** izračunata koristeći pružene informacije i korisnikovu lozinku.
Nakon što registrar server verifikuje pružene akreditive, **šalje "200 OK" odgovor da bi pokazao da je registracija uspešna**. Odgovor uključuje registrovane kontakt informacije i vreme isteka registracije. U ovom trenutku, korisnički agent (Alice) je uspešno registrovan sa SIP registrar serverom i dolazni SIP zahtevi za Alice mogu biti usmereni ka odgovarajućoj kontakt adresi.
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.