python 搞网络安全
自2013年斯诺登泄密事件后,网络安全问题越发的引起人们的重视,信息泄露事件屡见不鲜。python作为高级语言的一种,有着强大的第三方编程模块支撑,编写程序更加简洁、容易,常被专家们用来写安全工具。著名的scapy、pcapy、Sulley等等都是由python编写。
jeanphorn
这个作者很懒,什么都没留下…
展开
-
python 使用mechanize进行web网页交互
1. 有状态的网页 所谓有状态的网页就是区别于传统html的动态交互式页面,它与用户进行交互显示不同的结果。下面我以新浪邮箱的登陆界面为例: 上面有一个用户登陆的表单,当我们输入正确地用户名密码之后,登陆成功转向邮箱操作窗口,否则给出错误信息。2. 使用python中mechanize库进行处理 使用mechanize库需要注意以下几个特点: mechanize自动处理co原创 2015-07-16 20:55:02 · 9959 阅读 · 0 评论 -
python 页面信息抓取
1. 特点 在python 解析html这篇文章中已经做了初步的介绍,接下来再坐进一步的说明。python抓取页面信息有以下两个特点: 依赖于HTML的架构。微小的变化可能会导致抓取失败,这取决于你编码的技巧。2. 抓取示例 首先看一下百度视频网页的源代码,大致浏览下,选定要抓取的网页元素。 假设我们要对div标签id为focusCarouselList里的相关原创 2015-07-09 12:17:12 · 7042 阅读 · 0 评论 -
python 解析HTML
1. 理解网页上的数据网页上的数据主要有: HTMLXHTMLXMLJSON需要一个接受数据并解析的机制需要一个产生数据并发送的机制2. 解析HTML层次化的数据有多个解析HTML的第三方库,例如:LXML,BeautifulSoup,HTMLParser等等。解析HTML所面临的问题: 没有统一的标准。很多网页并没有遵循HTML文档2.1 BeautifulSoup原创 2015-06-25 21:36:07 · 9949 阅读 · 0 评论 -
python 抓取网页
1. 主要内容 此部分的主要内容包括:抓取网页的的基本方法。使用urllib和urllib2库。可以使用参数编码。2. 代码举例2.1 基本的抓取 使用sudo python命令,进入python环境。在此之前可以自己搭一个web服务器,专门做测试用。我在我的一个Ubuntu系统中搭建了LNMP环境,地址为192.168.1.33。 其实python代码很简洁,抓取一个网页只需要两原创 2015-06-18 21:18:34 · 7881 阅读 · 0 评论 -
python 使用scapy编写DNS Fuzzer
1. 描述 使用scapy库,编写一个DNS Fuzzer工具,并测试。在这之前,先说明一下DNS协议请求包是封装在IP包中的UDP包(有些情况也可使用TCP)中,且UDP的端口为53。进入scapy,查看一下UDP和DNS包的封装情况。 2. 代码示例 代码中,我们需要对输入的IP地址做合法性校验。这需要用到netaddr中的valid_ipv4,可以执行sudo pip install原创 2015-06-08 10:35:28 · 12026 阅读 · 1 评论 -
python 使用scapy进行ARP扫描
一. 描述 使用scapy第三方库,编写一个可以对一个网段进行ARP扫描,获得该往段内活跃主机的IP地址和MAC地址。二. 分析与方案首先,从scapy导入相关的模块。Ether()/ARP()构造ARP包。srp1()发送与接收ARP包。代码示例如下:#!/usr/bin/env python# _*_ coding=utf-8 _*_from scapy.all import *i原创 2015-06-08 09:16:58 · 20351 阅读 · 0 评论 -
python 使用scapy进行帧注入
1. 描述 使用scapy进行以太网帧的注入,相对于RAW_SOCKET还是比较简单的。在讲述packet注入之前,先了解一下scapy伪造以太网帧的相关知识。下图为以太网帧格式和scapy对应的封装包格式。 2. 示例2.1 使用scapy构造IP数据包 进入scapy环境,输入以下代码: >>> >>> pkt = IP()/ICMP()/”hello” >>原创 2015-06-06 20:23:05 · 11444 阅读 · 0 评论 -
python 使用scapy库进行ARP欺骗
1. 说明 ARP欺骗(ARP spoofing),又称ARP病毒(ARP poisoning)或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网络上特定电脑或所有电脑无法正常连接。最早探讨ARP欺骗的文章是由Yuri Volobue所写的《ARP与ICMP转向游戏》(ARP and ICMP redirection g原创 2015-05-14 21:20:27 · 10561 阅读 · 0 评论 -
python scapy网络嗅探
1. 介绍 scapy是一个可用于网络嗅探的非常强大的第三方库。在网络嗅探方面前面的博文介绍过通过Raw Socket进行网络嗅探,但是Raw Socket比较底层,使用起来可能不太容易而且在不同的系统上也有一定的区别。 在网络流量嗅探方面,常用的一些第三方库: pylibpcappycapypypcapimpacketscapy 接下来我详细介绍下scapy的使用,它在这些原创 2015-05-13 21:56:39 · 16284 阅读 · 1 评论 -
python 使用Raw Socket进行以太网帧注入
1. 帧注入 对于以太网帧和Raw Socket的介绍可参考之前的一篇博文利用Raw Socket进行以太网帧嗅探。帧注入的特点: 可以将原数据格式的包注入到网络中。在模拟网络应答方面很强大。原始套接字包结构具有不可延展性。 随机注入 如果你可以随机注入数据到网络上的话,你就可以向网络上发送任何数据。^_^2. 代码实验 进入python运行环境,需要加上root权限。(sudo原创 2015-05-09 10:40:18 · 11008 阅读 · 0 评论 -
python 多线程 start_new_thread()
一、简述 CPython实现细节: 由于GIL(Global Interpreter Lock),在CPython中一次只能有一个线程来执行python代码,不过有些面向执行的库可以克服这个限制。如果想要使你的应用程序更好的利用计算机资源的话,最好使用multiprocessing。 但是,如果同时运行多个I/O任务的话,线程依然是一个很好地选择。 python线程的作用主要是应对I/O任务原创 2015-04-22 15:00:33 · 31832 阅读 · 1 评论 -
python Linux 信号编程 signals
1. Signal介绍 软中断信号(signal,又简称为信号)用来通知进程发生了异步事件。进程之间可以互相通过系统调用kill发送软中断信号。内核也可以因为内部事件而给进程发送信号,通知进程发生了某个事件。注意,信号只是用来通知某进程发生了什么事件,并不给该进程传递任何数据。信号是进程控制的一部分,也是 Linux编程中非常重要的部分。 signal允许异步处理事件。SIGKILL信原创 2015-04-24 11:37:47 · 5908 阅读 · 0 评论 -
python C/S模式基础编程 (网络安全系列)
1. socket编程socket类型包括:——TCP socket 和 UDP socket。常规的客户服务区模式。——Raw socket可用于嗅探和注入2. C/S模式 C/S (Client/Server,客户机/服务器)模式又称C/S结构,是20世纪80年代末逐步成长起来的一种模式,是软件系统体系结构的一种。C/S结构的关键在于功能的分布,一些功能放在前端机(即客户机)上执行,另原创 2015-04-29 20:20:23 · 11555 阅读 · 0 评论 -
python SocketServer 框架编程
1. SocketServer框架 在python中,socketserver是一个已集成的模块,它有以下特点: 可用SocketServer框架创建TCP和UDP服务器。在后台为你做好每一个基础步骤。可以手动创建一个服务器欺骗客户端和分析它的行为。2. SocketServer模块的用法必须是BaseRequestHandler的子类重写handle()函数调用handle_原创 2015-04-30 16:59:43 · 6297 阅读 · 2 评论 -
python 创建Web Server
1. Web 服务应用工作机制监听80或者是443端口 80为普通的http协议,443为https。等待客户端请求 GET、POST、HEAD… …处理请求 保存文件执行CGI脚本2. 创建一个简单的Web服务使用SimpleHTTPServer类实现do_GET()方法可以当做刺透客户端的服务端渗透代码可以做渗透测试的客户端代码从终端进入python编辑模式,输入以下代原创 2015-05-02 23:23:17 · 5501 阅读 · 0 评论 -
python 利用Raw Socket进行以太网帧嗅探
1. Raw Socket基础提供了一种方法来绕过整个网络堆栈遍历和直接将以太网帧输送到一个应用程序。有很多种方法来创建raw sockets,例如AF_PACKET,PF_PACKET。这里使用PF_PACKET,它是linux系统上才有的选项,如果是windows或者是mac的系统的话,可以使用AF_PACKET。 1.1 PF_SOCKET在链路层接收和发送包得应用接口。所原创 2015-05-04 16:34:41 · 17066 阅读 · 0 评论