Log Analysis [ka]
Log Analysis
ვაგრძელებთ კიბერ ოლიმპიადის(cybercube) ამოცანების განხილვას, თუ წინა 2 სტატია არ გინახავს, შეგიძლია მათ გაეცნო:
ვაგრძელებთ კიბერ ოლიმპიადის(cybercube) ამოცანების განხილვას, თუ წინა 2 სტატია არ გინახავს, შეგიძლია მათ გაეცნო:
Pcap Analysis — https://bit.ly/2M9L7f0
რა არის Buffer Overflow ?- https://bit.ly/2GZbNLr
დღეს განვიხილავ ერთ-ერთი კატეგორიის, ლოგ ფაილების ანალიზის, რამდენიმე ამოცანას და ვეცდები, თითოეული ნაბიჯი დეტალურად ავხსნა.
კიბერ ოლიმპიადაზე გამოყენებული სავარჯიშოები შეგიძლიათ cyber-lab — ზე იხილოთ.
მოდი ჩვენი პირველი ამოცანა იყოს userpro, რომლის პირობაც შემდეგია:
მოცემული გვაქვს Apache-ის Log ფაილი, მოდი მისი ანალიზისთვის არ გამოვიყენოთ უკვე არსებულები ხელსაწყოები და ჩვენით დავწეროთ პატარა სკრიპტი.
მაშ ასე, მოვიმარჯვოთ ჩვენი საყვარელი ედიტორები და გავხსნათ Log ფაილი.
ჩვენი Log ფაილი შემდეგნაირად გამოიყურება:
Vim is love.
ალბათ პირველივე შეხედვაზე მიხვდებოდი, რომ ჩვენი Log ფაილი Wordpress ის საიტისაა.
მოდი სანამ Log ფაილში ძრომიალს გავაგრძელებთ, გავეცნოთ კითხვებს, რომლებზეც პასუხის გაცემა მოგვიწევს:
1. რომელი IP მისამართებიდან განხორციელდა შეტევა?
2. რა ხელსაწყო გამოიყენა შემტევმა ვებ გვერდის სკანირებისთვის?
3. რომელი პლაგინის საშუალებით მოახერხა შემტევმა წვდომის მოპოვება?
4. რა ტიპის შეტევა გამოიყენა შემტევმა წვდომის მოსაპოვებლად?
5. რომელ ოპერაციულ სისტემას იყენებდა შემტევი?
პირველ კითხვის პასუხის გაგება მოდი დავიწყოთ IP ების სტატისტიკის გაგებით, ვნახოთ თუ რამდენი რექვესთი გაგზავნა თითოეულმა IP-მა.
ამისთვის პირველ რიგში უნდა წავიკითხოთ ფაილი, მაგრამ სანამ ფაილის წაკითხვაზე გადავალთ ვნახოთ, როგორ გამოიუყურება ჩვენი რექვესთი.
185.220.101.32 –> IP მისამართი.
**[_12/Apr/2018:08:10:42 +0000]** _–> თარიღი, დრო სასაათოო სარტყელი.
“GET / HTTP/1.1” --> HTTP რექვესთის ტიპი.
200 –> სერვერის დაბრუნებული რესფონს კოდი.
19246 –> გადაცემული ბაიტების რაოდენობა.
Mozilla/5.0 (Windows NT 6.1; rv:52.0) Gecko/20100101 Firefox/52.0 –> აქ გვაქვს იმ მომხარებლის ინფორმაცია, რომელმაც რექვესთი გააგზავნა
მაგრამ ჯერ-ჯერობით მხოლოდ IP გვაინტერესებს, როგორც უკვე აღვნიშნეთ ჩვენი პირველი ნაბიჯი
- Log ფაილის წაკითხვაა.
მოდი ახლა მეორე ნაწილზე გადავიდეთ,
- IP მისამართების სტატისტიკა
https://gist.github.com/ls4cfk/addf7cfeba6eb7dc582ff7692c19a380#file-py
- მთლიანი რექვესთი არ გვჭირდბება, ამიტომაც რაღაცის საშუალებით უნდა გაგვეგო მხოლოდ IP მისამართები, რაშიც ძალიან დაგვეხმარა Regex-ი.
- დავაიმპორტეთ რეჯექსის მოდული და დავწერეთ პატერნი, რომელიც მხოლოდ IPv4 მისამართებს ეძებს.
r’\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}’
\d ნამდვილი რიცხვისთვის [0–9].
{1, 3} — წერტილიდან წერტილამდე 1 იდან 3 ის ჩათვლით სიგრძის რიცხვის მოსაძებნად.
iplist = re.findall(ipv4, log)
თუ დაემთხვა მნიშვნელობა ჩვენ პატერნს, ვინახავთ iplist ცვლადში, და Counter() ისა და most_common() ფუნქციების საშუალებით, ვითვლით და გამოგვაქვს სასურველ ფორმატში.
ipcount = Counter(iplist)
for k, v in ipcount.most_common():
print(f”IP => {str(k)} რაოდენობა => {str(v)}”)
შედეგიც მივიღეთ:
კარგი გვაქვს IP ები, ყველა ხშირად გამოყენებულიც ვიცით რომელია, მაგრამ როგორ გავიგოთ მართლა შემტევისაა თუ არა ეს IP?
მოდი ვნახოთ პირველი IP, ვნახოთ თუ სად ფიგურირებს ის.
**cat case1.log grep 164.132.106.162**
თუ ვინდოუსზე ხართ, სასურველი ტექსტ ედიტორი გახსენით და Ctrl +f :)
რექვესთი ჩვენს მიერ განხილულს გავს, მაგრამ ბოლოში ახალი საინტერესო რამ გამოჩნდა. WPScan-ი, ის სკანერია რომლის დანიშნულებაც WordPress ის საიტებში მოწყვლადობის პოვნაა.
ამ რექვესთის საშუალებით, მეორე კითხვის პასუხიც გავიგეთ — შემტევს ხელსაწყო WPScan-ი გამოუყენებია.
მოდი IP ების დასადგენად, ჩვენი რექვესთები გავფილტროთ ‘WPScan’ ით, გამოვიტანოთ მხოლოდ ის IP ები, რომლებშიც აღნიშნული სკანერი ფიგურირებს.
ცოტა გადავაკეთოთ ჩვენი კოდი:
https://gist.github.com/ls4cfk/addf7cfeba6eb7dc582ff7692c19a380#file-filtering-by-wpscan
IP ებიც გავიგეთ, 164.132.106.162 და 122.116.50.42
მოდი სანამ შემდეგ კითხვაზე გადავალთ, გავასუფთავოთ ჩვენი ლოგ ფაილი, დავტოვოთ მხოლოდ ის რექვესთები სადაც ჩვენი IP-ები ფიგურირებს.
მთლად დიდი შედეგი ვერ მივიღეთ, მაგრამ 300 ხაზით შევამოკლეთ ჩვენი ლოგ ფაილი.
აშკარად ბევრი ისეთი რექვესთი გვაქვს, რომლებსაც 404 კოდი დაუბრუნდათ. ეგენიც არ გვჭირდება, მოდი კიდევ ერთხელ გავფილტროთ.
Sweet!, 36 რექვესთზე დავედით. მოდი ჩავიხედოთ დარჩენილ რექვესთებში:
ამ რექვესთებიდან ვარკვევთ, რომ WPScan ის სკანირების დასრულების შემდეგ,დაახლოებით 1 წუთში, გაიგზავნა რექვესთი ?up_auto_log=true, რომელმაც შემტევს მისცა საიტზე წვდომა.
exploit-db — ზე თუ გადავამოწმებთ აღმოვაჩენთ, რომ აღნიშნული რექვესთის საშუალებით ავტორიზაციის ავლის საშუალებას, პლაგინი userpro გვაძლევდა.
გავარკვიეთ მესამე და მეოთხე კითხვის პასუხიც:
userpro და Authentication Bypass
დაგვრჩა ბოლო კითხვა, რომლის პასუხიც ჩვენს მიერ გაფილტრურ ლოგებში კარგად ჩანს:
შემტევი იყენებდა Linux-ის ერთ-ერთ დისტრიბუტივს — Ubuntu-ს.
მოდი შემდეგი ამოცანა Fisheye იყოს
რომლის პირობაც შემდეგია:
Fisheye — ს შემთხვევაში მოცემული გვაქვს წერილი და შემდეგი 3 შეკითხვა:
1. შეტევის რომელი ტიპი გამოიყენა შემტევმა?
2. რა სახის ინფორმაციის მოპარვას ცდილობს შემტევი?
3. დაასახელეთ შეტევაში გამოყენებული მისამართი
კვლავ მოვიმარჯვოთ საყვარელი ედიტორები და გავხსნათ ჩვენი მეილი.
ნუ, სტანდარტული მეილია. მოდი Base64 იდან დეკოდირება გავუკეთოთ ჩვენი მეილის კონტენტს:
**strings case_email base64 -D**
სადაც case_email მხოლოდ base64 ს შეიცავს.
windows -ის შემთხვევაში — base64decode.org
თავში არასაჭირო ინფორმაცია, მოდი მოვაშოროთ და ვნახოთ ჩვენი მეილი.
კიდევ ბევრი არასაჭირო ინფორმაცია, მოდი ისინიც მოვაშოროთ.
ვაშორებთ ყველა HTML Tag-ს href ის გარდა, თუ რატომ ცოტახანში ვნახავთ.
მივიღეთ ჩვენი გასუფთავებული იმეილიც:
მეილიდან უკვე ყველაფერი გასაგები ხდება:
შემტევმა გაგზავნა მეილი სადაც EMS.GOV.GE ის მაგივრად, მსხვერპლი გადაიყვანა არასწორ ბმულზე http://ems.ga რომელიც ფიშინგ საიტია. ასეთი ტიპის ფიშინგ შეტევას Spear phishing ეწოდება.
ასევე ვარკვევთ, რომ შემტევი ცდილობს პირადი ინფორმაციის მოპარვას.
სულ ეს იყო, ამოვხსენით 2 სავარჯიშო და მივიღეთ თითოეულ კითხვაზე პასუხი.
კიბერ ოლიმპიადა ძალიან კარგი საშუალებაა ახალი ინფორმაციის შესასწავლად, cyber-lab ზე შეგიძლიათ აკეთოთ სავარჯიშოები, რომლებიც გაგაცნობენ რეალურ ინციდენტებს, მსგავსი ტიპის ფიშინგ შეტევები უამრავია, ზარალდება ბევრი ადამიანი იმის გამო, რომ არ უკვირდებიან ლინკს სადაც ისინი გადადიან. ¯\_(ツ)_/¯