-
Notifications
You must be signed in to change notification settings - Fork 1
/
pybangrab.py
executable file
·64 lines (56 loc) · 2.13 KB
/
pybangrab.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
import optparse
from socket import *
import subprocess
import os
FILE_PATH = "/root/Music/banner_file_" + str(os.getpid())
def banner(targetHost, targetPort):
try:
#print("RUNNING") for debugging purpose
connsocket = socket(AF_INET, SOCK_STREAM)
#socket.setdefaulttimeout(3)
#print("RUNNING1")
#connsocket.connect((targetHost, targetPort))
#connsocket.send('Hi therern')
#results = connsocket.recv(100)
#print '' + str(results)
#if results == None :
connsocket.connect((targetHost, targetPort))
#print("RUNNING2")
data = "GET / HTTP/1.1\r\nhost:" + str(targetHost) + "\r\nConnection: close\r\n\r\n"
connsocket.send(data.encode('UTF_8')) #Data must be encoded in UTF_8 For python3
recv_ban = connsocket.recv(10000)
#connsocket.close() #GET / HTTP/1.1\r\nhost: ip\r\nConnection: close\r\n\r\n")
#print("RUNNING3")
with open(FILE_PATH, 'w') as f:
print(recv_ban, file=f)
f.close()
if 'HTTP' in open(FILE_PATH).read():
cmd = 'cat ' + FILE_PATH + "|awk -F'Server: ' '{print $2}'|sed 's/[\]//g'|awk -F'rn' '{print $1}'"
#return subprocess.getoutput("cat /home/xyz/Music/banner_file |awk -F'Server: ' '{print $2}'|awk -F'r' '{print $1}'")
return subprocess.getoutput(cmd)
#return cmd_out
#s = subprocess.Popen(["echo $banner"])
else:
cmd = 'cat ' + FILE_PATH + '|sed "s/' + "[b']//g" + '"' + "|sed 's/[\]//g'|awk -F'rn' '{print $1}'" #|' + "sed s'/" + ".....$//'"
return subprocess.getoutput(cmd)
#return cmd_out
#print("Running4")
connsocket.close()
except OSError:
#print(error)
return " "
'''def main():
options = {}
parser = optparse.OptionParser('usage %prog -H <target host> -P <target port>')
parser.add_option('-H', '--host', dest='target_host', type='string', help='specify target host')
parser.add_option('-P', '--port', dest='target_port', type='int', help='specify target port')
(options, args) = parser.parse_args()
target_host = options.target_host
target_port = options.target_port
if(target_host == None) | (target_port == None):
print(parser.usage)
exit(0)
banner(target_host, target_port)
if __name__ == '__main__':
main()
'''