लिनक्स ipsec डिकोडिंग

कभी-कभी यह ipsec सुरंग के अंदर ट्रैफिक डंप को हटाने के लिए आवश्यक हो जाता है। मैं आपको बताऊंगा कि ipsec के मामले में ऐसा कैसे किया जाता है, जो कि तारकेशर का उपयोग करके PSK प्रमाणीकरण के साथ लिनक्स सर्वर पर उठाया जाता है।



सफल ट्रैफ़िक डिकोडिंग के लिए, ipsec उठाने के तुरंत बाद डंपिंग शुरू करना आवश्यक है।
यातायात को पकड़ने के लिए, tcpdump का उपयोग करें, उदाहरण के लिए इस तरह:

# tcpdump -i any -s 0 -w ipsec.pcap esp


फिर हम ipsec बढ़ाते हैं:

# /etc/init.d/ipsec start


चूंकि ipsec PSK (पूर्व साझा कुंजी) प्रमाणीकरण का उपयोग करके कॉन्फ़िगर किया गया है, इसलिए आपको सफल डिकोडिंग के लिए सत्र कुंजी को जानना होगा। यह सेटकी कमांड का उपयोग करके किया जा सकता है।
यह आदेश, डेबियन के मामले में, ipsec- उपकरण पैकेज में शामिल है। आपको रूट के रूप में चलाने की आवश्यकता है।

 # setkey -D 10.1.1.1 10.2.2.2 esp mode=tunnel spi=2548102798(0x97e0f68e) reqid=16389(0x00004005) E: aes-cbc 2a787e41 bbdc2f94 9ced721c 7fcf934e A: hmac-sha1 6af6847a 477bea9f 5c9a8d13 7ea9a5b5 9a318d29 seq=0x00000000 replay=32 flags=0x00000000 state=mature created: Oct 16 10:37:52 2012 current: Oct 16 11:04:26 2012 diff: 1594(s) hard: 0(s) soft: 0(s) last: hard: 0(s) soft: 0(s) current: 0(bytes) hard: 0(bytes) soft: 0(bytes) allocated: 0 hard: 0 soft: 0 sadb_seq=1 pid=9195 refcnt=0 


हमें आवश्यकता होगी:
1) आईपी पते
2) एसआईआई - सुरक्षा पैरामीटर सूचकांक
3) स्ट्रिंग "ई:" (एन्क्रिप्शन एल्गोरिथ्म और सत्र कुंजी), इस उदाहरण के लिए, एईएस-सीबीसी एन्क्रिप्शन एल्गोरिथ्म, और 128-बिट एईएस कुंजी "2a787e41 bbdc2f94 9ced721x 7fcf934e"
4) स्ट्रिंग "ए:" (प्रमाणीकरण एल्गोरिथ्म और इसकी कुंजी), इस उदाहरण के लिए यह hmac-sha1 है और कुंजी है "6af6847a 477bea9f 5c9a8d13 7ea9a5b59a318d29"

क्योंकि हम एईएस-सीबीसी का उपयोग करते हैं, इसीलिए (-बीसीबीसी उपसर्ग के कारण) उस समय से सभी यातायात की आवश्यकता होगी, जब ipsec सुरंग को उठाया जाता है (CBC - सिफर ब्लॉक चेनिंग)। अन्य एल्गोरिदम के साथ सभी ट्रैफ़िक होना आवश्यक नहीं हो सकता है, मुझे यह पता नहीं है, लेकिन मुझे लगता है कि सबसे अधिक संभावना है कि सभी यातायात की आवश्यकता उस समय से होगी जब ipsec सुरंग खड़ी हो जाती है।

डिकोडिंग और देखने के लिए हम वायरशार्क का उपयोग करते हैं (1.8.2, आप पहले के संस्करण का उपयोग कर सकते हैं, लेकिन यह वहां थोड़ा अलग होगा)।

इन मापदंडों को वायरशार्क में चलाने की आवश्यकता है। आपको "संपादन-> प्राथमिकताएं" सेटिंग विंडो खोलने की आवश्यकता है, "प्रोटोकॉल-> ईएसपी" का चयन करें, जहां आप बक्से का पता लगा सकते हैं "एनक्रिप्ट किए गए ईएसपी पेलोड्स का पता लगाने / डिकोड करने का प्रयास करें", "एन्क्रिप्टेड ईएसपी पेलोड्स का पता लगाने और डिकोड करने का प्रयास करें" और "जांचने का प्रयास करें"। ईएसपी प्रमाणीकरण। "



फिर "संपादित करें" बटन पर क्लिक करें ("संपादित करें" -> "बनाएं") और IP पते, ड्राइव और कुंजी सेट के लिए प्राप्त की गई ड्राइव में ड्राइव करें:



दर्ज किए गए परिवर्तनों को सहेजने के बाद, हमें डीकोड किया हुआ ट्रैफ़िक प्राप्त करना चाहिए:



वायरशार्क सेटअप को सुविधाजनक बनाने के लिए, मैंने एक छोटी सी पर्ल उपयोगिता लिखी है जो सेटकी-डी चलाता है और आउटपुट से वायरशर्क सेटिंग प्रारूप में ले जाता है:

 #!/usr/bin/perl -w %ealg = ( 'aes-cbc' => 'AES-CBC [RFC3602]', '3des-cbc' => 'TripleDES-CBC [RFC2451]', 'aes-ctr' => 'AES-CTR [RFC3686]', 'todo' => 'DES-CBC [RFC2405]', 'todo' => 'CAST5-CBC [RFC2144]', 'blowfish-cbc' => 'BLOWFISH-CBC [RFC2451]', 'twofish-cbc' => 'TWOFISH-CBC' ); %aalg = ( 'hmac-sha1' => 'HMAC-SHA-1-96 [RFC2404]', 'hmac-sha256' => 'HMAC-SHA-256-96 [draft-ietf-ipsec-ciph-sha-256-00]', 'todo' => 'HMAC-SHA-256-128 [RFC4868]', 'todo' => 'HMAC-MD5-96 [RFC2403]', 'todo' => 'MAC-RIPEMD-160-96 [RFC2857]', 'todo' => 'ANY 96 bit authentication [no checking]', 'todo' => 'ANY 128 bit authentication [no checking]', 'todo' => 'ANY 192 bit authentication [no checking]', 'todo' => 'ANY 256 bit authentication [no checking]' ); open KEYS, "setkey -D |"; while (defined($l = <KEYS>)) { if ($l =~ /^\d/) { ($ip_src, $ip_dst) = (split(/\s+/, $l))[0,1]; } elsif ($l =~ /^\s+esp mode=.*? spi=\d+\((0x.*?)\)/) { $spi = $1; } elsif ($l =~ /^\s+E: ([^\s]+)\s+(.*)$/) { ($ealg, $ekey) = ($1, $2); $ealg = ($ealg{$ealg} or die "Unknown encr alg: '$ealg'"); $ekey =~ s/\s+//g; } elsif ($l =~ /^\s+A: ([^\s]+)\s+(.*)$/) { ($aalg, $akey) = ($1, $2); $aalg = ($aalg{$aalg} or die "Unknown auth alg: '$aalg'"); $akey =~ s/\s+//g; print qq#"IPv4","$ip_src","$ip_dst","$spi",$ealg,"0x$ekey","$aalg","0x$akey"\n#; ($ip_src, $ip_dst, $spi, $ealg, $ekey, $aalg, $akey) = (); } } close KEYS 


परिणाम को फ़ाइल ~ / .wireshark / esp_sa पर लिखा जाना चाहिए। फिर तारों को पुनः आरंभ करें।

यदि स्क्रिप्ट आपके लिए काम नहीं करती है और त्रुटि "अज्ञात एनजीआर अल्ग" या "अज्ञात ऑर्गन ऑलग" देती है, तो आपको स्क्रिप्ट को हैश टेबल% ealg या% aalg में चलाने की जरूरत है और इस एल्गोरिथ्म को सेटट उपयोगिता के साथ मिलाएं और वायरशर्क के लिए संबंधित मान। मैंने केवल aes-cbc और hmac-sha1 के साथ परीक्षण किया।

अतिरिक्त जानकारी (बिट डेट्स ) वायरशार्क वेबसाइट पर

Source: https://habr.com/ru/post/In154947/


All Articles