Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说python黑帽编程基础模块(socket)实例[通俗易懂],希望能够帮助你!!!。
0x0
socket模块提供一个有用的python网络连接库。这时候我编写一个抓取banner的脚本。
Banner grabbing标志提取; 标志获取,在wiki百科这样解释:
标志抓取是一种用于收集网络上计算机系统和在其开放端口上运行的服务的技术。管理员可以使用此方法对网络上的系统和服务进行盘点。然而,入侵者可以使用横幅抓取来查找正在运行具有已知漏洞的应用程序和操作系统的版本的网络主机。
用于标志抓取的服务端口的一些例子是超文本传输协议(HTTP)、文件传输协议(FTP)和简单邮件传输协议(SMTP)、端口80, 21和25分别使用的服务端口。通常用于执行旗帜抓工具Telnet,nmap Zmap是包含大多数的操作系统,和netcat。
0x01
我从自己机子本身进行测试,我在kali2.0下,打开ssh服务。具体操作是:
打开/etc/ssh/sshd_config,将#PasswordAuthentication no的注释去掉,并且将NO修改为YES //kali中默认是yes,
将PermitRootLogin without-password注释掉,然后保存。
然后编写脚本:
import socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.settimeout(2)
s.connect(("127.0.0.1",22)) //本地IP,ssh服务端口
s.send("banner\n")
banner = s.recv(1024)
print(banner)
运行效果:
可以获取我的系统是Debian-5,SSH服务的版本的信息打印出来了,看socket模块编程是不是很简单呢。