الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشروع سكربت فحص منافذ السرفر Port Scanner

رائج
بدأه عامر الشابي في 2 مارس 2014 · 61 رد · 2,774 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#26

حسنا قم بتجريب السكربت ! ! ! ! ! 

Untitled-18.jpg

#27

عفوا اذا تقصد المسافة البادئة في الشرط بعتذر من السرعة

	port = [options.tgtport]+args
	if (tgthost != None) and (port != None):
		for tgtport in port:
			scanop(tgthost, int(tgtport))
	else:
		print '[-] You must specify a target host and port.'
		exit()

تم تعديل هذه المشاركة بواسطة the.scorpion في 8 مارس 2014 في 18:00

#28

لا لاأقصد المسافة البادئة فإن المسافة صحيحة

 

إجمع أجزاء السكربت وقم بتجريبه :)

Untitled-18.jpg

#29
اقتباس

python sca.py -H python.org -p 21 25 80

Please wait, scanning remote host 140.211.10.69

[-]21/tcp closed

Please wait, scanning remote host 140.211.10.69

[-]25/tcp closed

Please wait, scanning remote host 140.211.10.69

[+]80/tcp open http

 

 

ملاحظة قمت بتحويل البور الى عدد صحيح عند التجربة

scanop(tgthost, int(tgtport))
#30

ألم تلاحظ مشكلة؟

 

أكتب الكود النهائي الذي عندك هنا

Untitled-18.jpg

#31

#-------------------------------------------------------------------------------

# Name: PortScan

# Version: 1.0 Beta

# Copyright: arabteam2000-Python section

#-------------------------------------------------------------------------------

import socket

import optparse

import sys

import time

def ScanTg(tgthost, tgtport):

try:

connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

connection.connect((tgthost, tgtport))

connection.settimeout(15)

print "[+]%d/tcp open %s" %(tgtport, socket.getservbyport(tgtport))

connection.close()

except socket.timeout:

print "[+]%d/tcp filtered" %tgtport

except:

print "[-]%d/tcp closed" %tgtport

def scanop(tgthost, tgtport):

try:

IP = socket.gethostbyname(tgthost)

except:

print "[-] Cannot resolve"

try:

print "Please wait, scanning remote host %s" %IP

ScanTg(IP , tgtport)

except socket.gaierror:

print "Hostname could not be resolved. Exiting"

def main():

parser = optparse.OptionParser("usage%prog -H <target host> -p <target port>")

parser.add_option('-H', dest='tgthost', type='string', help='specify target host')

parser.add_option('-p', dest='tgtport', type='string', help='specify target port')

(options, args) = parser.parse_args()

tgthost = options.tgthost

port = [options.tgtport]+args

if (tgthost != None) and (port != None):

for tgtport in port:

scanop(tgthost, int(tgtport))

else:

print '[-] You must specify a target host and port.'

exit()

if __name__ == '__main__':

main()

#32

ما المشكلة التي تتوقعها؟؟؟

#33

قارن الفحص الذي قمت به انا والفحص الذي قمت به بالسكربت الذي وضعته أنت علما أني ما قمت بتغييره فقط هو في الدالة الأولة التي ستجلب إسم خدمة التي يعمل عليها البرنامج

ملاحظة:أنا حذفت جملة Please......لأنها تأتي في غير موضع وسنعدلها فما بعد

python 2.py -H arabteam2000-forum.com -p 21 25
[+]21/tcp open  :   220 (vsFTPd 2.2.2)
[-]25/tcp closed
python 4.py -H arabteam2000-forum.com -p 21 25
[+]21/tcp open ftp
[+]25/tcp open smtp

Untitled-18.jpg

#34

ما سبب الاختلاف عند فحص البورت 25 ؟؟؟

قمت بالفحص وكانت النتائج

[+]21/tcp open ftp[-]25/tcp closed

تم تعديل هذه المشاركة بواسطة the.scorpion في 9 مارس 2014 في 02:11

#35

إرجع إلى النسخة الأولة من الدالة ScanTg 

 

سنتحقق الآن هل البورت مفتوح أو لا

 

كيف يمكن ذلك؟

 

سنرسل رسالة على الخدمة إذا كان البورت مفتوح سنستقبل من البورت Data بيانات تحمل إسم البرنامج التي يعمل عليها البورت  وإن كان الخدمة

 

مخفية سيرد عليك البرنامج فقط ان بورت مفتوح 

 

قك بذلك عبر إستخدام الدالة send() والدالة recv() إبحث عنها وقم بالتجريب وغدا ان شاء الله سأكتب لك الدالة كيف ستكون

 

بالتوفيق

Untitled-18.jpg

#36

الكود النهائي للسكربت النسخة 1.1 أي إضافات أتركها للنسخة القادمة

#-------------------------------------------------------------------------------
# Name:        PortScan
# Version:     1.1
# Copyright:   arabteam2000-Python section
#-------------------------------------------------------------------------------
import socket
import optparse
import sys
def ScanTg(tgthost, tgtport):
    try:
        connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        connection.connect((tgthost, tgtport))
        connection.send('Hello wolrd')
        result = connection.recv(1024)
        print "[+]%s/tcp open  " %tgtport
        print "[+]" + str(result)
        connection.close()
    except:
        print "[-]%s/tcp closed" %tgtport

def scanop(tgthost, tgtport):
    try:
	    IP = socket.gethostbyname(tgthost)
    except:
        print "[-] Cannot resolve"
    try:
        ScanTg(IP , tgtport)
    except socket.gaierror:
        print "Hostname could not be resolved. Exiting"
def main():
    parser = optparse.OptionParser("usage%prog "+\
    "-H <target host> -p <target port>")
    parser.add_option('-H', dest='tgthost', type='string', \
    help='specify target host')
    parser.add_option('-p', dest='tgtport', type='string', \
    help='specify target port')
    (options, args) = parser.parse_args()
    tgthost = options.tgthost
    port = [options.tgtport]+args
    if (tgthost != None) and (port != None):
        for tgtport in port:
            scanop(tgthost, int(tgtport))
    else:
        print '[-] You must specify a target host and port.'
        exit()
if __name__ == '__main__':
    main()

لا ادري لماذا لا يشارك أحد ؟ !

Untitled-18.jpg

#37
اقتباس

 

لا ادري لماذا لا يشارك أحد ؟ !

ليس هنا فقط بل في منتدى البايثون كله

#38

حسنا لا تهتم

 

في النسخة الثانية 1.2 سنقوم بتطوير السكربت,أنا أملك أفكار لكن هذه المرة فالتكن أفكارك  إذا كان لديك أفكار أو مهام جديدة

 

تريد إضافتها في السكربت فأكتبها ودعنا نبدأ في برمجتها :)

تم تعديل هذه المشاركة بواسطة عامر الشابي في 9 مارس 2014 في 22:08

Untitled-18.jpg

#39

تعديل السكربت ليقوم بفحص البورتات في مجال يحدده المستخدم مثال (20-1024)

 

قمت بكتابت دالة جديد لهذا الامر

def scan(tgthost, port):
    if (tgthost != None) and (port != None):
        if '-' in port[0]:
            port = port[0].split('-')
            for tgtport in range(int(port[0]), int(port[1])):
                scanop(tgthost, int(tgtport))
        else:
            for tgtport in port:
                scanop(tgthost, int(tgtport))
    else:
        print '[-] You must specify a target host and port.'
        exit()

تم تعديل هذه المشاركة بواسطة the.scorpion في 9 مارس 2014 في 22:35

#40

لما لا تدع المستخدم يختار الإثنين معا

 

إن كان يريد فحص عدة بورتات هو يحددها فله ذلك

 

وإن كان يريد فحص مجال ما فله ذلك أيضا

Untitled-18.jpg

#41

وأيضا لا داعي لإنشاء دالة أخرى فقط سنقوم بتعديلات بسيطة على الدوال المكتوبة

Untitled-18.jpg

#42
اقتباس

 

لما لا تدع المستخدم يختار الإثنين معا

 

إن كان يريد فحص عدة بورتات هو يحددها فله ذلك

 

وإن كان يريد فحص مجال ما فله ذلك أيضا

هذا ما قصدته انظر الى الكود

	if (tgthost != None) and (port != None):
		if '-' in port[0]:
			port = port[0].split('-')
			for tgtport in range(int(port[0]), int(port[1])+1):
				scanop(tgthost, int(tgtport))
		else:
			for tgtport in port:
				scanop(tgthost, int(tgtport))
	else:
		print '[-] You must specify a target host and port.'
		exit()
#43

حسنا جرب الكود مثلما وضعته هنا أنا لم أقم بأي تعديل فقط نسخت الصيغة والصقتها :)

#-------------------------------------------------------------------------------
# Name:        PortScan
# Version:     1.1
# Copyright:   arabteam2000-Python section
#-------------------------------------------------------------------------------
import socket
import optparse
import sys
def ScanTg(tgthost, tgtport):
    try:
        connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        connection.connect((tgthost, tgtport))
        connection.send('Hello wolrd')
        result = connection.recv(1024)
        print "[+]%s/tcp open  " %tgtport
        print "[+]" + str(result)
        connection.close()
    except:
        print "[-]%s/tcp closed" %tgtport

def scanop(tgthost, tgtport):
    try:
	    IP = socket.gethostbyname(tgthost)
    except:
        print "[-] Cannot resolve"
    try:
        ScanTg(IP , tgtport)
    except socket.gaierror:
        print "Hostname could not be resolved. Exiting"
def main():
    parser = optparse.OptionParser("usage%prog "+\
    "-H <target host> -p <target port>")
    parser.add_option('-H', dest='tgthost', type='string', \
    help='specify target host')
    parser.add_option('-p', dest='tgtport', type='string', \
    help='specify target port')
    (options, args) = parser.parse_args()
    tgthost = options.tgthost
    port = [options.tgtport]+args
    if (tgthost != None) and (port != None):
	    if '-' in port[0]:
			port = port[0].split('-')
			for tgtport in range(int(port[0]), int(port[1])+1):
				scanop(tgthost, int(tgtport))
		else:
		   	for tgtport in port:
			   	scanop(tgthost, int(tgtport))
	 else:
	     print '[-] You must specify a target host and port.'
		exit()
if __name__ == '__main__':
    main()

جرب

تم تعديل هذه المشاركة بواسطة عامر الشابي في 9 مارس 2014 في 23:12

Untitled-18.jpg

#44
اقتباس

 

حسنا جرب الكود مثلما وضعته هنا أنا لم أقم بأي تعديل فقط نسخت الصيغة والصقتها :)

نفس الكود عندي

عند يتم اي تعديل هنا اقوم بتعديل الكود عندي :)

#45

ما أطلبه منك فقط هو تجريب الكود وإن كان هناك خطأ فإطبعلي ما هو الخطأ وإن لم يكن أكتبلي الكود لأنه حدث لي خطأ واريدك إكتشافه

Untitled-18.jpg

#46

لا يوجد اخطاء سوى المسافة البادئة في الشرط وتحديدا في else و exit()

#-------------------------------------------------------------------------------
# Name:        PortScan
# Version:     1.1
# Copyright:   arabteam2000-Python section
#-------------------------------------------------------------------------------
import socket
import optparse
import sys
def ScanTg(tgthost, tgtport):
    try:
        connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        connection.connect((tgthost, tgtport))
        connection.send('Hello wolrd')
        result = connection.recv(1024)
        print "[+]%s/tcp open  " %tgtport
        print "[+]" + str(result)
        connection.close()
    except:
        print "[-]%s/tcp closed" %tgtport

def scanop(tgthost, tgtport):
    try:
	    IP = socket.gethostbyname(tgthost)
    except:
        print "[-] Cannot resolve"
    try:
        ScanTg(IP , tgtport)
    except socket.gaierror:
        print "Hostname could not be resolved. Exiting"
def main():
    parser = optparse.OptionParser("usage%prog "+\
    "-H <target host> -p <target port>")
    parser.add_option('-H', dest='tgthost', type='string', \
    help='specify target host')
    parser.add_option('-p', dest='tgtport', type='string', \
    help='specify target port')
    (options, args) = parser.parse_args()
    tgthost = options.tgthost
    port = [options.tgtport]+args
    if (tgthost != None) and (port != None):
	    if '-' in port[0]:
			port = port[0].split('-')
			for tgtport in range(int(port[0]), int(port[1])+1):
				scanop(tgthost, int(tgtport))
	    else:
		   	for tgtport in port:
			   	scanop(tgthost, int(tgtport))
    else:
	     print '[-] You must specify a target host and port.'
	     exit()
if __name__ == '__main__':
    main()

تم تعديل هذه المشاركة بواسطة the.scorpion في 9 مارس 2014 في 23:41

#47

عفوا الخطأ من المحرر الذي أستعمله

 

هل من أفكار؟

Untitled-18.jpg

#48
اقتباس
هل من أفكار؟

حاليا لا يوجد

#49

ألا ترى من أن نحسن من السكربت من ناحية سرعة التنفيذ

 

عبر إستخدام تقنية Threading , سأختتم هذا السكربت بإستخدام مكتبة Thread لعمل ذلك

 

سأدعك تحاول في ذلك حتى 48 الساعة قادمة لأني سأغيب لأسباب محتمة

 

بالتوفيق

Untitled-18.jpg

#50

حسنا واتمنى لك التوفيق

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…