----第一章 理论篇
I. 概述
II. 思想认识(MENTAL)
III. 基础知识
IV. 高级技巧
V. 当你受到怀疑时
VI. 被捕
VII. 有用的程序
VIII. 最后的话
I. 概述
----------------------------------------------------------------------
译者注:本文是德国著名hacker组织“The Hacker’s Choice”的96年写的一篇文章,但今天读来仍颇有收获,就象他自己说的:“即使是一个很有经验的hacker也能从这里学到一些东西”。在翻译的过程中对原文做了一些改动,也加入了一些自己的理解,不当之处,还请赐教。warning3@hotmail.com
注意 : 本文分为两部分。
第一部分讲述了一些背景和理论知识。
第二部分通过具体的实例教你一步一步了解该做什么和不该做什么。如果你懒得看完全部文章,那就只读第二部分吧。它主要是写给那些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上游很多好的免费硬盘加密程序,它们对你的操作系统来说是完全透明的.下面所列的几个软件都是经过测试的,是hacker’s的首选工具:
- 如果你用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朋友的电话号码加密两遍。如果你不加密,你应当从公用电话给他打电话。
>> 译者注:其实有个好记又难猜的密码并不难,例如考虑句子“I’m a haxor!”可以从中抽取几个单词组成I’mhaxor,好象没有数字,呵呵,用“eleet”的hacker语言,haxor=h4x0r>> 所以我们的口令可以是:I’mh4x0r(我是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 - 记录每次登录的信息,包括登陆/退出的时间,终端,登录主机ipUTMP - 在线用户记录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文件也没了。那学校将会密切注视你的一举一动。所以得到口令文件后应该在自己的机器上破解。你并不需要破解太多的帐号,能破出几个就够了。如果你运行攻击/检测程序象ypx,iss,satan或其他的exploiting程序,应当先改名再执行它们。或者你可以修改源码改变它们在进程列表中显示的名字...
>> 译者注:这并不难,你只要在main()中将argv[]用你喜欢显示的名字替代就可以了比如argv[0]>> =“in.telnetd”,argv[1]=“”...(当然必须在程序已经从argv中读取了所需的参数之后)。如果某个细心的用户/root发现5个ypx程序在后台运行,他马上就会明白发生了什么。当然如果可能的话不要在命令行中输入参数。如果程序支持交互方式,象telnet。应当先敲“telnet”,然后“o target.host.com”。这就不会在进程表中显示目标主机名。
>> 译者注:如果你用ftp,最好这样做:
>> $Content$nbsp;ftp -n
>> $Content$nbsp;ftp>o target.host
>> blahblah...(一些连接信息)
>> blahblah...(ftp server版本)
>> ftp>user xxx
>> ....
如果你hack了一个系统---不要在任何地方放suid shell!最好装一些后门象(ping,quota或者login),用fix来更正文件的atime和mtime.
>> 译者注: 放suid shell是很蠢的,非常容易被root发现。
IV. 高级技巧
----------------------------------------------------------------------
内容 : 1. 前言
2. 阻止任何跟踪
3. 找到并处理所有的log文件
4. 检查syslog设置和log文件
5. 检查安装的安全程序
6. 检查系统管理员
7. 怎样修正checksum检查软件
8. 注意某些用户的安全陷阱(诡计?)
9. 其他
* 1. 前言 *
一旦你装了第一个sniffer开始你的hack生涯,你就应该知道并使用这些技巧!请运用这些技巧---否则你的hack之旅就行将结束。
* 2. 阻止任何跟踪 *
有时候你的hacking活动会被人发现.那并不是什么大问题 - 你hacked一些站点可能会被关掉,但谁管它呢,赶紧离开就是了。但如果他们试图跟踪你的来路(通常是为了抓住你)的话那就很危险了!
这一节将告诉你他们跟踪你的各种可能的方法以及你该如何应对。
* 通常对系统管理员来说发现一个hacker是从哪里来的并不是什么问题:检查log记录(如果那个hacker真的那么蠢的话);看看hacker安装的sniffer的输出记录(也许里面也记下了他的连接)或者其他系统记帐软件(象loginlog等等);甚至可以用netstat显示所有已经建立的网络连接--如果那个hacker正在线的话,那他就被发现了。这就是为什么你需要一个gateway server(网关)。
* 什么是gateway server?
它是你所“拥有”的很多服务器中的一个,你已经得到了它的root权限。你需要root权限去清除wtmp/lastlog/utmp等系统记录或者其他一些记帐软件的log文件。除此之外你不在这台机器上做任何其他的事(它只是个中转站)。你应当定期更换gateway server,可以每隔1,2个星期更换一次,然后至少一个月内不再使用原来的gateway server。这样他们就很难跟踪到你的hacking server。
* hackin server - 所有活动的出发点
你从这些机器开始hacking。Telnet(或者更好的:remsh/rsh)到一个gateway server,然后再到一个目标机器。你需要有root权限以修改log。你必须每隔2-4个星期就更换hacking server。
* 你的堡垒/拨号主机。
这是个临界点。一但他们能跟踪回你拨号进入的机器,你就有麻烦了。只要打个电话给警察,再进行一次通信线路跟踪,你的hack活动就会成为历史了,也许是你的未来。在堡垒主机上你不需要得到root权限。既然你只是通过modem拨入,那里没有什么必须修改的记录。你应该每天用一个不同的帐号拨号进入,尽量用那些很少使用的。你应该找到至少2个你能拨号进去堡垒主机,每隔1-2个月更换一次。
>> 译者注:我对phreak不熟。我猜大部分的国内hacker还没什么本事能躲过电信局>> 的跟踪。所以最好不要用别人的帐号上网,特别是那些很少上网的帐号,一旦他>> 发现上网费用剧增,肯定会让电信局追查的,到时候你就大难临头了。如果>> 你用那些上网频繁的人的帐号,他反倒不会注意,只会以为这个月上的太厉>> 害了。:-)(这绝对没有鼓励你盗用别人帐号的意思,这等于盗窃,凭什么你上网>> 要别人交钱?就凭你会用john破几个口令吗?hacker的名声就是让这些打着hacker>> 旗号的无耻之徒败坏的。对这种人就得抓!所以我对这样的phreaker没有什么好感,>> 你要真有本事,就别嫁祸别人,而且还要让电信局查不出来。) 说多了,咱们言归正传。注意: 如果你能每天拨入不同的系统(比如通过”蓝盒子“),那你就不需要那些hacking server了。* 使用蓝盒子,这样即使他们跟踪到你的堡垒主机,也不能(至少是不能很容易地)追踪到你的电话。使用蓝盒子必须小心,德国和美国的电话公司有专门的监视系统来追踪使用蓝盒子的人。使用一个中间系统来传送你的电话将会使跟踪更加困难, 但是同样由于你使用一个pbx或其他的什么东西, 仍使你处于被抓的危险中。 这取决于你。注意在丹麦所有的电话数据均被记录!即使在你打完电话10年后,他们仍然能证明?
责任编辑:浪漫樱花
|