V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
raysonx
V2EX  ›  Linux

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

  •  4
     
  •   raysonx ·
    vfreex · Sep 17, 2016 · 12654 views
    This topic created in 3513 days ago, the information mentioned may be changed or developed.
    这是一个在 GitHub 上找到的开源项目,名叫 Cowrie : https://github.com/micheloosterhof/cowrie
    简单地测试了一下,支持记录暴破用的密码,支持记录登录蜜罐后执行的命令,“登录”后是一个伪装的 Debian 系统,还支持伪装的 apt-get install (笑)。
    还可以配置成让对方暴破一定随机次数后“登录”,简直神器。
    45 replies    2016-09-19 14:04:14 +08:00
    raysonx
        1
    raysonx  
    OP
       Sep 17, 2016
    我尝试做了一个 Docker image ,让蜜罐跑在 Docker 里的非 root 用户下,看起来不错:
    https://github.com/vfreex/docker-cowrie
    thekoc
        2
    thekoc  
       Sep 17, 2016

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

    分享一个列表 https://github.com/paralax/awesome-honeypots
    raysonx
        7
    raysonx  
    OP
       Sep 17, 2016
    关于安全问题,我是这么想的。
    如果对方能从 Docker 的非 root 用户下逃逸出去,这基本上得利用 Linux 内核里面包括 namespaces/cgroups/SELinux 等等的重大漏洞,直接搞个大新闻,全球的顶尖安全公司争着要,还用得着做黑产?
    raysonx
        8
    raysonx  
    OP
       Sep 17, 2016
    @adoyle 很全,多谢。
    itisthecon
        9
    itisthecon  
       Sep 17, 2016 via Android
    好东西,先收藏了
    liangx201
        10
    liangx201  
       Sep 17, 2016
    不会用,看上去是个好东西,刚学建立网站!
    loading
        11
    loading  
       Sep 17, 2016 via Android
    不错,感谢分享
    fhefh
        12
    fhefh  
       Sep 17, 2016
    mark~~
    hggg
        13
    hggg  
       Sep 17, 2016
    2333333 这个酷
    Asimov
        14
    Asimov  
       Sep 17, 2016 via iPad
    弱弱地问一下 这样蜜罐有什么用
    yun
        15
    yun  
    PRO
       Sep 17, 2016
    楼主撸个教程吧,很感兴趣。
    huamei
        16
    huamei  
       Sep 17, 2016
    虽然暂时还不想玩这个,但是 mark 一下,万一哪天感兴趣了呢^_^
    majinjing3
        17
    majinjing3  
       Sep 17, 2016 via Android
    不错,不错, mark 一下
    20150517
        18
    20150517  
       Sep 17, 2016
    @choury 好主意,哈哈,分享代码么?
    20150517
        19
    20150517  
       Sep 17, 2016
    @raysonx docker 就算是 root 用户,你怎么逃出去?这也很难吧?
    raysonx
        20
    raysonx  
    OP
       Sep 17, 2016
    @thekoc
    @Asimov
    暴破密码的人会得到一个伪装的 Shell 和伪装的文件系统,执行任何命令都会被记录下来。
    在这个伪装的 Shell 里执行命令本身并不会对你的系统造成任何影响,也看不到任何真实的文件。
    raysonx
        21
    raysonx  
    OP
       Sep 17, 2016
    @20150517 所以我刚刚说,如果能逃出去,“直接搞个大新闻” XD
    20150517
        22
    20150517  
       Sep 17, 2016
    @raysonx 我在试这个 docker,这个能不能记录下来别人使用的命令?
    20150517
        23
    20150517  
       Sep 17, 2016
    一般他们都会向这服务器传些东西的,我想看看他们到底是想干吗
    raysonx
        24
    raysonx  
    OP
       Sep 17, 2016
    @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  
       Sep 17, 2016
    @iCodex 挺好玩。。
    20150517
        26
    20150517  
       Sep 17, 2016
    @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

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

    哼,
    beyondsoft
        37
    beyondsoft  
       Sep 18, 2016
    哈哈哈 这个蜜罐不错,还模拟了内网的网络 回头内网部署一个加个告警监控 钓鱼执法
    lxrmido
        38
    lxrmido  
       Sep 18, 2016
    mark~~~
    shippo7
        39
    shippo7  
       Sep 18, 2016
    这个好酷
    raysonx
        40
    raysonx  
    OP
       Sep 18, 2016 via Android
    @des 对方能够执行的命令十分有限,没有试过 fork 炸弹能否运行,回头测试一下。谨慎起见的话,跑在 docker 里可以限制资源使用。
    @matrix67
    raysonx
        41
    raysonx  
    OP
       Sep 18, 2016
    @matrix67
    @des
    专门测试了一下,伪 SHELL 根本不支持&后台进行,也不支持定义函数。
    iperf,fio,memtest,stress 命令不支持(肯定不能支持啊)。
    ilyar
        42
    ilyar  
       Sep 18, 2016
    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  
       Sep 18, 2016
    ilyar
        44
    ilyar  
       Sep 18, 2016
    sorry 升级 docker-compose 到 1.8 解决
    https://docs.docker.com/compose/install/
    bao3
        45
    bao3  
       Sep 19, 2016
    我直接在我的 vps 上部署了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2434 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 89ms · UTC 02:38 · PVG 10:38 · LAX 19:38 · JFK 22:38
    ♥ Do have faith in what you're doing.