前一个礼拜,突然被互联网和技术群中strut2漏洞惊醒,伴随着就是阿里云短信与监控报警,端口被恶意扫描和上传木马文件,出自apache的strut2,简直是运维界的血洗。

来一段当时官方说明

http://0day5.com/archives/4334/

https://cwiki.apache.org/confluence/display/WW/S2-045

Apache Struts2存在S2-045远程代码执行漏洞。远程攻击者利用该漏洞可直接取得网站服务器控制权。

因为我不是开发,strut存在于web/WEB-INF/lib,属于程序中低版本的jar包,开发包引起的,可以上传木马文件,一开始时候,我还懒得看,因为第一遍想到的是什么,我做的了ssh策略,只接受来自跳板的ssh登录,并且在nginx上加模块,nginx的http_limit_conn和http_limit_req模块来防御,但是小瞧了,他是漏洞上传,并非流量+ddos+cc攻击,歇菜。

根据官方说明,来试图升级struct模块来弥补,晚矣。。。

至今已经发现了流量攀高和可疑的进程。

开始一波挫折吧

怎么办,来一波系统处理入侵吧

1、发现查看一下tcp链接

netstat -nat

tcp 0 0 *.*.*.*:22 122.11.33.247:6300 ESTABLISHED

怎么发现我的外网卡这么多ip链接着我,都是什么德国,新加坡的IP,完蛋,ssh被人植入脚本了, 感觉,赶紧先改root密码(但是,做了ssh免秘钥的可能性很大)

2、ssh的处理与修改策略

netstat -anp|grep :22

每一个ssh链接都会有个 sshd进程,查到就kill吊,现在,我的22端口从防火墙上改策略了

修改/etc/sysconfig/iptables

-A INPUT -s 10.0.0.0/255.0.0.0 -p tcp -m tcp --dport 22 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 22 -j DROP

一定要先aceept,匹配了第一条,下面就不再匹配了。如果DROP放在前面,就要GG了,ssh连不上很麻烦。

防火墙书写规则-http://www.cnblogs.com/alimac/p/5848372.html

3、检查我的/bin/ /usr/bin /sbin /etc/rc.d...

下面的系统命令,不用想了,一定被篡改了,大小都不一样,都在1.2M差不多,正常的都是84K左 右,这黑客还是用touch命令,修改了命令的上传时间,只能和正常的系统比对,然后重新一个个改了

我的系统被篡改的命令是 netstat ps lsof ss 网友们有些还被篡改了 lsattr、chattr命令,没办法,只能一个个替换吧,找同一版本的系统,植入进去,下面是遇到的,大伙儿是怎么处理的

51cto.com/bbs/archiver/tid-37766.html

51cto.com/bbs/viewthread.php?tid=37766&rpid=65689&ordertype=0&page=1#pid65689

http://www.server110.com/linux_sec/201410/10927.html

3、查可疑进程

可以通过去/proc/进程号来去找启动脚本

找到就杀,一般是流量比较高的,或者cpu占用比较高的,和正常的系统比对。

根据以上网页来找木马文件,

http://www.bubuko.com/infodetail-1010815.html

这篇文章比较好。可以根据来判断,是dpkgd漏洞。

4、加固系统,按照上面uptables书写规则,ssh端口只允许跳板机来登录,其余开放的端口,则按照第一条来对外,其余的tomcat、数据库,中间件端口,只对内10.0.0.0/8网段,避免了直接绕过nginx,来攻击我内网程序找漏洞。(防火墙必须开启,要不就是裸奔)

5、总结,还是冷静为先,在处理系统时候,建议,将业务(数据库+程序+系统配置文件profile nginx.conf fstab 等备份至安全的服务器)

在修改防火墙时候,一定演练,尤其22端口,我是通过阿里云的终端进来的。没办法做到退路的孩纸,可以简单写个脚本,半小时后还原iptables和重启防火墙

来一个关于跳板机安全的变态加固策略


650) this.width=650;" src="https://www.itdaan.com/go/aHR0cHM6Ly9zMi41MWN0by5jb20vd3lmczAyL00wMC84RS9COS93S2lvTDFqS1FRN2p6bmNCQUFBelZtc1pQOTgwMDcucG5nLXdoXzUwMHgwLXdtXzMtd21wXzQtc18zOTU4MjI3NTEucG5n" title="QQ图片20170316153730.png" alt="wKioL1jKQQ7jzncBAAAzVmsZP98007.png-wh_50" referrerpolicy="no-referrer">

1、做用户审计

已完成,此后,用户登录IP和操作会记录在此 more /var/log/usermonitor/usermonitor.log

例如: [ 2017-01-21 21:53:42 #### root pts/2 (121.237.177.160) ] #### /root #### rm -rf hell_test


2、使root用户,普通用户,无效用户登录失败5次,锁定5分钟.

开启管理员密码复杂度

每90天更新一次密码,最小长度8位数

  已删除不必要普通用户,检查root密钥文件

3、登陆操作时间锁定

4、添加白名单

vi /etc/hosts.allow


ALL:127.0.0.1

ALL:192.168.1.0/255.255.255.0

sshd:

sshd:

sshd:

sshd

这是我自己做的关于ssh问题的笔记,可以使用。




更多相关文章

  1. java漏洞成黑客目标微软呼吁用户更新软件

随机推荐

  1. 如何从firebase中获取唯一ID内的数据
  2. 对APK进行解包和二次打包(Android)
  3. 数据未显示在Listview中
  4. Android 属性动画(Property Animation)
  5. ADT下搭建JNI编译环境
  6. Android 待机功能流程分析
  7. HTC One X的S720e采用了Beats Audio锁定
  8. Java已经启动,但是返回的退出代码=13 ecli
  9. 使用 gradle 编译多版本 android 应用
  10. Android 外部唤起应用跳转指定页面