从被入侵到蜜罐搭建再到日志审计

 

一切的起因是在我大半夜3点被一条腾讯云的告警短信吵醒的,由于学生云快到期又没办法续费的情况下,各种捣鼓重装,玩各种环境,方便起见都设的弱密码,结果大半夜的就被人爆出来密码然后挂了个挖矿jio本,作为一个(弱)安全研究人员,被打了当然不能就这么算了,所以稍微溯源了一下

 

溯源(day1)

最开始我除了修改了服务器的密码没有做任何的措施,所以被很轻松的入侵进来,等我看到腾讯云的告警上线查看时,原来的密码已经登录不上了

这时靠着腾讯云的重置密码把密码改回来才登录上服务器

接着就是查看告警的~/.bashtemp路径

我们能得到这样的一个目录结构

执行top指令会发现有一个占了你99%cpu的cron在跑

先进.bashtemp看看里面的

一级目录下只有对应对应的绝对路径和定时任务脚本

然后a目录下就是很平淡无奇的挖矿脚本,启动、停止脚本

比较有点东西的在b里的run

大概能猜到这是一个perl写的后门并base64加密过了,然后下面rm -rf .ssh的操作也让我们知道为什么原先已加过authorized_keys的机子没办法直接登录

然后我们稍微把perl后门base64解一下,然后发现还有perl混淆

解下混淆我们就能看到对应的后门源码了

然后发现了个ip,稍微查了下来自欧盟,但这范围也太大了,我不喜欢,于是我就接着去有没有相关信息,最终在netstat里发现有个未知ip连着ssh端口就稍微查了一下

感觉像是个管理后门的服务器(当时域名还无法加载,在写的时候又去看了看发现已经挂上Univention Corporate Server)

由于这个主机只连上了一会,所以没来得及截图(可惜)

之后连的ip就只有perl后门所指定的ip了,当时差不多凌晨三四点了,实在顶不住就去睡了

 

蜜罐搭建(day2)

只有被打完的结果却不知道怎么被打的,进来后怎么操作的,所以试了一波蜜罐搭建来请君入瓮

这里我选择的是用cowrie来搭建,为了查看日志方便就不用docker,直接按文档来安装

(本人环境为ubuntu18.04)

step 1(安装依赖)

sudo apt-get install -y git python-virtualenv libssl-dev  libffi-dev build-essential libpython-dev python2.7-minimal authbind

step 2(新建蜜罐用户)

sudo adduser --disabled-password cowrie
sudo su - cowrie

step 3(把cowrie项目 git下来)

git clone http://github.com/cowrie/cowrie

step 4(切换到项目根目录&&安装虚拟python环境)

cd ~/cowrie
virtualenv --python=python3 cowrie-env

此时终端应该变成类似(cowrie-env) $的样子

如果没有请在bash下重新操作试试

step 5(进入虚拟环境里安装好对应的库)

source cowrie-env/bin/activate
pip install --upgrade pip
pip install --upgrade -r requirements.txt

step 6(修改配置文件)

这里由于只是要收集由ssh手段进入服务器的操作所以只要修改[telnet]下的false为true就行了

cd etc
cp cowrie.cfg.dist cowrie.cfg

step 7(启动环境)

./cowrie start

step 8(修改ssh默认端口&&转发端口)

注意:这里要先切root账户再进行以下操作

先打开/etc/ssh/sshd_config找到Port 22修改22为你想要的端口,然后重启ssh服务

再通过sudo netstat -tunlp | grep ssh来查看是否修改成功

sudo service ssh restart
sudo netstat -tunlp | grep ssh

然后将2222端口的流量转发到22

sudo iptables -t nat -A PREROUTING -p tcp --dport 2222 -j REDIRECT --to-port 22

然后蜜罐到这里就算是搭建完成了,等鱼上钩

 

日志审计(day3)

鱼儿上钩的总是那么快,直接把工具都扔上来了

我们本着研究的态度拿来看看

大概就是这个文件包没跑了,锁定这个ip看看还干了些啥

该说不愧是想要挖矿的,上来就是找cpu核数

这里解释下这个指令的意思,chpasswd是批量更新用户口令的一个指令,这里被用于更改root用户本身的密码

紧接着对方就开始收集服务器的mem状态了

然后也不知道干嘛查看了ls的路径和状态

然后就是安装矿包的过程了

不过在这之中看到了熟悉的删.ssh目录并添加authorized_keys的操作,证明了我们最初的猜想应该算正确的

然后我们简单的看下攻击包的安装

实际上是通过init和init2来保证挖矿程序的权限维持以及定时任务的写入

然后我们对anacron文件进行查看,能发现对方钱包地址,稍微查了下之前并没有出现过,可能是某个新团队在进行攻击

 

结语

第一次被人黑进来种挖矿木马,处理的方式反思了一下还能再好一点,不过在这途中也学到了不少取证相关的知识和技术,也学会了蜜罐的搭建,总的来说还是受益良多的

(完)