[METASPLOIT] MSF에서 Postgres DB 연결 및 사용하기
Setup DB(Postgres)
DB 연결 전 postgres DB에서 사용할 계정 및 DB를 생성합니다. 먼저 postgres 계정으로 전환합니다.
su - postgres
전환 후 createuser 명령으로 msf에서 db로 사용할 계정을 생성합니다.
createuser htest_db -P
Enter password for new role: yourpassword
Enter it again: yourpassword
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
createdb 명령을 통해 msf에서 사용할 db를 생성합니다. owner는 아까 생성한 계정명으로 해줍시다.
createdb --owner=htest_db htest_database
=> DB 생성 완료
DB Connect in MSF
MSF 로드 후 db를 확인하면 아래와 같이 no connection 으로 나타나게 됩니다.
hahwul #> db_status
[*] postgresql selected, no connection
아까 생성한 정보를 기반으로 db_connect 명령을 통해 DB 연결을 시도합니다.
hahwul #> db_connect htest_db:yourpassword@127.0.0.1:5432/htest_database
[*] Rebuilding the module cache in the background...
DB 연결 후 db_status 명령을 통해 확인하면 연결되어 있다고 나옵니다.
hahwul #> db_status
[*] postgresql connected to htest_database
help 명령을 통해 DB 명령을 확인하면 아래와 같습니다. 하나하나 써보시면 금방 이해갑니다.
hahwul #> help database
Database Backend Commands
=========================
Command Description
------- -----------
creds List all credentials in the database
db_connect Connect to an existing database
db_disconnect Disconnect from the current database instance
db_export Export a file containing the contents of the database
db_import Import a scan result file (filetype will be auto-detected)
db_nmap Executes nmap and records the output automatically
db_rebuild_cache Rebuilds the database-stored module cache
db_status Show the current database status
hosts List all hosts in the database
loot List all loot in the database
notes List all notes in the database
services List all services in the database
vulns List all vulnerabilities in the database
workspace Switch between database workspaces
hahwul #> db_hosts
hahwul #> db_nmap localhost (결과를 DB에 저장합니다.)
Automated connect
매번 MSF 실행 시 DB를 연결하기에는 굉장히 번거롭습니다. database.yml 파일을 설정하여 쉽게 바로바로 로드될 수 있도록 수정이 가능합니다.
MSF 디렉토리
> config
> database.yml
config 하단에 파일을 로드하면 DB 연결정보가 나오고 아래와 같이 작성해주시면 됩니다.
development: &pgsql
adapter: postgresql
database: DB 이름
username: DB 유저 이름(postgres 에서 만든 계정)
password: 위 계정의 패스워드
host: localhost
port: 5432 # 변경하셨다면 변경하신 포트로 작성해주세요.
pool: 5
timeout: 5
쉽게 설정이 가능하며, DB 연결을 통해 다른 어플리케이션과의 통신도 쉽게 가능합니다 😎