VMG8324-B10A Türk Telekom Modem Yazılım Analizi ve TR-064

Yazılım dosyasını ZyXEL FTP sunucusundan buluyoruz ve indiriyoruz.

100AAWV7D0.bin adlı yazılım dosyasını Binwalk ile dosyamızı inceliyoruz.

# binwalk --dd='.*' 100AAWV7D0.bin

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
131072        0x20000         JFFS2 filesystem, big endian

JFFS2 filesystem olduğunu görüyor ve JFFS2 extraction tool’u githubdan clonlayıp kurulumunu yapıyoruz .

#git clone https://github.com/sviehb/jefferson.git
#pip install cstruct
#apt-get install python-lzma
#python setup.py install

Sonra dosyamızı bu araçla extract ediyoruz.

#jefferson 100AAWV7D0.bin -d output_dir

Dosya sistemine artık erişebilir durumdayız.

/etc/default.cfg içerisindeki dosyayı inceliyoruz

    <X_5067F0_LoginCfg>
      <X_5067F0_LoginGroupNumberOfEntries>1</X_5067F0_LoginGroupNumberOfEntries>
      <X_5067F0_EnableQuickStart>TRUE</X_5067F0_EnableQuickStart>
      <X_5067F0_Login_Group instance="1">
        <Privilege>broadband,wireless,homeNetworking,usbService,routing,dnsroute,qos,nat,dns,halfBridge,igmpSetting,intfGrp,firewall,macFilter,parentalControl,schedulerRule,certificates,ipsecVPN,sip,phone,callRule,log,packetCapture,trafficStatus,voipStatus,arpTable,routeTable,igmpGroupStatus,xdslStatistics,system,userAccount,remoteMGMT,tr069Client,tr064,snmp,time,emailNotification,logSetting,firmwareUpgrade,configuration,reboot,callHistory,dialTest,disagnostic,HelpDesk,wizard</Privilege>
        <Name>Administrator</Name>
        <ConsoleLevel>2</ConsoleLevel>
        <Use_Login_Info instance="1">
          <UserName>admin</UserName>
          <Password>dHVya3RlbGVrb20=</Password>
        </Use_Login_Info>
        <Use_Login_Info nextInstance="2" ></Use_Login_Info>
      </X_5067F0_Login_Group>
      <X_5067F0_Login_Group nextInstance="2" ></X_5067F0_Login_Group>
    </X_5067F0_LoginCfg>

Buradan Password değerini dHVya3RlbGVrb20= base64 ile decode ettiğimizde turktelekom default şifresini görebiliyoruz.


Bize sunulmayan gizli özellikler var mı diye biraz araştırma yapıyoruz ve HTML dosyalarını incelediğimizde arayüzden bize tüm erişimlerin sağlanmamış olduğunu görebiliyoruz.

\fs_1\webs\Brick\pages\maintenance altında tr064 klasörünü görebiliyoruz fakat arayüzde modemin uzaktan yöntetimini sağlayan tr064’ü açıp kapatamıyoruz.

Fakat /etc/default.cfg içerinide yazan Enable değerinden açık olduğunu tahmin ediyoruz.

      <Tr64cCfg>
        <Enable>TRUE</Enable>
      </Tr64cCfg>

TR-064 ayarlarına erişebilmek için Burp suite yada Charles gibi bir proxy yazılımıyla araya giriyoruz ve 192.168.1.1 adresin breakpoint koyuyoruz.

Modem arayüzünü açıp Bakım sekmesindeki seçeneklerden birine tıklıyoruz.

Burdada biz Tanılama ya tıkladığımız için /diagnostics/tab.js yüklenmeye çalışılıyor.

Yapılan isteği  manipüle ediyoruz ve /tr064/tab.js ile değiştiriyoruz.

Karşımıza gelen TR-064 ayar penceresi geliyor, buradan TR-064 devre dışı bırakılabilir.

Sonrasında aynı adımları tekrar uyguladığımızda devre dışı kaldığını göreceğiz.