内网扫描器在vCenter低权限下爆破Postgres的报错问题

前言:内网扫描器在vCenter机器低权限用户下爆破pg服务出现pgservicefile报错问题,这边简单进行修复

参考文章:https://github.com/lib/pq
参考文章:https://github.com/shadow1ng/fscan/issues/77
参考文章:https://3gstudent.github.io/vSphere开发指南4-PostgreSQL

问题情况

在内网中使用扫描器发现在vCenter低权限机器下面进行扫描爆破相关的pg服务的时候会导致出报错情况,如下图所示

通过查阅fscan相关的issues中也发现了类似出现的问题,如下图所示

在三好学生的文章中发现具体报错的原因,发现这是因为vCenter环境下默认设置了环境变量$PGSERVICEFILE,而通过go get github.com/lib/pq安装的第三方包默认引用了这个变量,这就导致了错误,如下图所示

解决方法

这边直接可以观察go get github.com/lib/pq第三方库的的github.com/lib/pq@v1.10.9/conn.go:2009实现情况,如下图所示

如果当前机器存在环境变量的话,那么首先会解析机器中的环境变量情况,如果存在PGSERVICE, PGSERVICEFILE, PGREALM的变量信息的话,那么则直接会调用unsupported异常情况

完整的报错调用链情况,如下所示

github.com/lib/pq@v1.10.9/conn.go:329

github.com/lib/pq@v1.10.9/conn.go:334

github.com/lib/pq@v1.10.9/connector.go:47

github.com/lib/pq@v1.10.9/conn.go:2009

重新forkgithub.com/lib/pq,然后注释pgservicefile部分,进行重新推送

最后在扫描工程中进行replace或者直接引用即可

posted @ 2024-10-18 13:59  zpchcbd  阅读(7)  评论(0编辑  收藏  举报