python审计运用_python关于it审计中的应用

公司面临上市,为了满足上市it审计要求,对系统密码进行定制。#!/bin/env python

import random,string

import os,sys,re,paramiko

from optparse import OptionParser

def pssh(host,cmd):

user = 'root'

s = paramiko.SSHClient()

s.load_system_host_keys()

s.set_missing_host_key_policy(paramiko.AutoAddPolicy())

s.connect(host,22,user,password='test',timeout=5)

#cmd="ip a | grep inet | grep 192.168  | grep brd | awk -F/22 '{print $1}'|awk '{print $2}'"

stdin,stdout,stderr = s.exec_command(cmd)

cmd_result = stdout.read(),stderr.read()

for line in cmd_result:

return line.strip("\n")

s.close()

#print pssh('192.168.3.52','ls /root')

def kssh(host,cmd):

user = 'root'

s = paramiko.SSHClient()

s.load_system_host_keys()

s.set_missing_host_key_policy(paramiko.AutoAddPolicy())

privatekeyfile = os.path.expanduser('~/.ssh/id_rsa')

mykey = paramiko.RSAKey.from_private_key_file(privatekeyfile)

# mykey=paramiko.DSSKey.from_private_key_file(privatekeyfile,password='061128')

s.connect(host,22,user,pkey=mykey,timeout=5)

#cmd=raw_input('cwd:')

#cmd="ip a | grep inet | grep 192.168  | grep brd | awk -F/22 '{print $1}'|awk '{print $2}'"

stdin,stdout,stderr = s.exec_command(cmd)

cmd_result = stdout.read(),stderr.read()

for line in cmd_result:

return line.strip("\n")

s.close()

def cmdreturn(ip,cmd):

try:

return kssh(ip,cmd)

except paramiko.AuthenticationException:

try:

return pssh(ip,cmd)

except paramiko.AuthenticationException:

return str(ip) + " passwd and key is fault"

pwfile=open('/share/pwfile','w')

ipsfile=open('/share/ipsfile','r')

def chpwd(ip):

ostr=['_','%','@','!','-','=','+','$']

chars=string.ascii_letters+string.digits

xstr=['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

dstr=['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']

passwd=''.join([random.choice(''.join(xstr))])+ ''.join([random.choice(''.join(dstr))])+''.join([random.choice(string.digits)])+''.join([random.choice(''.join(ostr))+''.join([random.choice(chars) for i in range(12)])])

#       passwd=random.choice(ostr)+''.join([random.choice(chars) for i in  range(15)])+str(random.randint(0, 9))

chcmd="echo 'root:"+passwd+"' | chpasswd"

cmdreturn(ip,chcmd)

pwfile.write(str(ip).strip() + "      "+str(passwd))

return str(ip).strip() + "      "+str(passwd)

#       return chcmd+"\n"+str(ip).strip() + "   "+str(passwd)

#echo "$i $passwd"

#ssh root@$i "echo 'root:$passwd' | chpasswd"

for ip in ipsfile:

print chpwd(ip)

系统文件更改:sed -i.orig 's,(password requisite pam_cracklib.so ).*,\1try_first_pass retry=3 minlen=16 dcredit=-1 ocredit=-1 lcredit=-1 ucredit=-1' /etc/pam.d/system-auth

sed -ri.orig 's,(PASS_MAX_DAYS).*,\1   90,g' /etc/login.defs

sed -ri 's,(PASS_MIN_LEN).*,\1    16,g' /etc/login.defs

#####rollback

#cp /etc/pam.d/system-auth.orig /etc/pam.d/system-auth

#cp /etc/login.defs.orig /etc/login.defs

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值