Scan-T简介

前言

看着自己编写的代码没有说明的确不方便别人开发,便写了部分说明在这边。简单的记录该项目的相关说明。

关于Scan-T项目的说明

  • 文件分布:详细文件分类
  • 功能使用:大致的功能描述
  • 效果展示: 初步的界面效果
  • TODO: 进一步需要做的事情
  • 其他: 补充的地方

简介

  Scan-T是一个网络空间指纹扫描工具,用于记录主机上的端口信息。以分布的方式,方便数据的抓取以及呈现,未来将会添加统计以及总结这些数据潜在的意义(暂时思路比较模糊)。有愿意指点我的,可以提供一点思路,谢谢。

整体架构

  Scan-T的整体架构为nginx+Django+uwsgi,主体语言为python,抓取信息时,使用线程,进程,协程相互配合方式,检索数据使用ES配合redis,提高检索效率.

项目地址

  https://github.com/nanshihui/Scan-T

效果展示

首页

PS-PNG-main

检索结果

PS-PNG-result

后台

PS-PNG-work

统计分析页面

PS-PNG-analyse

主机位置明细页面

PS-PNG-analyse



整体思路

  整个项目是一个分布式的形式。如果在单台机子上,就是一个WEB项目,如果在多台机上面,就是一个主从的运行模式,由主机从用户的输入以及定时产生的任务产生数据,自己在处理数据的同时,如果从机有响应任务请求。主机会将一部分的任务发送给从机。待从机执行完任务后,将结果反馈给主机。主机再将结果返回给用户以及数据库里。由于所有的消息都是异步的,所以在实现的时候,大部分都是异步,以任务的形式分发,执行。

安装方法

Prepare the environment

1
2
3
4
5
6
apt-get update 
apt-get install -y nmap
apt-get install -y libjson-c-dev libjson-c2 libjson0 libjson0-dev
apt-get install -y redis-server zmap libffi-dev libssl-dev python-pip libmysqlclient-dev
apt-get install -y wget unzip
apt-get install mysql-server

Get the code

1
2
3
wget https://github.com/nanshihui/Scan-T/archive/master.zip
unzip master.zip
cd Scan-T-master/

Install package

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
pip install MySQL-python
pip install BeautifulSoup==3.2.1
pip install beautifulsoup4==4.4.1
pip install Django==1.9
pip install python-nmap==0.5.0.post1
pip install DBUtils==1.1
pip install paramiko==1.16.0
pip install ruamel.ordereddict==0.4.9
pip install scapy==2.3.2
pip install scapy-http==1.7
pip install objgraph==2.0.1
pip install pycrypto==2.6.1
pip install dozer
pip install faulthandler
pip install apscheduler

Set the mysql config

  • create table
1
mysql -uroot -p -e 'create database datap'
  • change password

change you sql password both in spidermanage/spidertool/config.py
toolforspider/spidermanage/spidermanage/settings.py

  • import the data structure
1
mysql -uroot -p datap -e 'source /toolforspider-master/spidermanage/sqldata/Dump20160331.sql'
  • add your username

add your username and password in usertable

Add css file

  • PATH:/toolforspider-master/spidermanage/common_static/nmaptool/css/bootstrap/

create floder named lib and download css below

1
2
http://cine9deabril.com.br/fn/jquery/jquery-ui-1.10.2.custom/css/custom-theme/jquery-ui-1.10.2.custom.css
https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.css

Add logfile

1
2
3

mkdir spidermanage/lib/
touch spidermanage/lib/__init__.py

add the following code to spidermanage/lib/logger.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

#!/usr/bin/python
# encoding=utf-8


import logging

def initLog(logfile, level=2, verbose=False):
'''
日志记录函数,日志等级默认为2,即INFO级别的日志
verbose - 是否屏幕输出,默认False
'''

logLevel = logging.INFO
if level == 0:
logLevel = logging.NOTSET
elif level == 1:
logLevel = logging.DEBUG
elif level == 2:
logLevel = logging.INFO
elif level == 3:
logLevel = logging.WARNING
elif level == 4:
logLevel = logging.ERROR
elif level == 5:
logLevel = logging.CRITICAL
logger = logging.getLogger('pocdect')
console = logging.FileHandler(logfile)
formatter = logging.Formatter('[%(asctime)s]%(filename)s-%(process)d-%(thread)d-%(lineno)d-%(levelname)8s-"%(message)s"','%Y-%m-%d %a %H:%M:%S')
console.setFormatter(formatter)
logger.addHandler(console)
logger.setLevel(logLevel)

if verbose:
console = logging.StreamHandler()
console.setLevel(logLevel) # always debug mode to screen
formatter = logging.Formatter('%(name)-8s: %(levelname)-8s %(message)s')
console.setFormatter(formatter)
logger.addHandler(console)

return logger

Start

1
python spidermanage/manage.py runserver 0.0.0.0:80 --insecure

使用方法

软件不需要用户手动的创建任务便会在后台随机产生任务,并在互联网上抓取,也可以直接创建任务抓取信息.
  暂时先这样,未完待续。。。

文章目录
  1. 1. 前言
    1. 1.1. 关于Scan-T项目的说明
  2. 2. 简介
  3. 3. 整体架构
    1. 3.1. 项目地址
  4. 4. 效果展示
    1. 4.1. 首页
    2. 4.2. 检索结果
    3. 4.3. 后台
    4. 4.4. 统计分析页面
    5. 4.5. 主机位置明细页面
  5. 5. 整体思路
  6. 6. 安装方法
    1. 6.1. Prepare the environment
    2. 6.2. Get the code
    3. 6.3. Install package
    4. 6.4. Set the mysql config
    5. 6.5. Add css file
    6. 6.6. Add logfile
    7. 6.7. Start
  7. 7. 使用方法
|
Fork me on GitHub