V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
raysonx
V2EX  ›  Linux

欺负一下暴力破解 SSH 密码的脚本小子,分享一个 SSH 蜜罐

  •  4
     
  •   raysonx ·
    vfreex · 2016-09-17 17:58:56 +08:00 · 11410 次点击
    这是一个创建于 2782 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这是一个在 GitHub 上找到的开源项目,名叫 Cowrie : https://github.com/micheloosterhof/cowrie
    简单地测试了一下,支持记录暴破用的密码,支持记录登录蜜罐后执行的命令,“登录”后是一个伪装的 Debian 系统,还支持伪装的 apt-get install (笑)。
    还可以配置成让对方暴破一定随机次数后“登录”,简直神器。
    45 条回复    2016-09-19 14:04:14 +08:00
    raysonx
        1
    raysonx  
    OP
       2016-09-17 18:01:31 +08:00
    我尝试做了一个 Docker image ,让蜜罐跑在 Docker 里的非 root 用户下,看起来不错:
    https://github.com/vfreex/docker-cowrie
    thekoc
        2
    thekoc  
       2016-09-17 18:03:07 +08:00

    看起来好不靠谱啊…
    这个别人中招了以后又怎么样呢
    kn007
        3
    kn007  
       2016-09-17 18:03:27 +08:00
    挺有恶趣味,我喜欢
    raysonx
        4
    raysonx  
    OP
       2016-09-17 18:06:43 +08:00   ❤️ 1
    @thekoc 我觉得这是作者怕蜜罐出现漏洞,被提权。
    我自己的 VPS 上是这样处理的: VPS 上安装 Docker ,开启 SELinux ,然后让 Cowrie 跑在 Docker 里面,同时还是 Docker 里面的非 root 用户。我觉得这样处理后被提权的可能性就很小了,除非 Linux 的 namespaces/cgroups 或者 Docker 出现严重的安全漏洞。
    choury
        5
    choury  
       2016-09-17 18:15:22 +08:00 via Android
    反正我是直接改了 openssh 源码,所有登陆全部记下密码然后返回失败
    adoyle
        6
    adoyle  
       2016-09-17 18:15:45 +08:00
    第一次听说蜜罐,看了下还挺有意思的

    分享一个列表 https://github.com/paralax/awesome-honeypots
    raysonx
        7
    raysonx  
    OP
       2016-09-17 18:19:25 +08:00
    关于安全问题,我是这么想的。
    如果对方能从 Docker 的非 root 用户下逃逸出去,这基本上得利用 Linux 内核里面包括 namespaces/cgroups/SELinux 等等的重大漏洞,直接搞个大新闻,全球的顶尖安全公司争着要,还用得着做黑产?
    raysonx
        8
    raysonx  
    OP
       2016-09-17 18:20:14 +08:00
    @adoyle 很全,多谢。
    itisthecon
        9
    itisthecon  
       2016-09-17 18:56:51 +08:00 via Android
    好东西,先收藏了
    liangx201
        10
    liangx201  
       2016-09-17 19:07:12 +08:00
    不会用,看上去是个好东西,刚学建立网站!
    loading
        11
    loading  
       2016-09-17 19:26:35 +08:00 via Android
    不错,感谢分享
    fhefh
        12
    fhefh  
       2016-09-17 19:32:23 +08:00
    mark~~
    hggg
        13
    hggg  
       2016-09-17 19:37:48 +08:00
    2333333 这个酷
    Asimov
        14
    Asimov  
       2016-09-17 19:48:27 +08:00 via iPad
    弱弱地问一下 这样蜜罐有什么用
    yun
        15
    yun  
       2016-09-17 20:44:19 +08:00
    楼主撸个教程吧,很感兴趣。
    huamei
        16
    huamei  
       2016-09-17 20:54:44 +08:00
    虽然暂时还不想玩这个,但是 mark 一下,万一哪天感兴趣了呢^_^
    majinjing3
        17
    majinjing3  
       2016-09-17 22:16:59 +08:00 via Android
    不错,不错, mark 一下
    20150517
        18
    20150517  
       2016-09-17 22:29:15 +08:00
    @choury 好主意,哈哈,分享代码么?
    20150517
        19
    20150517  
       2016-09-17 22:30:06 +08:00
    @raysonx docker 就算是 root 用户,你怎么逃出去?这也很难吧?
    raysonx
        20
    raysonx  
    OP
       2016-09-17 22:30:41 +08:00
    @thekoc
    @Asimov
    暴破密码的人会得到一个伪装的 Shell 和伪装的文件系统,执行任何命令都会被记录下来。
    在这个伪装的 Shell 里执行命令本身并不会对你的系统造成任何影响,也看不到任何真实的文件。
    raysonx
        21
    raysonx  
    OP
       2016-09-17 22:31:38 +08:00
    @20150517 所以我刚刚说,如果能逃出去,“直接搞个大新闻” XD
    20150517
        22
    20150517  
       2016-09-17 22:36:46 +08:00
    @raysonx 我在试这个 docker,这个能不能记录下来别人使用的命令?
    20150517
        23
    20150517  
       2016-09-17 22:37:12 +08:00
    一般他们都会向这服务器传些东西的,我想看看他们到底是想干吗
    raysonx
        24
    raysonx  
    OP
       2016-09-17 22:43:27 +08:00
    @20150517 当然可以啊,你可以用我做的 dockerfile 和 compose file: https://github.com/vfreex/docker-cowrie
    说明里面有写找日志的位置。如果你没改 git clone 下来的目录的名字的话,日志文件在
    /var/lib/docker/volumes/dockercowrie_cowrie-log/_data/cowrie.log
    alect
        25
    alect  
       2016-09-17 22:46:11 +08:00
    @iCodex 挺好玩。。
    20150517
        26
    20150517  
       2016-09-17 22:57:00 +08:00
    @raysonx
    Traceback (most recent call last):
    File "<string>", line 3, in <module>
    File "compose/cli/main.py", line 61, in main
    File "compose/cli/main.py", line 113, in perform_command
    File "contextlib.py", line 35, in __exit__
    File "compose/cli/errors.py", line 56, in handle_connection_errors
    TypeError: log_timeout_error() takes exactly 1 argument (0 given)
    docker-compose returned -1

    好像不行啊,有错误
    swsh007
        27
    swsh007  
       2016-09-17 23:05:37 +08:00 via Android
    这个好玩。
    raysonx
        28
    raysonx  
    OP
       2016-09-17 23:06:21 +08:00
    @20150517
    1.测试一下你的 docker 运行是否正常:
    docker info
    2. 检查 docker-compose 运行是否正常:
    docker-compose -v
    另外你的 docker-compose 是怎么安装的呢?用 pip 升级一下试试?
    sudo pip install docker-compose -U
    raysonx
        29
    raysonx  
    OP
       2016-09-17 23:09:23 +08:00
    @20150517 对了,如果你是用普通账号运行 docker 或者 docker-compose 命令,你的账号比须在 docker 组里。
    否则,你就只能用 sudo 执行 docker 或者 docker-compose 命令了。
    20150517
        30
    20150517  
       2016-09-17 23:29:40 +08:00
    @raysonx 可以了,可惜默认密码还是有点复杂啊,哈哈,要是能随便什么密码都能通过就好了
    raysonx
        31
    raysonx  
    OP
       2016-09-17 23:34:47 +08:00
    @20150517 各种配置都在 cowrie.cfg 里面,包括密码配置。
    它默认是允许任何密码登录的,如果你用的我的 docker 镜像的话,我的那个配置更改成了随机 2-5 次才会登录成功,和你用什么密码没什么关系。见“ auth_class_parameters = 2, 5, 10 ”这一行。
    Satan4869
        32
    Satan4869  
       2016-09-18 00:15:31 +08:00
    蜜罐原来是这么个意思,我还以为和火罐差不多呢……
    刚刚拔了次火罐的路过……
    starqoq
        33
    starqoq  
       2016-09-18 02:19:37 +08:00
    我记得蜜罐还有一个很贱的 feature 。
    就是你在 ssh 登录后输入 exit ,并不会断开,
    但是你以为断开了,就尝试连接下一个成果了。
    RqPS6rhmP3Nyn3Tm
        34
    RqPS6rhmP3Nyn3Tm  
       2016-09-18 06:16:15 +08:00 via iPad
    可是,直接禁止密码登录不就好了吗……
    des
        35
    des  
       2016-09-18 07:22:21 +08:00 via Android
    楼主,要是对方玩 fork 炸弹或者 io 给你塞满呢?
    matrix67
        36
    matrix67  
       2016-09-18 07:42:44 +08:00 via Android
    fio 写满磁盘 io
    iperf netperf 打满带宽
    memtest stress 跑满内存 CPU

    哼,
    beyondsoft
        37
    beyondsoft  
       2016-09-18 07:59:03 +08:00
    哈哈哈 这个蜜罐不错,还模拟了内网的网络 回头内网部署一个加个告警监控 钓鱼执法
    lxrmido
        38
    lxrmido  
       2016-09-18 08:27:44 +08:00
    mark~~~
    shippo7
        39
    shippo7  
       2016-09-18 08:49:45 +08:00
    这个好酷
    raysonx
        40
    raysonx  
    OP
       2016-09-18 09:06:00 +08:00 via Android
    @des 对方能够执行的命令十分有限,没有试过 fork 炸弹能否运行,回头测试一下。谨慎起见的话,跑在 docker 里可以限制资源使用。
    @matrix67
    raysonx
        41
    raysonx  
    OP
       2016-09-18 10:18:24 +08:00
    @matrix67
    @des
    专门测试了一下,伪 SHELL 根本不支持&后台进行,也不支持定义函数。
    iperf,fio,memtest,stress 命令不支持(肯定不能支持啊)。
    ilyar
        42
    ilyar  
       2016-09-18 12:43:06 +08:00
    docker-compose up 报错
    ERROR: In file './docker-compose.yaml' service 'version' doesn't have any configuration options. All top level keys in your docker-compose.yml must map to a dictionary of configuration options.
    ilyar
        43
    ilyar  
       2016-09-18 12:43:39 +08:00
    ilyar
        44
    ilyar  
       2016-09-18 12:48:36 +08:00
    sorry 升级 docker-compose 到 1.8 解决
    https://docs.docker.com/compose/install/
    bao3
        45
    bao3  
       2016-09-19 14:04:14 +08:00
    我直接在我的 vps 上部署了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2634 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 14:22 · PVG 22:22 · LAX 07:22 · JFK 10:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.