16. 16
در را زیر بتوردسبelevanted promptبرویسسب تا کنید اجراtsharkرا
کنید متوقف
net stop tshark
سرویس مجدد شروع برایtshark:کنید استفده زیر دستور از
Net start tshark
4-2نصبسکوی روی بر ابزارB
نصببب برایtsharkسببیسببتم یک روی برDebian7باید فقط ،شببما
commandالر در را زیر هایroot:کنید اجرا
# apt-get install tshark
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
libc-ares2 libcap2-bin libpam-cap libsmi2ldbl
libwireshark-data libwireshark2
libwiretap2 libwsutil2 wireshark-common
Suggested packages:
libcap-dev snmp-mibs-downloader wireshark-doc
The following NEW packages will be installed:
libc-ares2 libcap2-bin libpam-cap libsmi2ldbl
libwireshark-data libwireshark2
libwiretap2 libwsutil2 tshark wireshark-common
0 upgraded, 10 newly installed, 0 to remove and 0 not upgraded.
Need to get 15.6 MB of archives.
After this operation, 65.7 MB of additional disk space will be used.
Do you want to continue [Y/n]? Y
21. 21
5-6ششم موردی مطالعه
اسکر دويپتPythonاز کهtsharkمیکند
درال،اضببراجازهدهیدبیندازیم نگاهیبهدواسببکریپر
Pythonکهخروجیمتtsharkو خوانده راپردازش.میکند
برفهرسب1کدکاملپایتوناولیبکریپراسبکهچکار اعتیک
آدرسIPرانشانمیدهد.
Listing 1. checkIP.py
# Programmer: Mihalis Tsoukalos
# Date: Tuesday 28 October 2014
import socket
import sys
import re
def valid_ip(address):
try:
socket.inet_aton(address)
return True
except:
return False
# Counters for the IPs
total = 0
valid = 0
invalid = 0
# Read the file from stdin, line by line
for line in sys.stdin:
line = line.rstrip('n')
if valid_ip(line):
valid = valid + 1
# print "The IP is valid!"
else:
# print "The IP is not valid!"
invalid = invalid + 1
total = total + 1
22. 22
# Present the total number of IPs checked
print "Total number of IPs checked:", total
print "Valid IPs found:", valid
print "Invalid IPs found:", invalid
هدفازایسکریپرافقطپیداکردنآدرسIPر نامعت،سراو
آنراباننشبمیدهدکهدادههایکه بشبدرالبراضبباtshark
گرفتهشدهاسر.شمامیتوانیدآنرابهزیر صورتاستفادهکنید:
$ tshark -r ~/networkData.pcap -T fields -e ip.src
↪| python checkIP.py
Total number of IPs checked: 1000
Valid IPs found: 896
Invalid IPs found: 104
Listing 2. store Mongo.py
پردازش برای که ش های داده زیر در شده داده نشان پایتون کد
های کویری و هاداده پایگاه داخل آیندهMongoDBببمامیکندشب درج
از که صلی ا .دلیل کنید ستفاده ا دیگری داده پایگاه از میتوانید
MongoDBم که اسر ای کردم استفادهانعطافپذیریآنراهنگام
ذخیرهدادههایسباخریافتهدوسبردارمممک چوناسبربرخیاز
هنامنظم رکورد(با هایی رکوردفیلدهایازدسررفته)باشد.
# Programmer: Mihalis Tsoukalos
# Date: Tuesday 28 October 2014
#
# Description: This Python script reads input from
# tshark, parses it and stores it in a MongoDB database
import sys
import pymongo
import re
# The number of BSON documents written
total = 0
# Open the MongoDB connection
23. 23
connMongo =
pymongo.Connection('mongodb://localhost:27017')
# Connect to database named LJ (Linux Journal)
db = connMongo.LJ
# Select the collection to save the network packet
traffic = db.netdata
# Read the file from stdin, line by line
for line in sys.stdin:
line = line.rstrip('n')
parsed = line.split("t")
total = total + 1
# Construct the "record to be inserted
netpacket = {
'framenumber': parsed[0],
'sourceIP': parsed[1],
'destIP': parsed[2],
'framelength': parsed[3],
'IPlength': parsed[4]
}
# Store it!
net_id = traffic.insert(netpacket)
connMongo.close()
# Present the total number of BSON documents written
print "Total number of documents stored: ", total
ناماسکریپر ایپایتونstoreMongo.pyو ،اسرفرضمیشودکه
دادههایکه شدرالاضربااستفادهازtsharkیاابزار
TCPDumpشده گرفتهاسر.فرمانبعدیاسکریپربا را پایتون
ورودیازtsharkاجرامیکند:
$ tshark -r ~/var/test.pcap -T fields -e frame.number
↪-e ip.src -e ip.dst -e frame.len -e
↪ip.len -E header=n -E quote=n -E occurrence=f
↪| python storeMongo.py
Total number of documents stored: 500
خروجیبام دستور کردن وارد از بعد متیه شزیراسر:
5 yy.xx.zz.189 yyy.74.xxx.253 66 52
6 197.224.xxx.145 yyy.74.xxx.253 86 72
7 109.xxx.yyy.253 zzz.224.xxx.145 114 100