পাইতে এআরপি স্নিগ্ধ করতে পাইথন এবং স্ক্যাপি ব্যবহার করে


12

আমি আমার নেটওয়ার্কের একটি নির্দিষ্ট ওয়্যারলেস ডিভাইস থেকে এআরপি অনুরোধগুলি খুঁজতে রাস্পবেরি পাই ব্যবহার করার চেষ্টা করছি। এটি সেই অ্যামাজন ড্যাশ বোতামগুলির মধ্যে একটি। ড্যাশ কখন ওয়াইফাইয়ের সাথে সংযোগ স্থাপন করে কেউ এই শোনার জন্য এই কোডটি ব্যবহার করেছিল।

from scapy.all import *
def arp_display(pkt):
  if pkt[ARP].op == 1: #who-has (request)
    if pkt[ARP].psrc == '0.0.0.0': # ARP Probe
      if pkt[ARP].hwsrc == '74:75:48:5f:99:30': # button 1
        print "Pushed Huggies"
      elif pkt[ARP].hwsrc == '10:ae:60:00:4d:f3': # button 2
        print "Pushed Elements"
      else:
        print "ARP Probe from unknown device: " + pkt[ARP].hwsrc

print sniff(prn=arp_display, filter="arp", store=0, count=10)

আমি যখন এটি রাস্পবিয়ানটিতে চালিত করি (পাইথন এবং স্ক্যাপি ইনস্টল সহ) তখন আমি একটি ত্রুটি পাই

"IndexError: Layer [ARP] not found"

আমি স্ক্যাপি এবং সম্পূর্ণরূপে প্রথমবারের মতো ডাইভিংয়ের সাথে সম্পূর্ণ অপরিচিত। কোন ধারণা জন্য ধন্যবাদ।


আপনি কি কখনও এই কাজ পেয়েছেন? আমি এই সমস্যাটি
পেরিয়েছি

@jbnunn এই উত্তরটি আমার জন্য কাজ stackoverflow.com/questions/24415294/...
Katu

উত্তর:


7

আমিও একই কাজ করছি। যা আমি পেয়েছি tcpdumpতা ইনস্টল করা হয়নি।

একটি সহজ sudo apt-get install tcpdumpআমার জন্য এই ত্রুটি স্থির করে।


6

আমার একই ত্রুটি ছিল, তবে এটি নির্ভরযোগ্যভাবে ঘটছে না, কখনও কখনও এটি সঙ্গে সঙ্গে এটি ব্যর্থ হয়:

IndexError: Layer [ARP] not found

এবং কখনও কখনও এটি চিরকাল চলে runs

ইঙ্গিত: count=0এটি চিরকালের জন্য চালানোর জন্য মুদ্রণ স্নিফ লাইনে সেট করুন , গণনাটি সময়সীমা শেষ বলে মনে হচ্ছে।

আমি প্রথমে ওয়েবসাইট থেকে স্ক্যাপি ইনস্টল করেছিলাম তবে শেষ করে দিয়েছিলাম:

apt-get update
apt-get upgrade
apt-get install tcpdump tcpreplay wireshark python-scapy

এবং এটি রান করার সময় ঠিকঠাক বলে মনে হয়। উপরের সমস্তটি আমার প্রয়োজন ছিল না তা নিশ্চিত নই, তবে ইনস্টল করার সময় পাইথন-স্ক্যাপি তাদের সুপারিশ করেছিল (এবং গ্রাফিক্সের একগুচ্ছ রুটিন) it

অ্যাডেনডা: প্রতিবার আমি কোডটি নিয়ে ভাঙা সম্ভাবনাটি যা এটি ক্র্যাশ বিঘ্নিত হওয়া ছাড়াই চলবে, তাই এখানে সত্যিই অদ্ভুত কিছু ঘটছে।


1

আমাদের এখানেও একই সমস্যা ছিল এবং এটি প্রমাণিত হয়েছে যে আমরা একটি শর্ত পরীক্ষা করতে ভুলে গেছি।

সমস্ত ব্লকের আগে এই লাইনটি যুক্ত করুন:

if pkt.haslayer(ARP):

0

আমার রাস্পি বি 2012 এ এটি> সিপিইউর 50% খায়।

আমি যা চেষ্টা করেছিলাম তা ছিল

স্নিফ (ফিল্টার = "টিসিপি এবং পোর্ট 123", প্রিন = মুদ্রণ_ সংশ্লেষ, স্টোর = 0)

আমি স্ক্যাপি আমার ফায়ারওয়াল দিয়ে চালিত মেশিনের আইপিতে ড্যাশ-বোতামের অনুরোধগুলি পুনঃনির্দেশিত করেছি। ধারণাটি ছিল রিসোর্সগুলি সংরক্ষণ করা এবং ম্যাক অ্যাড্রেসগুলির জন্য সমস্ত ট্র্যাফিক পর্যবেক্ষণ না করে কেবল পোর্টে সংযোগের অনুরোধগুলি দেখার জন্য।

এটি ~ 30% সিপিইউ খরচ করে। এটি একটি উবুন্টু মেশিনে কাজ করে তবে একটি রাস্পি বিতে কাজ শুরু করতে প্রায় 5 মিনিট সময় লাগে এবং তারপরে আমার নেটওয়ার্কের সমস্ত সংযোগগুলি দেখায় - এটি উবুন্টু মেশিনে নেই। আমি এটি ভাঙ্গা রাপি মিউজিকবক্স চিত্রটি ধরে নিয়েছি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.