
저는 파이썬과 네트워크 해킹에 대한 몇 가지 개념을 가르치고 배우기 위해 Habu를 개발하고 있습니다.
현재 버전에 구현된 일부 기술은 다음과 같습니다:
이 소프트웨어의 개발은 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 텔레그램 그룹을 사용할 수 있습니다: https://t.me/python_habu
이슈와 풀 리퀘스트는 깃허브 저장소로 보내주세요: 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 Interface to use
-v Verbose output
--help Show this message and exit.
.. 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 Interface to use
-v Verbose
--help Show this message and exit.
.. 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 Interface to use
--help Show this message and exit.
.. 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 Force the generation of a new key pair
-r Revoke the public key
-v Verbose output
--help Show this message and exit.
.. 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 decode instead of encode
--help Show this message and exit.
.. 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 Copy certificate extensions (default: False)
--expired Generate an expired certificate (default: False)
-v Verbose
--help Show this message and exit.
.. 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 Disable cache
-n Disable DNS subdomain validation
-v Verbose output
--json Print the output in JSON format
--help Show this message and exit.
.. 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 Ports to connect to (comma separated list)
-i FILENAME Input file (Default: stdin)
-t FLOAT Time to wait for each connection
-v Verbose output
--json Print the output in JSON format
--help Show this message and exit.
.. 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 Show this message and exit.
.. 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 Show this message and exit.
.. 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 Show also the key values
--option TEXT... Write to the config(KEY VALUE)
--help Show this message and exit.
.. 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 Show this message and exit.
.. 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 Port to use
-c TEXT Community (default: list of most used)
-s Stop after first match
-v Verbose
--help Show this message and exit.
.. 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 Key
-d Decrypt instead of encrypt
--ttl INTEGER Time To Live for timestamp verification
-i FILENAME Input file (default: stdin)
-o FILENAME Output file (default: stdout)
--help Show this message and exit.
.. 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 Write this key to ~/.habu.json
--help Show this message and exit.
.. 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 Show this message and exit.
.. 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]
Only this algorithm (Default: all)
--help Show this message and exit.
.. 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 Encryption key
-i FILENAME Input file (default: stdin)
-o FILENAME Output file (default: stdout)
--help Show this message and exit.
.. 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 Input file (Default: stdin)
-v Verbose output
--help Show this message and exit.
.. 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 Check if domain has NS servers defined
-v Verbose output
-j JSON output
--help Show this message and exit.
.. 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 Verbose output
-j JSON output
--help Show this message and exit.
.. 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 Check if hostname resolves
-v Verbose output
-j JSON output
--help Show this message and exit.
.. 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: 값이 참
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
웹 서버의 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
웹 서버의 사용 가능한 HTTP 메소드를 검색합니다.
예:
$ habu.http.options -v http://google.com
{
"allowed": "GET, HEAD"
}
옵션:
-v 자세한 출력
--help 도움말 표시 후 종료.
.. code-block::
Usage: habu.http.tech [OPTIONS] URL
Wappalyzer apps.json 데이터베이스를 사용하여 웹 애플리케이션에 사용된 기술을 식별합니다.
참조: https://github.com/AliasIO/Wappalyzer
참고: 이 도구는 하나의 요청만 보냅니다. 따라서 은밀하며 의심스럽지 않습니다.
$ 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
ICMP 에코 요청을 보내는 고전적인 ping 도구입니다.
# 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 EOL 시퀀스에 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 출력을 읽어 테스트된 포트를 출력합니다.
다른 도구의 입력으로 포트 목록을 빠르게 재사용하는 데 사용할 수 있습니다.
세 가지 출력 형식(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 바인딩할 주소 (기본값: all)
-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 사용할 인터페이스 (기본값: auto)
-c INTEGER 전송할 패킷 수 (기본값: 무한)
-p INTEGER 사용할 포트 (기본값: 135)
-2 레이어2/MAC 주소 위조 (기본값: 아니오)
-3 레이어3/IP 주소 위조 (기본값: 아니오)
-v 상세 모드
--help 이 메시지를 보여주고 종료합니다.
.. code-block::
Usage: habu.traceroute [OPTIONS] IP
TCP traceroute.
ttl-zero-during-transit 메시지를 받아 대상까지의 경로를 식별합니다.
참고: 인터넷에서는 장치까지 여러 유효한 경로가 있을 수 있습니다.
예제:
# 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"
},
... 기타 스캐너 ...
},
"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을 사용하여 웹사이트의 스크린샷을 찍습니다.
예상 형식은 한 줄에 하나의 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>_