序
终于接触到关于黑客方面的工具编写,还是看的《python绝技:运用python成为顶级黑客》这本书。曾经,黑客曾是我的追求我的梦想,可是。。。
socket
在编写端口扫描器之前,需要了解socket网络编程,虽然书中代码都给你了,但是,还是需要自己去理解。下面是一些socket模块提供的一些方法。
socket.gethostbyname( hostname )
:这个函数将主机名(如域名)换换为 IP 地址,如
www.baidu.com 将会返回 IPv4 的地址为 115.239.211.112socket.gethostbyaddr( ip_address )
:这个函数传入一个 IP 地址将返回一个元组,
其中包含主机名,别名列表和同一接口的 IP 地址列表。socket.socket([family[, type[, proto]]])
:这个函数将产生一个新的 socket,通过给定的socket 地址簇和 socket 类型,地址簇的可以是 AF_INET(默认),AF_INET6 或者是 AF_UNIX,另外,socket 类型可以为一个 TCP 套接字即 SOCK_STREAM(默认),或者是UDP套接字即SOCK_DGRAM,或者其他的套接字类型。最后协议号通常为零,在大多数情况下省略不写。socket.create_connection(address[, timeout[, source_address]]
:这个函数传入一个包含 IP 地 址和端口号的二元元组返回一个 socket 对象,此外还可以选择超时重连。(注:这个函数比 socket.connect()更加高级可以兼容 IPv4 和 IPv6)。
扫描器源代码
# -*- coding: utf-8 -*-
# @Time : 2017/11/16 15:20
# @Author : Darker
# @Site : www.liangz.org
# @File : scanhost.py
# @Software: PyCharm
import socket
def connScan(targetHost, targetPort):
try:
connSkt = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
connSkt.connect((targetHost,targetPort))
print(u'[+]%d/tcp 开启' % targetPort)
connSkt.close()
except:
print(u'[-]%d/tcp 关闭' % targetPort)
def portScan(targetHost, targetPorts):
try:
targetIP = socket.gethostbyname(targetHost)
except:
print(u"[-] 不能识别 '%s' : 未知主机" % targetHost)
return
try:
targetName = socket.gethostbyaddr(targetIP)
print(u'\n[+]扫描:' + targetName[0])
except:
print(u'\n[+]扫描:' + targetIP)
socket.setdefaulttimeout(1)
for targetPort in targetPorts:
print(u'扫描端口: ' + str(targetPort))
connScan(targetHost,int(targetPort))
portScan('256.168.1.1', [80,443,3389,1433,23,445,9090])
portScan('192.168.1.1', [80,443,3389,1433,23,445,9090])
portScan('127.0.0.1', [80,443,3389,1433,23,445,9090])
portScan('www.hfut.edu.cn', [80,443,3389,1433,23,445,9090])
这个扫描器比较低端,不过,这毕竟是第一次编写,后面会慢慢添加,丰满它的功能。输出结果:
D:\Python27\python.exe E:/Projects/Python/20171114/scanhost.py
[-] 不能识别 '256.168.1.1' : 未知主机
[+]扫描:192.168.1.1
扫描端口: 80
[+]80/tcp 开启
扫描端口: 443
[-]443/tcp 关闭
扫描端口: 3389
[-]3389/tcp 关闭
扫描端口: 1433
[-]1433/tcp 关闭
扫描端口: 23
[-]23/tcp 关闭
扫描端口: 445
[-]445/tcp 关闭
扫描端口: 9090
[-]9090/tcp 关闭
[+]扫描:DESKTOP-OL475DR
扫描端口: 80
[-]80/tcp 关闭
扫描端口: 443
[-]443/tcp 关闭
扫描端口: 3389
[-]3389/tcp 关闭
扫描端口: 1433
[-]1433/tcp 关闭
扫描端口: 23
[-]23/tcp 关闭
扫描端口: 445
[+]445/tcp 开启
扫描端口: 9090
[-]9090/tcp 关闭
[+]扫描:tv.hfut.edu.cn
扫描端口: 80
[+]80/tcp 开启
扫描端口: 443
[+]443/tcp 开启
扫描端口: 3389
[-]3389/tcp 关闭
扫描端口: 1433
[-]1433/tcp 关闭
扫描端口: 23
[-]23/tcp 关闭
扫描端口: 445
[-]445/tcp 关闭
扫描端口: 9090
[-]9090/tcp 关闭
通过扫描,我竟然发现我的电脑445端口开着,这可把我吓了一跳,上网查查,445端口信息。
445端口是一个毁誉参半的端口,有了它我们可以在局域网中轻松访问各种共享文件夹或共享打印机,但也正是因为有了它,黑客们才有了可乘之机,他们能通过该端口偷偷共享你的硬盘,甚至会在悄无声息中将你的硬盘格式化掉!
吓得我赶紧关了,别到时候中个勒索病毒。
如有错误,敬请指出!谢谢
最新评论
没有收到邮件通知
我的评论通知貌似坏掉了,定位一下问题
测试一下重新部署后的邮件功能
居然看到自己公司的MIB库,诚惶诚恐
那可能是RobotFramework-ride的版本问题。我装的1.7.4.2,有这个限制。我有空再尝试下旧版本吧,感谢回复。
你好!我在python2.7中安装RobotFramework-ride的时候提示wxPython的版本最高是2.18.12,用pip下载的wxPython版本是4.10,而且我在那个路径下没有找到2
真的太好了,太感谢了,在bilibili和CSDN上都找遍了,终于在你这里找到了
看到下面的链接了,不用了。