未加星标

httpscan 爬虫式的网段Web主机发现小工具

字体大小 | |
[工具软件 所属分类 工具软件 | 发布者 店小二03 | 时间 2016 | 作者 红领巾 ] 0人收藏点击收藏

 

httpscan是一个扫描指定网段的Web主机的小工具。和Nmap等端口扫描器不一样,httpscan是以爬虫的方式进行Web主机发现,因此相对来说不容易被防火墙拦截。
httpscan会返回IP http状态码 Web容器版本 以及网站标题。
httpscan 爬虫式的网段Web主机发现小工具

 

Usage:./httpscan IP/CIDR –t threads
Example:./httpscan.py 10.20.30.0/24 –t 10

项目地址:https://github.com/zer0h/httpscan

主要代码:

#!/usr/bin/env python
#coding:utf-8
# Author: Zeroh
import re
import sys
import Queue
import threading
import optparse
import requests
from IPy import IP
printLock = threading.Semaphore(1) #lock Screen print
TimeOut = 5 #request timeout
#User-Agent
header = {'User-Agent' : 'Mozilla/5.0 (windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.125 Safari/537.36','Connection':'close'}
class scan():
def __init__(self,cidr,threads_num):
self.threads_num = threads_num
self.cidr = IP(cidr)
#build ip queue
self.IPs = Queue.Queue()
for ip in self.cidr:
ip = str(ip)
self.IPs.put(ip)
def request(self):
with threading.Lock():
while self.IPs.qsize() > 0:
ip = self.IPs.get()
try:
r = requests.Session().get('http://'+str(ip),headers=header,timeout=TimeOut)
status = r.status_code
title = re.search(r'<title>(.*)</title>', r.text) #get the title
if title:title = title.group(1).strip().strip("\r").strip("\n")[:30]
else:title = "None"
banner = ''
try:banner += r.headers['Server'][:20] #get the server banner
except:pass
printLock.acquire()
print "|%-16s|%-6s|%-20s|%-30s|" % (ip,status,banner,title)
print "+----------------+------+--------------------+------------------------------+"
#Save log
with open("./log/"+self.cidr.strNormal(3)+".log",'a') as f:f.write(ip+"\n")
except Exception,e:
printLock.acquire()
finally:
printLock.release()
#Multi thread
def run(self):
for i in range(self.threads_num):
t = threading.Thread(target=self.request)
t.start()
if __name__ == "__main__":
parser = optparse.OptionParser("Usage: %prog [options] target")
parser.add_option("-t", "--thread", dest = "threads_num",
default = 1, type = "int",
help = "[optional]number of theads,default=10")
(options, args) = parser.parse_args()
if len(args) < 1:
parser.print_help()
sys.exit(0)
print "+----------------+------+--------------------+------------------------------+"
print "| IP |Status| Server | Title |"
print "+----------------+------+--------------------+------------------------------+"
s = scan(cidr=args[0],threads_num=options.threads_num)
s.run()

 

【原文:httpscan 爬虫式的网段Web主机发现小工具安全脉搏作者:Zeroh 原创发布】

主题: HTMLWindowsAppleChrome防火墙
tags: self,title,httpscan,ip,num,threads,print,cidr,Web,args,IP,banner,IPs,parser,threading
分页:12
转载请注明
本文标题:httpscan 爬虫式的网段Web主机发现小工具
本站链接:https://www.codesec.net/view/421423.html


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 工具软件 | 评论(0) | 阅读(1524)