Metasploit第一次渗透记录(后渗透阶段)

      我去TM的,网络课程作业终于写完,遇上坑爹老师也真蛋疼。
      上次干了什么事都快忘记了,再不写就细节就没了。上次说到上传了php文件当shell。我可以在那个文件下执行系统命令。为了碰碰运气,可以输入id看看目前是以什么身份登录的。一般都是 uid=33(www-data) gid=33(www-data) groups=33(www-data) 。所以现在权限不大,要找其他弱点。可以先用 uname -a, df -h, ifconfig -a, ps aux 等等命令做个小检查,了解一下系统的确切信息。

目录浏览:

       cd, ls -lart  两个命令就可以对目标系统做个大体的检查,一不小心就能看到权限不对的文件或者文件目录。当然也可以用find命令自动搜索权限不对的文件,总感觉不太有趣。

      首先我看到了/var/www目录里有wordpress,权限为777,当时就哭了。(因为我觉得这个shell太简单,用起来不方便,所以我想上传更强大的shell,在joomla!这个网站下,滤过了不安全的文件,就算我用base64编码后,成功上传后也无法运行。)而777权限的wordpress的出现就像救星一样,立马把之前的大shell移动过来。看现在的shell。作者是Zaco。如果我邪恶一点,rm -rf,那就坑爹了。不仅如此,那系统里还有很多755的,所以我能读取很多信息。就不说是哪些信息了。

shell2

登录后台:

      因为有网站目录的读权限,而一般数据库密码都是明文保存在相关目录下,比如config.php啊什么的,很容易就能找到数据库密码。根据恢复密码方法,立刻拿下joomla!后台admin。结果也没什么意思。不是什么大网站,基本没有用户信息。直接放弃。

用户分析:

      光是www-data可不行啊,必须有其他用户权限才行。基于很多人都会记下一些密码啊什么的,我首先分析了其中最有可能有sudo权限的人,同样是用ls, cat等等。结果一筹莫展,所以还是另辟他径。网上一搜,linux privilege escalation, 找到了CVE-2012-0056,我去运气太好。立马上传,然后编译运行。发现没有出现应该出现的情况。但是通过ps aux发现确实由我产生了root进程,只是不能输入命令。难道debian特别吊?只能放弃。

      在半夜12点,就要收拾去睡觉的时候奇思妙想,不如来猜一猜密码。然后一猜就中,6个用户里有两个用户的密码就是用户名。可惜是摆设用户,没有sudo权限。但是由此获得了SSH登录,操作就方便多了。然后就去睡觉了。

homeuser

ROOT权限:

      没有获取root权限总觉得不爽。。因此又回到了原点。根据这里的引导,我一步步测试,结果还是没有任何进展。随手来了句 netstat -an | egrep 'Proto|LISTEN' 忽然发现有个ftp端口。发现是pure-ftpd,上网一搜,知道其配置文件的位置。cd过去,然后我就哭了。。有个文件是可读的,打开一看,里面有个密码,我擦,就是默认的数据库密码。然后直接命令行进入数据库。虽然密码是加密的,但是只有把MD5放到google,就能得到原文。里面有个用户名就是系统的用户,使用其密码登录,果然行。但是去他妈的,这个吊用户也不在sudoers里,我算是明白了,看了他的.bash_history,tmd他们都是直接su -的。所以我最后还是没有root权限。但是获得了那个wordpress的后台,原因是密码是一样的。

dbpass

Metasploit Shell:

      之前这些步骤都是手动完成的,跟metasploit基本没有关系。我在想,如果我手动得到php shell之后怎么跟metasploit连接。目前找到的解决方案是手动编码一个python reverse shell, 参考此处。然后跟metasploit连接就行了,操作起来就像普通shell。

参考:

  1. linux privilege escalationMempodipper
  2. python Meterpreter Reverse Shell
  3. php reverse shell

Metasploit第一次渗透记录(前渗透阶段)

      暑假闲着没事,图书馆借了本书叫《Metasploit 渗透测试手册》。其实很久以前就对渗透测试很感兴趣,就是没时间。渗透测试是个好听的说法,其实在我的角度看来就是入侵。请叫我屌哥,因为我两天前,开始学习,今天就差不多搞定了一台主机,虽然root权限搞不定。下面我就说说我的第一次入侵。

      我是要找练手的机器。本来我是好心好意,用xp虚拟机来测试漏洞,谁知道每次使用ms08_067_netapi 都会导致 Generic Host Process for Win32 needs to close,简直就是坑爹。据说是因为虚拟机Chroot Jail Cell不知道什么的原因。见这里。所以我还是找真机吧。

信息搜集:

目标网络:

      有什么地方是大规模的网络,而且被发现也不会被抓的?答案就是学校。所以我就从我们学校下手。选择学校还有其他原因:主机难以维护更新缓慢,使用者素质不同总会有漏洞。第一步就是上网找学校ip段,你懂的。假设我找到的是10.0.0.0-10.0.63.255。下一步就是nmap端口扫描。

扫描准备:

      扫描端口之前,有件事要先准备一下。就是准备一个VPN,这样可以稍微掩盖一下不法行径。而且VPN最好是查不到的。我就选择了AWS直接建个VPS,反正365天不要钱,不用白不用。

端口扫描:

      这时候就用到了metasploit,普通的nmap不能将扫描后的数据自动存到数据库,而且分析也是靠人的。然而metasploit里的db_nmap可以完成数据存储和初步分析。所以果断的,用db_nmap。首先要进入msfconsole,细节以后讲。

      差不多一个意思的nmap来一下,要注意不要一下子太多ip了,干等也不是办法。扫描完成后,可以用msfconsole的内置命令,hosts查看扫描的主机,以及vulns。一般都会有结果,就看临幸哪台主机了。比如我这出来的结果。最理想的是选择老的服务器,nmap有-O选项来检测操作系统。更有smb来更精确的检测,细节留下次。(在此之前我犯了2个错误,1是一定要windows服务器,2是认为内网更容易入侵)vulns

漏洞检测:

      差不多选定了一台主机,就到了深入检测的时候。这是在nmap利用充分之后的下一步。nessus著名的漏洞检测软件。虽然现在不开源,但是作为个人用,有免费版,虽然有限制,但我感觉完全够用。这个还有下载安装注册。具体见主页

      nessus确实吊。是他找到了我这次入侵的突破点,虽然我完全不知道这是如何做到的。。其中这个结果引起我的注意。自己尝试一下,确实是个漏洞。然后又google了一下,发现这可能还有个更危险的漏洞,CVE-2011-4908,可以上传文件。那一切就好说了。我认为这就是切入点,虽然我还不清楚这个joomla!的版本,但能确定这个版本很老。现在都3.0了。joomla

上传shell:

      metasploit自带上传文件的工具,如下一气呵成,这就是metasploit的威力。exploitstep

      可是没有成功。我很疑惑,手动去上传,改名字什么的都行。参考web application,我也实现的同样的效果。我觉得是metasploit出bug了(后来发现应该是网站做了防护措施,检测文件编码和大小)。所以这还得靠手动上传。步骤如下:

  1. 找个合适的能运行命令的php文件,改名为r.ph.p。具体代码见参考
  2. 上传到网站页面,(我就不显示网址了)
  3. 重命名去掉. r.ph.p => r.php
  4. 运行r.php

      这些步骤具体都能在web application里找到。最后结果:webshell

总结:

      现在我只是上传了一个文件,能远程执行代码。这完成了入侵的第一步。接下来的事情才更有趣。真的是像探险一样。各种发现,各种偶然,我真TM是个侦探!
      这给我们的教训是:不要使用过期的软件,要及时更新系统!
      以上仅供学习,我还是那句话:进攻是为了更好的防御。说不定现在我的博客网站正在被攻击,而我从这次入侵中学到的教训可能救了我网站一命。还有,我不会恶作剧,可以看看接下去我发现了什么,我可以做一件足以让其主人崩溃的事,rm -rf。。。但是我没有,我会跟他讲的,他的邮箱已经找到。我也没有泄露网址,所以我不是个坏人,不要抓我。。
      今天先说到这。累成狗。

参考:

  1. nmap常用命令
  2. nessus blog

 

复制来的简单php shell代码,我忘记从来的了,文件里也没有署名,真对不起作者。