Blogger tarafından desteklenmektedir.
  • ANA SAYFA
  • GNU/LINUX
  • PROJELER
    • GITLAB
    • GITHUB
  • HAKKIMDA
Google+ Facebook Twitter Instagram LinkedIn
               Bir yazılım geliÅŸtiricisi olarak vakit buldukça ve canım sıkkın olduÄŸu anlarda CTF çözerim. Bu hafta sonu ADEO firmasının düzenlemiÅŸ olduÄŸu CTF'e katıldım. Elimden geldiÄŸi kadarıyla WEB sorularının çözümlerini sizinle paylaşıyor olacağım.

1.Soru

Açılan web sayfasını network üzerinden takip ederek flag değerine ulaşılabiliniyordu.



2.Soru

Web sayfasının kaynaklarına bakıldığında Jquery yüklenmiş fakat herhangi bir şekilde Jquery kütüphanesine ihtiyaç olmadığını düşünerek jquery.min.js dosyası içerisinde flag kelimesini aratarak ulaştım fakat daha sonra farkettimki LocalStorage üzerinde de flag oluşturulmuş.


3.Soru

Açılan web sayfasının kaynaklarını kontrol ettiğimde bir gariplik olduğunu gördüm ve tek tek hepsini incelemeye başladığımda flag karşıma çıktı.


4.Soru

Web sayfası üzerinde yazan robot kelimesinden robots.txt bakacağımı anladım ve çıkan php sayfasına gittiğimde flag ortaya çıkıyordu.



5.Soru

Çözüm yok.

6.Soru

Açılan Web Sayfasında kullanıcı adı ve parola ile giriş yapılan bir giriş paneli vardı.SQL injection saldırısından bir sonuç elde edemeyince aklıma brute force yöntemi geldi ve Burp Suite ile denemelere başlayacaktım fakat Burp Suite ayarlarını yapamamıştım.Alternatif olarak hemen C# ile brute force attack yapan basit bir konsol uygulaması yazdım.Sonuç beklediğimden çok kısa bir süre sonra karşımdaydı.


Kullanıcı Adı : admin Parola : 123456 bilgilerini yazdıktan sonra flag ortaya çıktı.




7.Soru
Çözüm yok.

8.Soru

Bu soruyu ben çözememiştim.Fakat ADEO istatistikler kısmında daha önceden ismi bana tanıdık gelen birisi vardı araştırdım ve aynı bölümde ögrenci olduğum Sümeyye Kölemen'e yarışma bitiminde mesaj atıp çözebildikleri soruların cevaplarını istedim.Bu sorunun çözümünü kendisi anlatmıştır.

Sorunun çözümüne gelecek olursak.

Açılan Web sayfasında bir CV karşımızda duruyordu.Ben daha çok sayfa üzerinden yakalamış oldugum iletişim kur bölümüne takılmıştım fakat olay yine robots.txt imiş.

Robots.txt dosyası admin sayfasına işaret ediyordu ve bu sayfada bizden bir text alanına CV'de bulunan kişinin web sitesinin adresi girilmesi isteniyordu.Bu işlem tamamlandığı zaman sayfada flag karşımıza çıkıyordu fakat flag bu değilmiş.

Sayfanın kaynak kodlarına baktığımızda flag.js dosyasını inceliyoruz ve flag karşımıza çıkıyor.


flag.txt dosyasından çıkan ÅŸifrelenmiÅŸ metin 


U2FsdGVkX1+06NwW2SkBM+pLIucSlqKCeMOVCLbdqUVzBPOhvd+MR2WXhlqRFfA98dDRKU1A4DgjkUqJIprRkA==








Şifrelenmiş olan metnin çözümü.










9.Soru

Web sayfasını açtığımızda sadece linklerin bulunduğu bir sayfa karşılıyordu.Bu soruda herhangi bir veri bulamayınca ve sayfalar işin içerisine girince önceki ctf lerden edidiğim tecrübe ile link yerine flag denemek aklıma geldi ve flag ortaya çıktı.




10.Soru

Web sayfasını açtığımızda bizden ülkelerin telefon kodlarını girmemiz isteniyordu.Önce 90 denedim ve birkaç veri geldi.Daha sonra 1 den baÅŸlayıp devam ediyordumki hızlaca yapayım derken herhangi bir telefon kodu girmeden butona tıkladığımda biranda karşıma flag geldi :) 
















BONUS

Web yazılım geliştiricisi olarak CTF'lerde daha çok web sorularını çözerdim fakat bu sefer diğer kısımlara da daldım ve ADEO 2017 CTF çözümlerini buldum. https://www.ismailkundakci.com/adeosecurity-iws17-ctf-cozumleri/ link üzerinden eriştiğimde bu sene sorulan System | Network 1000 puanlık sorusuna benzer bir sorunun çözümü vardı.Kısacası mimikatz adında bir program sayesinde dump dosyalarının analizleri yapıldıgını ögrendim ve bende analiz ettiğimde elime veriler geçti.Geçen seneki çözüme odaklanarak ele geçirdiğim SHA-1 hash değerini kırmaya çalıştım fakat başarılı olmadım.Sümeyye'ye bu soruyu sordugumda bana SHA1 yerine NTLM değerini decrypt etmem gerektiğini söyledi.



Sümeyye'ye tekrar teÅŸekkür ederim ayrıca https://sumeyyekolemen.wordpress.com/2018/04/01/adeo-ctf18-cozumleri-part-1/ link üzerinden diÄŸer soruların çözümlerine de ulaÅŸabilirsiniz.

Son olarak ADEO ekibine bu güzel CTF için teşekkür ediyorum.












Share
Tweet
Pin
Share
0 Yorum
#Remote Debugging Nedir?#
    -Remote Debugging sunucu üzerindeki projelerde hata ayıklamak(debuglamak) için kullanılan yöntemdir.

#Remote Debugging Nasıl Uygulanır?#
    -Remote Debugging eriÅŸim saÄŸlayabildiÄŸiniz tüm sunuculara uygulayabilirsiniz.

#Remote Debugging'e Neden İhtiyaç Duyulur?#
    -Yazılım geliÅŸtiricilerinin en büyük problemlerinden biriside sunucu konfigürasyonlarını ayarlamalarıdır.ÇoÄŸunlukla dosya yolu sorunu yada dosya yazma-okuma izin problemlerini ortadan kaldırmak için "Remote Debugging"e ihtiyaç duyulur.

  • Uygulamanın Yapılacağı Ortam
  1. IDE    --> Visual Studio 2013 Ultimate
  2. SERVER --> Vmware Windows Server 2012 

-"https://www.microsoft.com/en-us/download/details.aspx?id=48156" link üzerinden sunucuya kurulmak üzere rtools dosyasını indiriniz.


-İndirilen dosyayı sunucunuza aktarınız.


-İndirilen dosyayı sunucunuza yükleyiniz.


-Sunucu üzerinde yüklenen "Remote Debugger" programını "Run as administrator" seçeniğine tıklayarak başlatınız.


-Açılan program üzerinden "Tools->Options" kısmından gerekli ayarlamaları yapabilirsiniz.



-TCP/IP portu default olarak 4018 olarak belirlenmiÅŸtir.Burada dikkat edilmesi gereken husus eriÅŸim saÄŸlayacağınız sunucunun ve istemcinin eÄŸerki varsa Güvenlik Duvarları(Firewall) üzerindeki portların izinli olmasıdır aksi takdirde baÄŸlantı gerçekleÅŸmeyecektir.Dilerseniz sunucunuza Kullanıcı Adı ve Parola ile girebilir yada "No Authenticate" seçeneÄŸini seçerek Kullanıcı Adı ve Parola doÄŸrulaması yapılmadan sunucu ile baÄŸlantı saÄŸlayabilirsiniz. 


-Visual Studio 2013 üzerinden "DEBUG->Attach to Process..." tıklayınız.


-"Find" butonuna tıklayarak bağlanmak istediğiniz sunucuyu seçiniz.
Kullanıdığım sunucu VMware üzerinde Windows Server 2012 sanal sunucusudur ve "My Subnet" altında direkt olarak görüntülenmiştir.Dilerseniz uzak sunucunuzun IP adresini girerekte sunucunuza bağlanabilirsiniz.Bağlanacağınız sunucu için "Select" butonuna tıklayınız.Sunucu üzerindeki tüm işlemleri görüntüleyebilmek için "Show all processes from all users" checkboxını check olarak işaretleyiniz.


-Sunucu bağlantınızın başarılı olup olmadığınızı kontrol ediniz.


-Visual Studio 2013 üzerinde sunucu üzerindeki hangi işlemlerin çalıştığını görüntüleyebilirsiniz.


-Sunucu üzerinde "IIS Manager(Internet Information Service Manager)" programını baÅŸlatınız. 


-Visual Studio 2013 üzerinde sunucu üzerindeki işlemleri tekrar görüntelediğinizde "w3wp.exe" yani hata ayıklayacağım projemin, işleminin listelendiğini görüyoruz.


-"w3wp.exe" işlemini seçip "Attach" butonuna tıklayınız.



-Visual Studio 2013 üzerinden "DEBUG->Windows->Modules" penceresini açınız.Ayrıca "Process" kısmından da hangi processin attach edildiÄŸinin kontrolünü yapabilirsiniz.Görüldüğü gibi ID'si 5920 olan "w3wp.exe" process attach edilmiÅŸtir.


-Projenizdeki bazı modülleriniz için "Symbol File" yüklemeniz gerekmektedir.Kendi projemde bulunan "Application.Core.dll" dosyası için .pdb uzantılı dosyayı yüklüyorum.

-PDB uzantılı dosyalar Program Debug Database türündeki dosyalardır ve içlerinde hata ayıklama bilgilerini tutarlar.Her "Remote Debugging" işleminde bu dosyaların dosya yolları yüklenmelidir.Eğerki bu dosyaları kaydederseniz "Symbol File" dosyaları direkt olarak yüklenecektir.


-Projenizdeki dll dosyaları için .pdb "Symbol File" dosya yolunu gösteriniz.


-Örn:"Application.Service.dll" dosyası için .pdb "Symbol File" dosya yolunu gösteriyorum.



-"Tools->Options->Debugging->Symbols" kısmından daha önceden kaydedilmiÅŸ "Symbol File" dosyalarının konumlarını belirtebilirsiniz.Böylece "Remote Debugging" iÅŸlemi için sürekli manuel olarak dosya yolu göstermenize gerek kalmayacaktır. 


-Herhangi bir browser üzerinden url kısmına sunucunuz üzerindeki uygulamanıza eriÅŸip dilerseniz Javascript üzerindende hata ayıklayarak kontrol edebilirsiniz. 



-Visual Studo 2013 üzerinde koymuş olduğum "Break Point" e istek doğru bir şekilde gelip hata ayıklama işlemine buradan devam edebilirsiniz.



Faydalı olması dileğiyle...

Kaynakça:

https://msdn.microsoft.com/en-us/library/y7f5zaaa.aspx
https://devnet.kentico.com/articles/running-visual-studio-remote-debugger-in-domain-environment
http://www.cbrevik.com/remote-debugging-vs2013/
https://www.youtube.com/watch?annotation_id=annotation_264345363&feature=iv&src_vid=S7Jcur8YAsw&v=aAwOoNiojoA


Share
Tweet
Pin
Share
1 Yorum
#DEBIAN SİSTEMLERE VMware Tools KURULUMU#
     -AÅŸağıdaki kodları terminal üzerinde çalıştırınız.
# sudo apt-get update
# sudo apt-get upgrade -y
# sudo apt-get install gcc make linux-headers-amd64 -y
(sistemin güncelleştirilmesi için gerekli komutlar)

# mkdir /mnt/vmware_tools_file
(vmware_tools_file adında yeni bir dizin oluşturulur)

# mount /dev/cdrom /mnt/vmware_tools_file
(mount komutuyla oluşturmuş olduğumuz dizine vmwaretools dvdsi bağlanır)

# cp /mnt/vmware_tools_file/VM*.gz /tmp/
(Dvd içerisindeki dosyalar /tmp dizinine kopyalanır.)

# cd /tmp/
(tmp isimli dizinine geçilir)

# tar -zxvf VM*
(tar.gz ile sıkıştırılmış olan dosya arşivden çıkarılır)

# cd /tmp/vmware-tools-distrib/
(vmware-tools-distrib isimli dizinine geçilir)

# ./vmware-install.pl -d

(pl uznatılı dosya default(-d) parametresi verilerek çalıştırılır)

#VMware Tools KURULUM BASH SCRİPTİ#

https://drive.google.com/file/d/0B3QM8xmXmOKSYjdaOElPdFFSZ2txOFFVUk9sTURkRTA2Skpn/view?usp=sharing

Dilerseniz link üzerinden kurulum bash scriptini indirebilirsiniz.Daha sonra inen dosyayı 
# ./vmware_tools_kurulumu.sh 
komutunu çalıştırarak VMware Tools kurulumunu gerçekleştirebilirsiniz.
Share
Tweet
Pin
Share
0 Yorum
#CentOS  Sunucuya CACTI Kurulumu#
   
     -CentOS sunucunuz için "EPEL"  deposunu ekleyiniz.
# wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
# rpm -ivh epel-release-6-8.noarch.rpm

     -"Apache Web Servisi'ni" yükleyiniz.
# yum install httpd httpd-devel -y

     -"MySQL'i" yükleyiniz.  
# yum install mysql mysql-server -y

    -"PHP'yi" yükleyiniz.
# yum install php-mysql php-pear php-common php-gd php-devel php php-mbstring php-cli php-mysql -y
  
    -"PHP-Snmp" & "Net-Snmp" yükleyiniz.
# yum install php-snmp net-snmp-utils net-snmp-libs php-pear-Net-SMTP -y

    -"RRDtool'u" yükleyiniz.
# yum install rrdtool -y

    -Servisleri yeniden baÅŸlatınız.
# /etc/init.d/httpd restart
# /etc/init.d/mysqld restart
# /etc/init.d/snmpd restart

    -"Cacti'yi" yükleyiniz.
# yum install cacti -y

    -"MySQL" ayarlarını düzenleyiniz.
# mysql -u root mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database cacti; 
(Database ismini giriniz."cacti" seçilmiştir )
Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL ON cacti.* TO cacti@localhost IDENTIFIED BY '123qweasd';
(Database kullanıcısı olan cacti parolasını giriniz."123qweasd" seçilmiştir)
Query OK, 0 rows affected (0.00 sec)

mysql> SET PASSWORD FOR 'root'@'localhost'=PASSWORD('123qwe');
(Root için parola olusturulur böylece MySQL'e parolasız erişim kapatılmış olur."123qwe" seçilmiştir)
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye
   
     -"cacti.sql" dosyasının konumunu bulunuz.
# rpm -ql cacti | grep cacti.sql
/usr/share/doc/cacti-0.8.8b/cacti.sql

     -"cacti.sql" dosyasını database üzerine import ediniz.
# mysql -u cacti -p cacti < /usr/share/doc/cacti-0.8.8b/cacti.sql
Enter password:123qweasd

    -Cacti veritabanının baÄŸlantı dosyasını "/etc/cacti/db.php" düzenleyiniz.
# vim /etc/cacti/db.php
$database_type = "mysql";
$database_default = "cacti";                       ##  Database ismi ##
$database_hostname = "localhost";
$database_username = "cacti";                  ##  Database kullanıcı ismi ##  
$database_password = "123qweasd";      ##  Database kullanıcı parolası ##
$database_port = "3306";
$database_ssl = false;

    -"Cacti'ye" web arayüzünden ulaşılması için "/etc/httpd/conf.d/cacti.conf" dosyasını düzenleyiniz.
# vim /etc/httpd/conf.d/cacti.conf
<Directory /usr/share/cacti/>
        <IfModule mod_authz_core.c>
                # httpd 2.4
                Require host localhost
        </IfModule>
        <IfModule !mod_authz_core.c>
                # httpd 2.2
                Order deny,allow
                Deny from all
                Allow from all
        </IfModule>
</Directory>
     -"Apache Web Servisi'ni" tekrar baÅŸlatınız.
# /etc/init.d/httpd restart

    -"/etc/sysconfig/iptables" dosyasına "80" portunu ekleyiniz.
# vim /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall                                                                     
# Manual customization of this file is not recommended.                                                                        
*filter                                                                                        
:INPUT ACCEPT [0:0]                                                                                        
:FORWARD ACCEPT [0:0]                                                                                                                   
:OUTPUT ACCEPT [0:0]                                                                                                  
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT                                      
-A INPUT -p icmp -j ACCEPT                                                                                                       
-A INPUT -i lo -j ACCEPT                                                                                                            
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -p udp -m state --state NEW --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT                                                     
-A INPUT -j REJECT --reject-with icmp-host-prohibited                                                                       
-A FORWARD -j REJECT --reject-with icmp-host-prohibited                                                               
COMMIT     

Kurulumu burada bitirmiş bulunmaktasınız.

Web üzerinden Cacti'ye ulaşabilmek için herhangi bir web browser(Firefox, Chrome, Explorer) üzerinden sunucunuzun ip adresini ipaddress/cacti yazarak ulaşabilirsiniz.("54.149.109.4/cacti" seçilmiştir)

"Next >>" butonuna tıklayarak devam ediniz.

"Next >>" butonuna tıklayarak devam ediniz.

"Finish" butonuna tıklayarak devam ediniz.
Default olarak "User Name":admin
Default olarak "Password"   :admin
"Login" butonuna tıklayarak devam ediniz.
Yeni bir parola oluÅŸturunuz ve doÄŸrulayınınız daha sonra "Save" butonuna tıklayarak devam ediniz.
CentOS sunucunuza başarılı bir şekilde Cacti kurulumunu gerçekleştirdiniz.

Kaynakça:

http://www.unixmen.com/install-cacti-network-monitoring-tool-on-centos-6-4-rhel-6-4-scientific-linux-6-4/
http://www.cacti.net/


Share
Tweet
Pin
Share
0 Yorum
#AWS Sunucusuna Port Ekleme#

AWS üzerindeki sunucunuza ait Security Gropus kısmından sunucunuza ait "Security Gropus" u seçin.
(launch-wizard-2 seçilmiştir.)

"Inbound"  kısmından "Edit" butonuna tıklayarak istediÄŸiniz Protokol tipini port aralığını ve kaynağını belirleyebilirsiniz."Save" butonuna tıklayarak devam ediniz.
(Type:All TCP Protocol:TCP Port Range:0-65535 Source:Anywhere seçilmiştir.)

Sunucunuz 0-65535 Port aralıgından ulaşılabilir hale gelmiştir.

AWS Sunucunuza basarılı bir şekilde port eklediniz.
Share
Tweet
Pin
Share
0 Yorum
#AMAZON WEB SERVER EC2 KURULUMU#
EC2 seçeneğine tıklayarak sanal server kurulumuna başlayabilirsiniz.
"Launch Instance" butonuna tıklayarak kuruluma devam ediniz.


İstediğiniz herhangi bir server sunucusunu seçebilirsiniz.Ardından "Select" butonuna tıklayarak devam ediniz.
(Ubuntu Server 14.04 LTS seçilmiÅŸtir)  


Burada ücretsiz olan "t2.micro" seçeneğini işaretleyerek devam edebilirsiniz.Dilerseniz ücret karşılığı sisteminizin daha iyi donanıma sahip bir şekile getirebilirsiniz."Next:Configure Instance Details" butonuna tıklayarak devam ediniz.
(t2.micro seçilmiştir.)


"Next Add Storage" butonuna tıklayarak devam ediniz.


Size(GiB) kısmından server sunucunuzun boyutunu belirleyebilirsiniz.Ardından "Next Tag Instance" butonunu seçerek devam ediniz.
(20 seçilmiştir.)



Value kısmını sunucunuzun ismini AWS üzerinde nasıl görmek isterseniz o şekilde değiştiriniz ve ardından "Next:Configure Security Group" butonunu seçerek kurulumun diğer aşamaşına gecebilirsiniz.
(Ubuntu-Server seçilmiştir.)
Security Group kısmını otomatik oluşturabildiğiniz gibi manuel bir şekilde "Select an existing security group" seçeneğini tıklayak düzenleyebilirsiniz. "Review and Launch" butonuna tıklayarak devam ediniz.
(Create a new security group seçilmiştir.)


Server kontrollerinizi ve kurulum aşamalarını bitirdiğinizde son olarak "Launch" butonunu tıklayarak devam ediniz.


"Create a new key pair" seçeniğini seçerek pem dosyasını kaydetme aşamasına geçiniz.


Key pair name kısmını doldurunuz ve "Launch Instances" butonuna tıklayınız.
(ubuntu seçilmiştir)


Oluşan Key pair name.pem dosyasını "Download Key Pair" butonuna tıklayarak bilgisayarınıza kaydediniz.


AWS üzerinde sunucu kurulumunuzu tamamlamıs bulunmaktasınız."View Instances" butonuna tıklayarak server durumunu kontrol edebilirsiniz.


Ubuntu-Server görüldügü gibi Instance Status kısmında runnig olarak çalışmaktadır. 


Server kurulumunu bitirmiş bulunmaktasınız.Server ile bağlantı kurabilmek için SSH kullanıcaktır.


AWS üzerindeki sunucunuza SSH yöntemiyle baÄŸlanabilmek için  http://bhdryrdm.blogspot.com.tr/2015/08/ssh-ile-aws-sunucuya-nasl-baglant.html linke tıklayabilirsiniz.



Share
Tweet
Pin
Share
0 Yorum
ESKİ POSTLARA GİT

printf("Hello World");

DevSecOps Engineer


Categories

  • .Net Visual Studio (1)
  • AWS (3)
  • AWS-SSH (2)
  • CTF (1)
  • GNU/Linux (4)
  • SSH (1)

Blog Archive

  • ▼  2018 (1)
    • ▼  Nisan 2018 (1)
      • ADEO IWS'2018 CTF ÇÖZÜMLERİ | WEB PART
  • ►  2016 (1)
    • ►  Eylül 2016 (1)
  • ►  2015 (8)
    • ►  Kasım 2015 (2)
    • ►  AÄŸustos 2015 (5)
    • ►  Nisan 2015 (1)
  • ►  2014 (2)
    • ►  Kasım 2014 (2)

Takip Ettiklerim

  • Martin Fowler
  • Scott Hanselman
  • Ömer Çıtak
  • Musab Yardım
  • Burak Selim Åženyurt
  • Bora KaÅŸmer
  • Gökhan Åžengün
  • Selçuk Ermaya
  • Engin Polat
  • UÄŸur UmutluoÄŸlu
  • Gökhan Gökalp
  • Tarık Güney

Google+

Bahadır Yardım
Profilimin tamamını görüntüle
Facebook Twitter Instagram Github Gitlab

Created with by ThemeXpose