《西普python安全脚本实验》——共计十六个.docx
《《西普python安全脚本实验》——共计十六个.docx》由会员分享,可在线阅读,更多相关《《西普python安全脚本实验》——共计十六个.docx(169页珍藏版)》请在三一文库上搜索。
1、系统口令破解脚本实验指导2 .验证Python(1)右击桌面一选择“在终端中打开”。(2)输入命令及密码切换成root用户,作用是拥有最高权限,方便后面的一系列命令操作;命令:SUroot密码:12345条chenchen:/home/chen-文件(F)编辑(E)查看(V)搜索(三)终端(T)帮助(三)ChenChen$suroot密码:rooWchenchen#(3)输入命令:python;验证是否存在。chenchen:/home/chen-0文件(F)编辑(E)查看(V)搜索(三)终端(T)帮助(三)rooWchenchen#pythonPython3.7.4(default,Jun1
2、22020,17:12:10)GCC4.8.520150623(RedHat4.8.5-39)onIinuxTypehelp,11copyright,creditsorlicenseformoreinformation.3 .脚本设计思路(1)首先,我们需要确定LinUX用户密码的存放位置。在LinUX系统中,用户名和密码存储在了/etc/shadow文件中,我们需要读取shadow文件中的内容,找出账户密码字段信息。将/etc/shadow文件复制到Python脚本所在目录,修改文件名为shadow,txt,备用。ShadOW文件内容如下:chenchen:/etc-文件(F)编辑(E)查看
3、V)搜索(三)终端(T)帮助(三)root:$6$zzXXI4a0fwEDSGAQ$SDZrR7UYcfDJ4rV8cvlBmqgwqWKfDbQNSTm.AV79ko0r0jQCv2TpDktyEXlZsNlWdAnISo2CjLKBUBxFfgXsk.:0:99999:7:bin:*:17632:0:99999:7:daemon:*:17632:0:99999:7:adm:*:17632:0:99999:7:Ip:*:17632:0:99999:7:sync:*:17632:0:99999:7:shutdown:*:17634:0:99999:7:halt:*:17632:0:99999
4、7:mail:*:17632:0:99999:7:operator:*:17632:0:99999:7:games:*:17632:0:99999:7:ftp:*:17632:0:99999:7:nobody:*:17632:0:99999:7:systemd-network:!:18425:dbus:!:18425:polkitd:!:18425:sssd:!:18425:Iibstoragemgmt:!:18425:rpc:!:18425:0:99999:7:colord:!:18425:gluster:!:18425:saslauth:!:18425:abrt:!:18425::Set
5、roubleshoot:!:18425:rtkit:!:18425::pulse:!:18425::chrony:!:18425::rpcuser:!:18425:nfsnobody:!:18425:unbound:!:18425:tss:!:18425:usbmud:!:18425:geoclue:!:18425:radvd:!:18425:qemu:!:18425:ntp:!:18425:gdm:!:18425:gnome-initial-setup:!1:18425:sshd:!:18425:avahi:!:18425:postfix:!:18425:tcpdump:!:18425:ch
6、en:$6$TIhSNBFQrMpO71JY$vcsi.elE0xkj9bdgVD8jo0gY5PIr3Mzb2X0qloikRJ0RNDfmdSV2hVQYiTX7nooXFScKHKMk8BlaNi7KW.:0:99999:7:(2)其次,需要准备好密码字典文件key.txt,并放在Python脚本所在目录备用。我们需要自定义一个函数,功能是取出密码字典中的密码数据并与ShadOW文件中的指定字段(指定字段即$id$Salt部分,比如root的指定字段:$6$ZZXXl4a0fwEDSGAQ)合并,再经过hash加密得出新的加密字段。(只有当密码字典足够大时,才有可能破解出密码。)key文
7、件内容如如下:key.txtadmil23456rootlllChenZhangyuchen6666toorlllacd222aaaaaachen8888ddddddstorgs123456963852741852finallll(3)最后,我们需要将新得到的加密字段与ShadOW文件中的密码字段进行对比,如果相等则该加密字段中包含的密码字典中的密码就是我们最终需要的账户密码。4 .编写准备(1)在终端中输入命令:cdetJ,进入etc目录下。rootChenchen#Cd/etcrootChenetc#Isabrtadjtimealiasesaliases.dbalsaalternative
8、sanacrontabasound.confgshadowgshadow-gssgssproxyhost.confhostnamehostshosts.allowprelink.coprintcapprofileprofile.dprotocolspulsepurplepython(2)在终端输入命令:CPshadowoptpydata,将shadow文件复制到Python脚本所在目录,并重命名为:ShadOW.txt0root咫Chenetc#cpshadowoptpydatarooWchenetc#(3)在终端输入命令:cdoptpydata,进入Pydata目录下。rooWchen/#C
9、doptpydatarooWchenpydata#|(4)在终端输入命令:查看pydata目录下是否存在shadow文件。rootChenpydata#Iskey.txtshadowtest.pyvenvrootChenpydata#(5)在终端输入命令:mvshadowshadow.txtU车,将shadow文件重命名为:ShadOW.txt文件。rooWchenpydata#mvshadowshadow,txtrooWchenpydata#Iskey.txtshadow.txttest.pyvenvrootChenpydata#(6)在Python脚本目录下创建密码字典文件:key.txt
10、okey.tt1admil234562rootlllJ3ChenZhangyu5chen6666toorlllajfcd2228aaaaaa9chen88881dddddd11Storgs1212345613963852I147418521016finallll-r5 .编写python脚本(1)开始着手编写PythOn脚本。打开Pyeharm工具,并导入ShadOW.txt文件和key.txt文件,界面图如下:2应用程序位置分文件(E)网崛MtM虚拟机(M)选项卡(DWi(三)H-与(5公EHU11O0El主页lCMtos764PydMa(ROOT)Eile&dityiewvteCoefeB
11、efactcrRUnIlsVCSYfhctowPydaUProject,HExtemelLtrariesScratchesandConsolesSearchEveryvvhereDoiWeShiftGotoRleCtrlShift+HRecentFilesCtrH-三HaviQaOonBarAitHomeQEv*Legpydata(RPython3.7(PydBta)(2)创建两个函数来实现两个功能。第一功能是读取shadow文件中的账号、密码字段,将密码字段作为参数传入比对函数中;第二功能是提取密码字典中的密码数据并与ShadOW文件中的盐值salt合并,再经过指定加密算法得出新的加密字段,
12、再与账户密码字段比较是否相同,进而判断出密码。第一个函数取名main()函数,打开shadow,txt文件并读取其中的内容,读取用户名字段并赋值给变量user,读取账户密码字段并赋值给变量CryptPass,将获得的CryptPass值当作比对参数传入第二个函数中。main()函数代码截图吐下:defmain():#main()函数打开ShadOW.txt文件中的内容.读取其中的用户名字段和密码字段CryPtPaSSpassFile=open(shadow.txt)forlineinpassFile.readlines():#读取文件中的所有内容ifm:winline:user=line.sp
13、lit(,:w)#获得用户名CryptPass=line.splitC,:m)1.strip(,)#获得密码字段print(,*CrackingPasswordfor:+user)testPass(cryptPass)main()第二个函数我们取名叫testPass()函数(函数名可自定义),将账户密码字段中的$id$Salt提取出来赋值给变量salt。然后读取key.txt中的密码字段,赋值给变量wordo利用python工具中的crypt库,将word和Salt一起作为参数传进去进行加密,得到新的字段并赋值给变量CryPtWOrd。最后将CryptWord和CryptPass进行对比,如果
14、相等,则word就是该用户的密码,选择输出账号密码,否则就不是正确的账户密码,选择输出错误提示。testPass()函数代码截图如下:deftestPass(cryptPass):#testPass()函数将密码字段中的$id$SaIt提取出来赋值给SaIt.然后读取key.txt中的密码字段,赋值给Word.salt=CryptPasscryptPass.find($,)三cryptPass.rfind(,S,)#获得盐值,包含$id部分dictFile=open(key.txt,r,)#打邢eg字段文件forwordindictFile.readlines():word=word.stri
15、p(n)CryptWord=crypt.crypt(word,salt)#将密码字典中的值和盐值一起加密if(cryptWord=cryptPass):#判甑加空后的被据和密的字陞是否相冷print(,+FoundPassword+word+,n)#如果相等则打印出来returnprint(-PasswordNotFound.nM)return完整代码截图:test.pyimportcrypt#导入LinUX口令加密库deftestPass(cryptPass):#testPass()函数将螭字段中的$id$Salt提取出来赋值给Salt.然后读取key.txt中的密码字比,赋值给word,s
16、alt=cryptPasscryptPass.find($):cryptPass.rfind($)#获得盐值,包含$id部分dictFile=open(key.txt,r)#打邢ey字段文件forwordindictFile.readlines():word=word.strip(,n)cryptWord=crypt.crypt(word,salt)#将密码字典中的值和盐值一社加密if(cryptWord=cryptPass):#先斯加密后的鼓漏和密码字段是:否相飞print(+JFoundPassword:+word+,n)#如果相等则打印出来returnprint(,-PasswordNo
17、tFound.n)returndefmain():#Umain()函数打开ShadOvv.txt文件中的内容,读取其中的用户名字段和密码字段CryPtPass.passFile=open(shadow.txt)forlineinpassFile.readlines():#读取文件中的所有内容if:inline:user=line,split(,z,)0#获得用户名cryptPass=line.split(:,)1.strip(,)#获得密码字段print(*CrackingPasswordfor:+user)testPass(cryptPass)main()运行结果截图:Run:test个op
18、tpydatavenvbinpythonoptpydata/test.py*CrackingPasswordfor:root+FoundPassword:1234565Run:test个不*吞CrackingPasswordCrackingPasswordPasswordfor:avahiNotFound.Passwordfor:postfixNotFound.CrackingPasswordPasswordfor:tcpdumpNotFound.*CrackingPasswordfor:chen+FoundPassword:chenProcessfinishedwithexitcode:=6
19、TODOA4:RunHTerminalPythonConsole实验报告一.实验报告在现阶段的LinUX系统中,用户密码加密方式一般为SHA-512,本章通过对字典中的密码逐条进行SHA-512加密之后与用户密码进行对比从而得出其正确的口令。在进行密码加密时,使用Linux计算口令hash的CrPty()算法,这个算法在Python标准库中已经含有(CryPt库)。1、实验目的使学生学会使用python写出一个简单的LinUX口令破解脚本。本实验主要要求学生掌握以下几个方面:(1)、了解python的crypt模块;(2)、了解LinUX计算口令hash的CrPty()算法;(3)、掌握Li
20、nUX系统的加密方式及格式。2、实验环境CentOS7.xLinUX操作系统;Python3.X;PyCharm编译器。3、实验准备学习Python的crypt模块的相关知识并了解Linux操作系统的加密方式及加密格式。4、实验过程在编写时,我们创建两个函数:main()和testPass()omain()函数打开shadow.txt文件中的内容,读取其中的用户名字段和密码字段CryptPassotestPass()函数将密码字段中的$id$Salt提取出来赋值给salt。然后读取key.txt中的密码字段,赋值给WOrd。再利用LinUX系统中python的一个crypt库,将word和sa
21、lt一起作为参数传进去进行加密,得到CryptWordo最后将CryPtWord和CryPtPaSS进行对比,如果相等,则这个WOrd就是该用户的密码,否则不是。5、实验总结从结果可以看出,我们需要准备好足够大的密码字典文件key.txto只有当密码字典足够大时,才有可能破解出密码。Zip文件口令破解脚本实验指导实验报告一.实验报告学习zipfile第三方库的用法并编写一个zip文件口令破解脚本。1、实验目的使学生了解zipfile第三方库的基本用法,怎样使用python编写zip文件口令破解脚本。本实验主要要求学生掌握以下几个方面:(1)了解ZiPfiIe第三方库的基本用法;(2)了解ZiP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西普python安全脚本实验 西普 python 安全 脚本 实验 共计 十六
