网络安全参考 | UNIX参考 | GPS参考 | 无线参考 | 在线手册 | OSBUG.ORG | SUNNY-NETWORK.COM
网站地图 RSS订阅
高级搜索 收藏本站
Home | 业界动态 | 防火墙 | IDS/IPS | VPN | PKI | Honeypot | Hacker/Intruder | 黑客技术 | 破解技术 | 加密技术 | 病毒防护 | 木马 | 反垃圾邮件 | 反流氓软件 | 漏洞 | 无线安全 | UNIX | Windows | 安全编程 | 安全软件 | TPM/TCG | 数据恢复 | 企业信息安全 | 个人信息安全
 当前位置: Home > 安全编程 > 网络编程 > 文章  
原始套接字透析之综合实例:网络黑手
文章来源: 天极开发 文章作者: 宋宝华 发布时间: 2006-11-17   字体: [ ]
 

  为了给本系列文章一个具体的实例,笔者编写了"网络黑手"这样一个免费软件。它是一种融合了目前许多类似工具软件功能的具有超强攻击/侦听能力的流氓软件,并可能将成为又一个臭名昭著的破坏性工具,它的功能包括:

  1. 检测本地网络适配器列表并选择一个工作适配器;
  2. 检测局域网内指定IP范围内所有节点的IP地址、MAC地址信息,并列表显示;
  3. 监听局域网上某节点的所有收发信息;
  4. 剪断局域网上某机器与网关的联络,从而让其不能上网;
  5. 不停向局域网内某台主机发送ARP报文,让其不断提示"IP冲突",烦恼不已。

  如果你所在的局域网内有人使用此软件攻击你的计算机,你将变得痛苦不堪。所以,笔者不得不声明的是编写本软件的目的不在于要荼毒生灵、贻害人间,而仅仅是为了本系列教程教学和广大读者掌握黑客攻防技术的需要。任何个人或组织使用本软件进行破坏行为,都应受到道德的谴责或可能的法律制裁。

  尽管如此,为了防范于未然,笔者在研制"网络黑手"这一毒药的同时,也精心研制了其相应的解药――"网络黑手终结者",这一软件也是免费的。在你的网络内,如果有谁使用了"网络黑手",你将可以用"网络黑手终结者"直接终结之!

  点击此处下载网络黑手;

  网络黑手程序的运行最好先安装winpcap,请在此地址下载:http://www.winpcap.org/

  1、网络黑手的实现

  网络黑手0.1版(限于时间的原因,在本教程中我们给出的仅仅是一个教学版本,所以版本号仅为0.1),其界面如下:

  界面的左上角用于设置监控的目标范围(IP地址,如192.168.1.1~192.168.1.254,只能输入与本机处于同一子网的IP地址)、选择本地网卡(对于安装了多块网卡的用户),按钮"开始"用于启动监控和其他操作,启动成功后"开始"按钮会变为"停止"。

  界面的左下角列出活动的与本机处于同一子网机器的主机名、IP地址、MAC地址,在相应的主机上双击"Sniffer"和"ARP欺骗"项目可以启动和停止对该主机的嗅探和ARP欺骗(会切断该机的外网出口)。

  与之对应的数据结构为:

typedef struct tagHostList
{
 unsigned long ip;
 char mac[6];
 bool sniffer;
 bool arpCheat;
 bool ipConflict;
} HostList;

  界面的右边即为监控到报文的源IP地址、目的IP地址、协议、源端口号、目的端口号以及报文的长度,而表格的最后一行将对应显示相关IP报文的数据。为了简化软件的设计和减少程序对内存的占用,在Sniffer时,实际缓存的数据包MAX_PACKET最大为30,超过的会自动被覆盖。

  与之对应的数据结构为:

typedef struct tagPacketList
{
 unsigned long srcIp;
 unsigned long desIp;
 unsigned char protocol;
 unsigned long srcPort;
 unsigned long desPort;
 unsigned long len;
 char data[256];
}PacketList;

  我们需要在对话框的初始化函数中构造上述界面中的表格项目,相关源代码如下:

BOOL CNetHackerDlg::OnInitDialog()
{
 CDialog::OnInitDialog();
 // IDM_ABOUTBOX must be in the system command range.
 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
 ASSERT(IDM_ABOUTBOX < 0xF000);

 CMenu* pSysMenu = GetSystemMenu(FALSE);
 if (pSysMenu != NULL)
 {
  CString strAboutMenu;
  strAboutMenu.LoadString(IDS_ABOUTBOX);
  if (!strAboutMenu.IsEmpty())
  {
   pSysMenu->AppendMenu(MF_SEPARATOR);
   pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
  }
 }

 
推荐文章
·洪水攻击原理及代码实现全攻略(
·原始套接字透析之实现IP地址欺骗
·原始套接字透析之ARP欺骗
·原始套接字透析之实现包分析
·原始套接字透析之实现sniffer
·原始套接字透析之实现路由欺骗
·原始套接字透析之ICMP拒绝服务攻
·原始套接字透析之实现Ping
·原始套接字透析之Raw Socket基础
·黑客之旅 -- 原始套接字透析之前
 

 
共15页: 上一页 1 [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] 下一页
↑返回顶部   打印本页   关闭窗口↓  

Google
 
Web oldhand.org unixreference.net meshmea.org
热点文章
·原始套接字透析之Raw So
·原始套接字透析之ARP欺
·洪水攻击原理及代码实现
·原始套接字透析之实现Pi
·黑客之旅 -- 原始套接字
·原始套接字透析之实现路
·原始套接字透析之实现包
·原始套接字透析之ICMP拒
相关分类
相关文章
·洪水攻击原理及代码实现
·原始套接字透析之实现IP
·原始套接字透析之ARP欺
·原始套接字透析之实现包
·原始套接字透析之实现sn
·原始套接字透析之实现路
·原始套接字透析之ICMP拒
·原始套接字透析之实现Pi
更多...
 
 

Copyright(c) 2001-2008 OLDHAND ORGANIZATION, All Rights reserved.
Power by DedeCms 织梦内容管理系统
$Id: article_article.html,v 1.3 2007/02/10 12:00:37 yjs Exp $