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

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

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

قبل ان نبدا قم بفحص البورت 80

#52

عند حدوث خطا في

	connection.send('Hello World')
	result = connection.recv(1024)

فانه يطبع البور مغلق لذا اقترح تعديل بسيط على الدالة الاولى

def ScanTg(tgthost, tgtport):
	try:
		connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
		connection.connect((tgthost, tgtport))
		print "[+]%s/tcp open  " %tgtport
		try:
			connection.send('Hello World')
			result = connection.recv(1024)
			print "[+]" + str(result)
		except:
			pass
		connection.close()
	except:
		print "[-]%s/tcp closed" %tgtport
#53

اجريت بعض التعديلات على السكربت ما رايك ؟؟؟

#-------------------------------------------------------------------------------
# Name:        PortScan
# Version:     1.1
# Copyright:   arabteam2000-Python section
#-------------------------------------------------------------------------------
import socket
import optparse
import sys
import threading

class PortScan(threading.Thread):
    def __init__(self, IP, tgtport ):
        threading.Thread.__init__(self)
        self.tgtport = tgtport
        self.IP = IP

    def run(self):
        try:
            connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            connection.connect((self.IP, self.tgtport))
            try:
                connection.send('Hello World')
                result = connection.recv(1024)
                print "[+]%s/tcp open  " %self.tgtport +'  '+ str(result)
            except:
                print "[+]%s/tcp open  " %self.tgtport
            connection.close()
        except:
            print "[-]%s/tcp closed" %self.tgtport

def scanop(tgthost, port):
    try:
        IP = socket.gethostbyname(tgthost)
        port1, port2 = port[0].split('-')
        for tgtport in range(int(port1), int(port2)+1):
            scan = PortScan(IP, int(tgtport))
            scan.start()    
    except socket.error:
        print "[-] Cannot resolve"
    except:
        for tgtport in port:
            scan = PortScan(IP, int(tgtport))
            scan.start()

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
    try:
        scanop(tgthost, port)
    except:
        print '[-] You must specify a target host and port.'
        exit()
        

if __name__ == '__main__':
    main()

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

1
#54

جميل ما قمت به الآن السكربت يعمل بطريقة سريعة

 

إلى هنا ننهي المشروع,تستطيع الآن التلاعب في إرسال الحزم لتخطي حمايات التي سيصطدم بها البرنامج عند الفحص

 

يمكنك أيضا إستخدام مكتبة Nmap

 

تشرفت بالعمل معك ونلتقي في مشروع آخر إن شاء الله

Untitled-18.jpg

#55

وانا تشرفت بمعرفتك والعمل معك

تم تعديل هذه المشاركة بواسطة the.scorpion في 12 مارس 2014 في 19:26

#56

المشكلة من الترمينال ليست من البرنامج

 

ولي شرف أنا أيضا :)

Untitled-18.jpg

#57

مشكووووووووووور .. بعد حذف امر طباعة البور مغلق اختفت المشكلة

#58
عامر الشابي كتب:

جميل ما قمت به الآن السكربت يعمل بطريقة سريعة

 

إلى هنا ننهي المشروع,تستطيع الآن التلاعب في إرسال الحزم لتخطي حمايات التي سيصطدم بها البرنامج عند الفحص

 

يمكنك أيضا إستخدام مكتبة Nmap

 

تشرفت بالعمل معك ونلتقي في مشروع آخر إن شاء الله

 

السلام عليكم

 

حاليا أتعلم البايثون ولم أطلع على الكود بعد حتى أصبح ملم ولو قليل باللغه وعفوا على التدخل

 

عندي سؤال إن أمكن كيف يتم إرسال الحزم بمعنى ماهي الخطوات الأولى

 

ما لم أفهم كيف يتم التعامل مع جدار الحمايه بمعنى أريد بدايه الطريق كيف أتعامل مع جدار الحمايه لأرسل له حزم

#60

مساعدة في ربط دالة الضغط على زر ودالة main() في المشروع

def scan(widget, data=None):
    entry = data[0]
    text = data[1]
    ps = entry.get_text()

ملاحظة : الواجهة مبرمجة بمكتبة gtk

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

#61

أكتب كود الواجهة وبعدها إبدأ بتوزيع المهام

 

كمثال في نهاية تطبيق السكربت

def main():
    gtk.main()
    return 0
if __name__ == "__main__":
    Buttons()
    main()

إن لم تفهم سأعطيك فكرة أخرى

تم تعديل هذه المشاركة بواسطة عامر الشابي في 18 مارس 2014 في 21:24

Untitled-18.jpg

#62

كتبت كود الواجهة لكن ما اقصد كيف اتعامل مع options

ملاحظة الملفين منفصلين

# -*- coding: utf-8 -*-

import pygtk
import gtk
import scan

def delete_event(widget, data):
    return False

def destroy(widget, data=None):
    gtk.main_quit()

def scan(widget, data=None):
    entry = data[0]
    text = data[1]
    ps = entry.get_text()

window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.set_title("Port Scanning")
window.resize(500, 500)
window.connect("delete_event", delete_event)
window.connect("destroy", destroy)
window.show()

vbox = gtk.VBox(False, 5)
window.add(vbox)
vbox.show()

hbox = gtk.HBox(False , 5)
vbox.pack_start(hbox, False, False, 5)
hbox.show()

text = gtk.TextView()
vbox.pack_start(text, True, True, 5)
text.show()

entry = gtk.Entry()
hbox.pack_start(entry, True, True, 0)
entry.show()

wid = [entry, text]
btn = gtk.Button(" Scan ")
hbox.pack_start(btn, False, False, 0)
btn.connect("clicked", scan, wid)
btn.show()

gtk.main()

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

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