Python 渗透测试编程技术方法与实践 ------全书整理
1、整个渗透测试的工作阶段
( 1 )前期与客户的交流阶段。
( 2 )情报的收集阶段。
( 3 )威胁建模阶段。
( 4 )漏洞分析阶段。
( 5 )漏洞利用阶段。
( 6 )后渗透攻击阶段。
( 7 )报告阶段。
2、关于kali linux 相关的知识
apt-get update :使用这个命令是为了同步 /etc/apt/sources.list 中列出来的源的索引这样能够获得最新的软件包
aot-get upgrade : 这条命令是用来安装 /etc/apt/sources.list中所列出来的所有包的最新版本。 也就是说kali linux中的所有软件都会更新 ,这条命令不会改变和删除之前没有跟新操作的软件,但是也不会安全当前系统中没有安装的软件
apt-get dist-upgrade 会将软件包升级到最新的版本,并且引入依赖包,除了提供upgrade全部的功能之外,还会智能的处理新版本的依赖关系的问题
3、渗透测试的时候经常会发生系统的崩溃,所以系统备份是非常必须的一件事,VMware提供了系统快照的功能。以及导出虚拟机,克隆虚拟机(连接克隆和独立克隆)
python中涉及很多已经写好的模块,所以很多时候 不需要关注协议上的实现细节,只是注重自己的逻辑即可
Python中进场使用的三个模块是 Socket 模块、 pyhton-nmap模块、 scapy 模块
首先我们看Scoket模块
Python中提供解决网络上连个程序之间建立通信通道,分别提供了服务端Socket和客户端的socket 在使用Socket编程额时候,首先实例化一个Socket,需要填充地址、流、协议标志的三个参数
使用Socket建立服务端和客户端:
使用socket建立服务端:
测试的
4、导入 python-nmap 配置的问题
在Windows操作系统中使用python的编辑器pycharm等其他IDE的时候需要配置。并且版本也要合适,不然会像下面一样报错,无法获取nmap的配置路径。
5、我们使用kali首先直接可以使用命令 pip install pythpn-nmap 安装轮子之后使用 可以导入nmap 来测试
6、修改秘密 passwd +用户名
添加用户 adduser 用户名
动态网络地址配置: ifconfig eth0 192.168.1.2 netmask 255.255.255.0
route add default gw 172.16.1.245
echo nameserver 211.200.9.2>/etc/resolv.conf
静态IP地址设置:
编辑文件: /etc/network/interfaces
便捷: auto eth0
iface eth0 inet static
adress 172.12.1.122
netmask 255.255.255.0
network 172.12.1.0
broadcast 172.12.1.255
gateway 172.12.1.254
编辑文件 /etc/resolv.conf
domian
nameserver 101.10.101.1
nameserver 102.54.18.2
便捷完之后重新 服务 : /etc/init.d/networking restart
一直在使用 : apt 工具管理文件,者个命令主要是从互联网的软件仓库中搜索,安装,升级,卸载或者操作系统,但在编译代码的时候可以找出该缺少的文件,
7、创建新的SSH密钥
dpkg-reconfigure poenssh-server
将旧的秘钥备份到一个文件中 ,修改sshd_config 文件 文件的目录是 .etc/ssh/sshd_config
将闲置连接点注释去掉,之后重启服务 : /etc/init.d/ssh start
查看SSH的服务状态 使用命令 netstat -antp
如果使用远程连接的话可以使用工具PUtty 。
8、klia 升级
apt-get update 使用这条命令是为了同步/etc/apt/sources.list 中所列出的源的索引,这样才能获得最新的软件包
apt-get upgrade 使用命令来安全/etc/apt/sources.list 中列出的所有包的最新版本, kali linux 中的软件都会被更新。但是有个缺点是这个命令不会改变和删除那些没有更新操作的软件,但是也不会安装当前操作系统不存在的软件
apt-get dist-upgrade 会将软件包升级到最新版本,并引入新的依赖包。会自动的处理新版本的依赖关心问题。
虚拟机中的网络连接方式
VMnet0 虚拟桥接网络下的虚拟交换机
VMnet1 虚拟机仅主机模式网络下的虚拟机交换
VMnet8: VMware 用于虚拟NAT网络下的虚拟交换机
9、Medusa 通过并行登录暴力破解的方式尝试获取远程验证服务器的访问权限的工具, Medusa 能够 验证远程众多的类型的远程服务,包括AFP FTP HTTP IMAPMS-SQL MYSQL NetWare NCP PCAnywhere POP3 REXEC RLOGIN SMTPAUTH SNMP SSv2 SNMP TELNET VNC WEb From等
使用的命令: medusa -h IP -u username -p password -M ssh
-h 主机的地址 -u 用户名 如果是用户列表写成大写 -p 密码 如果是密码列表 -P -M 表示 服务
10、排序算法
sorted()函数是一个高阶函数,他可以接受一个key 函数来实现自定义的排序,例如按照绝对值大小排序:
sorted([1,241,34,355,5233],key=abc)
高阶函数可以接受函数作为参数外,还可以吧函数作为结果的值返回, 我们实现一个可变参数求和,求和函数一般死这样定义的:
def calc-sum(*args):
ax=0;
for n in args:
ax+=n;
return ax;
如果我们不需要立即进行求和 直接返回求和的函数
def lazy_sum(*args):
def sum():
ax=0;
for n in args:
ax+=n;
return ax;
return sum ;