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.
Ş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
[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: