1.可cmd先ping外网一个网站,如www.njupco.com,获得ip为222.190.122.196,之后加载外部网络服务的字典,拼接成一个url,如http://222.190.122.196:80/phpmyadmin,来发送网络请求,探测这个网络服务是否是存在的,如果返回200状态码则表示存在,将其记录至result.html,可以点击访问。
2.可以使用IPy模块来产生整个内网c段、b段的ip列表,加载进脚本里,通过队列queue来get出来,一一拼接url发送网络请求,探查内网某ip的网络服务存活状态,将其记录至result.html,可以点击访问。
3.可以加载外部各服务所对应的端口,写进端口列表中,拼接出来不同的url地址,发送网络请求,探查某ip:端口的网络服务存活状态,将其记录至result.html,可以点击访问。
#url地址头,协议名字
req_m = ['http://', ]
#端口号列表(需要探测的端口号,这里可以多加一些外部字典)
ports = ['80', '3443']
#目录列表(需要探测的服务目录,这里可以多加一些外部字典)
dirs = ['', '/phpmyadmin', ]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# C段WEB服务扫描
# 程序的意义:1.信息手机,找到目标系统所在C段的其他服务 2.寻找短板,有可能找到目标系统其他存在的弱点 3.资产识别,对于网络运维管理人员,可以发现C段内的资产信息。
# 程序设计:requests+多线程,对目标段内的每一台主机,可能存在有WEB服务的端口发起请求,有服务则返回内容,无服务则报错。
# 设计点:1.指定端口霍将扫描端口写死在程序中 2.线程数可控 3.输出报表方便查看结果
# IPy模块 https://github.com/autocracy/python-ipy/
import requests
from queue import Queue
import time
import threading
from IPy import IP
import sys
import re
import user_agent_list
class DirScan(threading.Thread):
def __init__(self, queue):
threading.Thread.__init__(self)
self.queue = queue
#这个run方法是线程模块的内部默认启动的一个方法,随着线程启动就会调用run方法,我们这里只是重写了run方法而已。
def run(self):
while not self.queue