Skip to content

Commit

Permalink
优化部分代码
Browse files Browse the repository at this point in the history
  • Loading branch information
EASY233 committed Jun 7, 2021
1 parent 465a4e5 commit 4bc9fc4
Show file tree
Hide file tree
Showing 22 changed files with 53 additions and 66 deletions.
1 change: 1 addition & 0 deletions Finger.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
# 加载参数
options = initoptions(cmdline())
fofa = Fofa()

run = Request()
save = Output()

Expand Down
Binary file modified config/__pycache__/__init__.cpython-37.pyc
Binary file not shown.
Binary file modified config/__pycache__/color.cpython-37.pyc
Binary file not shown.
Binary file modified config/__pycache__/config.cpython-37.pyc
Binary file not shown.
Binary file modified config/__pycache__/data.cpython-37.pyc
Binary file not shown.
Binary file modified config/__pycache__/datatype.cpython-37.pyc
Binary file not shown.
Binary file modified config/__pycache__/log.cpython-37.pyc
Binary file not shown.
2 changes: 0 additions & 2 deletions config/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,6 @@
Fofa_Size = 100




user_agents = [
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '
'(KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36',
Expand Down
Binary file modified lib/__pycache__/Fofa.cpython-37.pyc
Binary file not shown.
Binary file modified lib/__pycache__/__init__.cpython-37.pyc
Binary file not shown.
Binary file modified lib/__pycache__/checkenv.cpython-37.pyc
Binary file not shown.
Binary file modified lib/__pycache__/cmdline.cpython-37.pyc
Binary file not shown.
Binary file modified lib/__pycache__/identify.cpython-37.pyc
Binary file not shown.
Binary file modified lib/__pycache__/options.cpython-37.pyc
Binary file not shown.
Binary file modified lib/__pycache__/output.cpython-37.pyc
Binary file not shown.
Binary file modified lib/__pycache__/req.cpython-37.pyc
Binary file not shown.
2 changes: 0 additions & 2 deletions lib/checkenv.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author = EASY
import argparse
import platform
import sys
import os
from config.data import path,logging

Expand Down
8 changes: 1 addition & 7 deletions lib/cmdline.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import argparse

def cmdline():
parser = argparse.ArgumentParser(description="Finger scan --by EASY")
parser = argparse.ArgumentParser(description="Finger 一款红队在大量的资产中存活探测与重点攻击系统指纹探测工具 --by EASY")
target = parser.add_argument_group('Target')
target.add_argument('-u',dest='url',type=str,help="Input your url target")
target.add_argument('-f',dest='file',type=str,help="Input your target's file")
Expand All @@ -14,11 +14,5 @@ def cmdline():
output = parser.add_argument_group('Output')
output.add_argument('-o',dest='output',type=str,default="html",help="Select the output format.eg(html,json,xls,default:html)")
args = parser.parse_args()
usage = '''
Usage: python3 {0} -u http:https://www.baidu.com
Usage: python3 {0} -f urls.txt
Usage: python3 {0} -i 192.168.10.1 or 192.168.10.1/24 or 192.168.10.10-192.168.10.25
Usage: python3 {0} -if ips.txt
'''.format(parser.prog)
return args

2 changes: 1 addition & 1 deletion lib/identify.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import json
from config.data import path
from config.color import color
from config.data import Urls,logging,Webinfo
from config.data import logging,Webinfo


class Identify:
Expand Down
80 changes: 43 additions & 37 deletions lib/options.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,11 @@ def __init__(self,args):
self._ip = args.ip
self._ipfile = args.ipfile
self.format = args.output
self.get_ip()
# 查询顺序非常重要不能随便移动位置
self.target()
self.output()
self.get_ip()

def target(self):
if self._url:
self.check(self._url)
Expand All @@ -30,42 +32,6 @@ def target(self):
logging.error(errMsg)
exit(0)

def get_ip(self):
if self._ip:
if "-" in self._ip:
start, end = [self.ip_num(x) for x in self._ip.split('-')]
iplist = [self.num_ip(num) for num in range(start, end + 1) if num & 0xff]
for ip in iplist:
Ips.ip.append(ip)
else:
Ips.ip.append(self._ip)
elif self._ipfile:
if os.path.exists(self._ipfile):
with open(self._ipfile, 'r') as file:
for i in file:
i = i.strip()
if "-" in i:
start, end = [self.ip_num(x) for x in i.split('-')]
iplist = [self.num_ip(num) for num in range(start, end + 1) if num & 0xff]
for ip in iplist:
Ips.ip.append(ip)
else:
Ips.ip.append(i)
else:
errMsg = "File {0} is not find".format(self._ipfile)
logging.error(errMsg)
exit(0)

def ip_num(self,ip):
ip = [int(x) for x in ip.split('.')]
return ip[0] << 24 | ip[1] << 16 | ip[2] << 8 | ip[3]

def num_ip(self,num):
return '%s.%s.%s.%s' % ((num & 0xff000000) >> 24,
(num & 0x00ff0000) >> 16,
(num & 0x0000ff00) >> 8,
num & 0x000000ff)

def check(self,url):
if not url.startswith('http'):
# 若没有http头默认同时添加上http与https到目标上
Expand All @@ -81,3 +47,43 @@ def output(self):
logging.error(errMsg)
exit(0)
Save.format = self.format

def get_ip(self):
try:
if self._ip:
if "-" in self._ip:
start, end = [self.ip_num(x) for x in self._ip.split('-')]
iplist = [self.num_ip(num) for num in range(start, end + 1) if num & 0xff]
for ip in iplist:
Ips.ip.append(ip)
else:
Ips.ip.append(self._ip)
elif self._ipfile:
if os.path.exists(self._ipfile):
with open(self._ipfile, 'r') as file:
for i in file:
i = i.strip()
if "-" in i:
start, end = [self.ip_num(x) for x in i.split('-')]
iplist = [self.num_ip(num) for num in range(start, end + 1) if num & 0xff]
for ip in iplist:
Ips.ip.append(ip)
else:
Ips.ip.append(i)
else:
errMsg = "File {0} is not find".format(self._ipfile)
logging.error(errMsg)
exit(0)
except:
logging.error("IP格式有误,正确格式为192.168.10.1,192.168.10.1/24 or 192.168.10.10-192.168.10.50")
exit(0)

def ip_num(self,ip):
ip = [int(x) for x in ip.split('.')]
return ip[0] << 24 | ip[1] << 16 | ip[2] << 8 | ip[3]

def num_ip(self,num):
return '%s.%s.%s.%s' % ((num & 0xff000000) >> 24,
(num & 0x00ff0000) >> 16,
(num & 0x0000ff00) >> 8,
num & 0x000000ff)
2 changes: 0 additions & 2 deletions lib/output.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import base64
import xlsxwriter
from config.data import path,Webinfo,Save
from config.config import Version
from config.data import logging

class Output:
Expand All @@ -31,7 +30,6 @@ def outHtml(self):
num = 0
Focus_assets = []
assets = []
reportTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
html = "PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KCTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4gCgk8dGl0bGU+RmluZ2Vy5omr5o+P5oql5ZGKPC90aXRsZT4KCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG4uc3RhdGljZmlsZS5vcmcvdHdpdHRlci1ib290c3RyYXAvMy4zLjcvY3NzL2Jvb3RzdHJhcC5taW4uY3NzIj4gIAoJPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLnN0YXRpY2ZpbGUub3JnL2pxdWVyeS8yLjEuMS9qcXVlcnkubWluLmpzIj48L3NjcmlwdD4KCTxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5zdGF0aWNmaWxlLm9yZy90d2l0dGVyLWJvb3RzdHJhcC8zLjMuNy9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KCTxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2VjaGFydHNANC43LjAvZGlzdC9lY2hhcnRzLm1pbi5qcyI+PC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHk+Cgk8ZGl2IGNsYXNzPSJwYW5lbCBwYW5lbC1kZWZhdWx0Ij4KCQk8ZGl2IGNsYXNzPSJjb250YWluZXIiPgoJCQk8ZGl2IGNsYXNzPSJqdW1ib3Ryb24iPgoJCQkJPGgxPkZpbmdlcjwvaDE+CgkJCQk8aDI+5LiA5qy+57qi6Zif5Zyo5aSn6YeP55qE6LWE5Lqn5Lit5a2Y5rS75o6i5rWL5LiO6YeN54K55pS75Ye757O757uf5oyH57q55o6i5rWL5bel5YW3PC9oMj4KCQkJCSAgICAgICAgICAgIDxwIHN0eWxlPSJmb250LWZhbWlseTog5qW35L2TO2ZvbnQtc2l6ZTogMTZwdDtmb250LXdlaWdodDogYm9sZCI+5b2T5YmN6LWE5Lqn5oC75pWw77yae3t0b3RhbH19PC9wPgoJCQkJPCEtLSDlrZDln5/or6bmg4UgLS0+CgkJCQk8ZGl2PiAKCQkJCQk8ZGl2IGNsYXNzPSJwYW5lbC1oZWFkaW5nIj4KCQkJCQkJPGgzIGNsYXNzPSJwYW5lbC10aXRsZSI+CgkJCQkJCQk8c3BhbiBjbGFzcz0ibGFiZWwgbGFiZWwtaW5mbyI+6YeN54K55YWz5rOo6LWE5LqnPC9zcGFuPgoJCQkJCQk8L2gzPgoJCQkJCTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9InBhbmVsLWJvZHkiPgoJCQkJCQk8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWhvdmVyIiBzdHlsZT0id29yZC1icmVhazpicmVhay1hbGw7IHdvcmQtd3JhcDpicmVhay1hbGw7Ij4KCQkJCQkJCTx0aGVhZD4KCQkJCQkJCQk8dHI+CgkJCQkJCQkJCTx0aD5JRDwvdGg+CgkJCQkJCQkJCTx0aD51cmw8L3RoPgoJCQkJCQkJCQk8dGg+dGl0bGU8L3RoPgoJCQkJCQkJCQk8dGg+Y21zPC90aD4KCQkJCQkJCQkJPHRoPlNlcnZlcjwvdGg+CgkJCQkJCQkJCTx0aD5zdGF0dXM8L3RoPgoJCQkJCQkJCTwvdHI+CgkJCQkJCQk8L3RoZWFkPgoJCQkJCQkJPHRib2R5PgoJCQkJCQkJCQl7e0ZvY3VzX2Fzc2V0c319CgkJCQkJCQk8L3Rib2R5PgoJCQkJCQk8L3RhYmxlPgoJCQkJCQk8ZGl2PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoJCQkJPCEtLSDku7vliqHor6bmg4UgLS0+CgkJCQk8ZGl2PiAKCQkJCQk8ZGl2IGNsYXNzPSJwYW5lbC1oZWFkaW5nIj4KCQkJCQkJPGgzIGNsYXNzPSJwYW5lbC10aXRsZSI+CgkJCQkJCQk8c3BhbiBjbGFzcz0ibGFiZWwgbGFiZWwtaW5mbyI+5YW25LuW6LWE5LqnPC9zcGFuPgoJCQkJCQk8L2gzPgoJCQkJCTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9InBhbmVsLWJvZHkiPgoJCQkJCQk8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWhvdmVyIj4KCQkJCQkJCTx0aGVhZD4KCQkJCQkJCQk8dHI+CgkJCQkJCQkJCTx0aD5JRDwvdGg+CgkJCQkJCQkJCTx0aD51cmw8L3RoPgoJCQkJCQkJCQk8dGg+dGl0bGU8L3RoPgoJCQkJCQkJCQk8dGg+Y21zPC90aD4KCQkJCQkJCQkJPHRoPlNlcnZlcjwvdGg+CgkJCQkJCQkJCTx0aD5zdGF0dXM8L3RoPgoJCQkJCQkJCTwvdHI+CgkJCQkJCQk8L3RoZWFkPgoJCQkJCQkJPHRib2R5PgoJCQkJCQkJCQl7e2Fzc2V0c319CgkJCQkJCQk8L3Rib2R5PgoJCQkJCQk8L3RhYmxlPgoJCQkJCQk8ZGl2PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoJCQkJPCEtLSDmvI/mtJ7or6bmg4UgLS0+CgkJCQk8ZGl2PgoJCQkJCTxoMyBjbGFzcz0iZm9vdGVyLXRpdGxlIj7mnKzns7vnu5/npoHmraLov5vooYzmnKrmjojmnYPjgIHpnZ7ms5XmuJfpgI/mtYvor5U8L2gzPgoJCQkJCTxwPuivt+S9v+eUqOiAhemBteWuiOW9k+WcsOebuOWFs+azleW+i++8jOWLv+eUqOS6jumdnuaOiOadg+a1i+ivle+8jOWmguS9nOS7lueUqOaJgOaJv+WPl+eahOazleW+i+i0o+S7u+S4gOamguS4juS9nOiAheaXoOWFs++8jOS4i+i9veS9v+eUqOWNs+S7o+ihqOS9v+eUqOiAheWQjOaEj+S4iui/sOingueCueOAggoJCQkJCTxici8+CgkJCQkJ6K+m5oOF6K+36K6/6ZeuOiA8YSBocmVmPSJodHRwOi8vd3d3Lm5wYy5nb3YuY24vbnBjL3hpbndlbi8yMDE2LTExLzA3L2NvbnRlbnRfMjAwMTYwNS5odG0iIHRhcmdldD0iX2JsYW5rIj7jgIrkuK3ljY7kurrmsJHlhbHlkozlm73nvZHnu5zlronlhajms5XjgIs8L2E+CgkJCQkJPC9wPgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CjwvYm9keT4KCgo8L2h0bWw+"
html = base64.b64decode(html).decode('utf-8')
for vaule in Webinfo.result:
Expand Down
22 changes: 7 additions & 15 deletions lib/req.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,7 @@ def response(self,url,response):
title = self.get_title(html).strip().replace('\r', '').replace('\n', '')
status = response.status_code
size = len(response.text)
if "Server" in response.headers:
Server = response.headers["Server"]
else:
Server = ""
Server = response.headers["Server"] if "Server" in response.headers else ""
faviconhash = self.get_faviconhash(url)
datas = {"url":url,"title":title,"body":html,"status":status,"Server":Server,"size":size,"header":response.headers,"faviconhash":faviconhash}
self.checkcms.run(datas)
Expand All @@ -62,17 +59,12 @@ def get_title(self,html):
title = soup.title
if title and title.text:
return title.text
h1 = soup.h1
if h1:
return h1.text
h2 = soup.h2
if h2:
return h2.text

h3 = soup.h3
if h2:
return h3.text

if soup.h1:
return soup.h1.text
if soup.h2:
return soup.h2.text
if soup.h3:
return soup.h3.text
desc = soup.find('meta', attrs={'name': 'description'})
if desc:
return desc['content']
Expand Down

0 comments on commit 4bc9fc4

Please sign in to comment.