У овом водичу ћу вас научити извршите ТЦП СИН портове за скенирање, за ово ћу користити Питхон са књижаром Сцапи.
Да бисте инсталирали Питхон, погледајте следећи водич. А да бисте инсталирали Сцапи библиотеку за Питхон, кликните на следеће дугме:
ПРЕУЗМИ СКИПИ БИБЛИОТЕКУ
Знајући шта је СИН сцанСИН сцан је техника скенирања позната и као отворено скенирање, коју хакери користе за одређивање статуса портова без успостављања потпуне везе. Такође је могуће користити ову технику за извођење ДДОС напада (напади ускраћивања услуге).
БелешкаНамењен је поучавању како ова врста програма ради и да можете тестирати своје портове, али не и да их злоупотребљавате.
Почнимо са скенером портова.
Корак 1
Прво што урадимо је увоз библиотека које су нам потребне.
увоз логгинг.гетЛоггер ("сцапи.рунтиме"). сетЛевел (логгинг.ЕРРОР) из сцапи.алл импорт *Увозимо сцапи у наш програм, а такође сам увезао и евидентирање како нам не би показао неугодно упозорење ако немамо ИПв6 адресу.
Корак 2
Корак који служи за покретање наших променљивих.
цонф.верб = 0 портлист = лист (ранге (20,130)) хост = "192.168.0.1"Прва инструкција овог корака чини малу конфигурацију тако да нам не приказује Сцапи информације на екрану. У наставку додајемо само портове и хост, где ћемо извршити радњу, била би боља опција да је додате као параметре приликом извршавања програма (ако сте заинтересовани да је додате свом програму, погледајте ову везу) , за олакшавање програма и скраћивање овде је згодно.
Корак 3
Овај корак је срж програма.
принт ("Скенирање ИП портова:", хост) за порт у портЛист: соурцепорт = РандСхорт () пакет = ИП (дст = хост) / ТЦП (спорт = изворни порт, дпорт = порт, заставе = "И") одговор = ср1 ( пацкет, тимеоут = 2) иф ("НонеТипе" у стр (типе (респонсе))): пасс елиф (респонсе.хаслаиер (ТЦП) и респонсе.гетлаиер (ТЦП). флагс == 0к12): п = ИП (дст = хост) / ТЦП (спорт = соурцепорт, дпорт = порт, флагс = "Р") рст = ср (п, тимеоут = 1) три: сервице = соцкет.гетсервбипорт (порт) осим: сервице = "?" принт ("[ОПЕН]", порт, "->", услуга)Овај део је где скенирање портова почиње, показујемо поруку тако да знамо да ради, и кроз фор пролазимо кроз сваки порт. Користимо функцију РандСхорт () тако да пакет који се шаље сваки пут потиче са другог порта.
Конструкција пакета се врши помоћу другог упутства из фор. Конфигуришемо податке који нас занимају, одредишни ИП за ИП слој, изворне и одредишне портове и заставице за ТЦП, у овом случају то је СИН скенер, па постоји С, мењајући овај параметар можете да урадите други тип скенера, попут ФИН скенирања или скенирања прозора (али имајте на уму да ћете морати да промените доле наведене услове).
Функција ср1 је задужен за слање пакета. Морамо га проследити као аргумент који је пакет креирао (овај пут је креиран директно овде), ау овом случају сам поставио максимално чекање од 2 секунде, можете га променити, само ако то не наведете, ваш програм може постати бесконачан. Резултат слања пакета се чува у променљивој одговора.
У условима које нас занима да ли имамо одговор и да ли има активиране заставице СИН и АЦК (зато користимо 0к12), ако не користимо пре анд респонсе.хаслаиер (ТЦП), ако има нема слој биће избачен изузетак. Ако је овај услов испуњен, послаћемо поруку са активном заставицом РСТ да прекинемо везу. Део од покушај да ухватиш можете игнорисати, све што ради је уклањање услуге која се користи на том порту да прикаже више информација на екрану (функција соцкет.гетсервбипорт (порт) ако је то познати порт, он ће вратити информације, ако не, избациће изузетак, а ако се то догоди, изабрао сам да ставим ¿? као „информација“, као индикација да није познато.)
Па, завршили смо, на следећој слици можете видети излаз извршења скенера:
Испод сам ставио комплетан код:
импорт логгинг логгинг.гетЛоггер ("сцапи.рунтиме"). сетЛевел (логгинг.ЕРРОР) # Не приказуј упозорење са сцапи.алл импорт * цонф.верб = 0 # Не приказуј податке на екрану листПортс = лист (ранге (ранге ( 20,130)) # Листа портова за скенирање хост = "192.168.0.1" # Овде ИП адреса коју желите да скенирате штампа ("Скенирање ИП портова:", хост) за порт у ПортЛист: соурцеПорт = РандСхорт () пакет = ИП ( дст = хост) / ТЦП (спорт = соурцепорт, дпорт = порт, флагс = "С") респонсе = ср1 (пакет, тимеоут = 2) иф ("НонеТипе" у стр (типе (респонсе))): пасс елиф (респонсе .хаслаиер (ТЦП) и респонсе.гетлаиер (ТЦП) .флагс == 0к12): п = ИП (дст = хост) / ТЦП (спорт = изворни порт, дпорт = порт, заставе = "Р") рст = ср (п, тимеоут = 1) три: сервице = соцкет.гетсервбипорт (порт) осим: сервице = "?" принт ("[ОПЕН]", порт, "->", услуга)[цолор = ргб (169,169,169)] Потпуни код [/ цолор]
БелешкаОвај скенер може споро провјеравати многе портове, па је у тим случајевима добра идеја користити „мулититхреадинг“ или „мултипроцессинг“. Такође можете скенирати на друге начине, користећи нмап унутар Питхона или користећи сирове утичнице.
А ако желите да преузмете код, прилажем вам поштански број:
Код СинСцан.зип 644 бајта 254 преузимања
Да ли вам се допао и помогао овај водич?Можете наградити аутора притиском на ово дугме да бисте му дали позитиван поен