Python黑帽子——搭建TCP端口扫描器
Posted 白昼安全
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python黑帽子——搭建TCP端口扫描器相关的知识,希望对你有一定的参考价值。
作者名:Demo不是emo
主页面链接:主页传送门
创作初心:一切为了她
座右铭:不要让时代的悲哀成为你的悲哀
专研方向:网络安全,数据结构每日emo:唯有信仰与日月亘古不变
经过一段时间python黑帽编程的学习,我们的漏洞扫描器搭建之旅就要开始了,最开始当然要做的就是端口扫描器,所以这篇博客我们的内容就是搭建一个TCP扫描器,来看看吧
侦查是任何网络攻击的第一步。在选择目标的漏洞利用程序之前攻击者必须找 出漏洞在哪。在下面的章节中,我们将建立一个小型的侦查脚本用来扫描目标 主机开放的 TCP 端口。
代码如下
# coding=UTF-8
import optparse
import socket
import threading
screenLock = threading.Semaphore(value=1)
def connScan(tgtHost, tgtPort):
try:
connSkt = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connSkt.connect((tgtHost, tgtPort))
print('[+]%d/tcp open' % tgtPort)
except Exception:
print('[-]%d/tcp closed' % tgtPort)
try:
# connSkt.send('ViolentPython\\r\\n')
results = connSkt.recv(1024).decode("UTF-8")
screenLock.acquire()
print('[+]%d/tcp info: ' % tgtPort + str(results))
except Exception:
screenLock.acquire()
print('[-]%d can"t receive info' % tgtPort)
finally:
screenLock.release()
connSkt.close()
def portScan(tgtHost, tgtPorts):
try:
tgtIP = socket.gethostbyname(tgtHost)
except Exception:
print("[-] Cannot resolve '%s': Unknown host" % tgtHost)
return
try:
tgtName = socket.gethostbyaddr(tgtIP)
print('\\n[+] Scan Results for: ' + tgtName[0])
except Exception:
print('\\n[+] Scan Results for: ' + tgtIP)
socket.setdefaulttimeout(1)
for tgtPort in tgtPorts:
print('Scanning port ' + str(tgtPort))
t = threading.Thread(target=connScan, args=(tgtHost, int(tgtPort)))
t.start()
def main():
parser = optparse.OptionParser('usage %prog –H<target host> -p <target port>')
parser.add_option('-H', dest='tgtHost', type='string', help='specify target host')
parser.add_option('-p', dest='tgtPort', type='int', help='specify target port')
(options, args) = parser.parse_args()
tgtHost = options.tgtHost
tgtPort = options.tgtPort
args.append(tgtPort)
if (tgtHost is None) | (tgtPort is None):
print('[-] You must specify a target host and port[s]!')
exit(0)
portScan(tgtHost, args)
if __name__ == '__main__':
main()
效果展示
这个端口扫描器有两个作用,
一个就是探测目标主机的指定端口开放状态
另外一个就是探测指定端口运行的服务信息
这个代码拿去就可以用,同时也在我的github和gitee上更新了 ,里面还附带有详细的用法说明,工具后面也会不断更新,欢迎持续关注
Gitee地址:PortScan_pro: TCP端口扫描器加强版 (gitee.com)
以上是关于Python黑帽子——搭建TCP端口扫描器的主要内容,如果未能解决你的问题,请参考以下文章
《Python黑帽子:黑客与渗透测试编程之道》读书笔记:网络基础