当前位置: 首页 > news >正文

arpsf 嗅探使用

================================================================================

                ArpCheatSniffer V1.0
                Powered by shadow @2005/5/8
                my web:http://www.codehome.6600.org
                Has bugs please mail to:dreamshadow@mail.sdu.edu.cn

================================================================================

Usage:
-si                     源ip
-di                     目的ip       *代表所有,多项用,号分割
-sp                     源端口
-dp                     目的端口     *代表所有
-w                      嗅探方式,1代表单向嗅探[si->di],0代表双向嗅探[si<->di]
-p                      嗅探协议[TCP,UDP,ICMP]大写
-m                      最大记录文件,以M为单位
-o                      文件输出
-hex                    十六进制输出到文件
-unecho                 不回显
-unfilter               不过虑0字节数据包
-low                    粗略嗅探,丢包率高,cpu利用率低 基本0
-timeout                嗅探超时,除非网络状况比较差否则请不要调高,默认为120秒
-sniffsmtp              嗅探smtp
-sniffpop               嗅探pop
-sniffpost              嗅探post
-sniffftp               嗅探ftp
-snifftelnet            嗅探telnet,以上5个嗅探不受参数si,sp,di,dp,w,p影响.
-sniffpacket            规则嗅探数据包,受参数si,sp,di,dp,w,p影响.
-sniffall               开启所有嗅探
-onlycheat              只欺骗
-cheatsniff             欺骗并且嗅探
-reset                  欺骗后恢复
-g                      [网关ip]
-c                      [欺骗者ip] [mac]
-t                      [受骗者ip]
-time                   [欺骗次数]
Example:
arpsniffer -p TCP -dp 25,110 -o f:/1.txt -m 1 -sniffpacket
   嗅探指定规则数据包并保存到文件
arpsniffer -sniffall -cheatsniff -t 127.0.0.1 -g 127.0.0.254
   欺骗并且嗅探127.0.0.1与外界的通讯,输出到屏幕
arpsniffer -onlycheat -t 127.0.0.1 -c 127.0.0.2 002211445544 -time 100 -reset
   对目标欺骗一百次,欺骗后恢复
Note:
        Program for 阿黛,I am very sorry for do this so late.Forgive me~~ :)
================================================================================

帮忙测试一下吧,有bug联系我
我本机测试的时候发现了些bug,不知道是不是我们这边是ipv6的原因
程序和代码都在附件里~
注意程序运行的时候不要用arp.exe的名字,这会产生一个错误,改成任意其他名字就行了

典型的例子如下,譬如我要嗅探本网段中192.168.0.54这台机子与外网段tcp的连接情况,可以这样用:
arpsf -cheatsniff -t 192.168.0.54 -g 192.168.0.254 -sniffpacket -p TCP -dp 80,25,23,110 -o d:/siff.txt -w 0 -m 1

释意:
嗅探192.168.0.54与外网的tcp连接情况并指定目的端口是80,23,25,110,嗅探方式是双向嗅探,最大记录文件是1M,输出到d盘sniff.txt文件中。其中192.168.0.254是网关的地址!也可以改成同网段中其他的地址,那就是网内嗅探了!

我发现的以下bug:

1.本机运行该程序时会使自己上不了网,可能是数据包转发的时候出了点问题。[了解的告诉我一下]

2.在欺骗嗅探的时候会降低对方的网速,程序执行还有优化的地方,希望大家提出比较好的解决方法。

–》其他bug等待大家发现。。。

几点不足:

由于时间仓促,只能分析tcp,udp和icmp三种数据包,等以后有时间了我会把其他包的分析都添上去的~~

注意事项:

在运行该程序前,请先安装winpcap驱动!
================================================================================
编程中遇到的问题:

1.数据包构造问题

  由于数据包的大小是固定,多一个字节都会出错,因此在构造结构体的时候尤其要小心,不要忘记vc中对结构体变量大小自动对齐这个问题;所谓自动对齐释疑如下:

在vc里定义结构体的时候,在32bit的模式下,结构体中的变量内存会自动对齐,打个比方吧:[这个问题我是在安焦上看到的,刚好解决了我的arp发送问题]

例有如下结构体:

struct test{

char ch;

int len;

}a;

这个结构体的实际大小实际上是8个字节,因为在32bit下自动对齐,所以ch后面会多出3个字节。

如果不想自动对齐,可以在结构体的前后加上#pragma参数

例如做如下定义:

#pragma pack(push,1)

struct test{

char ch;

int len;

}a;

#pragma pack(pop)

此时的结构体a才是5个字节!

2.数据包转发问题

  这个在嗅探中是很重要,如果转发不成功,对方就会断网了。
  这里具体的实现你们看代码吧,我只讲两点

一、
   用winpacap转发的时候注意这个函数的引用,PacketInitPacket(lpPacket, SZbuff, 60);
   在发包前初始化一次PacketInitPacket(lpPacket, SZbuff, 60);在嗅探前初始化回来PacketInitPacket(lpPacket,buffer,256000);
   如果要嗅探数据包要确保内存足够大,基本256000就行了。

二、注意在转发数据包的时候不要对自己发出去的然后又拦截下来的数据包重复捕获,否则就陷入死循环了,具体看我代码中的

RebuildPacketAndRedirect()
PacketIsCheatPacket()
PacketIsSelfPacket()
这三个函数的用法!

主要的就这些问题了,希望对大家有所帮助。:)

http://www.xfocus.net/tools/200505/arpsf.rar

相关文章:

  • 域渗透
  • 安全的使用带后门的webshell
  • oldjun 检测网站的经验
  • SQL注入eWebEditor数据库
  • serv-u8 本地提权
  • 很多黑阔的密码
  • 《SQL Server Online Manager》SQL Server 在线管理
  • linux下端口转发工具rinetd
  • 获取IIS虚拟网站信息的工具
  • 利用系统保留文件名创建无法删除的webshell
  • linux下用webshell修改文件权限
  • ASP .NET PHP 注入页面构造
  • 黑盒白盒测试工具
  • 反弹先锋Win32.ConnectBackShell
  • 变形aspwebshell phpwebshell[Lcx]
  • Android 控件背景颜色处理
  • ERLANG 网工修炼笔记 ---- UDP
  • github指令
  • Go 语言编译器的 //go: 详解
  • GraphQL学习过程应该是这样的
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • Logstash 参考指南(目录)
  • ReactNativeweexDeviceOne对比
  • Spring框架之我见(三)——IOC、AOP
  • Spring声明式事务管理之一:五大属性分析
  • SwizzleMethod 黑魔法
  • Web标准制定过程
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 初探 Vue 生命周期和钩子函数
  • 浮现式设计
  • 盘点那些不知名却常用的 Git 操作
  • 前端临床手札——文件上传
  • 深度学习在携程攻略社区的应用
  • 实现简单的正则表达式引擎
  • 新版博客前端前瞻
  • 用quicker-worker.js轻松跑一个大数据遍历
  • ​【已解决】npm install​卡主不动的情况
  • ​油烟净化器电源安全,保障健康餐饮生活
  • #单片机(TB6600驱动42步进电机)
  • $ git push -u origin master 推送到远程库出错
  • (12)Hive调优——count distinct去重优化
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (转)创业家杂志:UCWEB天使第一步
  • (轉)JSON.stringify 语法实例讲解
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .net(C#)中String.Format如何使用
  • .NET6 命令行启动及发布单个Exe文件
  • @Autowired @Resource @Qualifier的区别
  • []我的函数库
  • [2010-8-30]
  • [Avalon] Avalon中的Conditional Formatting.