记一次简单的渗透测试

基本的渗透知识是学习网络安全的基础。不懂攻如何防?

目录

一.         此次目标的渗透过程    1.1过程    1.2中间的小插曲.    1.3渗透完成.

二.         测试发现的系统问题及解决办法参考    2.1访问控制.    2.2安全管理与实践.    2.3应用和系统安全.

渗透测试案例,目标系统及软件版本:

Linux 2.6.18-8.el5PAE    Apache 2.0 Handler    Mysql 5.0X

Web程序为Joomla (php)修改过的删减版本,渗透目标主站Web管理权限 修改目标漏洞和系统弱点

本案例的测试流程:

1首先通过对网站进行一个初步的架构分析,Whois查询,和查询同服务器下的挂靠的其他网站.查看网站是否有其他分流负载服务器

2.通过浏览网站的默认的phpinfo.php和结合Whois信息对网站进行一个信息收集.了解目标都有哪些伺服器为其提供服务.

3.通过现有的扫描器对目标的系统 软件版本 开放端口进行扫描

为了排除扫描器误报手工telnet测试了端口只有22 80有效开启

4、通过Web安全扫描软件如jsck.exe WVS对网站以及旁注所得的地址进行全局的扫描主要包括:

XSS  Sql injection dir bruteforce FileCheck 文件包含漏洞 任意下载漏洞和备份文件下载测试.可以根据收集到的网站名编辑字典如目标域名为www.xxx.com可以编辑扫描器字典文档为xxxadmin xxxwebadmin adminxxx xxx.rar xxxblack.rar  xxx.sql.bak等等这些.扫描目标或者根据源码信息搜索分析网站已知的oday exp或者是否存在在线编辑器或者其他的如phpmyadmin ewebeditor /CuteSoft_Client/ fckeditor.等并进行相对应版本oday的利用测试.

通过手工判断和后台路径扫描器扫描后后发现目标存在注入,存在/administrator/ 没有找到对方的phpmyadmin路径但是因为过滤了注释号不能直接使用语句注入获取信息,需要转换

大概的演示:

http://www.xxx.com/play.php?song_id=1,and 0=0 and 1=100 对方过滤了and 1=1 等。

http://www.xxx.com/play.php?song_id=1,1)uNionselEct1,2,3,4,5,6,7,8,9,10,11,12,13,14,15frommysql.userwhere(1=1

之后注入过程中发现目标Web于sql分离mysql权限是root.

http://www.xxx.com/play.php?song_id=1,1)uNionselEct1,2,database(),4,5,6,7,8,9,10,11,12,13,14,15frommysql.userwhere(1=1

xx@localhost xx@192.168.x.200

http://www.xxx.com/play.php?song_id=1,1)uNionselEct1,2,load_file(0xxx),4,5,6,7,8,9,10,11,12,13,14,15frommysql.userwhere(1=1

运用自己长期收集的字典扫描目标发现其phpmyadmin复杂路径

Welcome to phpMyAdmin 2.5.7.(也可以通过搜索当前版本的漏洞信息进行利用)比如:www.exploit-db.com www.milw0rm.com还有国内外其他一些漏洞公布站点寻找,通过注入读取对方配置文件信息得到密码 进入phpmyadmin后显示

由于目标Web于SQL分离不能直接写入WebShell,通过登录后台管理继续,查询了对方的admins表后发现目标管理员密码采用的是sha1加密,破解比较麻烦(一般原则是不改动目标但是通过破解后没有破解出密码)我们通过替换对方的管理员的密码sha1 进入后台。

发现是修改过的版本,大部分功能已经丢失.继续.返回主站用这个管理账户登录个人管理 发现有一头像上传功能通过抓包上传测试,得知对方禁止了php 允许jpg gif bmp 但是可以上传php3 php4 会检测文件头。我们加过然后上传php4给出了地址,但是目标没有解析php3和php4 放弃这条路.我们返回phpmyadmi收集信息。查询标段得到管理的一些隐秘的信息,如邮箱 可能的密码或者是前辈留下的痕迹.此路不通我们暂且放下,通过旁注这个C段发现目标和另外一个站的关系甚大,同段ip临近.管理账户存在相同.通过收集到的密码试探下,看是否能通过迂回渗透到目标.通过仔细分析得到了一些信息。之前分析了目标,流量较大

人气高,单个服务器带宽是满足不了的.或许C下还有其他分流负载的服务器.编辑了工具字典文档扫描了C段。(因为目标以及C类都有防火墙保护,外部扫描可能会被屏蔽.我在这个过程中成功拿到一台windows2003 在文章后会有仔细的说明)成功获取到一台SSH的root权限.

查看目录 是否有何目标有关的备份文件端口连接信息 配置文件 管理使用过的命令 管理习惯 以及当前OS的版本 配置信息 域信息等等

管理有su的习惯,连接本地的MYSQL

综合信息表明 这台服务器是目标的SQL服务器。Web 的地址是192.168.0.100.

收集了管理的密码信息,连接Web的SHH,没有成功.这时我需要一些工具来帮助我完成渗透

Fakessh.c su.c.加载 分析管理登陆时间 等待明天收取密码

================中间的小插曲================

以下是我或许C类下一台windows主机的过程(之前的渗透过程中我也获取到了一台Linux主机安装了Sniff之后截取不到目标的数据包,可能当前伺服器于网关进行了双MAC绑定设置)运用开头流程,旁注发现伺服器上挂靠了21个网站全部采用一个管理系统源码,找到了在线文本编辑路径访问对方的默认ewebeditor/db/ewebeditor.asp得到密码破解 进入后台修改类型上传(但是当前的数据库没有权限更改,但是我相信耐心和细心一定可以突破,不断尝试21个站点 终于拿到一个Web Shell) 得到一个Web shell 查看系统配置信息 版本 可写目录 安装的软件开启的服务以及敏感文档 只开启了gent ftp mssql 远程桌面管理

尝试了所有的mssql账户密码组合没有找到权限较高的账户(包括db)无奈破解MD5的GENT FTP密码没有成功.也没有发现前辈留下的可疑服务以及木马后门进程,磁盘NTFS C可读,连接对方的远程桌面管理后调用放大镜查看是否有当前流行的放大镜后门。调用出发现windows的版本是英文而这个sethc是中文而且显示不全,转到c:\windows\system32\sethc.exe看了大小为45KB正常的应为30.KB确定是后门。运用aspx Web Shell的copy 功能copy sethc.exe到shell目录 down到本地。OD载入调试发现这个后门加了aspack 2.12的壳.无法正常分析源码 载入脚本 脱壳找到了密码和调用系统shell组合键 成功进入系统

解压绿色版cain.发现目标设置的无论访问任何页面都要重载cookie信息,流量大

人气高导致我不能准确的判断管理的登陆信息 我才用以下方法 后来发现cain http设置下也可以完成 但是 大鲨鱼于cain配合做表层数据分析 精确管理登陆信息 设置参数 条件后开始 成功截取管理信息

以上windows获取权限完成,继续革命未完成之事-(渗透完成)

加载rookit后门.分析了管理登陆时间段发现不是很频繁。管理有ssh web的习惯时间宝贵,我决定根据现有资料社工下Web目标的密码.组合字典扫描和手工测试了大概一个多小时没有成功,网站出现了问题,大概是今天运用ARP时造成了目标网络不稳定,管理以为是数据库出现了问题,网站竟然停止维护了接近个小时。等待良久.再去测试目标登陆phpmyadmin 发现对方网站与数据库竟然在一起了,应该是管理在做数据转移和备份.直接运用phpmyadmin测试有可写权限目录写一句话脚本木马..

成功写入PHP Web Shell

查看了权限,不是我想要的,通过shell反弹。利用wunderbar_emporium.sh

至此渗透测试告一段落,测试发现的问题以及解决办法(续一次普通的渗透测试)

测试发现的问题以及解决办法参考:

访问控制:1、系统对网站后台登陆密码安全策略控制不严

解决办法:提高密码复杂度的要求,对用户密码进行检查,以提高用户密码的安全级别,如必须是数字和字母的组合等;定义可尝试输入密码的次数和对尝试输入密码采取相应安全策略,如连续输入3次错误密码,将锁定用户一小时等,防止恶意人员对用户的密码暴力破解.

2、网站管理以及系统登陆访问控制存在安全隐患

解决办法:管理员(操作员)访问系统应设定严格的访问控制措施,如基于IP地址,mac,只允许管理员(操作员)在设定的IP地址对系统或网站后台系统进行操作,避免因管理员(操作员)帐户/密码泄漏给系统带来的威胁。

3、对于数据库账户审计做的不够..数据库伺服器开启SHH外联导致安全隐患

解决办法:对当前连接的Mysql数据库账户进行重新分配,降低权限.

安全管理与实践:1、渗透期间对管理进行了了社会工程学测试,发现密码单一,通用,个人信息过多暴露在网上.

解决办法:避免使用单一通用的密码。尽少在网络上留下个人敏感信息.对个人以及员工增强信息安全培训.

应用于系统安全:1、系统对ARP攻击没有防御能力,导致有数据泄漏或被截取获得的可能性增大

解决办法:目标服务器web于sql数据库于网关设定双向MAC绑定。安装ARP防火墙.发现此类问题及时找到源头解决.

2、个别Web php文件存在注入漏洞 分析目标漏洞文件属于参数过滤不严格.

解决办法:对存在问题的参数进行限制更改.删除数据库危险函数

3、phpinfo.php是管理用于查看系统配置网站运行状况的文件.默认命名存在敏感信息泄漏的可能性.

解决办法:修改默认文件名.增加访问user pass验证.避免他人非法获取系统配置信息

4、系统存在高危权限提升漏洞以及补丁更新不及时的问题

解决办法:可以使用Grsecurity或者Pax内核安全补丁,并开启KERNEXEC防护功能,或者在/etc/modprobe.conf中加入免疫代码

本文摘自Hilven由网络安全(www.91ri.org)收集整理.