《Python安全攻防》笔记

费曼学习法

1.把想要理解的概念写在纸上(确定目标)

2.尝试用简单的语言解释这个概念,想象你要把这个知识讲给别人听(模拟教学)

3.卡壳时,翻书、看视频资料或者求助他人,重新理解,直到能透彻写出解释(反馈)

4.回顾这段概念介绍,如若出现复杂的解释,尽力去简化它,可以用上类比和比喻(简化并重复)

《Python安全攻防》笔记


1 渗透测试概述

发展、现状、基本流程、具体方法等

流程(8步):

​ 1.明确信息、

​ 2.信息收集

​ 3.漏洞探测、

​ 4.漏洞验证、

​ 5.信息分析、

​ 6.获取信息、

​ 7.整理信息、

​ 8.形成报告


2 Python语言基础

2.1 Python序列

1.列表

#(1)创建列表
student=['number','name','age']
print(student)
num=list((1,2,3,4,5,6,7,8,9))
print(num)
print('1-------------------------------------')
#(2)删除列表
list=['m','s','0','8','0','6','7']
print(list)
del list[1]
print(list)
del list
print(list)
print('2-------------------------------------')
#(3)列表尾部添加元素
list=['m','s','0','8','0','6','7']
list.append('8')
print(list)
#添加列表l
l=['hello ni hao']
list.extend(l)
print(list)
print('3-------------------------------------')
#(4)列表指定位置添加元素
list=['m','s',0,8,0,6,7]
demo='.com'
list.insert(7,demo)
print(list)
print('4-------------------------------------')
#(5)删除列表中首次出现的元素
list=['m','s',0,8,0,6,7]
list.remove(8)
print(list)
print('5-------------------------------------')
#(6)删除并返回列表中指定下标元素
list=['m','s',0,8,0,6,7]
list.pop()#默认值为-1
print(list)
list.pop(0)
print(list)
print('6-------------------------------------')
#(7)返回指定元素在列表list中出现的次数
list=['m','s',0,8,0,6,7]
print(list.count(0))
print(list.count('m'))
print('7-------------------------------------')
#(8)将列表list中所有元素逆序
list=['m','s',0,8,0,6,7]
list.reverse()#逆序函数
print(list)
print('8-------------------------------------')
#(9)对列表中的元素进行排序
#key用来指定排序顺序,reverse决定是升序(False)还是降序(True)
list=['m','s',0,8,0,6,7]
list.sort(key=str,reverse=False)
print(list)
print('9-------------------------------------')

2.元组

tuple=('m','s',0,8,0,6,7)
print(tuple)
  • 元组与列表不同,元组属于不可变序列,一旦创建后就不可对其进行增删改查,但是对元素的访问速度要比列表快的多,不能修改,代码更安全

3.字典

  • Python中字典是包含若干“键:值”元素的可变序列,字典中的键不能重复,而值可以重复
dic={'lab':'ms08067','url':'http://ms08067.com'}
print(dic)
print('---------------------------------------')
#(1)通过dict()创建字典
person=dict(name='ruler',str='ni hao')
print(person)
print('1-------------------------------------')
#(2)修改字典中的元素
dic={'name':'xiaom ming','age':26,'sex':'male'}
dic['age']=25
print(dic)
print('2-------------------------------------')
#(3)为字典添加新元素
dic={'name':'xiaom ming','age':26}
dic['sex']='male'
print(dic)
print('3-------------------------------------')
#(4)返回字典中的所有元素
dic={'name':'xiaom ming','age':26,'sex':'male'}
print(dic.items())
print('4-------------------------------------')
#(5)删除字典中的元素
dic={'name':'xiaom ming','age':26,'sex':'male'}
del dic['sex']
print(dic)
print('5-------------------------------------')

2.2 Python控制结构

  • 三大控制结构:顺序、选择、循环(for/while)

1.选择结构

# x=1
# if(x>0):
#     print(x)
StudentScore=int(input('Score of students:'))
if(StudentScore<60):
    print('不及格')
if(60<=StudentScore<80):
    print('良好')
if(StudentScore>=80):
    print('优秀')

2.循环结构

  • for循环一般用于有明显边界范围的情况
  • while循环一般用于循环次数难以确定的情况

1.for循环

sum=0
for i in range(1,101):
    sum=sum+i
else:
    print('sum=',sum)

2.while循环

x=int(input('x='))
sum=0
while x!=0:
    sum=sum+x
    x=x-1
else:
    print('sum=',sum)

2.3 文件处理

1.打开文件并创建对象

通过open()函数指定模式打开指定文件,并创建文件对象,函数格式

open(file,[mode='r[,buffering=-1]'])

2.对文件内容进行操作

读取、写入、追加

(1)向文本文件写入内容

  • w:文件存在,清空内容;文件不存在,创建
  • x:创建新文件,文件已存在,则抛出异常
  • a:追加模式
s='helle world\n'
f=open('demo.txt','w')
f.write(s)
f.close()
s='hello China'
f=open('demo.txt','a')
f.write(s)
f.close()

(2)读取文件的内容

  • r:读模式,如果文件不存在,则抛出异常
  • +:读写模式
f=open('demo.txt','r')
print(f.read())#读取全部
print(f.readline())#按行读取
print(f.readlines())#读全部行

3.关闭文件对象

  • 当操作完文件内容后,一定要关闭文件对象,这样才能确保所做的修改都保存到了文件当中

  • 文件操作一般都有遵循:“打开—>读写—>关闭”流程

  • 关键字with能够自动管理资源,总能保证文件正常关闭,并且可以在代码执行结束后自动还原开始执行代码块时的现场

2.4 异常处理结构

2.5 Socket网络编程

2.6 可执行文件的转换

3 渗透测试框架

3.1 Pocsuite框架

3.2 Poc脚本编写

3.3 EXP编写

4 信息收集

4.1 被动信息

4.2 主动信息

4.3 网络空间搜索引擎

5 漏洞检测与防御

5.1 未受权访问

5.2 外部实体注入

5.3 SQL

5.4 服务器请求伪造

5.5 网络代理

6 数据加密

6.1 常见加密算法

6.2 Base64编/解码

6.3 DES

6.4 AES

6.5 MD5

7 身份认证

7.1 社会工程学密码字典

7.2 后台弱口令

7.3 SSH口令

7.4 FTP口令

8 模糊测试

8.1 概念

8.2 绕过安全狗

8.3 模糊测试工具

8.4 防御策略

9 流量分析

9.1 流量嗅探

9.2 ARP毒化

9.3 Dos

10 Python免杀技术

10.1 生成shellcode

10.2 常见免杀方式

10.3 防御策略

11 远程控制工具

11.1 Python相关模块

11.2 被控端编写

11.3 主控端编写

11.4 Cobalt Strike的使用和拓展

附录 Python实战项目

上一篇:Python 字典翻转输出


下一篇:2021-07-04