在进行漏洞检测的时候,我们会发现有很多的漏洞在执行了一些命令后,从表面上看没有任何回应的,
比如命令执行漏洞,可以让目标执行读取文件的命令等,但由于前端并没有对应的展示,导致我们并不能知道文件是否成功读取,也就不知道命令是否执行成功。
同时还有向经典的log4j rce,fastjson,ssrf等,都是没有回显的漏洞,那么当面对这类的漏洞,我们就需要一个反连平台,通过让目标执行ping、curl等命令,对反连平台发起请求,反连平台在接受到请求后,就能告诉我们,命令触发了,也就代表了漏洞存在了。
所以当我们想要比较完备的对一个系统进行测试,反连平台的利用一定是必不可少的。所以本文将着重讲述xray的反连平台如何部署搭建,配置文件如何修改,如何进行调试,并使用实际存在的漏洞进行举例。
安全策略:开启反连平台对外端口,开启53端口(UDP协议)
也就是修改安全组策略,将53端口开放,⚠️注意,协议类型一定要是UDP
然后将需要对外开放的,部署反连平台的端口进行开放,比如8777,⚠️注意,该端口的协议类型是TCP
首先使用以下命令确认端口占用情况
sudo netstat -nultp
在确认被占用后,可以执行如下命令停用systemd-resolved
sudo systemctl stop systemd-resolved
编辑resolved.conf
sudo vim /etc/systemd/resolved.conf
将文件中的对应内容改为如下内容
[Resolve]
DNS=x.x.x.x #取消注释,增加dns,此处的值可以填写你的云服务器公网IP
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#DNSOverTLS=no
#Cache=no-negative
DNSStubListener=no #取消注释,把yes改为no
#ReadEtcHosts=yes
# 反连平台配置,更多解释见 https://docs.xray.cool/#/configration/reverse
# 注意: 默认配置为禁用反连平台,这是无法扫描出依赖反连平台的漏洞,这些漏洞包括 fastjson,ssrf 以及 poc 中依赖反连的情况等
reverse:
db_file_path: "test.db" # 反连平台数据库文件位置, 这是一个 KV 数据库
token: "" # 反连平台认证的 Token, 独立部署时不能为空
http:
enabled: true
listen_ip: 0.0.0.0
listen_port: "8777"
ip_header: "" # 在哪个 http header 中取 ip,为空代表从 REMOTE_ADDR 中取
dns:
enabled: true
listen_ip: 0.0.0.0
domain: "xxxxx.com" # 此处填写刚才准备好的域名,如果没有准备启动dns,没有准备域名,请不要填写
is_domain_name_server: true # 是否修改了域名的 ns 为反连平台,如果是,那 nslookup 等就不需要指定 dns 了
resolve: # DNS 静态解析规则
- type: A # A, AAAA, TXT 三种
record: localhost
value: 127.0.0.1
ttl: 60
client:
remote_server: false # 是否是独立的远程 server,如果是要在下面配置好远程的服务端地址
http_base_url: "http://8.130.41.223:8777" # 默认将根据 ListenIP 和 ListenPort 生成,该地址是存在漏洞的目标反连回来的地址, 当反连平台前面有反代、绑定域名、端口映射时需要自行配置
dns_server_ip: "8.130.41.223" # 和 http_base_url 类似,实际用来访问 dns 服务器的地址
# 如果没有准备启动dns,没有准备域名,请不要填写
# 反连平台配置,更多解释见 https://docs.xray.cool/#/configration/reverse
# 注意: 默认配置为禁用反连平台,这是无法扫描出依赖反连平台的漏洞,这些漏洞包括 fastjson,ssrf 以及 poc 中依赖反连的情况等
reverse:
db_file_path: "test.db" # 反连平台数据库文件位置, 这是一个 KV 数据库
token: "xxxxx" # 反连平台认证的 Token, 独立部署时不能为空
http:
enabled: true
listen_ip: 0.0.0.0
listen_port: "8777"
ip_header: "" # 在哪个 http header 中取 ip,为空代表从 REMOTE_ADDR 中取
dns:
enabled: true
listen_ip: 0.0.0.0
domain: "xxxxx.com" # 此处填写刚才准备好的域名,如果没有准备启动dns,没有准备域名,请不要填写
is_domain_name_server: true # 是否修改了域名的 ns 为反连平台,如果是,那 nslookup 等就不需要指定 dns 了
resolve: # DNS 静态解析规则
- type: A # A, AAAA, TXT 三种
record: localhost
value: 127.0.0.1
ttl: 60
client:
remote_server: false # 是否是独立的远程 server,如果是要在下面配置好远程的服务端地址
http_base_url: "http://8.130.41.223:8777" # 默认将根据 ListenIP 和 ListenPort 生成,该地址是存在漏洞的目标反连回来的地址, 当反连平台前面有反代、绑定域名、端口映射时需要自行配置
dns_server_ip: "8.130.41.223" # 和 http_base_url 类似,实际用来访问 dns 服务器的地址
# 如果没有准备启动dns,没有准备域名,请不要填写
# 反连平台配置,更多解释见 https://docs.xray.cool/#/configration/reverse
# 注意: 默认配置为禁用反连平台,这是无法扫描出依赖反连平台的漏洞,这些漏洞包括 fastjson,ssrf 以及 poc 中依赖反连的情况等
reverse:
db_file_path: "" # 反连平台数据库文件位置, 这是一个 KV 数据库
token: "xxxxx" # 反连平台认证的 Token, 独立部署时不能为空
http:
enabled: false
listen_ip: 0.0.0.0
listen_port: "8777"
ip_header: "" # 在哪个 http header 中取 ip,为空代表从 REMOTE_ADDR 中取
dns:
enabled: false
listen_ip: 0.0.0.0
domain: "xxxxx.com" # 此处填写刚才准备好的域名,如果没有准备启动dns,没有准备域名,请不要填写
is_domain_name_server: false # 是否修改了域名的 ns 为反连平台,如果是,那 nslookup 等就不需要指定 dns 了
resolve: # DNS 静态解析规则
- type: A # A, AAAA, TXT 三种
record: localhost
value: 127.0.0.1
ttl: 60
client:
remote_server: true # 是否是独立的远程 server,如果是要在下面配置好远程的服务端地址
http_base_url: "http://8.130.41.223:8777" # 默认将根据 ListenIP 和 ListenPort 生成,该地址是存在漏洞的目标反连回来的地址, 当反连平台前面有反代、绑定域名、端口映射时需要自行配置
dns_server_ip: "8.130.41.223" # 和 http_base_url 类似,实际用来访问 dns 服务器的地址
# 如果没有准备启动dns,没有准备域名,请不要填写
apt update
apt install screen
screen -R reverse
✦
长·期·征·稿
✦