前言:

总结上几次的信息收集构造出来的。

0x01:

首先今行web指纹识别,然后在进行robots是否存在。后面是目录扫描

然后到使用nmap命令扫描端口。(nmap模块在windows下使用会报停止使用的鬼鬼)

0x02:

代码:

import requests
import os
import socket
from bs4 import BeautifulSoup
import time
def Webfingerprintcollection():
global lgr
lgr=input('请输入目标域名:')
url="http://{}".format(lgr)
header={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
r=requests.get(url,headers=header)
xyt=r.headers
for key in xyt:
print(key,':',xyt[key])
Webfingerprintcollection()
print('================================================')
def robots():
urlsd="http://{}/robots.txt".format(lgr)
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
gf=requests.get(urlsd,headers=header,timeout=8)
if gf.status_code == 200:
print('robots.txt存在')
print('[+]该站存在robots.txt',urlsd)
else:
print('[-]没有robots.txt')
robots()
print("=================================================")
def Webdirectoryscanner():
dict=open('build.txt','r',encoding='utf-8').read().split('\n')
for xyt in dict:
try:
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
urljc="http://"+lgr+"{}".format(xyt)
rvc=requests.get(urljc,headers=header,timeout=8)
if rvc.status_code == 200:
print('[*]',urljc)
except:
print('[-]远程主机强迫关闭了一个现有的连接')
Webdirectoryscanner()
print("=====================================================")
s = socket.gethostbyname(lgr)
def portscanner():
o=os.system('nmap {} program'.format(s))
print(o)
portscanner()
print('======================================================')
def whois():
heads={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
urlwhois="http://site.ip138.com/{}/whois.htm".format(lgr)
rvt=requests.get(urlwhois,headers=heads)
bv=BeautifulSoup(rvt.content,"html.parser")
for line in bv.find_all('p'):
link=line.get_text()
print(link)
whois()
print('======================================================')
def IPbackupdomainname():
wu=socket.gethostbyname(lgr)
rks="http://site.ip138.com/{}/".format(wu)
rod={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
sjk=requests.get(rks,headers=rod)
liverou=BeautifulSoup(sjk.content,'html.parser')
for low in liverou.find_all('li'):
bc=low.get_text()
print(bc)
IPbackupdomainname()
print('=======================================================')

  

python web指纹获取加目录扫描加端口扫描加判断robots.txt的更多相关文章

  1. python os模块获取指定目录下的文件列表

    bath_path = r"I:\ner_results\ner_results" dir_list1 = os.listdir(bath_path) for dir1 in di ...

  2. 使用C#winform编写渗透测试工具--Web指纹识别

    使用C#winform编写渗透测试工具--web指纹识别 本篇文章主要介绍使用C#winform编写渗透测试工具--Web指纹识别.在渗透测试中,web指纹识别是信息收集关键的一步,通常是使用各种工具 ...

  3. 利用Python进行端口扫描

    利用Python进行端口扫描 - Dahlhin - 博客园 https://www.cnblogs.com/dachenzi/p/8676104.html Python实现对一个网络段扫描及端口扫描 ...

  4. 网络安全:robots.txt防止向黑客泄露后台地址和隐私目录的写法

    做优化的朋友都知道网站的robots的目的是让搜索引擎知道我们网站哪些目录可以收录,哪些目录禁止收录.通常情况蜘蛛访问网站时,会首先检查你的网站根目录是否有robots文件,如果有,则会根据此文件来进 ...

  5. ★Kali信息收集★8.Nmap :端口扫描

    ★Kali信息收集~ 0.Httrack 网站复制机 http://www.cnblogs.com/dunitian/p/5061954.html ★Kali信息收集~ 1.Google Hackin ...

  6. python获取指定目录下所有文件名os.walk和os.listdir

    python获取指定目录下所有文件名os.walk和os.listdir 觉得有用的话,欢迎一起讨论相互学习~Follow Me os.walk 返回指定路径下所有文件和子文件夹中所有文件列表 其中文 ...

  7. 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本

    摘自:http://blog.csdn.net/forandever/article/details/5711319 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本 ...

  8. python获取指定目录下特定格式的文件名

    之前一直用windows下的bat脚本获取一个目录下的指定格式的文件名,如下所示: dir *.jpg /b/s > train.set pause 十分简单,将这个bat文件放到你想要获取文件 ...

  9. Python获取指定目录下所有子目录、所有文件名

    需求 给出制定目录,通过Python获取指定目录下的所有子目录,所有(子目录下)文件名: 实现 import os def file_name(file_dir): for root, dirs, f ...

随机推荐

  1. day5-随机数相关:random模块&string模块

    一.概述 随机数在程序设计中的属于比较基础的内容,主要用于验证场景(如验证码,生成账号对应的密码等),今天结合random模块和string模块来谈谈python中随机数那些事儿. 二.随机数实现相关 ...

  2. 来自lombok的注解(解决idea中的找不到get,set方法,找不到log的问题)

    今天看代码,发现idea报错,仔细一看调用的get,set方法bean中都没有,但是运行起来却没有问题,这个让我很疑惑.后来发现在类上有一个以前没见过的注解@Data,大概就是因为有他的原因.这个注解 ...

  3. Solr快速入门

    1. 什么是Solr Solr是基于lucene的全文检索服务器.不同于lucene工具包,solr是一个web应用,运行在servlet容器,屏蔽了底层细节,并对外提供服务. 点我lucene快速入 ...

  4. 2017.10.31 Enginer+position+statement

    一.The basic information Post name Engineering manager Department Engineering Post member A24645 imme ...

  5. 关于SQL Sever连接问题

    错误: 与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. (provider: ...

  6. Leetcode 944. Delete Columns to Make Sorted

    class Solution: def minDeletionSize(self, A: List[str]) -> int: ans = 0 for j in range(len(A[0])) ...

  7. ranch实现游戏服务器

    在 erlang游戏开发tcp 我们建立起了自己的socket tcp 服务器的基本骨架.当时面对并发情况下,多人同一时刻连接服务器的时候,我们的基本骨架 还是难以应付处理.这就使我不得不想对这样的情 ...

  8. 【前端】JavaScript入门学习

    <button type="button" onclick="alert('hillo!')">Here</button> <sc ...

  9. bzoj 3598 方伯伯的商场之旅

    Written with StackEdit. Description 方伯伯有一天去参加一个商场举办的游戏.商场派了一些工作人员排成一行.每个人面前有几堆石子.说来也巧,位置在 \(i\) 的人面前 ...

  10. Navicat for MySQL导入.sql文件

    首先,打开Navicat for MySQL,打开需要使用的连接,新建一个数据库名等按自己的需求填写. 打开创建的数据库,在空白处右键,选择运行SQL文件,然后找到.SQL文件所在地址即可. MySQ ...