您当前的位置:首页 > 电脑百科 > 安全防护 > 网络安全

黑客如何寻找攻击的突破口?运用Python编写端口扫描器

时间:2020-07-30 12:32:08  来源:  作者:
黑客如何寻找攻击的突破口?运用Python编写端口扫描器

 


前言

任何一个靠谱的网络攻击都是起步于侦查的。攻击者必须在挑选并确定利用目标中的漏洞之前找出目标在哪里有漏洞。在本篇文章中,我们将编写一个扫描目标主机开放的TCP端口的侦查小脚本。当然,为了与TCP端口进行交互,我们先要建立TCP套接字。

与大多数现代编程语言一样,Python也提供了访问BSD套接字的接口。BSD套接字提供了一个应用编程接口(API) ,使程序员能编写在主机之间进行网络通信的应用程序。通过一系列的套接字API函数,我们可以创建、绑定、监听、连接,或在TCP/IP套接字上发送数据。在这一点上,为了进一步开发我们自己的攻击程序,必须对TCP/IP套接字有一个更深入的了解。

大多数能访问互联网的应用使用的都是TCP协议。例如,在目标组织中,Web 服务器可能位于TCP 80端口,电子邮件服务器在TCP25端口,FTP服务器在TCP21端口。要连接目标组织中的任一一 服务器,攻击者必须知道与服务器相关联的IP地址和TCP端口。虽然熟悉我们目标组织的人可能掌握这些信息,但攻击者却不定。

所有成功的网络攻击一般都是以端口扫描拉开序幕的。有一种类型的端口扫描会向一 系列常用的端口发送TCP SYN数据包,并等待TCP ACK响应这能让我们确定这 个端口是开放的。与此相反,TCP 连接扫描是使用完整的三次握手来确定服务器或端口是否可用的。


代码

TCP全连接扫描

import socket
from socket import *
from threading import *
screenLock = Semaphore(value=1)
def connScan(tgtHost, tgtPort):
    try:
        connSkt = socket(AF_INET, SOCK_STREAM)
        connSkt.connect((tgtHost, tgtPort))
        connSkt.send('ViolentPythonrn')
        results = connSkt.recv(100)
        print('[+] %d/tcp open' % tgtPort)
        print('[+] ' + str(results))
    except:
        screenLock.acquire()
        print('[-] %d/tcp closed' % tgtPort)
    finally:
        screenLock.release()
        connSkt.close()

def portScan(tgtHost, tgtPorts):
    try:
        tgtIP = gethostbyname(tgtHost)
    except:
        print("[-] Cannot resolve '%s':Unknown host" % tgtHost)
        return
    try:
        tgtName = gethostbyaddr(tgtIP)
        print('n[+] Scan Resulst for: ' + tgtName[0])
    except:
        print('n[+] Scan Results for: ' + tgtIP)
        setdefaulttimeout(1)
    for tgtPort in tgtPorts:
        t = 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='string', help='specify target port[s] separated by comma')
    (options, args) = parser.parse_args()
    tgtHost = options.tgtHost
    tgtPorts = str(options.tgtPort).split(',')
    if (tgtHost == None) | (tgtPorts[0] == None):
        print('[-] You must specify a target host and port[s].')
        exit(0)
    portScan(tgtHost, tgtPorts)

if __name__=='__main__':
    main()

windows上运行

黑客如何寻找攻击的突破口?运用Python编写端口扫描器

 

kali-linux上运行

黑客如何寻找攻击的突破口?运用Python编写端口扫描器

 

nmap端口扫描

import nmap
import optparse
def nmapScan(tgtHost, tgtPort):
    nmScan = nmap.PortScanner(nmap_search_path=('nmap',r'D:应用程序Nmapnmap.exe'))
    nmScan.scan(tgtHost, tgtPort)
    state = nmScan[tgtHost]['tcp'][int(tgtPort)]['state']
    print("[*] "+tgtHost+" tcp/"+tgtPort+" "+state)
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='string', help='specify target port[s] separated by comma')
    (options, args) = parser.parse_args()
    tgtHost = options.tgtHost
    tgtPorts = str(options.tgtPort).split(',')
    if (tgtHost == None) | (tgtPorts[0] == None):
        print('[-] You must specify a target host and port[s].')
        exit(0)
    for tgtPort in tgtPorts:
        nmapScan(tgtHost, tgtPort)
if __name__=='__main__':
    main()
黑客如何寻找攻击的突破口?运用Python编写端口扫描器

 

注意:若在Windows上要运行nmap端口扫描代码,要安装的包是python-nmap,而非nmap,还需安装nmap.exe,第4行代码中”D:应用程序Nmapnmap.exe“为nmap安装路径。

黑客如何寻找攻击的突破口?运用Python编写端口扫描器

 

求关注,持续更新中~

有问题欢迎评论区留言,或微信公众号(同名)留言。



Tags:端口扫描器   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
前言任何一个靠谱的网络攻击都是起步于侦查的。攻击者必须在挑选并确定利用目标中的漏洞之前找出目标在哪里有漏洞。在本篇文章中,我们将编写一个扫描目标主机开放的TCP端口...【详细内容】
2020-07-30  Tags: 端口扫描器  点击:(156)  评论:(0)  加入收藏
▌简易百科推荐
(报告出品方:德勤)数字化转型网络安全及转型挑战在任何行业,保持竞争力都需要快速开发新产品和 服务并推向市场。创新型业务模式不仅仅是简单地将现有 流程数字化,其正在覆盖供应...【详细内容】
2021-12-22  认是    Tags:网络安全   点击:(19)  评论:(0)  加入收藏
10月18号, W3C中网络平台孵化器小组(Web Platform Incubator Community Group)公布了HTML Sanitizer API的规范草案。这份草案用来解决浏览器如何解决XSS攻击问题。 网络安全中...【详细内容】
2021-12-07  实战Java  博客园  Tags:脚本攻击   点击:(18)  评论:(0)  加入收藏
一、背景介绍大家在Linux的日常使用中都晓得如何通过命令行去配置Linux的端口开放规则,但是大家知道如何配置Windows入站出站规则吗?有哪些常见的危险端口呢?如何解决上述问题...【详细内容】
2021-12-01  Kali与编程    Tags:防火墙   点击:(30)  评论:(0)  加入收藏
网络安全服务商Randori公司日前发布了一份调查报告,列出了网络攻击者最有可能攻击或利用的IT资产。在遭遇Solarwinds黑客攻击一周年之际,以及在网络安全(尤其是勒索软件和供应...【详细内容】
2021-10-28  企业网D1net   企鹅号  Tags:网络攻击   点击:(57)  评论:(0)  加入收藏
0x01.背景实验利用Dns Administrators 组成员,通过远程配置Dns服务,进行Dll inject从而实现特权提升。 在域内,Dns server 通常为Dc Server,Dns服务器管理基于rpc,通过调用c:\wi...【详细内容】
2021-10-22  IT影子    Tags:特权提升   点击:(37)  评论:(0)  加入收藏
本文主要介绍和总结了CSRF跨站请求伪造的基本原理和主要防范措施,工作中有用到的朋友不妨收藏转发一下,以备您参考。什么是CSRF?CSRF跨站点请求伪造(Cross&mdash;Site Request...【详细内容】
2021-10-13  快乐中恒    Tags:CSRF   点击:(49)  评论:(0)  加入收藏
waf拦截在打某市 Hvv 第一天就找到一个文件上传的点,经过测试,可以直接任意文件上传,没有什么道理。 直接尝试上传 Php 文件,被 waf 拦截了 2021最新整理网络安全/渗透测试/安...【详细内容】
2021-10-11  KaliMa    Tags:防火墙   点击:(56)  评论:(0)  加入收藏
应用程序与文件系统的交互始终是高度安全敏感的,因为较小的功能漏洞很容易成为可利用漏洞的来源。这种观察在web文件管理器的情况下尤其正确,其作用是复制完整文件系统的功能...【详细内容】
2021-09-17  IT野涵    Tags:漏洞链   点击:(56)  评论:(0)  加入收藏
您的苹果手机尽管iPhone比Android更安全,但也可以通过各种方式入侵。避免黑客入侵的最佳方法是警惕奇怪的链接或粗略的应用程序,并仅在必要时提供信息。电池寿命差和性能低下...【详细内容】
2021-09-16  Hackers爱好者    Tags:黑客入侵   点击:(631)  评论:(0)  加入收藏
防火墙一般布置在逻辑区域的入口处,位于三层网络架构的核心和汇聚之间,起到隔离逻辑区域,为逻辑区域创建安全策略的作用。 上面就是应用区的防火墙布置方式,他布置在应用区,可以...【详细内容】
2021-09-03  知来知去    Tags:主备模式防火墙   点击:(109)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条