第一章 理论篇
I. 概述
II. 思想认识(MENTAL)
III. 基础知识
IV. 高级技巧
V. 当你受到怀疑时...
VI. 被捕
VII. 有用的程序
VIII. 最后的话
I. 概述
----------------------------------------------------------------------
>> 译者注:本文是德国著名hacker组织"The Hackers Choice"的96年写的一篇文章,
>> 但今天读来仍颇有收获,就象他自己说的:"即使是一个很有经验的hacker也能从这
>> 里学到一些东西".在翻译的过程中对原文做了一些改动,也加入了一些自己的理解,
>> 不当之处,还请赐教.
>>
注意 : 本文分为两部分.
第一部分讲述了一些背景和理论知识.
第二部分通过具体的实例教你一步一步了解该做什么和不该做什么.
如果你懒得看完全部文章,那就只读第二部分吧.它主要是写给那些
Unix hack新手看的.
如果你把尽快得到最新的exploits当成最重要的事的话,那我要说-你错了.
>> 译者注:exploits可以理解为"漏洞",不过我并不想这么翻,翻过来总感觉怪
>> 怪的,所以我还是保留了原文.文中还有一些地方也是如此处理,不再一一注明
一旦警察没收了你的计算机、你的所有帐户都被取消、你的一切活动都被监视
的时候,即便是最好的exploit对你又有什么用呢?
我不想听那些辩解的话.
不,最重要的事应该是不要被捕!
这是每个hacker都应该明白的第一件事.因为在很多情况下,特别是当你首次
hack一个由于饱受入侵之苦而开始对系统安全敏感的站点时,你的第一次hack
也许就将成为你最后一次hack.
所以请仔细阅读所有章节!
即使是一个很有经验的hacker也能从中学到一些东西.
下面是各节的简介:
节 I - 你现在正在读的
节 II - 思想认识
1. 动机
2. 为什么你必须要谨慎(paranoid)
3. 怎样才能谨慎
4. 保持谨慎
节 III - 在你开始hack前应当知道的基本知识
1. 前言
2. 自身安全
3. 自己的帐户
4. log文件
5. 不要留下痕迹
6. 你应当避免的事
节 IV - 你该了解的高级技巧
1. 前言
2. 阻止任何跟踪
3. 找到并处理所有的log文件
4. 检查syslog设置和log文件
5. 检查安装的安全程序
6. 检查系统管理员
7. 怎样修正checksum检查软件
8. 注意某些用户的安全陷阱(诡计?)
9. 其他
节 V - 一旦你受到怀疑你该怎么做
节 VI - 当你被捕时该做的与不该做的
节 VII - 一些用于隐藏痕迹的程序的列表
节 VIII- 最后的话,作者想说的一些废话
请仔细阅读,开动脑筋.
II. 思想认识(MENTAL)
>> 译者注:这一节的目的主要是提醒你树立正确的"hack"观 ;)
----------------------------------------------------------------------
内容: 1. 动机
2. 为什么你必须要谨慎(paranoid)
3. 怎样才能谨慎
4. 保持谨慎
>> 译者注:paranoid的意思是"患偏执狂的",在这里可能是当
>> "小心谨慎"来讲吧.
* 1. 动机 *
不管做什么事,信念总是取得成功的一个关键.
它是你的动力源泉,它激发你去奋斗,自我约束,小心谨慎而又面对现实,准确的估
计风险,它也能让你去做你不喜欢做但又非常重要的事情(即使你现在就想去游泳).
如果你不激励自己去编制重要工具,等候恰当的时机去攻击目标,那你永远不
能成为真正的hacker.
一个成功而又优秀的hacker必须满足这些要求.它就象健身和节食---如果你
真正努力去做,你就能成功.
* 2. 为什么你必须要谨慎 *
当然,小心谨慎并不会让你的生活变得更幸福.
然而如果你从不做最坏的打算,任何事情都能击倒你,让你失去平衡.你正在做的
事会让你冒很大风险.而在你正常的生活中你并不需要担心警察,小偷什么的.但
如果你从另一方面考虑,你要知道你正在给别人的生活带来麻烦和恶梦--他们很
想阻止你.
尽管你不认为这是犯罪.但当警察迅速逮捕每个可能被牵扯的人时,你会发现一件
很悲惨的事:你是有罪的除非你能证明你无罪!
一旦你得到了一个hacker的"污名",你就永远不能将其去除.一旦你有了犯罪纪录,
你将很难找到一份工作.特别是没有软件公司甚至没有与计算机有关的公司会聘用
你,他们会害怕你的技术.你也许不得不移民...
一旦跌倒了,能再爬起来的只是少数人.
要小心谨慎!
要保护好你自己!
记住你得到的一切都可能失去!
绝不为做额外的反跟踪工作而感到愚蠢!
绝不为如果别人嘲笑你太谨慎而烦心!
决不要因为太懒或者厌倦而放弃修改log文件!
一名hacker必须%100的完成他的"工作"!
* 3. 怎样才能小心谨慎 *
如果你读了上面的话并且你认为那是对的,那就容易了---你已经变得小心谨慎了
但这必须要变成你生活中的一部分才行,当你总是考虑究竟是谁告诉你了那些事,
考虑你的电话和email可能已被监视的时候,那它已经变成你生活的一部分了.
如果上面这些还不能帮你,那么考虑一下如果你被捕会发生什么.
你的女友还会站在你这边吗?你想看到你父母为你流泪吗?你想丢掉饭碗
或学业吗?
不要给这一切以发生的机会!
如果这还不能警醒你:
离HACKING远点儿!!!
对整个hacker社会和你的朋友来说,你都是个危险人物!
* 4. 保持谨慎 *
我希望现在你明白为什么小心谨慎的重要性了.
所以保持谨慎.一个错误或者一次偷懒都可能彻底毁掉你的生活和事业.
在做一件事时应时刻记着你的动机是什么.
>> 译者注:这部分是让你知道你正在干什么及你的处境.如果你不想让你成为无聊
>> 记者津津乐道的话题---"某地破获重大黑客案...",那就多看看,多想想.要知
>> 道,自己是这种新闻的主角和看别人的新闻可完全不是一个感觉.
>> 所以要:谦虚谨慎,戒骄戒躁 :-)
III. 基础知识
----------------------------------------------------------------------
内容 :
1. 前言
2. 自身安全
3. 自己的帐户
4. log文件
5. 不要留下痕迹
6. 你应当避免的事
* 1. 前言 *
在你开始你的初次hack之前,你应当知道这些并且进行些练习.这些都是非常基本
的,不知道这些你很快就会有麻烦了.即便是一名很有经验的hacker也能从中得到
一些新的提示.
* 2. 自身安全 *
系统管理员读了你的email吗?
你的电话被警察监听了吗?
警察没收了你存有所有hacking数据的计算机吗?
如果你不接收可疑的email,不在电话里谈论hacking/phreaking的话题,在你的硬盘
上也没有敏感和私人数据的话,那你不必担心上面那些情景.但那样你就并不是一个
hacker.每个hacker和phreaker都与其他人保持联系并把他的数据保存在某个地方.
加密所有敏感数据!!!
在线硬盘加密程序是非常重要和有用的:
在internet上游很多好的免费硬盘加密程序,它们对你的操作系统来说是完全
透明的.下面所列的几个软件都是经过测试的,是hackers的首选工具:
- 如果你用MsDos,你可以使用SFS v1.17或者SecureDrive 1.4b
- 如果你用Amiga,你可以使用EnigmaII v1.5
- 如果你用Unix,你可以使用CFS v1.33
>> 译者注:在win9x下可以考虑emf,iprotect...
文件加密软件: 你可以使用任何一种加密软件,但它应该是使用一种众所周知的
安全加密机制.绝对不要用那些被出口的加密程序,它们的有效密钥长度被缩短了!
- Triple DES
- IDEA
- Blowfish (32 rounds)
加密你的Email!
- PGP v2.6.x 是个不错的工具.
如果你想讨论重要的事情的话,加密你的电话.
- Nautilus v1.5a 是迄今最好的
当你连到一个unix系统时加密你的终端.
一些人可能正在sniffing或者监视你的电话线:
- SSH 是最安全的
- DES-Login 也不错
>> 译者注:- SSL 基于SSL的一些软件也可以一试
用强壮的不可猜测的,不在任何字典中的密码.它应当看起来象随机的但又容易记
忆.如果密码长度可以比10个字符更长,那就用更长的.可以从书中抽取一句话,并
略作修改.请将你的hacker朋友的电话号码加密两遍.如果你不加密,你应当从公用
电话给他打电话.
>> 译者注:其实有个好记又难猜的密码并不难,例如考虑句子"Im a haxor!"可以从中抽
>> 取几个单词组成Imhaxor,好象没有数字,呵呵,用"eleet"的hacker语言,haxor=h4x0r
>> 所以我们的口令可以是:Imh4x0r(我是hacker).这样的密码恐怕只能用暴力破解了.
如果你对hacking有了深入了解,你应当加密所有的东西!
为你的数据做个备份,当然要先加密,把它放在一个隐秘的地方,最好不要在家里.
所以即使你因为失误,火灾或警察搜捕等原因丢失了数据,你还可以得到备份数据.
只有当你真的需要它们时才写出来,否则将它们放在一个机密文件或加密分区里更
安全.一旦你不需要它们了,烧掉那些纸.你也可以用只有你自己知道的加密机制将
它们写下来,但不要告诉任何人,也别太经常的使用它.也许它很容易被分析和破解
真正沉稳和谨慎的hackers应该考虑实施干扰方案.警察,间谍,其他hacker能监视你
的举动.一个拥有先进设备的人可以获得他想要的任何东西:
计算机发射的电子脉冲可以从100米以外的距离被截获,可以显示你的监视器屏幕,
监听你的私人谈话,确认键盘敲击时的高频信号等等...所以各种可能性总是存在的.
成本低廉的应付方法就是采用电子脉冲干扰发射机,商店里就有卖的.如果你不想让
>> 译者注:不知道我们的商店里有没有卖的.;-)
任何人监视你,我认为这些还不够...
* 3. 你自己的帐户 *
下面让我们谈谈你自己的帐户.它就是你在学校/公司/ISP那里得到的帐户,它
总是与你的真实姓名联系在一起,所以在使用它时绝对不要违背下面的原则:
永远不要用你的真实帐户做任何非法或者惹人怀疑的事!
永远不要试图从你的真实帐户telnet到任何被hacked主机去!
当然可以用这个帐号订阅安全mailing lists.
但任何与hacking有关的东西都必须加密或者立刻销毁.
决不要在你帐号下保存hacking或security工具.
尽量用POP3连到你的mailserver下载或者删除你的邮件(如果你对unix比较熟悉,
还可以直接telnet到POP3端口执行下载或者删除命令).
决不要泄漏你的真实email给你不信任的人,只把它给你信任的人,他们也应当是比较
注意安全问题的人,否则如果他们被捕,下一个就是你了(或许他们根本就是警察,而不
是hacker.).
与其他的hacker用email交流时必须要用PGP加密,因为系统管理员经常偷看用户目录,
甚至读区别人的email!!其他的hacker也可能hack你们的站点并试图得到你的数据.
绝不要用你的帐号表明你对hacking感兴趣!
对安全感兴趣可以,但不要再进一步了.
>> 译者注:与别人交流时可以申请免费信箱,最好是国外的,比如hotmail之类,登陆时注意最好
>> 通过proxy.自己的真实信箱应当只用来进行一般的正常通信,与朋友/老师/同事...
* 4. LOG文件 *
有三个重要的log文件:
WTMP - 记录每次登录的信息,包括登陆/退出的时间,终端,登录主机ip
UTMP - 在线用户记录
LASTLOG - 记录用户上次是从哪里登录的
当然还有其他的log,它们将在"高级技巧"一节种讨论.每次通过telnet,ftp,rlogin,rsh
的登录都会被记录到这些文件中.如果你正在hacking,把自己从这些记录中删除就是很
重要的了.否则他们会:
a) 准确的发现你什么时候在搞hacking活动
b) 发现你从那个站点过来
c) 知道你在线的时间有多长,以便计算你给他们造成的损失
绝对不要删除这些log文件!!!那等于通知管理员:"嗨,你的机器上有个hacker!".找一个
好程序来修改这些log.ZAP(或ZAP2)经常被认为是最好的但事实上它并不是.它只是简单
的用0来填充用户上次登陆的数据段.CERT已经发布了一个简单的程序用来检查这些全零
数据项.所以这样也会很容易就让人知道现在有个hacker在活动,这样你所有的工作就没
有意义了.ZAP的另外一个缺陷是当它找不到那些log文件时,它并不报告.所以在编译之前
必须先检查一下路径!你应该使用能改变记录内容的程序(象cloark2.c)或者能真正删掉
记录的程序(象clear)
>> 译者注: THC提供的cleara.c ,clearb.c是非常好用的清除工具.可以清除
>> utmp/utmpx,wtmp/wtmpx,修复lastlog让其仍然显示该用户的上次登录信息(而不
>> 是你登录的信息).如果你发现你登录后没有显示上次登录信息,那很可能你的机器
>> 可能已经被人hack了,当然,即使显示正确的信息也未必就没有被hack.;-)
一般来说要修改log你必须是root(有些老版本系统例外,它们将utmp/wtmp设成允许所有人可写)但
如果你不能得到root权限---你该怎么做呢?
你应该rlogin到你现在所处的主机,以便在lastlog种增加一个不是那么惹人怀疑的数据项,它将在
该用户下次登录时被显示,如果他看到"上次从localhost登录"的信息时也许不会怀疑.
>> 译者注:这也是没有办法的办法,换了我,我就会怀疑.;)
很多unix系统的login命令有一个bug.当你登录以后再执行一遍login命令时,它将
用你当前的终端重写UTMP中的login from段(它显示你是从哪里来的!)
那么这些log文件缺省在什么地方呢?
这依赖于不同的Unix版本.
UTMP : /etc 或 /var/adm 或 /usr/adm 或 /usr/var/adm 或 /var/log
WTMP : /etc 或 /var/adm 或 /usr/adm 或 /usr/var/adm 或 /var/log
LASTLOG : /usr/var/adm 或 /usr/adm 或 /var/adm 或 /var/log
在一些旧unix版本中lastlog数据被写到$HOME/.lastlog
* 5. 不要留下痕迹 *
我曾经碰到很多hacker,他们把自己从log里删除了.但他们忘记删掉他们在机器中留下
的其他一些东西:在/tmp和$HOME中的文件
Shell 记录
一些shell会保留一个history文件(依赖于环境设置)记录你执行的命令.这对hacker来
说确实是件很糟糕的事.
最好的选择就是当你登录以后先启动一个新shell,然后在你的$HOME中查找历史纪录.
历史记录文件:
sh : .sh_history
csh : .history
ksh : .sh_history
bash: .bash_history
zsh : .history
>> 译者注:.*history是我最喜欢看的文件之一,通过它你可以了解root或用户常干些什么,
>> 从而得知他们的水平如何,如果他们只会执行"ls","pwd","cp"...那说明水平不过尔尔,无须
>> 太担心.不过如果你发现root喜欢"find / -type f -perm -04000 -exec ls -al {} \;","
>> "vim /var/adm/messages","ps -aux( -elf) ","netstat -an"....那你就要小心一点了
备份文件 :
dead.letter, *.bak, *~
在你离开前执行一下"ls -altr"看看你有没有留下什么不该留下的东西.
你可以敲4个csh命令,它能让你离开时删掉这些历史文件,不留下任何痕迹.
mv .logout save.1
echo rm .history>.logout
echo rm .logout>>.logout
echo mv save.1 .logout>>.logout
>> 译者注:对于bash,有一个简单的办法就是执行一下"HISTFILE=",就是不设置bash的历史文件,
>> 这样就不会有讨厌的.bash_history了.(准确地说,是不会往$HOME/.bash_history里写了)
>> 或者退出的时候简单的敲kill -9 0 ,它会杀掉这次登录后产生的所有进程,bash也不会往.bash
>> _history里写
* 6. 你应当避免的事 *
不要在不属于你的机器上crack口令.如果你在别人(比如说一所大学)的机器上破解口令,
一旦root发现了你的进程,并且检查它.那么不仅你hacking的帐号保不住了,可能连你得
到的那passwd文件也没了.那学校将会密切注视你的一举一动...
所以得到口令文件后应该在自己的机器上破解.你并不需要破解太多的帐号,能破出几个就
够了.