python2.7使用scapy发送syn实例


Posted in Python onMay 05, 2020

我就废话不多说了,大家看代码吧!

from scapy.all import *
 
def syn():
 scrIP = '192.168.10.29'
 srcPort = 23345
 desIP = '12.39.27.23'
 desPort = 8000
 
 ip = IP(src=scrIP, dst=desIP)
 tcp = TCP(sport=srcPort, dport=desPort, seq=13131342, flags='S')
 pkg = ip/tcp
 
 # c->s syn
 res = sr1(pkg)
 res.display()

补充知识:用python 通过ip获取mac和网卡类型(同一网段)

通过网上查阅目前找到的几种方式

环境使用window和linux系统

使用nmap,python-nmap需要依赖机器安装nmap工具

import nmap
nm=nmap.PortScanner()
nm.scan('xxx.xxx.xxx.xxx','xx') # ip地址和端口,端口不填也可以
a=nm['xxx.xxx.xxx.xxx'] #返回主机的详细信息
print(a)
##################################
{'status': {'state': 'up', 'reason': 'arp-response'}, 
'hostnames': [{'type': 'PTR', 'name': 'bogon'}], 
'vendor': {'00:0C:29:F6:2B:F0': 'VMware'}, 
'addresses': {'mac': '00:0C:29:F6:2B:F0', 'ipv4': 'xxx.xxx.xxx.xxx'}, 
'tcp': {111: {'product': 'Microsoft Windows 7 - 10 microsoft-ds', 'state': 'open', 'version': '', 'name': 'microsoft-ds', 'conf': '10', 'extrainfo': 'workgroup: WORKGROUP', 'reason': 'syn-ack', 'cpe': 'cpe:/o:microsoft:windows'}}}

这种方式获取非常简单,但是会耗费很大的时间,不建议使用

通过控制台命令arp -a

def output_cmd(command):
 r = os.popen(command)
 content = r.read()
 r.close()
 return content


def arp_command(ip_address):
 ping_cmd = "ping " + ip_address + " -n 2 "
 result = output_cmd(ping_cmd)
 find_ttl = result.find("TTL")
 if find_ttl != -1:
  arp_cmd = "arp -a %s" % ip_address
  arp_result = output_cmd(arp_cmd)
  ip2 = ip_address + " [ ]+([\w-]+)"
  ip2_mac = re.findall(ip2, arp_result)
  if len(ip2_mac):
   return ip2_mac[0]
  else:
   return 0
 else:
  result = u'无人使用的ip'
 return result

这个是通过先ping,之后在arp -a ip 来获取mac地址,这种方式需要拿到数据后自行去通过正则匹配mac地址,演示的为window上的匹配,linux需要自行修改匹配规则

通过scapy模块(必须机器ipv6未被禁止)

from scapy.all import *

arp_pkt = Ether(dst="ff:ff:ff:ff:ff:ff") / ARP(pdst=ip)
res = srp1(arp_pkt, timeout=1, verbose=0)
print {"localIP": res.psrc, "mac": res.hwsrc}

通过arpreq模块

[root@oradb ~]# python
Python 2.7.5 (default, Aug 4 2017, 00:39:18) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import arpreq
>>> arpreq.arpreq('192.168.xx.xxx')
'xx:xx:xx:xx:xx:xx'

通过上述方法获取mac地址之后获取网卡类型

可以直接使用mac.py

pip install mac.py

from macpy import Mac

mac = Mac()
information = mac.search(00-11-F1-01-01)
print information

如果感觉信息还是有点老的话,需要自己手动去IEEE上面下载mac和网卡厂商的比对文件自行比对就行了

以上这篇python2.7使用scapy发送syn实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现跨文件全局变量的方法
Jul 07 Python
python实现根据图标提取分类应用程序实例
Sep 28 Python
pycharm重置设置,恢复默认设置的方法
Oct 22 Python
在IPython中执行Python程序文件的示例
Nov 01 Python
python模块导入的细节详解
Dec 10 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
Mar 27 Python
cProfile Python性能分析工具使用详解
Jul 22 Python
python数组循环处理方法
Aug 26 Python
python实现猜数字游戏
Mar 25 Python
Django静态资源部署404问题解决方案
May 11 Python
Python如何急速下载第三方库详解
Nov 02 Python
如何利用opencv判断两张图片是否相同详解
Jul 07 Python
python 使用raw socket进行TCP SYN扫描实例
May 05 #Python
Python之变量类型和if判断方式
May 05 #Python
Python实现CAN报文转换工具教程
May 05 #Python
python TCP包注入方式
May 05 #Python
python构造IP报文实例
May 05 #Python
python3通过udp实现组播数据的发送和接收操作
May 05 #Python
解决python使用list()时总是报错的问题
May 05 #Python
You might like
phpmyadmin提示The mbstring extension is missing的解决方法
2014/12/17 PHP
php 判断过去离现在几年的函数(实例代码)
2016/11/15 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
2019/12/13 PHP
Jquery cookie操作代码
2010/03/14 Javascript
禁止js文件缓存的代码
2010/04/09 Javascript
浅析jQuery1.8的几个小变化
2013/12/10 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
2013/12/30 Javascript
中止javascript执行的方法
2014/02/14 Javascript
文本域光标操作的jQuery扩展分享
2014/03/10 Javascript
如何用jQuery实现ASP.NET GridView折叠伸展效果
2015/09/26 Javascript
谈一谈bootstrap响应式布局
2016/05/23 Javascript
JavaScript中对象的不同创建方法
2016/08/12 Javascript
Vue.js每天必学之数据双向绑定
2016/09/05 Javascript
bootstrap 模态框(modal)实现水平垂直居中显示
2017/01/23 Javascript
ES6中Math对象的部分扩展
2017/02/20 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
2017/05/11 Javascript
nginx部署访问vue-cli搭建的项目的方法
2018/02/12 Javascript
js中Function引用类型常见有用的方法和属性详解
2019/12/11 Javascript
JavaScript图像放大镜效果实现方法详解
2020/06/28 Javascript
Python time模块详解(常用函数实例讲解,非常好)
2014/04/24 Python
python实现将文本转换成语音的方法
2015/05/28 Python
Python基于pygame实现的font游戏字体(附源码)
2015/11/11 Python
一些Centos Python 生产环境的部署命令(推荐)
2018/05/07 Python
Python3.5面向对象编程图文与实例详解
2019/04/24 Python
python实现飞机大战小游戏
2019/11/08 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
2020/02/11 Python
Python中os模块功能与用法详解
2020/02/26 Python
中文师范生自荐信
2014/01/30 职场文书
演讲比赛的活动方案
2014/08/28 职场文书
民主评议党员自我评议范文2014
2014/09/26 职场文书
公务员个人考察材料
2014/12/23 职场文书
十佳少年事迹材料
2014/12/25 职场文书
中班下学期个人工作总结
2015/02/12 职场文书
谢师宴家长致辞
2015/07/27 职场文书
大队委员竞选稿
2015/11/20 职场文书
nginx安装以及配置的详细过程记录
2021/09/15 Servers