Skip to content

A community package-based python wrapper that simplifies carrying out scans, and pentests upon certain scope while performing security penetration testing and researches.

License

Notifications You must be signed in to change notification settings

tahaafarooq/Artemis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Artemis

python platform License Made in Tanzania

A community package-based tool security framework that simplifies carrying out scans, and pentests upon certain scope while performing security penetration testing and researches.

Support

Donate to ME

If you find Artemis helpful, please consider donating :)

Let's make an open-source time-changing tool!


Documentation

Installation

There are two main ways to install this as displayed below;

PYPI

┌──(kali㉿kali)-[~/]
└─$ pip3 install artemispy

SETUP

┌──(kali㉿kali)-[~/Desktop/Artemis]
└─$ sudo python3 setup.py install
<-SNIP->

Configuration

Create a .env file anywhere in your computer, add to it with API Keys from whoisxmlapi, shodan and vulners:

VULNERS_API_KEY=<SNIP>
SHODAN_API_KEY=<SNIP>
WHOISXML_API_KEY=<SNIP>

You can get the API key for each of the following respectively from the links below:

  1. Vulners
  2. Shodan
  3. WhoisXMLAPI

IP SCAN (WHOIS)

WHOIS LOOKUP
from artemispy.scanner import IPScanner

ip_object = IPScanner("/path/to/.env") # loads the .env file with the API keys
result = ip_object.whois_lookup("tahaafarooq.dev") # specify the domain inside the whois_lookup(arg) function

print(result) # print the response
{'WhoisRecord': {'domainName': 'tahaafarooq.dev', 'parseCode': 8, 'audit': {'createdDate': '2023-06-22 23:41:55 UTC', 'updatedDate': '2023-06-22 23:41:55 UTC'}<-SNIP->

Start of by importing IPScanner from artemispy.scanner which contains all the classes and functions for scanning.

Create a variable and then the value as the class loaded with the path to your .env file.

The result variable contains the class with the function whois_lookup() which takes an argument of a domain name that is to be scanned.

DNS LOOKUP
from artemispy.scanner import IPScanner

ip_object = IPScanner("/path/to/.env") # loads the .env file with the API keys
result = ip_object.dns_lookup("tahaafarooq.dev") # specify the domain inside the dns_lookup(arg) function

print(result) # print the response

This will perform a DNS lookup and provide you with a JSON output of the response gathered.

IPGEO LOOKUP
from artemispy.scanner import IPScanner

ip_object = IPScanner("/path/to/.env") # loads the .env file with the API keys
result = ip_object.ipgeo_lookup("172.217.170.14") # specify the domain inside the ipgeo_lookup(IPV4/IPV6) function

print(result) # print the response
{'ip': '172.217.170.14', 'location': {'country': 'ZA', 'region': 'Gauteng', 'city': 'Johannesburg', 'lat': -26.20227, 'lng': 28.04363, 'postalCode': '', 'timezone': '+02:00', 'geonameId': 993800}, 'domains': ['jnb02s02-in-f14.1e100.net', 'sb.l.google.com', 'scnservers.net'], 'as': {'asn': 15169, 'name': 'GOOGLE', 'route': '172.217.0.0/16', 'domain': 'https://about.google/intl/en/', 'type': 'Content'}, 'isp': 'Google LLC', 'connectionType': ''}

The ipgeo_lookup() function takes an argument as an IPv4 or IPv6 address.

SUBDOMAIN LOOKUP
from artemispy.scanner import IPScanner

ip_object = IPScanner("/path/to/.env") # loads the .env file with the API keys
result = ip_object.subdomain_lookup("tahaafarooq.dev") # specify the domain inside the subdomain_lookup(domain) function

print(result) # print the response

NETWORK SCAN

PORT SCAN
Python 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.5.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from artemispy.scanner import NetworkScanner

In [2]: net_object = NetworkScanner("127.0.0.1")

In [3]: port_scan = net_object.port_scanner()

In [4]: print(port_scan)
['Port : 22 --> State: open', 'Port : 80 --> State: open', 'Port : 3389 --> State: open', 'Port : 46247 --> State: open']

First, import NetworkScanner class from artemispy.scanner then we create a variable and add our class to it with the value of our IP to scan. Calling for the function port_scanner() should get the work done for you!

SERVICE DISCOVERY
Python 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.5.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from artemispy.scanner import NetworkScanner

In [2]: net_object = NetworkScanner("127.0.0.1")

In [3]: service_scan = net_object.service_discovery()
Host: 127.0.0.1

In [4]: print(service_scan)
['ssh', 'http', 'ms-wbt-server', 'unknown']

service_discovery() function provides the services names running on the ports that are open from the port scan.

MORE TO BE WRITTEN

Star it up if you think it's helpful :)

Contact

Tahaa Farooq - Twitter

Tahaa Farooq - Email

LOGO ArtWork By witchdocsec

About

A community package-based python wrapper that simplifies carrying out scans, and pentests upon certain scope while performing security penetration testing and researches.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages