Git
Exploit .git folder exposed over HTTP
Some website exposes .git to the Internet. To check if the website is vulnerable, then check for
the following path:
https://<domain>/some/path/.git/HEAD
If the server return a status 200, then it might be possible to clone the repository. For that, you
can use GitTools:
Dumper/gitdumper.sh http://<domain>/some/path/.git/ ~/<domain>
Extractor/extractor.sh ~/<domain> ~/<domain>_dump
If the script is not dumping the .git folder, then you can modify it. Sometimes, the /.git/ path
is a Directory Listing, then it's easier to dump using wget.
Find git secrets
Here is 2 tools I used to find git secrets:
Or you can use the git command:
git log
git diff <commit_hash>
Don't forget to also check the username or email address of the committers.
Use git over an HTTP Proxy
You can use git (therefore ssh) over an HTTP Proxy using the ProxyCommand
configuration.
For ssh the command looks like:
ssh <ssh_user>@<ssh_host> -o "ProxyCommand=nc -X connect -x <proxy_host>:<proxy_port> %h %p"
Or you can edit the ~/.ssh/config file to add the ProxyCommand to a specific
host. For example, if you want to use Github through an HTTP proxy:
Host github.com
User git
ProxyCommand nc -X connect -x <proxy_host>:<proxy_port> %h %p
ServerAliveInterval 10
Github dorking
Search a PoC
Security researchers often use gist or repository to publish their works. With the following URL you can search for a specific CVE exploit tool.
https://github.com/search?q="<CVE-ID>"+AND+exploit+in:name+in:description+in:readme
https://gist.github.com/search?q="<CVE-ID>"
Also, you can use the application grep.app to search across
public git repositories.
Get user SSH public keys
When you add .keys in the URL of a user you can see their public SSH keys and
associated emails addresses.
https://github.com/<username>.keys
Get raw commit
When you add .patch to the URL of a commit you retrieve the raw commit file.
This file contains git log and the user email.
https://github.com/<username>/<repo>/commit/<sha>.patch
Using the .diff extension you can get the diff with the previous commit.
https://github.com/<username>/<repo>/commit/<sha>.diff
Check if a SSH key is used on Github or Gitlab
You can check if a SSH key is used for an account on Github or Gitlab. Connect over SSH to the endpoint.
ssh -i {SSH_KEY} git@gitlab.com
PTY allocation request failed on channel 0
Welcome to GitLab, @vincd!
Connection to gitlab.com closed.
ssh -i {SSH_KEY} git@github.com
PTY allocation request failed on channel 0
Hi vincd! You've successfully authenticated, but GitHub does not provide shell access.
Connection to ssh.github.com closed.