Cikli While eshte nje pjese e thjeshte e programimit ne pergjithesi, eshte gjeresisht e perdorur dhe mund te perfitojm shume nga perdorimi i tij. Mund te kisha marre shume shembuj per ta ilustruar por zgjodha shumezimin faktorial ne menyre qe te kuptohet me ne gjeresi.
import java.util.Scanner; //Importojm klasen skaner pasi do marrim impute nga tastiera
public class Faktorial
{
public static void main (String [ ]args)
{
Scanner inPuti = new Scanner (System.in); //krijojm objektin inPuti
long N, fakt = 1; //Percaktojm 2 variabila 1 long N dhe tjetren 1 per faktorialin
System.out.println ("Fut nje numer :");
N = inPuti.nextLong();
if (N >= 0 && N < 20)
{
while (N > 1) //Perderisa Numri > 1 vazhdo
{
fakt = fakt * N; // 1 = 1 * Numrin
N = N - 1; //Numri = Numri - 1
} //Numri = Numrin - 1
System.out.println ("Faktoriali eshte :" + fakt); //Printojm faktorialin e numrit.
}
else
{
System.out.println ("Numri duhet te jete 0 ose me i madh.");
System.out.println ("SHENIM: Per numra me te medhenj se 20 perfundimi do jete i gabuar sepse variabila i tejkalon bitet qe mund te mbaj" +
"dhe automatikisht bitet teper i kalon ne kosh, dhe si problem eshte i njohur me \"Overflow\" ne boten e informatikes");
}
}
}
Bukur mbasi i hodhem nje sy ushtrimit shpjegojm se ç’fare ndodhi.
Shembull, po kryejm te gjitha operacionet qe do bej cikli yne while nese merr numrin 4 nga perdoruesi:
Fut nje numer: 4, ky numer shkon dhe depozitohet ne variabilen N
if kontrollon nese nje statement eshte i vertete, dhe meqenese 4 >= 0 dhe me i vogel
se 20 atehere e fut ne cikel while i cili nderkohe qe sheh se 4 > 1:
fakt = fakt * N ==> 1 = 1 * 4 ==> fakt = 4
N = N – 1 ==> N = 4 – 1 ==> N = 3
while ( N > 1 ) ==> 3 > 1
fakt = fakt * N ==> 4 = 4 * 3 ==> fakt = 12
N = N – 1 ==> 3 = 3 – 1 ==> N = 2
while ( N > 1 ) ==> 2 > 1
fakt = fakt * N ==> 12 = 12 * 2 ==> fakt = 24
N = N – 1 ==> 2 = 2 – 1 ==> N = 1
while ( N > 1 ) ==> Tani N = 1 dhe 1 nuk eshte me i madh se 1 keshtu qe cikli mbyllet
nderkohe qe variabila fakt ka vleren 24 ndersa variabila N ka vleren 1
Besoj se eshte e qarte, pra Cikli While ka kete forme, “nderkohe qe : kushti : veprime”
Ne kete ushtrim vihet re dhe nje overflow nese fusim numra me te medhenj se 20 , do te ishte interesante ta trajtonim dhe ne nivelin e sigurise kete problem te njohur por shpresojm se ne raste te tjera do te jete diskutim me i pershtatshem
Ne kete paper do te trajtojme skanimin e nje hosti ne nje network, te gjejm portat qe perdor dhe te identifikojme sistemin e operimit qe perdor.
Ky pikerisht eshte hapi i dyte pasi kemi mbledhur informacione publike nga footprinting.
Nmap eshte nje nga toolset me te kompletuar dhe te mir per tu perdorur per kete qellim.
Ai eshte free kshu qe mund ta shkarkoni nga faqja zyrtare keni dhe version GUI per windows.
Para se te fillojm doja te benim nje permbledhje te shkurter mbi procesin e lidhjes TCP. Ato te cilet jane te informuar nga kjo ane mund te kalojne me poshte ![]()
Kur nje lidhje TCP realzohet midis dy sistemeve, nje cikel i njohur “three way handshake” kryhet, Kjo perfshin shkembimin e 3 paketave dhe sinkronizimin e sistemeve me njeri tjetrin.
Sistemi i cili nis lidhjen dergon nje pakete sistemit me te cilin do qe te lidhet. Paketat TCP kane nje pjese (header) me nje fushe qe percakton “flamurin” (tipin e paketes)
Ketu do flasim per 6 tipat e mundshme te paketave, te cilat jane :
1. SYN (Synchronise) – permbajne nje numer sekuence te TCP, te cilat e njohin sistemin remote, se cilen sekuence te perdor per lidhjen pasardhese.
2. ACK (Acknowledge) – njehuri mbi marrjen dhe futjen e paketave.
3. FIN (Finished) – dergohet kur lidhja ka perfunduar
4. RST (Reset) – dergohet kur lidhja eshte per tu rikrijuar.
5. URG (Urgent) – do te thote qe segementi permban data urgjente
6. PUSH (Push) – i tregon krahut qe po merr ne lidhjen TCP qe duhet te njoftoj procesin e marrjes per kete fakt.
Per te nisur nje lidhje TCP, sistemi qe fillon lidhjen dergon nje pakete SYN tek destinacioni, kjo e fundit do te dergoj nje pakete SYN nga ana e saj dhe nje ACK e cila do te njoftoj per ardhjen e paketes se pare.
Keto jane te kombinuara ne nje pakete te vetme SYN/ACK. Mbas kesaj sistemi i pare dergon nje pakete ACK per te informuar qe SYN/ACK arriti me sukses dhe qe mund te filloj shkembimi. Ky informacion do ju duhet per me poshte
Ping
Menyra me e shpejte per te percaktuar nese nje host eshte “gjall” apo jo eshte te ping-ojme ate.
Kemi dy menyra pingimi me ane te nmap:
1. Dergojme nje kerkes echo ICMP, e cila ben qe ti kthehet si pergjigje nje paket ICMP. Nje host mund te konfigurohet qe mos ti pergjigjet
ketyre kerkesave kshuqe nuk eshte e then qe ai te mos jet “gjall”
.
nmap -sP 192.168.1.* – ne kete menyre do te pingojme te gjitha hostet
2. Per te verifikuar nqs jan bllokuar kerkesat ICMP apo eshte ne te vertet hosti down, bejm nje TCP Ping.
Nje tcp ping dergon nje paket SYN apo ACK te nje porte e caktuar (80 porta default) tek sistemi qe po skanojme.
Nqs nje RST apo nje SYN/ACK thehet atehere sistemi remote eshte online. Nqs jo atehere mund te jete offline ose porta e caktuar eshte e filtruar.
nmap -PT porta_qe_do_te_dergohet_paketa destinacioni
Per te ndaluar TCP ping apo ICMP ping mund te perdorim nje firewall te mir-konfiguruar.
Skanimi i portave
Eshte procesi i lidhjes me portat UDP dhe TCP te nje hosti per te percaktuar cilat porta jan hapur ne pritje te lidhjeve.
Skanimi mund te realizohet ne rrug te ndryshme. Keto qe paraqes me poshte jane me te perdorshmet:
1. Lidhje me ane te TCP.
Sic njihet TCP connect() scan, e ka marr emrin nga socket e programimit te UNIX e cila perdor nje thirrje te sistemit, connect()
per te realizuar nje lidhje me hostin. Nqs connect() realizohet me sukses lidhja realizohet, Nqs jo lidhja nuk realizohet, serveri mund te jete offline, porta mund te jete e mbyllur
apo mund te ket ndonje problem tj gjat rruges. Krijohet lidhja nje nga nje me portat kryesore ose nqs duam me te gjitha portat dhe per ato porta qe realizohet lidhja klasifikohen te hapura
te tjerat te mbyllura.
Gjeja e keqe eshte se kjo i regjistron ip derguese dhe indetifikohesh shpejte. Gjithsesi ky lloj skanimi mund te realizohet me ane te komandes -sT ne nmap.
2. Skanimi TCP SYN.
Ky tip skanimi ben qe te dergohet nje pakete SYN ne host. Nqs hosti eshte duke pritur lidhje ne nje porte te caktuar atehere kthen nje pakete SYN+ACK. Nqs hosti eshte online dhe nuk eshte ne pritje
ne ate porte atehere dergon nje pakete RST dhe nqs eshte e filtruar atehere nuk dergohet asgje. Kjo eshte rruga qe ndjek nmap per te skanuar. Ne kete rast nuk perfundohet i gjith cikli three-way handshake. Kjo menyre eshte e pakapshme(e fshehur) derisa nuk logohet nga hosti xD .
nmap -sS destinacioni -g porta – nqs firewall ka bllokuar ndonje porte.
3. Skanimi me ane te paketes FIN
Ne kete metode dergohet nje pakete FIN ne hostin qe do te skanojme. Nqs hosti eshte online por nuk eshte ne pritje ne nje porte te caktuar
atehere ai pergjigjet me nje pakete RST, perndryshme nqs nuk eshte ne pritje ne ate porte atehere nuk kthen pergjigje. Duhet te keni parasysh qe ne Windows perher hosti dergon nje paket RST. Kjo eshte ne interes per te
percaktuar sistemin operativ, por eshte me thjesht me fingerprining qe do te shohim me poshte.
Gjithashtu FIN dhe skanime te tj qe do te shohim me poshte jan e nevojshme per te shmangur firewall dhe IDS te cilat perqendrohen shumicen e rasteve tek paketat SYN.
Komanda per te realizuar FIN SKAN :
nmap -sF destinacioni
4. Skanimi me XMAS
Kjo metode skanimi perfshin dergimin e paketes TCP me flamujte FIN, URG, PUSH. Atehere nqs hosti eshte ne pritje ne nje porte te caktuar atehere kthen nje pakete RST, nqs jo atehere nuk kthen pergjigje.
Paketat FIN jane normalisht te perdorura per te hedhur posht nje lidhje TCP te realizuar.
Komanda: nmap -sX destinaioni
5. Skanimi NULL
Atehere, dergohet nje paket TCP me asnje flamur te inseruar ne header…Nqs hosti eshte ne pritje ne nje porte te caktuar atehere nuk kthen pergjigje, ne te kundert dergon nje pakete RST.
Komanda: nmap -sN desinacioni
6. Skanimi RPC
Ky lloj skanimi dergon paketa NULL ne menyre qe te kontrolloj nqs nje porte e caktuar eshte port RPC (remote procedure call) apo jo. Gjithashtu percakton programin dhe versionin.
Komanda: nmap -sR destinacioni
7. Skanimi IP Protocol
Ky lloj skanimi krontrollon protokollet te cilat jan te suportuara ne hostin qe po skanojme.
Komanda: nmap -sO destinacioni
8. Skanimi Window
Ky tip skanimi, eshte i ngjashem me ate ACK, shpesh na ndihmon te gjejme portat e hapura, te filtruara , jo te filtruara ne nje sistem.
Perdoret per te pecaktuar dhe OS e hostit, nje list te mir per te ber krahasime mund ta gjejm ne google.
Komanda: nmap -sW destinacioni
9. Skanimi UDP
Per te percakuar nqs nje host eshte ne pritje ne nje porte te caktuar UDP, nje pakete UDP dergohet ne ate porte. Nqs hosti nuk eshte ne pritje atehere nje paket ICMP na dergohet nga hosti.
Perndryshe nqs hosti eshte ne pritje ne nje port te caktuar atehere nuk dergohet asnje lloj pakete.
Komanda: nmap -sU destinacioni
10. Skanimi Idle
Skanimi Idle eshte nje skanim i avancuar, ku paketat te cilat dergojme ne hostin qe skanojme nuk mund te identifikojne sistemin qe po ben skanimin.
Nje host zombi mund te percaktohet per te ber kete skanim. Ky host zombi duhet fillimisht te plotesoj disa kritere qe te na realizohet skanimi.
Ky tip skanimi funksionon duke exploit-uar sekuencat IP ID te gjeneruara ne hostin zombi per te percaktuar portat e hapura ne hostin qe do te skanojme.
Ne fillim sqarojme…C’eshte IPID Cdo pakete ne internet ka nje ID identifikimi nje nr. Shume sisteme operative thjeshte e shtojne kete nr me 1 per cdo pakete qe dergojme.Duke kontrolluar me kujdes IPID, nje person qe po realizon skanimin mund te marri informacion sesa paketa jane derguar nga kontrolli i fundit.
Skanimi kontrollon IPID tek zombi dhe realizon nje lidhje me nje host qe do te skanohet, duke e ber ate te duket sikur vjen nga zombi ![]()
Nqs porta qe skanohet eshte hapur nje SYN/ACK kthehet nga hosti qe po skanohet tek zombi
, dhe ky i fundit ben reset lidhjes (RST) sepse ai nuk ka asnje lidhje me par ne memorje. Nqs porta eshte e mbyllur nje RST dergohet tek zombi dhe asnje paket tj nuk dergohet.
Atehere cfare bejm ne…Ne shkojme e kontrollojme IPID pasi e kemi kontrolluar njeher ne fillim. Nqs ajo eshte rritur me nje atehere porta eshte mbyllur sepse nuk i ka khyr pergjigje hostit qe skanojme dmth hosti ka derguar nje paket RST. Rritjen me e ka ber lidhja qe kemi kryer ne per te marr IPID.
Rasti dyte eshte kur rritet IPID me 2 ne kete rast nje paket eshte derguar tek ne dhe nje paket eshte derguar tek hosti qe po skanojme dmth, hosti i ka derguar nje SYN/ACK dhe zombi eshte pergjigjur me RST
. Ne kete rast kemi porte te hapur, jo 100% e sigurte por ka shume shume mundesi. Rasti 3 eshte kur kemi rritje me me shum se 2 atehere hosti zombi
qe po perdorim nuk eshte per kete pune sepse ka shum trafik.
Komanda: nmap -sI zombi destinacioni
Nje her tj do te trajtojme kohen e dergimit te paketave, fingerprinting, skanime te fshehta si ne rastin e idle ![]()
shpresoj te jete sa me teper informative
.
Hellooooo ![]()
Gabimisht, dhe per kuriozitet isha duke eksploruar pak nje Windows 7 Ultimate, e vertet kane bere goxha pune ne krahasim me versionet e meparshme si stabiliteti etj por mbas instalimit pashe diçka shume interesante.
Porta 5357 qendronte gjith kohes ne Listening (ne TCP dhe UDP) dhe jo nga nje proçes dosido por nga vet sistemi ![]()
Ky vulnerabilitet na lejon qe te terheqim informacione dhe te dergojm informacione te rrezikshme sistemit, diçka e tille eshte e lejuar dhe nga firewalli i windowsit te pakten keshtu tregoi skanimi me nmap dhe lidhja me netcat e me browsera gjithashtu.
Meqenese porta menaxhohet nga System atehere informacionet qe mund te dergohen dhe merren mund te jene kritike.
Per momentin nuk ka zgjidhje nga Microsoft, dhe reportin ta bej ndonjeri nga ju qe po lexoni kete postim.
Nuk e mbajta priv8 pasi heret a vone do dilte, keshtu qe sorry nese po fyej ndonje blackhat.
(Ah, per ata qe po e perdorin keshillohet instalimi i nje firewalli te mire dhe filtrimi i portes, kjo do e zgjidhte problemin.)
Testimi u be ne nje Windows 7 Ultimate, por besoj se dhe versionet e tjera duhet te jene vulnerabel.
Ky vulnerabilitet mund te perdoret gjithashtu per te explotuar aplikacione qe gjenden mbas firewallit te instaluara ne sistem.
Sic e kemi trajtuar edhe ne tema te tjera ne AW, edhe ne kete teme do te trajtojm FOOTPRINTING.
Hapi i pare dhe i rendesishem per nje hacker dhe sigurisht e rendesishme te studjohet nga nje Security IT. Pikerisht ky eshte dhe qellimi i ksaj teme te shfaqim disa menyra te footprinting dhe menyren se si te parandalojme ato. Eshte e rendesishme per nje person qe merret me siguri te ket mentalitetin e nje hackeri. Footprinting eshte procesi i mbledhjes se datave fillestare per nje x target duke perdorur metoda te pranishme ne publik. Ky informacion mund te perdoret per te kuptuar me mire arkitekturen e network-ut te viktimes.
Motoret e kerkimit - mund te perdoren per te mbledhur informacione te rendesishme. Celsi qendron ne menyren se si kerkojme ne databasen e ketyre motoreve. Psh disa kompani kerkojne ne internet profesionista ne fushe te sigurise, kjo tregon se dicka nuk shkon me rrjetin e tyre. Ky fakt e ndihmon nje sulmues ku te fokusohet. Pra e rendesishme eshte qe informacione te tilla, kerkesa te tilla te mos behen ne publik. Me ane te motoreve mund te gjejme dhe log file te cilat jane lene ne menyre te pavullnetshme ne web root te web server-it. Psh.
“Index of” log_file , ky log_file mund te jete: syslog, maillog, access_log, error_log etj…
Query te tilla mund te perdoren ne motoret e kerkimit dhe informacione sensitive per hostin tuaj mund te ekspozohen. Eshte mir qe te kujdeseni per file te tilla. Nqs jeni administrator ne linux atehere eshte mir te kerkoni per ekzistencen e fileve log ne web root me kete komand ne shell:
ls -alR “web-root” | grep log – ne vend te web-root vendosni adresen ku ndodhet ne sistemin tuaj. (pa thonjeza)
Regjistruesit e domain-eve
Nje organizate mund te kete disa rrjeta ne vende te ndryshme. Te gjejme domaine te lidhur me nje organizate te caktuar realizohet me ane te pyetjeve “whois”. Shume regjistrues te domainve kane nje server publik “whois” me porte 69 ne te cilen klientet mund te lidhen ne menyre per te marr informacion mbi ato qe kane domainet. Informacioni i kthyer nga kerkesat whois permban dhe POC, DNS te cilat jane te rendesishme per te percaktuar network-un e viktimes. Domainet regjistrohen nga regjistrues te ndryshem, kshu qe si fillim na duhet te kerkojme regjistruesin e domainit dhe me pas te bejme kerkes mbi xkompani.com ne serverin regjistrues. Nje server i mir publik nga te fillojm punen eshte whois.crsnic.net Atehere komanda qe duhet ekzekutuar ne shell eshte:
whous -h whois.crsnic.net xkompani.com
kjo do te na shfaqi te dhena te tilla:
Domain Name: xkompani.com
Registrar: whois.serveriregjistrues.com
…
…
Name Server:
NS1.XKOMPANI.COM
Name Server: NS2.XKOMPANI.COM
…
…
Tani qe kemi serverin qe ka regjistruar domain, bejm perseri kerkese por tashme ne serverin qe gjetem. Kshu qe do kemi:
whois -h whois.serveriregjistrues.com xkompani.com
Tani do na shfaqen info mbi personin qe ka bler domain (ownerin)
Emri Mbiemri Emaili Adresa Nr i tel … Kontakt administrativ .. . NS1.serveri.com 18.0.0.1 NS2.serveri.com 192.168.1.1
Vazhdojme… Gjithashtu ne database mund te kerkohet edhe me keyword. Dmth mund te perdorim nje query te till:
whois -h whois.crsnic.net “albanianwizard.”
dhe do te shfaqen te gjitha domainet qe jan kshu: albanianwizard.org albanianwizard.com albanianwizardblabla.com e kshu me rradh…
Regional Internet Registries
E ngjashme me domainet, organizatat mund te keni edhe blloqe Ip Adresash. Keto adresa afishohen ne database te medha per zona te ndryshme te globit. Serveri per europen eshte whois.ripe.com Ne te njejten menyre do te bejm perseri whois per blloqe IP apo kerkojme per nje organizat te caktuar. Do te na afishohen info te cilat mund te jene te nevojshme.
DNS Reverse – Lookups
DNS reverse lookup nevojitet per te kaluar nga nje IP ne HOST dhe nese bejme ne shell:
host 18.0.0.3 (pa lidhje)
mund te na shfaqen info te rendesishme mbi ekzistencen e ndonje lloj serveri.
Mail Exchange
Per te gjetur hostname-t dhe IP-te e mail serverave te nje organizate perdorim komanden dig mx ne shell:
dig mx xkompani.com
Do te na shfaqet mail serveri ne formen mail.xkompani.com (nje gje e till).
Zone Transfers
Nje transferim ndodh kur nje DNS server dytsor kontakton me nje primar ne menyre qe te bej update e informacionit te asaj zone. Per te realizuar nje zone transfer per nje organizat te caktuar na duhet IP e DNS server-it. Kete gje mund ta realizojme thjesht me whois, dhe nqs na jepet ne hostname atehere perdorim komanden qe pershkruam me larte. Tani qe kemi dhe DNS, ekzekutojme komanden ne shell:
host -l domaini IP_DNS
Do na shfaqen:
mail.xkompani.com has address 192.168.1.10
Using domain server:
Name: 10.0.0.1
Address: 10.0.0.1#53
firewall.xkompani.com is an alias for vpn.xkompani.com
Using domain server:
Name: 10.0.0.1
Address: 10.0.0.1#53
vpn.xkompani.com has address 192.168.1.9
Using domain server:
Name: 10.0.0.1
Address: 10.0.0.1#53
Pra do te na shfaqen hostname dhe me IP perkatese ne network te ketyre serverave Menyra se si ti ndalojme Zone Transfer:
* Nuk duhet te lejojme hoste te pa autorizuara te bejne transferime nga DNS juaj.
* Perderisa transferimet behen ne porten TCP 53, konfiguroni firewall qe te bllokoj lidhjet me te.
* Eshte nje ide e mire qe te instalojme nje DNS server per hostet e intranetit qe te mos jete i aksesueshem nga jashte.
Traceroute
Me ndihmen e kerkesave te mesiperme qe realizuam, IP adresat mund te merren lehte po te njohim emrin e nje organizate qe na intereson. Perderisa paketat per te arritur ne destinacion kalojn ne shtegje te ndryshme eshte mir qe te mesojme per gateway-t qe kalon midis nesh dhe hostit destinues. Per te realizuar kete na hyn ne pun komanda ne shell traceroute:
traceroute 10.0.0.1
Ky program funksionon duke derguar paketa UDP ne porta te larta tek destinacioni me vleren TTL (Time to Live) 1 fillimisht dhe qe shtohet me 1 per cdo paket pasardhese. Gateway-t e ulin TTL me 1 perpara se ta bejn forward ate. Nqs TTL eshte 0 atehere ajo i kthen nje paket ICMP Time To Live Exceeded ne hostin qe dergoi kerkesen fillestare. Ne kete menyre funksionon ky program derisa i ben route te gjith getway-ve. Me parametrin -p mund te ndryshojme porten per te anashkaluar firewall qe mund te ken Gatway-t. Menyra per te parandaluar traceroute:
* Konfigurojme firewall ne menyre qe te thyej paketat qe dergohen ICMP Time to Live Exceeded”
* Konfiguroni firewall ne menyre qe te lejoj vetem ato paketa UDP hyrese te cilat vijn nga porta 53 (DNS) dhe nga IP specifike.