Python ile Net_Scanner

Posew7

Üye
29 Eki 2018
51
3
Cümleten hayırlı geceler beyler, öncelikle kodlar bana ait değildir bunu belirtmeliyim ama birilerinin işine yarayacağını düşünüyorum ve paylaşıyorum. Kullanacağımız kütüphanelerden bahsetmek scapy ve optparse kütüphanelerini kullanacağız. scapy kütüphanesi network ağları için özelleştirilmiş paketler üretme, network tarama ve analiz işlemleri yapılabilen python kütüphanesidir. Forumda detaylı bir anlatım bulunmaktadır https://www.turkhackteam.org/siber-guvenlik/1643370-scapy-nedir-nasil-kullanilir-taipan.html burdan ulaşabilirsiniz. optparse (option parser) kütüphanesi ise komut satırı seçenekleri için ayrıştıcı amaçlı kullanılmaktadır. Kullanıcının programı çalıştıracağı sırada programa girmesi beklenen parametlerin kolayca girilmesini sağlar.


[ame="https://www.youtube.com/watch?v=aMsTkcuwNQE&feature=youtu.be"]https://www.youtube.com/watch?v=aMsTkcuwNQE&feature=youtu.be[/ame]

İndirip çalıştırmak isterseniz (işletim sistemi linux kullandığınızı kabul ediyorum) aşağıdaki adımları izleyebilirsiniz.

Kod:
git clone https://github.com/Posew7/THT_net_scanner.git

cd THT_net_scanner

python net_scanner.py -r 10.0.2.0/24


Şimdi biraz ne yaptığımızdan bahsedecek olursak
Ağımızdaki cihazların mac ve ip adreslerini elde etmek için ARP (The Address Resolution Protocol) paketi oluşturup, ağdaki tüm cihazlara yayınlıyor ve cevapları alıyoruz


Scapy kütüphanesinde scapy.ls fonksiyonu ile oluşturacağımız ARP paketine hangi girdileri verebileceğimize bakabiliriz. Burdan sadece ip'yi seçeceğiz ve kullanıcının taratmak istediği ip aralığını buraya vereceğiz.




Tekrar scapy.ls fonksiyonu ile girdilerimize bakabiliriz. Burdan hedef mac'i seçeceğiz ve "değerini ff:ff:ff:ff:ff:ff" olarak gireceğiz. Bu girdinin anlamı paketi modeme yollayıp her yere dağıtmaktır



Kod:
import scapy.all as scapy
import optparse

#1)arp_request
#2)broadcast
#3)response

def get_user_input():
    parse_object = optparse.OptionParser()
    parse_object.add_option("-r","--range", dest="ip_address",help="Enter IP Address")

    (user_input,arguments) = parse_object.parse_args()

    if not user_input.ip_address:
        print("Enter IP Address")

    return user_input

def scan_my_network(ip):
    arp_request_packet = scapy.ARP(pdst=ip)
    #scapy.ls(scapy.ARP())
    broadcast_packet = scapy.Ether(dst="ff:ff:ff:ff:ff:ff")
    #scapy.ls(scapy.Ether())
    combined_packet = broadcast_packet/arp_request_packet
    (answered_list,unanswered_list) = scapy.srp(combined_packet,timeout=1)
    answered_list.summary()

user_ip_address = get_user_input()
scan_my_network(user_ip_address.ip_address)



 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.