# 나/!nfra
[Nessus] PostgreSQL Default Unpassworded Account
SaltLee
2025. 5. 14. 13:35
PostgreSQL 디폴트 계정 postgres 인데 비밀번호 설정 안되어 있어서
Nessus 가 로그인 시도 해보고 로그인 성공해서 취약점으로 잡은것 같다
postgres 계정에 대해 비밀번호 설정 하면 안잡힐 것이다
# 리눅스에서 postgres 사용자로 전환 sudo -u postgres psql # psql 안에서 비밀번호 설정 \password postgres # 확인 방법: select usename, passwd from pg_shadow where username = 'postgres'; # 예시 화면: username passwd postgres md5cfc624e0d299bf25e3a6d7f0b1234567 |
근데 비밀번호 설정 하더라도
trust 나 peer 설정이 되어 있으면 취약으로 잡힐 수 있다
trust : 아무나 접속 허용 (비밀번호 없이) peer : OS 사용자 이름 = DB 사용자 이름 이면 접속 허용 (비밀번호 없이) |
그래서 trust, peer 설정도 없애줘야 한다
# 설정파일 위치: /var/lib/pgsql/data/pg_hba.conf 또는 /etc/postgresql/<version>/main/pg_hba.conf # 제거해야 하는 예시: host all all 0.0.0.0/0 trust local all all peer # 안전한 예시 설정: host all all 0.0.0.0/0 md5 또는 scram-sha-256 local all all md5 또는 scram-sha-256 # 변경 후 재시작: sudo systemctl restart postgresql 또는 sudo service postgresql restart # 변경 적용 확인 psql -U postgres -h <DB_IP> → 비밀번호를 요구해야 정상 |
근데 scram-sha-256 은 postgreSQL 10 이상부터 지원한다
인증 방식 PostgreSQL 9.6 이하 PostgreSQL 10 이상 md5 O (지원) O (지원) scram-sha-256 X (미지원) O (지원) trust, peer O (지원) O (지원) |