Banner信息扫描

Banner一般用于表示对用户的欢迎,但其中可能包含敏感信息。获取Banner也属于信息搜索的范畴。在渗透测试中,典型的4xx、5xx信息泄露就属于Banner泄露的一种。在Banner中,可能取得开发商、软件名称、服务类型、版本号等(其中版本号有时存在公开的CVE问题,可以直接进行利用)。

套接字

所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议根进行交互的接口。

常见的TCP协议就是流套接字所采用的协议,以实现无差错、无重复、顺序接收。百度百科有较为详尽的描述。

协议簇

  • AF_UNIX:本机通信
  • AF_INET:TCP/IP-IPv4
  • AF_INET6:TCP/IP-IPv6

编写脚本时,需要在函数中指定协议类型。

编写脚本

from socket import *
import threading def scan(host, port):
sock = socket(AF_INET, SOCK_STREAM)
try:
sock.settimeout(6)
sock.connect((host, port))
sock.send(b"Hello\r\n")
# sock.send("Hello\r\n".encode())
result = sock.recv(1024)
print(port, result)
except ConnectionRefusedError as err:
print(err)
finally:
sock.close() if __name__ == '__main__':
threads = list()
host = '106.75.146.228'
ports = [22, 443, 3306, 25, 53, 23, 20, 21, 80, 53, 67, 68, 69, 121, 8080, 3128, 8081, 9098]
for number in ports:
t = threading.Thread(target=scan, args=(host, number))
t.start()
threads.append(t)
for thread in threads:
thread.join()

这个脚本取得了期望的结果,包括版本信息。

image

Banner信息扫描的更多相关文章

  1. 2019-9-25:渗透测试,基础学习,Hydra BP爆破,js基本知识,banner信息收集笔记

    使用BP和Hydra爆破相关的服务hydra:九头蛇,开源的功能强大的爆破工具,支持的服务有很多,使用hydra爆破c/s结构的服务,使用bp爆破web登陆窗口爆破需要的几个条件,爆破工具+字典字典: ...

  2. Banner信息收集和美杜莎使用(9.26 第十二天)

    Banner信息收集 Banner信息,欢迎语,在banner信息中可以得到软件开发商.软件名称.版本.服务类型等信息,通过这些信息可以使用某些工具直接去使用相对应的exp去攻击 前提条件:需要和目标 ...

  3. Banner信息收集

    一.什么是Banner Banner信息,欢迎语,在banner信息中可以得到软件开发商,软件名称.版本.服务类型等信息,通过这些信息可以使用某些工具直接去使用相对应的exp去攻击. 前提条件:需要和 ...

  4. MediaScanner与音乐信息扫描==

    http://www.eoeandroid.com/forum.php?mod=viewthread&tid=98713 =================================== ...

  5. linux下更改ssh登录前的banner信息

    默认情况下,telnet ip 22端口会显示 openssh的版本信息 whereis sshd 如 cp /usr/sbin/sshd /usr/sbin/sshd2016.bak sed -i  ...

  6. 关于修改banner信息;nginx反向代理apache应用

    本周实验 1. Linux下Apache部署一个php页面,返回http数据包中查看server信息,修改Apache 配置使server banner自定义. 2. nginx设置反向代理,代理上面 ...

  7. python扫描内网banner信息

    小菜自己无聊写着玩,主要纪念以前的逗逼学习,可以改IPy import mechanize import cookielib import socket import argparse import ...

  8. Kali学习笔记12:服务扫描

    关于什么是服务扫描不多介绍,通俗来看: 我已经扫描到目标机器某个端口开放,接下来我需要知道开放这个端口的是什么应用 情景: 我的Kali机器IP地址:192.168.22.130 我要扫描的Metas ...

  9. 小白日记11:kali渗透测试之服务扫描-banner、dmitry、nmap特征库、操作系统识别、SNMP

    服务扫描 不能单纯的以端口辨别服务.很多网络服务是漏洞频发的高危对象,对网络上的特定服务进行扫描,往往能让我们少走弯路,增加渗透成功的几率.确定开放端口后,通常会对相应端口上所运行服务的信息进行更深入 ...

随机推荐

  1. woj1010 alternate sum 数学 woj1011 Finding Teamates 数学

    title: woj1010 alternate sum 数学 date: 2020-03-10 categories: acm tags: [acm,woj,数学] 一道数学题.简单. 题意 给一个 ...

  2. MSE,RMSE

    MSE: Mean Squared Error 均方误差是指参数估计值与参数真值之差平方的期望值; MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度. RMSE  ...

  3. Commons Collections2分析

    0x01.POC分析 //创建一个CtClass对象的容器 ClassPool classPool=ClassPool.getDefault(); //添加AbstractTranslet的搜索路径 ...

  4. μC/OS-III---I笔记4---软件定时器

    软件定时器是在硬件定时器的基础上开发的,通过将一个硬件定时器进行分频及管理就可以的到多个软件定时器.他和时间管理共同组成了系统的时间管理大部分的内容.系统一开始的系统初始化函数OSInit函数内调用了 ...

  5. useful podcast

    useful podcast front end podcast https://shoptalkshow.com https://stackoverflow.blog/podcast/ SoundC ...

  6. js in depth & prototype & __proto__

    js in depth & prototype & proto 实例的 proto 与 父类的 prototype,同时指向 父类的构造函数: https://hackernoon.c ...

  7. js 的 ArrayBuffer 和 dataView

    arrayBuffer文档 一个十六进制代表4位,0xF = 1111,0xFF = 1111 1111,八位是1字节,所以通常用两个16进制代表1字节. 假如我申请一个8字节的内存空间,然后初始化为 ...

  8. Puppeteer: 鼠标移动

    文档 mouse.click 是 mouse.move,mouse.down 和 mouse.up 的快捷方式 main.js const pptr = require('puppeteer'); c ...

  9. 使用控制台启动Android设备模拟器

    文档 > emulator -list-avds Nexus_5X_API_28_x86 Pixel_2_XL_API_28 > emulator.exe -avd Pixel_2_XL_ ...

  10. 「NGK每日快讯」12.31日NGK第58期官方快讯!