forked from skizap/0xSCAN
-
Notifications
You must be signed in to change notification settings - Fork 0
/
0xscan.py
151 lines (130 loc) · 5.23 KB
/
0xscan.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 0xScan v2.0
# Developed by: Abdullah Alzahrani and Saud Alanzi
import argparse, requests, sys, re
print("""\n \033[1;33mDeveloped by: Abdullah Alzahrani and Saud Alanzi\033[1;m \033[1;31m
______ ______ ______ ______ __ __
/ \ / \ / \ / \/ \ / |
/$$$$$$ |__v2.0__/$$$$$$ /$$$$$$ /$$$$$$ $$ \ $$ |
$$$ \$$ / \ / $$ \__$$/$$ | $$/$$ |__$$ $$$ \$$ |
$$$$ $$ $$ \/$$/$$ \$$ | $$ $$ $$$$ $$ |
$$ $$ $$ |$$ $$< $$$$$$ $$ | __$$$$$$$$ $$ $$ $$ |
$$ \$$$$ |/$$$$ \/ \__$$ $$ \__/ $$ | $$ $$ |$$$$ |
$$ $$$//$$/ $$ $$ $$/$$ $$/$$ | $$ $$ | $$$ |
$$$$$$/ $$/ $$/ $$$$$$/ $$$$$$/ $$/ $$/$$/ $$/ \033[1;m
\033[1;30mAbdullah\033[1;m = {'\033[1;36mTwiiter\033[1;m': '\033[1;36m@0xAbdullah\033[1;m', 'GitHub.com': '0xAbdullah'}
\033[1;30mSaud\033[1;m = {'\033[1;36mTwitter\033[1;m': '\033[1;36m@Dmaral3noz\033[1;m', 'GitHub.com': 'Dmaral3noz'}""")
parser = argparse.ArgumentParser(description="\033[1;33m[--]\033[1;m 0xSCAN website scanner")
parser.add_argument('-d', required=True, default=None, help='Target Website.')
args = vars(parser.parse_args())
if len(sys.argv) == 1:
print("[\033[1;33m--\033[1;m] Usage: python3 0xscan.py -d example.com")
sys.exit()
host = args['d']
if host.startswith('http'):
sys.exit("\n\n\033[1;33m[ERROR] Enter domain name\n[EXAMPLE] python3 0xscan.py -d example.com\033[1;m ")
## ./START Scan common ports ##
def commonPorts():
requ = requests.post("https://www.portcheckers.com/portscan-result", data={'server': host, "quick": "false"})
resp = requ.text
output = re.sub('<pre>|\t|</pre>|<div style="margin:10px 0 20px 0;"><h3>Port Scan Result</h3>|'
'<span style="display: inline-block;width:200px;">|</span><span class="label label-danger">|</span>'
'|<span class="label label-success">|', '', resp).strip().lstrip()
output = output.replace("Not Available", " Not Available")
print("├── Host: 127.0.0.1")
for lines in str(output).splitlines():
print("\t├── {}".format(lines))
## ./END Scan common ports ##
## ./START Reverse IP ##
def reverseIP():
requ = requests.get("https://api.hackertarget.com/reverseiplookup/?q="+host)
resp = requ.text
output = resp
print("├── Host: {}".format(host))
for lines in str(output).splitlines():
print("\t├── {}".format(lines))
## ./END Reverse IP ##
## ./START http Header ##
def httpHeader():
requ = requests.get("https://api.hackertarget.com/httpheaders/?q="+host)
resp = requ.text
output = resp.strip().lstrip()
print("├── Host: {}".format(host))
for lines in str(output).splitlines():
print("\t├── {}".format(lines))
## ./END http Header ##
## ./START TCP Port Scan ##
def TCPport():
requ = requests.get("https://api.hackertarget.com/nmap/?q="+host)
resp = requ.text
output = resp.strip().lstrip()
print("├── Host: {}".format(host))
for lines in str(output).splitlines():
print("\t├── {}".format(lines))
## ./END TCP Port Scan ##
## ./START Extract Links from Page ##
def ELFP():
requ = requests.get("https://api.hackertarget.com/pagelinks/?q="+host)
resp = requ.text
output = resp.strip().lstrip()
print("├── Host: {}".format(host))
for lines in str(output).splitlines():
print("\t├── {}".format(lines))
## ./END Extract Links from Page ##
## ./START Extract Links from Page ##
def IPlocation():
requ = requests.get("https://api.hackertarget.com/geoip/?q="+host)
resp = requ.text
output = resp.strip().lstrip()
print("├── Host: {}".format(host))
for lines in str(output).splitlines():
print("\t├── {}".format(lines))
## ./END Extract Links from Page ##
## ./START DNS lookup ##
def DNSlookup():
requ = requests.get("https://api.hackertarget.com/dnslookup/?q="+host)
resp = requ.text
output = re.sub(';; Truncated, retrying in TCP mode.', '', resp).strip().lstrip()
print("├── Host: {}".format(host))
for lines in str(output).splitlines():
print("\t├── {}".format(lines))
## ./END DNS lookup ##
def main():
print('''
├── Enter Number
\t├──[1] Nmap | TCP Port Scan
\t├──[2] Scan common ports
\t├──[3] Reverse IP
\t├──[4] HTTP Header
\t├──[5] DNS lookup
\t├──[6] IP Location
\t├──[7] Extract Links from Page
\t├──[0]\033[1;31m EXIT\033[1;m''')
chose = int(input('\t└─ '))
if chose == 1:
TCPport()
elif chose == 2:
commonPorts()
elif chose == 3:
reverseIP()
elif chose == 4:
httpHeader()
elif chose == 5:
DNSlookup()
elif chose == 6:
IPlocation()
elif chose == 7:
ELFP()
elif chose == 0:
sys.exit(0)
else:
print("\t└─\033[1;31m incorrect!\033[1;m")
main()
returnChose = str(input("\t└─────── \033[1;33mDo you want to continue Y/n:\033[1;m "))
if returnChose == 'Y' or returnChose == 'y':
main()
else:
sys.exit(0)
if __name__ == '__main__':
main()