Python ile Script Yazma

    Bu yazıyı yazmaya karar verme sebebim şöyle oldu, yine bir gün sızma testi yaparken 🙂 Kendi kendime dedim ki biz bu testleri yaparken Nmap kullanıyoruz ,John the Ripper olsun Dirb,Gobuster,Burp daha bir sürü tool kullanıyoruz.Tamam adamlar bizim için gerçekten faydalı şeyler yapmış çok güzel fakat bu toolların ne işe yaradığını,nasıl işlediğini bilsekte neden biz kendi toolumuzu yazıp kullanmayalım?

     Böyle düşündükten sonra tabiki programlama dilleri arasından Python programlama dilini seçtim.Çünkü Python gerçekten çok hızlı ve kolay yazılabilen bir dil.Ayrıca bütün işletim sistemlerine de duyarlı.Bu yüzden Python’da karar kıldım.Ben daha önceden Python programlama dili üzerinde temel bilgileri öğrenecek kadar çalışmıştım fakat sizde çalışmak isterseniz diye hemen şuraya çalışabileceğiniz kaynakların linkini bırakıyorum.

https://belgeler.yazbel.com/python-istihza/

https://docs.python.org

Bu linkler de temel bilgileri az çok öğrendikten sonra aşağıya yazacağım bir kaç basit ama bence kullanışlı olabilecek scriptleri kullanabilirsiniz 🙂

Base64Encoder.py : 

def encrypt():

  data = raw_input("Please enter the data to be encrypt : ")
  hash = data.encode('base64','strict')
  print(hash)

main():

MD5Cracker.py : 

import md5



def crack():
  counter = 1
  hash = raw_input("Please enter the MD5 Hash to be decrypt : ")
  wordlist = raw_input("Please enter the wordlist file path : ")

  try:
    wordlist = open(wordlist, "r")
  except:
    print ( "\nFile not found ")
    quit()

  for password in wordlist:

    filemd5 = md5.new(password.strip()).hexdigest()
 		print("Trying password %d: %s " % (counter,password.strip()))

    counter += 1

    if hash == filemd5:
      print ("\nPassword Found.  \nPassword is : %s" % (password))
      break

    else:
      print("\nPassword not Found. ")



crack()

MD5Encrypter.py :

import md5

def encrypt():

  data = raw_input("Please enter the text to be hash : ")
  hash=md5.new(data)
  print("Hash : %s " % (hash.hexdigest()))
  
encrypt()

NmapScanner.py :

try:
  import nmap
  import re
  import os
  import argparse
  import urllib2




except ImportError,e:
  import sys
  sys.stdout.write("%s\n" %e)
  sys.exit(1)



class Tarama:
  def __init__(self):
    self.cmd_arg = "-n -Pn -sS -sV -T4 --top-ports 10"
    self.nmap_services_file = "/usr/share/nmap/nmap-services"
    self.nm = nmap.PortScanner()

  def get_service_name(self, port, proto):
    nmap_file = open(self.nmap_services_file,"r")
    service = ""
    for line in nmap_file:
        if re.search("([^\s]+)\s%d/%s\s"% (port, proto), line):
          service = re.search("([^\s]+)\s%d/%s\s"% (port, proto), line).groups(1)[0]
          break
    return service


  def run_scan(self,targets):
    self.nm.scan(hosts = "%s"% targets, arguments = "%s"% self.cmd_arg)


    for host in self.nm.all_hosts():
      print "Your IP Address\n",host
      print("PORT     STATE     SERVICE")
      for proto in self.nm[host].all_protocols():
        result = self.nm[host][proto].keys()
        result.sort()

        for port in result:
            res = str(port) + "/" + proto
            space = str(" " * (9 - len(res)))
            service = self.get_service_name(port, proto)
            state = self.nm[host][proto][port]['state']
            space2 = str(" " * (10 - len(state)))
            print "%s/%s%s%s%s%s" % (port,proto,space,state,space2,service)



domain_name = raw_input("Please enter your domain address : ")

if __name__ == "__main__":

  try:
    tarama = Tarama()
    tarama.run_scan(domain_name)
  except Exception, e:
    print >> sys.stderr, "ERROR : %s"% e
sys.exit(2)

 

Bu scriptlerin hepsine github hesabımdan ulaşabilirsiniz. 

https://github.com/erennuygun/PythonTools

Umarım faydalı olmuştur.Diğer yazılarımızda görüşmek üzere.

2 yorum

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir