python assignment
# Python3: Python Networking and Ethical Hacking # Summary: Type what each script does # Name: Type Name(s) # Date: Type Date # step 1: In this lab you are going to try some scripts to perform port scanning using various methods # 1) to complete this lab, use kali Linux (see Unit 12 instructional materials for Kali Linux download link) # 2) for some of the scripts, you need to use your physical machine in conjunction with Kali Linux # 2) for each script record the result of the run by taking a snip or screenshot of the results # 3) copy and paste the script under the snip or screenshot in the file to submit individually or as a group(Refer to the Lab practice on CANVAS on how to document the results) # Step 2: Port Scanning using Port Scan Script # 1) launch the Kali Linux VM (see Unit 12 instructional materials for Kali Linux download link) # 2) go to Unit 12 > Assignments and Assessments > Part 2: Lab Practice # 3) download the "Port Scan" script # 4) apply the required syntax and runtime fixes (Ref: PPT 12) # 5) run the script and take a snip/screenshot of the results # Step 3: Port Scanning using Port Sweep Script # 1) if you are not using Kali Linux, launch the Kali Linux VM # 2) go to Unit 12 > Assignments and Assessments > Part 2: Lab Practice # 3) download the "Port Sweep" script. # 4) apply the required syntax and runtime fixes (Ref: PPT 12) # 5) run the script and take a snip/screenshot of the results # Step 4: Port Scanning using TCP Scan Script # 1) if you are not on Kali Linux, launch the Kali Linux VM # 2) go to Unit 12 > Assignments and Assessments > Part 2: Lab Practice # 3) download the "TCP Scan" script. # 4) apply the required syntax and runtime fixes (Ref: PPT 12) # 5) run the script and take a snip/screenshot of the results # Step 5: Port Scanning using the Picture Carver Script # 1) If you are not on Kali Linux, launch the Kali Linux VM # 2) go to Unit 12 > Assignments and Assessments > Part 2: Lab Practice # 3) download the "Picture Carver" script. # 4) apply the required syntax and runtime fixes (Ref: PPT 12) # 5) run the script and take a snip/screenshot of the results from socket import * import time startTime = time.time() if __name__ == '__main__': target = input('Ener the host to be scanned:') t_IP = gethostbyname(target) print('Starting scan on host:', t_IP) for i in range(50, 500): s = socket(AF_INET, SOCK_STREAM) conn = s.connect_ex((t_IP, i)) if (conn ==0): print(' %d: OPEN' % (i,)) s.close() print('Time taken:', time.time() - startTime) import os import platform from datetime import datetime net = input("Enter the Network Address: ") net1= net.split('.') a = '.' net2 = net1[0]+a+net1[1]+a+net1[2]+a st1 = int(input("Enter the Starting Number: ")) en1 = int(input("Enter the Last Number: ")) en1=en1+1 oper = platform.system() if (oper=="Windows"): ping1 = "ping -n 1 " elif (oper== "Linux"): ping1 = "ping -c 1 " else : ping1 = "ping -c 1 " t1= datetime.now() print ("Scanning in Progress:") for ip in range(st1,en1): addr = net2+str(ip) comm = ping1+addr response = os.popen(comm) for line in response.readlines(): if(line.count("TTL")): break if (line.count("TTL")): print (addr, "--> Live") t2= datetime.now() total =t2-t1 print ("Scanning completed in: ",total) import socket from datetime import datetime net= input("Enter the IP address: ") net1= net.split('.') a = '.' net2 = net1[0]+a+net1[1]+a+net1[2]+a st1 = int(input("Enter the Starting Number: ")) en1 = int(input("Enter the Last Number: ")) en1=en1+1 t1= datetime.now() def scan(addr): s= socket.socket(socket.AF_INET,socket.SOCK_STREAM) socket.setdefaulttimeout(1) result = s.connect_ex((addr,135)) if result==0: return 1 else : return 0 def run1(): for ip in range(st1,en1): addr = net2+str(ip) if (scan(addr)): print (addr , "is live") run1() t2= datetime.now() total =t2-t1 print ("Scanning completed in: " , total) import re import zlib import cv2 from scapy.all import * pictures_directory = "pic_carver/pictures" faces_directory = "pic_carver/faces" pcap_file = "bhp.pcap" def face_detect(path,file_name): img = cv2.imread(path) cascade = cv2.CascadeClassifier("haarcascade_frontalface_alt.xml") rects = cascade.detectMultiScale(img, 1.3, 4, cv2.cv.CV_HAAR_SCALE_IMAGE, (20,20)) if len(rects) == 0: return False rects[:, 2:] += rects[:, :2] # highlight the faces in the image for x1,y1,x2,y2 in rects: cv2.rectangle(img,(x1,y1),(x2,y2),(127,255,0),2) cv2.imwrite("%s/%s-%s" % (faces_directory,pcap_file,file_name),img) return True def get_http_headers(http_payload): try: # split the headers off if it is HTTP traffic headers_raw = http_payload[:http_payload.index("\r\n\r\n")+2] # break out the headers headers = dict(re.findall(r"(?P
.*?): (?P.*?)\r\n", headers_raw)) except: return None if "Content-Type" not in headers: return None return headers def extract_image(headers,http_payload): image = None image_type = None try: if "image" in headers['Content-Type']: # grab the image type and image body image_type = headers['Content-Type'].split("/")[1] image = http_payload[http_payload.index("\r\n\r\n")+4:] # if we detect compression decompress the image try: if "Content-Encoding" in headers.keys(): if headers['Content-Encoding'] == "gzip": image = zlib.decompress(image,16+zlib.MAX_WBITS) elif headers['Content-Encoding'] == "deflate": image = zlib.decompress(image) except: pass except: return None,None return image,image_type def http_assembler(pcap_file): carved_images = 0 faces_detected = 0 a = rdpcap(pcap_file) sessions = a.sessions() for session in sessions: http_payload = "" for packet in sessions[session]: try: if packet[TCP].dport == 80 or packet[TCP].sport == 80: # reassemble the stream into a single buffer http_payload += str(packet[TCP].payload) except: pass headers = get_http_headers(http_payload) if headers is None: continue image,image_type = extract_image(headers,http_payload) if image is not None and image_type is not None: # store the image file_name = "%s-pic_carver_%d.%s" % (pcap_file,carved_images,image_type) fd = open("%s/%s" % (pictures_directory,file_name),"wb") fd.write(image) fd.close() carved_images += 1 # now attempt face detection try: result = face_detect("%s/%s" % (pictures_directory,file_name),file_name) if result is True: faces_detected += 1 except: pass return carved_images, faces_detected carved_images, faces_detected = http_assembler(pcap_file) print "Extracted: %d images" % carved_images print "Detected: %d faces" % faces_detected