美文网首页
【渗透笔记】Gitlab 本地db_dump

【渗透笔记】Gitlab 本地db_dump

作者: RabbitMask | 来源:发表于2020-07-01 13:32 被阅读0次
    查看Gitlab配置信息 cat /var/opt/gitlab/gitlab-rails/etc/database.yml
    # This file is managed by gitlab-ctl. Manual changes will be
    # erased! To change the contents below, edit /etc/gitlab/gitlab.rb
    # and run `sudo gitlab-ctl reconfigure`.
    
    production:
      adapter: postgresql
      encoding: unicode
      collation: 
      database: gitlabhq_production
      pool: 10
      username: "gitlab"
      password: 
      host: "/var/opt/gitlab/postgresql"
      port: 5432
      socket: 
      sslmode: 
      sslcompression: 0
      sslrootcert: 
      sslca: 
      load_balancing: {"hosts":[]}
      prepared_statements: false
      statements_limit: 1000
      fdw: 
    

    如果没有自定义更改数据库,默认为postgresql,当然也支持使用自己的MySQL等进行替换。

    查看Gitlab对应的系统用户 cat /etc/passwd | grep gitlab
    gitlab-www:x:998:998::/var/opt/gitlab/nginx:/bin/false
    git:x:997:997::/var/opt/gitlab:/bin/sh
    gitlab-redis:x:996:996::/var/opt/gitlab/redis:/bin/false
    gitlab-psql:x:995:995::/var/opt/gitlab/postgresql:/bin/sh
    gitlab-prometheus:x:994:994::/var/opt/gitlab/prometheus:/bin/sh
    
    # 切换用户
    su - gitlab-psql
    

    有横杠 login shell:用户切换,更改工作目录,加载所有用户环境配置。
    无横杠 interactive shell:用户切换,但是工作目录不会切换到该用户所在工作目录,也不会加载该用户设置的环境变量。

    注:需在root用户下切换

    # /etc/passwd
    gitlab-psql:x:995:995::/var/opt/gitlab/postgresql:/bin/sh
    现在的Unix/Linux系统中,口令不再直接保存在passwd文件中,通常将passwd文件中的口令字段使用一个“x”来代替,将/etc /shadow作为真正的口令文件,用于保存包括个人口令在内的数据。
    # /etc/shadow
    gitlab-psql:!:18437::::::
    第二列为"!",即":!:",表示该用户被锁,被锁将无法登陆,但是可能其他的登录方式是不受限制的,如ssh公钥认证的方式,su的方式。
    
    dump用户表
    echo 'select * from users;' |psql -h /var/opt/gitlab/postgresql -d gitlabhq_production > user_dump.txt
    

    默认的导出路径为配置文件中的 /var/opt/gitlab/postgresql

    综上,最终一句话命令导出到tmp目录可概括为:

    sudo -i -u gitlab-psql bash -c "echo 'select * from users;' |psql -h /var/opt/gitlab/postgresql -d gitlabhq_production > /tmp/user_dump.txt"
    
    其它数据库操作
    # 登陆数据库(-h指定host,-d指定数据库)
    psql -h /var/opt/gitlab/postgresql -d gitlabhq_production
    # 查看帮助信息
    gitlabhq_production=# \h
    # 查看数据库
    gitlabhq_production=# \l
    # 查看库中的表(执行命令后,按回车键显示更多表信息)
    gitlabhq_production=# \dt
    # 通过筛查,可在库中找到users表,相关用户信息都记录在表中!
    # 查看users表结构
    gitlabhq_production=# \d users
    # 查看表信息
    gitlabhq_production=# SELECT * FROM users;
    # 查看users表中的name字段
    gitlabhq_production=# SELECT name FROM users;
    # 登出数据库
    gitlabhq_production=# \q
    

    相关文章

      网友评论

          本文标题:【渗透笔记】Gitlab 本地db_dump

          本文链接:https://www.haomeiwen.com/subject/lmpfqktx.html