利用Nginx隐藏红队服务器Web应用指纹
创始人
2024-12-28 16:04:06
0

攻防演练是一个对抗过程,攻防中红队几乎必定会用到的VPS用于远控或者扫描,为了避免被蓝队溯源反制,对VPS上的Web服务进行访问加固,可以增加蓝队对C2服务器的反制的工作量,降低被溯源的风险

需求说明

由于红队VPS上如果要使用一些远控和扫描功能,会要部署相应的Web服务,例如Viper、NPS、ARL等,如果这些服务没有做反溯源处理,很容易就被微步等平台标记为红队服务器

在这里插入图片描述
一目了然的远控标签,和直接开放的Web服务,都容易让我们成为蓝队的重点溯源目标,被溯源的风险大大增加

为了防止Web服务特征泄露,下面我们通过Nginx反向代理来进行反溯源配置

思路讲解

实现思路很简单,便是利用Nginx提供的ngx_http_auth_basic_module模块,让用户必须输入正确的用户名和密码才能访问网页内容。在密码验证成功之前,用户无法获取网页的任何信息,可以完美隐藏网站原有指纹,还能多一层密码防护

实现方法也不难,首先安装htpasswd生成密码文件,然后通过Nginx指定读取该密码文件进行验证,验证成功后将请求转发到对应Web服务的端口,便可以进行访问了

htpasswd安装

首先安装需要的工具和环境,如果没有安装Nginx可以通过下面的指令进行安装,并设置Nginx服务为开机自启动

yum -y install nginx systemctl start nginx systemctl enable nginx 

然后安装htpasswd工具,用于生成对应的密码文件

yum -y install httpd-tools 

通过下面的指令指定密码文件路径和用户名,文件路径可以随意指定,输入指令后确认两次密码,便能生成对应的密码文件

htpasswd -c /usr/share/nginx/passwd {username} 

如果不小心忘记了密码,可以通过下面这条指令修改密码

htpasswd -D /usr/share/nginx/passwd {username} 

配置Nginx密码认证

先备份nginx配置文件,然后进行编辑

cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak vim /etc/nginx/nginx.conf 

修改配置如下,首先是监听端口可以设置不常用端口,我这里设置为常用端口8080是希望对方以为我这是普通web服务,而不是红队工具。中间还一些配置是安全配置,限制爆破速率

然后通过auth_basic_user_file指定密码文件路径为我们刚刚使用htpasswd生成的密码文件,最后配置端口转发,如果密码验证正确则跳转到本地的红队web工具端口

server_tokens off;  # 关闭Nginx版本号回显 limit_req_zone $binary_remote_addr zone=mylimit:10m rate=2r/s;  # 定义变量,占用空间大小为10m,每秒处理请求不超过2个  server {     listen       8080;     listen       [::]:8080;      location / {             auth_basic "Restricted Access";  # 配置认证提示信息             auth_basic_user_file /usr/share/nginx/passwd;  # 配置存储用户名和密码的文件路径             limit_req zone=mylimit burst=5 nodelay;  # 缓冲队列长度为5             limit_req_status 503;   # 禁止访问后回显状态码             proxy_pass https://127.0.0.1:5003;  # 配置转发到对应端口的服务     } } 

配置完后需要重启Nginx服务才能使配置生效

systemctl restart nginx 

设置监听服务仅能本地访问

以红队工具灯塔(ARL)为例,由于Docker占用了5003端口提供灯塔web服务,我们没办法直接通过Nginx监听5003端口并配置密码认证。我想到的解决方法是先通过Nginx监听其他端口并配置访问密码,一旦密码认证通过则将端口服务转发到灯塔监听的5003端口,这样就能正常使用灯塔服务

但是这样有个问题,就是如果别人不通过Nginx监听的端口访问灯塔,而是直接通过5003访问,那么Nginx配置的密码认证也就没有效果了

解决方法原理一致,只是方式不同:

  1. 通过Linux防火墙配置端口访问黑名单,禁止外网访问5003端口

  2. 通过灯塔进行配置,将服务绑定在本地的5003端口,这样外网就无法访问

这里介绍第二种方式的实现方法,首先进入arl源文件安装路径,关闭docker镜像服务

docker-compose down 

然后编辑docker配置文件,指定本地IP 127.0.0.1 绑定的 5003 端口作为Docker容器中443端口的映射,这样想访问灯塔的web服务就只能通过本地地址 https://127.0.0.1:5003 访问

vim docker-compose.yml 

最后重新启动灯塔服务,使配置文件生效

docker-compose up -d 

实现效果

访问Nginx监听的端口会弹框提示需要输入账号和密码进行验证

验证通过后才会重定向到灯塔的主页,这时候才能正常使用

在这里插入图片描述

抓包端口,没有验证时请求包和响应包中完全看不出灯塔的指纹特征,完美隐藏

在这里插入图片描述

Viper反溯源

Viper 是国人自主编写的一款红队服务器,提供了MSF的图形化的操作界面,让用户使用浏览器便捷的进行内网渗透

这里特意提一下,避免有些人重复操作,由于Viper自带了反溯源功能,我们直接按照他的操作手册配置就行,不用我们再自己配置Nginx反向代理实现反溯源

Viper反溯源教程:https://www.yuque.com/vipersec/install/ilwe2iprztf9hlqv

在这里插入图片描述

相关内容

热门资讯

关于辅助!wepoker好友助... 关于辅助!wepoker好友助力码,浙江游戏厅辅助器,开挂(透视)辅助软件(有挂方法);浙江游戏厅辅...
通报开挂!wepoker透视脚... 通报开挂!wepoker透视脚本免费使用视频,欢乐达人暗宝辅助,开挂(透视)辅助安装(有挂透明挂);...
教会辅助!wepoker脚本,... 教会辅助!wepoker脚本,兴动互娱免费辅助,开挂(透视)辅助脚本(有挂神器);小薇(透视辅助)致...
分享辅助!德普之星怎么开辅助,... 分享辅助!德普之星怎么开辅助,杭州边锋辅助软件,开挂(透视)辅助插件(有挂方法);1、不需要AI权限...
必看辅助!德普之星辅助器怎么用... 必看辅助!德普之星辅助器怎么用,陕西辅助,开挂(透视)辅助安装(今日头条);是一款可以让一直输的玩家...
传授辅助!wepoker辅助是... 传授辅助!wepoker辅助是真的吗,边锋老友填大坑辅助,开挂(透视)辅助软件(有挂规律);1、很好...
通报辅助!wepoker破解器... 通报辅助!wepoker破解器,阿拉游戏中心辅助软件免费下载,开挂(透视)辅助脚本(详细教程);1、...
传授开挂!wepoker买脚本... 传授开挂!wepoker买脚本靠谱吗,心悦游戏辅助,开挂(透视)辅助脚本(有人有挂);心悦游戏辅助软...
正版开挂!pokemmo手机脚... 正版开挂!pokemmo手机脚本辅助器,新星游辅助真的假的,开挂(透视)辅助软件(今日头条);超受欢...
必看辅助!hhpoker有没有... 必看辅助!hhpoker有没有辅助辅助,杭州都莱辅助软件,开挂(透视)辅助神器(证实有挂);杭州都莱...