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

最新文章

  1. ORA-12520: TNS:listener could not find available handler for requested type of server
  2. Git和Github简单教程
  3. HTML—marquee
  4. lua闭合函数
  5. Android NestedScrolling与分发机制
  6. VS制作软件安装项目,版本控制和软件升级
  7. C# 操作数据库就的那点代码
  8. bzoj3091
  9. Java位运算总结:位运算用途广泛《转》
  10. nginx : TCP代理和负载均衡的stream模块
  11. Directory Opus(DO) 个人使用经验 2.0
  12. 20160226.CCPP体系详解(0036天)
  13. centos svn强制要求提交代码时写注释
  14. 【Codeforces 111C】Petya and Spiders
  15. Kafka: Connect
  16. Python 实现WC功能
  17. Unity3d-Particle System系统的学习(三)
  18. linux中安装eclipse--CnetOS6.5
  19. VxWorks 7 技术简介
  20. 使用keytool工具产生带根CA和二级CA的用户证书

热门文章

  1. python之字符串replace的方法
  2. Dapr是如何简化微服务的开发和部署
  3. 攻防世界ctf bug
  4. LWIP再探----内存堆管理
  5. 如何在 GitHUb 上使用 gitbook 发布一本在线书籍
  6. vuex & redux
  7. CAD颜色对照表
  8. JS数字每三位加逗号的最简单方法
  9. Java并发之CompletionService详解
  10. 前端传递数据到后台的两种方式;创建一个map或者创建一个FormData对象