PicoCTF 2017 Level1 Çözümleri/Hacknology

Hacknology

Kıdemli Üye
25 Eki 2015
2,712
11
rm -rf /
Merhabalar, bir süre aranızda olamayacağımdan dolayı arada bir böyle paylaşıcak konu hazırlıyorum. İlk olarak da geçtiğimiz günlerde sonlanan picoCTF nin çözümlerini paylaşmak istedim

PicoCTF Level1 Çözümleri:

Adli bilişim:
[0x00]-[Digital Camouflage]

Bize burada bir data.pcap dosyası veriyor ve buradan en son giriş yapan kişinin şifresini öğrenmemizi istiyor.

Pcap dosyalarında kabaca en son yapılan network aktivitelerini izleyebiliriz, yani kullanıcının yaptığı her işlem o dosyada olacaktır. İndirip wireshark ile dosyayı açalım. Karşımıza TCP, ARP, ICMP, HTTP gibi paketler çıkacaktır. Şifreyi bulmak için HTTP paketlerine göz atalım, filtreye HTTP ekliyorum vee
Bam! HTTP paketleri önümüzde ve bir adet "POST" parametresi var. Şifre bu pakette gönderilmiş olmalı, açalım
Kod:
Form item: "userid" = "spiveyp"
Form item: "pswrd" = "S04xWjZQWFZ5OQ=="
Bingo! Şifre bu paketteymiş ama şifreli ( :(( ) sondaki == e bakarak kabaca bunun bir base64 olduğunu tahmin edebilirim. Python'un gücüne başvuralım
Kod:
>>> import base64
>>> base64.b64decode("S04xWjZQWFZ5OQ==")
'KN1Z6PXVy9'
>>>
Şifreyi bulduk, flag'i giriyoruz:
Kod:
KN1Z6PXVy9

[0x01]-[Special Agent User]
Burada ise bize başka bir data.pcap dosyası verip User Agent bilgilerini bulmamızı istiyor. Tekrar http dosyalarına bir göz atalım. Ben burada deneme yanılma yoluyla bütün HTTP paketlere göz attım.
Flag:
Kod:
User-Agent: Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US))\r\n

Ağ Sömürüsü:
[0x00]-[What is Web?]

Burada bize bir website veriyor ve bu websiteden bir flag'a ulaşmamızı istiyor. Websitenin url'sini verelim.
Kod:
http://shell2017.picoctf.com:4443/
Görünürde oldukça normal, şirin bir kedi bile var! Bakalım burada nasıl flag'a ulaşacağız. Sitenin kaynak kodlarına göz atalım:
CTRL+U kombinasyonunu kullandım ve altta bir yorum satırı dikkatimi çekti, burada flag'in 3 kısımdan oluştuğunu söylemiş ve ilk kısmını vermiş
Kod:
The first part of the flag (there are 3 parts) is 72b28b258d2
İlk kısmı bulduk, burada iki adet dosya dikkat çekici. burada "hacker.css" ve "script.js" adında iki adet dosya var. İkisine de göz atalım
hacker.css:
En baştaki yorum satırı bize flag'in ikinci kısmını veriyor:
Kod:
b2ea021486f

script.js:
Bu javascript dosyasının tek işlevi butona basınca "Hi There" çıktısını ekrana yapıştırmak. Ama üstte gene bir yorum satırı ile flag'in kısmı bize verilmiş.
Kod:
ddd5020451d
Bundan dolayı toplam flag
Kod:
72b28b258d2b2ea021486f

Kriptografi:
[0x00]-[keyz]

Burada bizden istediği şey kendimize ait bir ssh key yaratmamız, public keys olarak eklememiz ve istediği yere ssh bağlantı sağlamamız. Zaten bize nasıl yaratacağımızı gösteren bir siteyi vermiş
Kod:
https://confluence.atlassian.com/bitbucketserver/creating-ssh-keys-776639788.html
Buraya gelip gerekli adımları uyguluyoruz ve kendimize bir adet ssh key oluşuyor. Sonra authorized_keys i editliyoruz
Kod:
nano authorized_keys
yaptıktan sonra yapıştırıp "Ctrl+X" kombinasyonu ile çıkıyoruz. Chmod ile gerekli izinleri verdikten sonra(600) ssh bağlantısını shell2017.picoctf.com a yapıyoruz
flag:
Kod:
who_needs_pwords_anyways

[0x01]-[Substitute]
Bize bir büyücü bu metni veriğini ve ne demek istediğini soruyor. Tek yapmam gereken Substitute decode yaparak bir google araması yapmaktı ve karşıma "https://www.guballa.de/substitution-solver" sitesi çıktı. Metni çevirdiğimde ise ilk karşıma gelen cümle "THE FLAG IS IFONLYMODERNCRYPTOWASLIKETHIS" oldu. Flagi giriyoruz
Kod:
IFONLYMODERNCRYPTOWASLIKETHIS

[0x02]-[Hash101]
Benim bu CTF de en çok beğendiğim kriptografi sorusu oldu. Gerçekten oldukça eğlenceliydi. Verdiği siteye netcat ile bağlanalım ve oyun başlasın

Level1-Birler ve Sıfırlar:
Bize bir ikili binary vermiş ve ascii karşılığını soruyor. Google a binary to ascii yazalım ve karşımıza çıkan ilk sitede taratalım bakalım.
Bingo! Bana verilen binary dizinin karşılığı "earth" kelimesiymiş. Hemen girelim

Level2-Hex ve decimal:
Bize ilk levelde vermiş olduğu kelimenin hex ve decimal karşılığını soruyor sıra ile. hex karşılığını kolayca bulmak için python'un nimetlerinden faydalanacağım
Kod:
>>> 'earth'.encode('hex')
'6561727468'
>>>
Hex karşılığını verdi, girelim

Decimal için ise gene google'a başvuracağım, hex to decimal yazıyorum

Google'daki ilk siteden de decimal karşılığımızı alıp girdim. Level3 e attı beni

Level3-Şifreleme fonksiyonu:
Bize örnek bir şifreleme fonksiyonu söylemiş ve bu fonksiyonu oluşturup çıktıyı 15 veren bir sayı bulmamızı istemiş. Fonksiyon aynı şöyle
"Bir sayıdaki bütün rakamların sayı değerlerini topla, mod16 yı al ve kalan 15 olsun"
Öncelikle neyin 16 sını alırsak kalan 15 olur? 31 sayısının. Şimdi sayı değerleri 31 olan bir sayı bulalım. "9994" bizim için ideal, deneyelim.
Doğru!

Level4-Gerçek bir şifreleme:
Basitçe, bir md5 verip çözümünü istemiş. Kolay olacağını tahmin ederek online sitelere bakıyorum. Buldu! "4ss37" ymiş. Verdiği flag'i vererek ilerleyelim.

[0x03]-[computeAES]
Oldukça basit bir soruydu, key ve text vermiş ve base64 olduğunu da söylemiş. Hemen bir python scripti oluşturayım.
Bize verdiği bilgilere göz atalım:
Kod:
Encrypted with AES in ECB mode. All values base64 encoded
ciphertext = I300ryGVTXJVT803Sdt/KcOGlyPStZkeIHKapRjzwWf9+p7fIWkBnCWu/IWls+5S
key = iyq1bFDkirtGqiFz7OVi4A==
Buna hemen bir Python scripti oluşturalım.
Kod:
from Crypto.Cipher import AES
from base64 import b64decode
key = b64decode(raw_input("[>Key: "))
text = b64decode(raw_input("[>Text: "))
hackno = AES.new(key, AES.MODE_ECB) 
cozulen_text = hackno.decrypt(text)

print "[+] Flag : {}".format(cozulen_text)

Şimdi bilgileri girelim bakalım
Kod:
[>Key: iyq1bFDkirtGqiFz7OVi4A==
[>Text: I300ryGVTXJVT803Sdt/KcOGlyPStZkeIHKapRjzwWf9+p7fIWkBnCWu/IWls+5S
[+] Flag : flag{do_not_let_machines_win_2d4975bc}__________
>>>

flag{} tagının içerisindeki giriyoruz ve başarılı!

[0x04]-[computeRSA]
Bize şifrelenmiş hali 150815 bir sayı ve d=1941, n=435979 bilgilerini veriyor. Altta ise matematik formulünü. "sayı = şifrelenmişsayı ^ d modN"
hemen değişkenleri yerlerine yazalım
Kod:
>>> x = 150815**1941%435979
>>> print x
133337
>>>
133337 imiş sayı, girelim.

Tersine Mühendislik:
Hala çözülmedi...

Misc:
[0x00]-[Internet Kitties]

shell2017.picoctf.com a 2720 portu ile bağlanmamızı istiyor. Tek komutla bu işi yapabiliriz, muhtemelen bu seviyedeki en kolay soru buydu
Kod:
hacknology@shell-web:~$ nc shell2017.picoctf.com 2720                       
Yay! You made it!                                                           
Take a flag!                                                                
0385d4bad438ffd596c049d5796e83a2                                            
hacknology@shell-web:~$

Flag'i giriyoruz ve ilerliyoruz.

[0x01]-[Piazza]
Reklam sorusu

[0x02]-[Leaf of the Tree]
/problems/b70fe815d84b75004f724241458ea9cc de truck'ları takip edip flag'i bulmamızı istiyor. CTF lerin eğlenceli yanlarından bir tanesi de bu :) ben tek tek deneyerek buldum, ilerliyoruz

[0x03]-[looooong]
30 saniyede istenen sayıda istenen karakteri vermemizi istiyor, python'ı kullanalım
Benden 786 tane q ve bir tane 3 istedi
Kod:
'
>>> print "q"*786 + "3"
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3
>>>

[0x04]-[Leaf of the Forest]
Bu sefer çok daha fazla dosya var. Manuel olarak arayamayacağız, sadece "find" komutunu kullanarak bütün dosyaları çıkarttım ve ctrl+f yapıp "flag" sözcüğünü kullandım. Yol ortaya çıktı:
Kod:
./tree776de2/trunkf1d0/trunk2e70/trunk427b/trunk05c3/trunka801/trunk878b/tru
nkd3d6/branchccd0/flag

bu dizine ilerleyelim ve "cat flag" komutu ile flag'i okuyalım. İşte karşımızda!
Kod:
54a57e77602a964676e0d11da4074737
İlerliyoruz...

[0x05]-[WorldChat]
Verdiği adrese netcat ile bağlanıp chati takip edip flag'i bulmaya çalışacağız. Bağlanalım ve biraz bekleyip Ctrl+C ile işlemi sonlandıralım. Ondan sonra ister "grep" komutunu kullanarak ister ctrl+f komutu ile flag'i arayabilirsiniz. İpucu: Flag'i "flagperson" adlı kişi veriyor. Direkt onu filtreleyebilirsiniz.


MASTER CHALLENGE!

Elimizde bir site var ama geliştirici hala giriş sistemini yapmamış. Acilen giriş yapmamız gerekiyor, siteye bakalım.

"http://shell2017.picoctf.com:46677/" Site bu. ctrl+shift+I ile geliştirici konsolu açayım. client.js gözüme çarptı, bir java script dosyası. Herhangi bir isimle giriş yapmayı deneyeyim
Kod:
pword
:
"sadsad"
res
:
false
server_res
:
undefined
this
:
Window

Gördüğünüz gibi response değeri false dönüyor. Bunu true olarak editleyelim ve tekrar giriş yapmayı deneyelim.

Flag:
Kod:
client_side_is_the_dark_sidee5dbd5f8c6ae5e282766571e06569d50

 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.