Tuesday 20 September 2011

බලලුන් ලවා කොස්ඇට බාවන හැටි (idle scan)

අර නිදාගන උන්නු බලල්තඩියගෙ අත පාවිච්චි කරලා ගිනිගොඩෙන් කොස්ඇට එලියට ගත්තු කතාව අපි හැමෝම දන්නවනෙ නේද? ඔන්න ඔය විදිහට ජාලයක නිදාගෙන ඉන්න (මේ කියන්නෙ sleep mode තියන පරිගනකයක් නෙමේ හොදද, on කරලා නමුත් වැඩක් කරන්නෙ නැතිව නිදි කිරන එකක්) පරිගණකයක් භාවිතා කරලා වෙනත් පරිගනකයක විස්තර හොයාගන්න පුලුවන්. කෙනෙක් අහයි මොකටද කරදර වෙන්නෙ? කෙලින්ම අදාල පරිගණකය scan කලානම් ඉවරයිනෙ කියලා. උත්තරේ අර කතාවෙ බලලගෙ අත පාවිච්චි කරපු හේතුවම තමා. මොනාහරි අවුලක් උනොත් අත පිච්චෙන්නෙ (හෝ මාට්ටුවෙන්නෙ) නිදාගන උන්න බලලගෙ. වැඩේ පටන්ගන්න නිදාගෙන ඉන්න බලළක් හොයාගන්න ඔනා. මේක චුට්ටක් විතර අමාරු වැඩක්. මොකද අද තියන මෙහෙයුම් පද්ධති බොහොමයකම firwall එකක් පිහිටුවල එනවනෙ. අපි කරන්න යන වැඩට firewall එක off කරපු හරි නැත්තටම නැති හරි පරිගණකයක් හොයාගත්තනම් වැඩ පහසුයි. වැඩ සාර්ථකවම කරගන්න පුලුවන් network printer එකක්‌ තියන ජාලයක නම්. මොකද සාමාන්‍යයෙන් printout ගැනෙන්නෙ යලට මහට නෙ.
වැඩේ කරන්නෙ මෙහෙමයි. අහලා තියනවද 3 way handshake කියන කතාව? එකිනෙකට තොරතුරු හුවමාරු කරගන්න ඕනා device දෙකක් කතාව පටන්ගන්නෙ ඔහොම. කතාව පටන්ගන්න ඕනා කෙනා අනිත් පැත්තට යවනවා පැකට් එකක් syn කියන flag එක සහිතව. හරියට කතාකරන්න ඕනා කෙනාගෙ දොරට තට්ටු කරනවා වගේ. අනිත් පැත්තෙන් කතාව පටන්ගන්න කැමතිනම් syn-ack කියන flag එක සහිත පැකට් එකක් එවනවා ආපස්සට, හරියට "ආහ් කොහොමද" කියන්නා වගේ. කතාව පටන්ගත්ත පැත්තෙන් ආපස්සට ack කියන flag එක සහිතව පැකට් එකක් එවවට පස්සෙ දෙන්නට ඇතිවෙනකම් ඕපදූප කතාකරන්න පුලුවන්. වැඩේ හරියට වෙනකොට පිලිවෙල ඔහොමයි.
tcp header

ip header


හිතන්න ඔයා syn පැකට් එකක් යවන්නෙ නැතිව (දොරට තට්ටු කරන්නෙ නැතිව) අනිත් පැත්තන් syn-ack පැකට් එකක් ("අහ් කොහොමද" කියලා පැකට් එකක්) ආවා කියලා? ඇත්තට එහෙම දෙයක් උනොත් අපි ඉතින් කරන්නෙ ගනන්ගන්නෙ නැතුව නෑහුනා වගේ ඉන්න එකනෙ. නමුත් 3 way handshake එකේ පිලිවලට අනුව අනිත් පැත්තට පැකට් එකක් යවන්න ඕනා rst කියන flag එක සහිතව, හරියට "ඔයා එක්ක මම කතාකරලා ඉවරයි" හෝ "මට ඔයා එක්ක කතාවක් නෑ" කියන්නා වගේ. අදලාල පරිගණකය firewall එකක් සහිතනම් (හෝ අදලා port එක වහලා නම්) පරිගණකය කරන්නෙත් ඇහුන්නෑ වගේ ඉන්න එක. ඔන්න ඔය කතන්දරේ භාවිතා කරලා තමා මේ idle scan එක කරන්නෙ.


අර උඩ තියන පින්තූරෙ id කියලා තියන කොටස පේනවා නේද? ඔය ඉලක්කම භාවිතා කරලා තමයි යවන පැකට් අනිත් පැත්තෙදි හරි පිලිවෙලට එකතු කරන්නෙ. device එකක් පැකට් එකක් යවන හෝ ලබාගන්න හැම සැරේම ඔය ඉලක්කමට එකක් එකතුවෙනවා. ඔය කතාවයි අර කලින් කතාකරපු 3 way handshake කතාවයි එකතු කරලා මෙන්න මෙහෙම දෙයක් කරන්න පුලුවන්. නිදාගන ඉන්න පරිගණකයෙන් ඔයාට syn පැකට් එකක් ආව වගේ ඔයා එයාට යවනවා syn-ack පැකට් එකක්. එතකොට ඒ පැත්තෙන් rst පැකට් එකක්‌ ආවා කියන්නෙ වැඩේ ගොඩ. (මුකුත් ආවෙ නෑ කියන්නෙ ඒ පැත්තෙ firewall එකක්‌ දාලා නැතිනම්‌ port එක වහලා). ඔය rst flag එක සහිතව එහෙන්‌ එවන පැකට්‌ එකේ ip id එක 2538 කියලා හිතමු. ඔයා එයාට ආපහු syn-ack එකක් යැවුවොත් අනිත් පැත්තට එන rst පැකට් එකේ ipid එක 2540 වෙන්න ඕනා. (ඒ පරිගණකය ඇත්තටම නිදාගනනම්‌ ඉන්නෙ. වෙන කවුරුහරි මෙයා එක්ක කතා කරනවනම්‌ ip id එක එකවිදිහට තියෙන්නෙ නෑ කියලා තේරෙනවා නේද?) මතකයි නෙ මම කලින් කිව්වා පැකට් එකක් ලැබුනමත් යැව්වමත් ඔය ip id එකට එකක්‌ එකතුවෙනවා කියලා? අපි කරන්නෙ scan කරන්න ඕනා පරිගණකයට syn-ack පැකට්‌එකක් යවනවා අර නිදාගන ඉන්න පරිගණකයෙ ip එක source address එක විදිහට spoof කරලා. ඒ පැකට්‌ එක යවපු port එක විවෘත නම් එයා rst පැකට එකක් යවනවනෙ ආපස්සට. නමුත් පැකට් එකේ source එක විදිහට තියෙන්නෙ අර නිදාගෙන ඉන්න පරිගණකයෙ ip එක නිසා අපි scan කරන පරිගණකයෙන් rst එක යවන්නෙ නිදාගන ඉන්න පරිගණකයෙ ip එකට. අපිට පුලුවන් ආයෙත් වතාවක් නිදාගෙන ඉන්න පරිගණකයට syn-ack එකක් යවලා එයාගෙ ip id එක බලාගන්න. අපිට අන්තිමට මතක තිබුන ip id එකට 2ක්‌ එකතුවුනාම ලැබෙන අගය සහිතව rst එකක් ලැබුනා කියන්නෙ අපි scan කරන පරිගනකයට කලින් යවපු පැකට්‌ එකේ සදහන් කරපු port එක වහලා. අන්තිමට මතක තිබුන ip id එකට 3ක්‌ එකතුවුනාම ලැබෙන අගය සහිතව rst එකක් ලැබුනා කියන්නෙ target machine එකේ අදාල port එක විචෘතයි. ඔය විදිහට port එකින් එකට syn-ack පැකට් යවලා සද්ද නැතිව scan කරගන්න පුලුවන්.

ඔය තියෙන්නෙ ඔය කතාබහ වෙනවා wireshark දැකපු හැටි.

nmap ගැන කතාකලා මතකයි නේද? ඔය වැඩේ බොහොම ලේසියෙන් කරගන්න පුලුවන් nmap භාවිතා කරලා.

# nmap -sI < නිදාගන ඉන්න පරිගණකයෙ ip එක > < scan කරන්න ඕනා පරිගණකයෙ ip එක > -Pn

ඔය -Pn කියන switch එකෙන් කියන්නෙ "පව්කාරයෙක් වෙන්න" :P එහෙමත් නැතිනම් ping කරන්න එපා කියන එක. මොකද ping කියන්නෙ හරි සද්ද බද්ද දාන පුද්ගලයෙක්. ;). මේ විදිහට කරන scan එකකට අම්බානක් වෙලා යනවා, ඇයි port එකින් එක ping කරන්නෙත් නැතිව, හොරා වගේ 0 ඉදලා 65535ක් වෙනකන් යන්න එපෑ. තමන් target කරන්නෙ මොන මොන ports ද කියලා අවබෝධයකින් scan කරනවා නම් වැඩේ වේගවත් කරගන්න පුලුවන් මේ මේ ports විතරක් scan කරන්න කියලා. අර ඉගත විධානෙ අගට -p20, 21, 80, 443 චිදිහට ඕනා ports ටික දෙන්නයි තියෙන්නෙ. ආපහු වෙලාවක එනකම් ආයිබෝං කිව්වා.

මුලින්ම තියන ip පින්තූර දෙක ගල් කලේ මෙතනින් http://nmap.org/book/tcpip-ref.html'