t

Sub untuk belajar dan sharing ilmu seputar keamanan digital

by invalid

Beberapa waktu lalu, saya menemukan script php yang diobfuscate beberapa kali. Berikut ini adalah cara men-deobfuscate script tersebut.

  • Langkah pertama adalah mengedit script tersebut pada bagian awal dan akhir sehingga formatnya seperti ini:
<?php
$_Y= ... echo(gzinflate(str_rot13(base64_decode($_Y))));?>
  • Lanjutkan dengan melakukan deobfuscate terhadap script tersebut dengan menjalankannya menggunakan php-cli:
% php -f NTqXJm8X > 0.php
  • Hasil dari perintah di atas akan disimpan pada file yang bernama 0.php. Buka file tersebut menggunakan teks editor, dan ubah bagian awalnya menjadi seperti ini:
?><? eval
  • Selanjutnya, kita akan menggunakan script berikut ini untuk men-deobfuscate berulang kali hingga menemukan script yang asli:
#!/usr/bin/bash

while $(grep -q 'eval' 0.php); do
    cat 0.php | sed 's/?><? eval/<?php echo/' | sed 's/?><?/?>/' > tmp.php
    php -f tmp.php > 0.php
    rm tmp.php
done

cat 0.php
  • Simpan script di atas dengan nama deobfu.sh, lalu jalankan seperti ini:
% ./deobfu.sh
  • Setelah berhasil men-deobfuscate, maka akan ditampilkan script yang asli serta disimpan pada file 0.php. Berikut ini adalah script asli setelah di-deobfuscate:
?>            <?php if($row5): ?>
            <div class="row5">
                <?php if($this->countModules('position-36')): ?>
                <div class="row5col1" <?php echo $row5colwidth; ?>>
                    <jdoc:include type="modules" name="position-36" style="xhtml"/>
                </div>
                <?php endif; ?>
                <?php if($this->countModules('position-37')): ?>
                    <?php if($row5sep1): ?>
                    <div class="sepleft_25"></div>
                    <?php endif; ?>
                <div class="row5col2" <?php echo $row5colwidth; ?>>
                    <jdoc:include type="modules" name="position-37" style="xhtml"/>
                </div>
                <?php endif; ?>
                <?php if($this->countModules('position-38')): ?>
                    <?php if($row5sep2): ?>
                    <div class="sepleft_25"></div>
                    <?php endif; ?>
                <div class="row5col3" <?php echo $row5colwidth; ?>>
                    <jdoc:include type="modules" name="position-38" style="xhtml"/>
                </div>
                <?php endif; ?>
                <?php if($this->countModules('position-39')): ?>
                    <?php if($row5sep3): ?>
                    <div class="sepleft_25"></div>
                    <?php endif; ?>
                <div class="row5col4" <?php echo $row5colwidth; ?>>
                    <jdoc:include type="modules" name="position-39" style="xhtml"/>
                </div>
                <?php endif; ?>
                <div class="clear"></div>
            </div>
            <?php endif; ?>
        </div>
        <!-- END OF COLUMN MAIN ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->


        <!-- COLUMN RIGHT ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
        <?php if($showRightCol) : ?>
        <div id="colright">
            <?php if($this->countModules('position-0')): ?>
            <div id="search">
                <jdoc:include type="modules" name="position-0" />
            </div>
            <?php endif; ?>
            <?php if($this->countModules('position-45')): ?>
            <div class="row1">
                <jdoc:include type="modules" name="position-45" style="xhtml"/>
            </div>
            <?php endif; ?>
            <?php if($this->countModules('position-46')): ?>
            <div class="row2">
                <jdoc:include type="modules" name="position-46" style="xhtml"/>
            </div>
            <?php endif; ?>
            <?php if($this->countModules('position-7')): ?>
            <div id="colrightmenu">
                <jdoc:include type="modules" name="position-7" style="xhtml" />
            </div>
            <?php endif; ?>
            <?php if($this->countModules('whosonlineload')): ?>
            <div id="whosonline">
                <jdoc:include type="modules" name="whosonlineload" style="xhtml" />
            </div>
            <?php endif; ?>
            <?php if($this->countModules('position-47')): ?>
            <div class="row3">
                <jdoc:include type="modules" name="position-47" style="xhtml"/>
            </div>
            <?php endif; ?>
            <?php if($this->countModules('position-48')): ?>
            <div class="row4">
                <jdoc:include type="modules" name="position-48" style="xhtml"/>
            </div>
            <?php endif; ?>
            <?php if($this->countModules('position-49')): ?>
            <div class="row5">
                <jdoc:include type="modules" name="position-49" style="xhtml"/>
            </div>
            <?php endif; ?>
        </div>
        <?php endif; ?>
        <!-- END OF COLUMN RIGHT ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    </div>

    <div class="clear"></div>

    <!-- FOOTER ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <div id="footer">
        <?php if($footerRow1) : ?>
        <div class="row1">
            <?php if($this->countModules('position-50')): ?>
            <div class="row1col1" <?php echo $row1footerwidth; ?>>
                <jdoc:include type="modules" name="position-50" style="xhtml"/>
            </div>
            <?php endif; ?>
            <?php if($this->countModules('position-52')): ?>
                <?php if($frow1sep1): ?>
                <div class="sepleft_25"></div>
                <?php endif; ?>
            <div class="row1col2" <?php echo $row1footerwidth; ?>>
                <jdoc:include type="modules" name="position-52" style="xhtml"/>
            </div>
            <?php endif; ?>
            <?php if($this->countModules('position-53')): ?>
                <?php if($frow1sep2): ?>
                <div class="sepleft_25"></div>
                <?php endif; ?>
            <div class="row1col3" <?php echo $row1footerwidth; ?>>
                <jdoc:include type="modules" name="position-53" style="xhtml"/>
            </div>
            <?php endif; ?>
            <?php if($this->countModules('position-54')): ?>
                <?php if($frow1sep3): ?>
                <div class="sepleft_25"></div>
                <?php endif; ?>
            <div class="row1col4" <?php echo $row1footerwidth; ?>>
                <jdoc:include type="modules" name="position-54" style="xhtml"/>
            </div>
            <?php endif; ?>
            <div class="clear"></div>
        </div>
        <?php endif; ?>

        <div class="row2">
            <div id="footertrademark">
                <div id="trade">Copyright © <?php echo date('Y'); ?> <?php echo $app->getCfg('sitename'); ?></div>

                <!-- DO NOT REMOVE OR CHANGE THE CONTENT BELOW, THIS TEMPLATE MAY NOT WORK PROPERLY -->
                <!-- FOR MORE INFO SEE OUR COPYRIGHT NOTICE FOR FREE WEBSITE TEMPLATES: http://astemplates.com/terms.php -->

                <div id="ascopy">
                <a href="http://www.asdesigning.com/" target="_blank">
                    DESIGNED BY:  AS DESIGNING
                </a>
                </div>

                <!-- DO NOT REMOVE OR CHANGE THE CONTENT ABOVE, THIS TEMPLATE MAY NOT WORK PROPERLY -->
                <!-- FOR MORE INFO SEE OUR COPYRIGHT NOTICE FOR FREE WEBSITE TEMPLATES: http://astemplates.com/terms.php -->
            </div>
            <div id="footermenu">
                <jdoc:include type="modules" name="position-51" style="xhtml" />
            </div>
        </div>
    </div>
    <!-- END OF FOOTER ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->

</div>
</body><?

Sekian tutorial singkat ini, semoga bermanfaat. Terima kasih kepada Tuhan Yang Maha Esa, dan Anda yang telah membaca tutorial ini.