通过编写一个简单的漏洞扫描程序学习Python基本语句
2024-08-28 08:51:45
今天开始读《Python绝技:运用Python成为顶级黑客》一书,第一章用一个小例子来讲解Python的基本语法和语句。主要学习的内容有:1. 安装第三方库。2. 变量、字符串、列表、词典。3. 网络的编程。4. 条件选择语句和for循环。5. 异常处理。6. 函数。7. 文件输入/输出。8. sys模块和os模块。把最后的代码贴在这里,做个记录。
import socket
import os
import sys port = 21
banner = "FreeFloat FTP Server" portList = [21,22,80,110]
portOpen = True services = {'ftp':21, 'ssh':22, 'smtp':25, 'http':80} def retBanner(ip,port):
try:
socket.setdefaulttimeout(2)
s = socket.socket()
s.connect((ip,port))
banner = s.recv(1024)
return banner
except:
return def checkVulns(banner,filename):
f = open(filename,'r')
for line in f.readlines():
if line.strip('\n') in banner:
print '[+] Server is vulnerable: ' + banner.strip('\n') def main():
if len(sys.argv) == 2:
filename = sys.argv[1]
if not os.path.isfile(filename):
print '[-] ' +filename + ' does not exist.'
exit(0)
if not os.access(filename, os.R_OK):
print '[-] ' +filename + ' access denied.'
exit(0)
else:
print '[-] Usage: ' + str(sys.argv[0]) + ' <vuln filename>'
exit(0) portList = [21,22,25,80,110,443]
for x in range(147,150):
ip = '192.168.95.' + str(x)
for port in portList:
banner = retBanner(ip,port)
if banner:
print '[+] ' + ip + ': ' + banner
checkVulns(banner, filename) if __name__ == '__main__':
main()
最新文章
- Linux监控工具介绍系列&mdash;&mdash;vmstat
- 【PCB】【AD使用】Altium Designer 的entry sheet ,offsheet和port作用
- oracle恢复误删除数据
- MongoDB用户权限基本操作
- Centos6 使用yum安装 mysql 5.7
- 【BZOJ 3036】 绿豆蛙的归宿
- 理解运算符 || 和 &;&; 及方法
- 开发中可能会用到的几个 jQuery 小提示和技巧(转)
- Ajax的工作原理
- <;十一>;面向对象分析之UML核心元素之组件
- 为Dapper编写一个类似于EF的Map配置类
- DDD Reference
- Query插件
- 谈谈NIO和IO
- 【noip模拟】Fantasia
- Exceptionless邮箱设置
- mysql error(2003) 10060的再解决
- 微信开发 invalid openid
- MySQL学习笔记-大纲
- 【Unity】角色沿路线移动/朝着目标移动
热门文章
- 解决WebService本地访问正常,远程无法访问的问题
- 《asp.net mvc3 高级编程》第三章 视图
- codevs 1198 国王游戏
- iOS编程修改系统音量
- JDBC小结
- JMS 问题java.lang.NoClassDefFoundError: weblogic/security/acl/UserInfo
- Android ContentProvider 简介
- 【转】android开发 dts、各种接口porting----不错
- 【规律】【贪心】【数学】HDU 5573 Binary Tree
- DLL入门浅析(4)——从DLL中导出类