theharvesterインストールと簡単な使い方

# theharvester　って？

* OSINT（open source intelligence）ツール
* ドメイン名から内包するホストやメールアドレス、名前、サブドメイン、IP、URLなどを探してくれる。  
自ドメインのメールアドレスが、意図せず公開されていないか調べる時なんかに便利です。
* KaliLinux　だったら追加インストールする事なく利用出来ます。
* 検索エンジンを使って調べるので、マイナーなドメインだと殆ど情報が得られない事もあります。
* 沢山の情報ソースを利用できるけど、APIキーの登録が必要なものも多くあります。
APIキーが必要な検索サービスは 配布元の [github:laramies/theHarvester](https://github.com/laramies/theHarvester/wiki/Installation#api-keys)で確認出来ます。


## インストール

### MacOSの場合

今回はMacOS Catalina で利用するためにインストールから始めます。
楽をしたいので、brewを使ってインストールしちゃいます。
※最近、私の環境では動かせてません。。。

```shell-session
user01@imac ~ % brew install theharvester
```

**brew: command not found** が出る場合、Homebrewがインストールされていないかも知れません。
先に [Homebrewのインストール](https://qiita.com/kichise/items/c6bc74bbe93685223b61) を行いましょう。

### Ubuntu 21.10 の場合

```shell-session
user01@user01-ubuntu21:~$ sudo apt install python3-testresources
user01@user01-ubuntu21:~$ sudo apt install git 
user01@user01-ubuntu21:~$ git clone https://github.com/laramies/theHarvester 
user01@user01-ubuntu21:~$ cd theHarvester/ 
user01@user01-ubuntu21:~/theHarvester$ sudo apt install python3-pip 
user01@user01-ubuntu21:~/theHarvester$ python3.9 -m pip install -r requirements/dev.txt
user01@user01-ubuntu21:~/theHarvester$ ./theHarvester.py -h 
```

### Ubuntu 23.04 の場合

```shell-session
user01@ubuntu23:~$ sudo apt install git
user01@ubuntu23:~$ git clone https://github.com/laramies/theHarvester
user01@ubuntu23:~$ cd theHarvester
user01@ubuntu23:~/theHarvester$ sudo apt install python3-venv python3-pip
user01@ubuntu23:~/theHarvester$ python3 -m pip --version
pip 23.0.1 from /usr/lib/python3/dist-packages/pip (python 3.11)
user01@ubuntu23:~/theHarvester$ python3 -m venv env
user01@ubuntu23:~/theHarvester$ source env/bin/activate
(env) user01@ubuntu23:~/theHarvester$ which python
/home/user01/theHarvester/env/bin/python
(env) user01@ubuntu23:~/theHarvester$ python3 -m pip install -r requirements/dev.txt
(env) user01@ubuntu23:~/theHarvester$ ./theHarvester.py -h

使い終わったら
(env) user01@ubuntu23:~/theHarvester$ deactivate
```

### Ubuntu 24.04 の場合

```shell-session
user01@ubuntu:~/デスクトップ$ cd ../
user01@ubuntu:~$ sudo apt install git
user01@ubuntu:~$ git clone https://github.com/laramies/theHarvester
user01@ubuntu:~$ cd theHarvester
user01@ubuntu:~/theHarvester$ sudo apt install python3-venv python3-pip
user01@ubuntu:~/theHarvester$ python3 -m pip --version
pip 24.0 from /usr/lib/python3/dist-packages/pip (python 3.12)
user01@ubuntu:~/theHarvester$ python3 -m venv env
user01@ubuntu:~/theHarvester$ source env/bin/activate
(env) user01@ubuntu:~/theHarvester$ which python
/home/user01/theHarvester/env/bin/python
(env) user01@ubuntu:~/theHarvester$ python3 -m pip install -r requirements/dev.txt
(env) user01@ubuntu:~/theHarvester$ python3 -m pip install -r requirements/base.txt
(env) user01@ubuntu:~/theHarvester$ ./theHarvester.py -h

使い終わったら
(env) user01@ubuntu23:~/theHarvester$ deactivate
```


## 使い方

### オプション一覧

```shell-session
(env) user01@ubuntu23:~/theHarvester$ ./theHarvester.py -h
*******************************************************************
*  _   _                                            _             *
* | |_| |__   ___    /\  /\__ _ _ ____   _____  ___| |_ ___ _ __  *
* | __|  _ \ / _ \  / /_/ / _` | '__\ \ / / _ \/ __| __/ _ \ '__| *
* | |_| | | |  __/ / __  / (_| | |   \ V /  __/\__ \ ||  __/ |    *
*  \__|_| |_|\___| \/ /_/ \__,_|_|    \_/ \___||___/\__\___|_|    *
*                                                                 *
* theHarvester 4.4.3                                              *
* Coded by Christian Martorella                                   *
* Edge-Security Research                                          *
* cmartorella@edge-security.com                                   *
*                                                                 *
*******************************************************************
usage: theHarvester.py [-h] -d DOMAIN [-l LIMIT] [-S START] [-p] [-s] [--screenshot SCREENSHOT] [-v]
                       [-e DNS_SERVER] [-t] [-r [DNS_RESOLVE]] [-n] [-c] [-f FILENAME] [-b SOURCE]

theHarvester is used to gather open source intelligence (OSINT) on a company or domain.

options:
  -h, --help            show this help message and exit
  -d DOMAIN, --domain DOMAIN
                        Company name or domain to search.
  -l LIMIT, --limit LIMIT
                        Limit the number of search results, default=500.
  -S START, --start START
                        Start with result number X, default=0.
  -p, --proxies         Use proxies for requests, enter proxies in proxies.yaml.
  -s, --shodan          Use Shodan to query discovered hosts.
  --screenshot SCREENSHOT
                        Take screenshots of resolved domains specify output directory: --screenshot
                        output_directory
  -v, --virtual-host    Verify host name via DNS resolution and search for virtual hosts.
  -e DNS_SERVER, --dns-server DNS_SERVER
                        DNS server to use for lookup.
  -t, --take-over       Check for takeovers.
  -r [DNS_RESOLVE], --dns-resolve [DNS_RESOLVE]
                        Perform DNS resolution on subdomains with a resolver list or passed in resolvers,
                        default False.
  -n, --dns-lookup      Enable DNS server lookup, default False.
  -c, --dns-brute       Perform a DNS brute force on the domain.
  -f FILENAME, --filename FILENAME
                        Save the results to an XML and JSON file.
  -b SOURCE, --source SOURCE
                        anubis, baidu, bevigil, binaryedge, bing, bingapi, bufferoverun, brave, censys,
                        certspotter, criminalip, crtsh, dnsdumpster, duckduckgo, fullhunt, github-code,
                        hackertarget, hunter, hunterhow, intelx, netlas, onyphe, otx, pentesttools,
                        projectdiscovery, rapiddns, rocketreach, securityTrails, sitedossier, subdomaincenter,
                        subdomainfinderc99, threatminer, tomba, urlscan, virustotal, yahoo, zoomeye
```

### 使用例

apple.com について、調べる場合はこんな感じ

```shell-session
(env) user01@ubuntu23:~/theHarvester$ ./theHarvester.py -d apple.com -b yahoo
```

実際に調べる時は、いろいろなソースを指定して検索してみるのが良さそうです。
ただ、APIキーが必要になるSOURCE が多いので注意しましょう。（例えば bing もAPIキーが必要です。）

### 参考にしたサイト

[github laramies / theHarvester](https://github.com/laramies/theHarvester/wiki/Installation)
[pip と仮想環境を使ってパッケージをインストールする](https://packaging.python.org/ja/latest/guides/installing-using-pip-and-virtual-environments/)
[Bing Search の価格](https://azure.microsoft.com/ja-jp/pricing/details/cognitive-services/search-api/)