Python for Pentesters

还记得开始学习编程的C,虽然淡忘,但思想仍在。

子域名枚举

request库

import pyfiglet
import requests
import sys ascii_banner = pyfiglet.figlet_format("ABC-L")
print(ascii_banner) dir_path = "" sub_list = open(dir_path, "r").read()
subdoms = sub_list.splitlines() for sub in subdoms:
sub_domains = f"http://{sub}.{sys.argv[1]}" try:
requests.get(sub_domains)
except requests.ConnectionError:
pass else:
print("Valid domain: ",sub_domains)

目录枚举

还是requests

import requests
import sys
import pyfiglet ascii_banner = pyfiglet.figlet_format("ABC-L")
print(ascii_banner) path = ''
sub_list = open(path,'r').read()
directories = sub_list.splitlines() for dir in directories:
dir_enum = f"http://{sys.argv[1]}/{dir}"
r = requests.get(dir_enum)
if r.status_code==404:
pass
else:
print("Valid directory:" ,dir_enum)

网络扫描


from scapy.all import *
import pyfiglet ascii_banner = pyfiglet.figlet_format("ABC-L")
print(ascii_banner) interface = "eth0"
ip_range = "10.10.X.X/24"
broadcastMac = "ff:ff:ff:ff:ff:ff" packet = Ether(dst=broadcastMac)/ARP(pdst = ip_range) ans, unans = srp(packet, timeout =2, iface=interface, inter=0.1) for send,receive in ans:
print (receive.sprintf(r"%Ether.src% - %ARP.psrc%"))

端口扫描

socket编程https://www.cnblogs.com/-Lucky-/p/17039661.html

import sys
import socket
import pyfiglet ascii_banner = pyfiglet.figlet_format("ABC-L")
print(ascii_banner) ip = sys.argv[1]
open_ports =[]
ports = range(1, 65535) def probe_port(ip, port):
result = 1
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(0.5)
r = sock.connect_ex((ip, port))
if r == 0:
result = r
sock.close()
except Exception as e:
pass
return result for port in ports:
sys.stdout.flush()
response = probe_port(ip, port)
if response == 0:
open_ports.append(port) print(f"Open Ports:{open_ports}")

文件下载器

Linux 系统上的 Wget 或 Windows 上的 Certutil 是下载文件的有用工具。

import requests

url = 'https://assets.tryhackme.com/img/THMlogo.png'
r = requests.get(url, allow_redirects=True)
open('THMlogo.png', 'wb').write(r.content) import requests url = 'https://download.sysinternals.com/files/PSTools.zip'
r = requests.get(url, allow_redirects=True)
open('PSTools.zip', 'wb').write(r.content)

hash破解

tools:john,hashcat

import hashlib
import pyfiglet ascii_banner = pyfiglet.figlet_format("ABC-L")
print(ascii_banner) wordlist_location = str(input('Enter wordlist file location: '))
hash_input = str(input('Enter hash to be cracked: ')) with open(wordlist_location, 'r') as file:
for line in file.readlines():
print(line)
hash_ob = hashlib.md5(line.strip().encode())
hashed_pass = hash_ob.hexdigest()
if hashed_pass == hash_input:
print('Found cleartext password! ' + line.strip())
exit(0)

键盘记录器

import keyboard
keys = keyboard.record(until ='ENTER')
keyboard.play(keys)

ssh暴力破解

tools:hydra

import paramiko
import sys
import os target = str(input('Please enter target IP address: '))
username = str(input('Please enter username to bruteforce: '))
password_file = str(input('Please enter location of the password file: ')) def ssh_connect(password, code=0):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
ssh.connect(target, port=22, username=username, password=password)
except paramiko.AuthenticationException:
code = 1
ssh.close()
return code with open(password_file, 'r') as file:
for line in file.readlines():
password = line.strip() try:
response = ssh_connect(password)
if response == 0:
print('password found: '+ password)
exit(0)
elif response == 1:
print('no luck')
except Exception as e:
print(e)
pass
input_file.close()

基于渗透的python的更多相关文章

  1. 基于SQL和PYTHON的数据库数据查询select语句

    #xiaodeng#python3#基于SQL和PYTHON的数据库数据查询语句import pymysql #1.基本用法cur.execute("select * from biao&q ...

  2. DIY一个基于树莓派和Python的无人机视觉跟踪系统

    DIY一个基于树莓派和Python的无人机视觉跟踪系统 无人机通过图传将航拍到的图像存储并实时传送回地面站差点儿已经是标配.假设想来点高级的--在无人机上直接处理拍摄的图像并实现自己主动控制要怎么实现 ...

  3. 基于七牛Python SDK写的一个批量下载脚本

    前言 上一篇基于七牛Python SDK写的一个同步脚本所写的脚本只支持上传,不支持文件下载. 虽然这个需求不太强烈,但有可能有人(在备份.迁移时)需要,而官方有没提供对应的工具,所以我就把这个功能也 ...

  4. 配置基于Vim的Python开发环境

    配置基于Vim的Python开发环境插件 Vundle YouCompleteMe NERDTree Vim-Jinja2-Syntax set nocompatible " be iMpr ...

  5. 基于Appium、Python的自动化测试

    基于Appium.Python的自动化测试环境部署和实践   第一章 导言 1.1 编制目的 该文档为选用Appium作为移动设备原生(Native).混合(Hybrid).移动Web(Mobile ...

  6. 如何在Windows系统上基于Sublime搭建Python的编译环境

    刚刚接触到Python,直接在计算机上编译时不能正确的运行,所以将一些有关编译环境调试的知识总结了一下. 环境搭建: Python在 windows系统上编译的时候可能会出现一些编译无法运行的情况,我 ...

  7. 基于Pycharm的Python开发环境配置

    基于Pycharm的Python开发环境配置 编辑于2020-11-18 Python安装 双击桌面的Python3.x安装包. 勾选Add to path. 方便起见,选择Install now.下 ...

  8. 基于Selenium2与Python自动化测试环境搭建

    简介: selenium 是一个web的自动化测试工具,不少学习功能自动化的同学开始首选selenium ,相因为它相比QTP有诸多有点: *  免费,也不用再为破解QTP而大伤脑筋 *  小巧,对于 ...

  9. 基于esky实现python应用的自动升级

    一.esky介绍 Esky is an auto-update framework for frozen Python applications. It provides a simple API t ...

  10. 基于ELK和Python搭建简单的监控告警系统

    Reference: https://www.jianshu.com/p/67e358dc065d 在做完支付系统后,我搭建了两套监控系统. 一套是点评的CAT,主要用于代码级的实时统计和历史统计以及 ...

随机推荐

  1. ks.cfg 怎么读取光盘 (cdrom) 上的文件并执行对应的脚本

    ks.cfg 文件怎么实现读取光盘 (CDROM) 上的内容并执行自定义脚本我们知道 linux 系统安装过程中,要想实现自动化安装,一般都是利用 Kickstart 这个工具实现,最重要的就是其配置 ...

  2. 父组件传值给子组件时 ,watch props 监听不到解决方案

    watch:{ data:{ immediate:true, handler:function(){ } } }

  3. ES5新增数组常见方法(indexof/forEach/map/filter)

    新增的数组常见方法:以下说明中,红色为必选参数,蓝色为可选参数 1.indexOf(data,start); 用于返回某个数组或者字符串中规定字符或者字符串的位置: var arr = [" ...

  4. Idea快捷键——Extract Method

    idea快捷键 ctrl+alt+M 作用:将一段代码提取为一个方法

  5. 面试官:服务器最大可以创建多少个tcp连接以及端口并解释下你对文件句柄的理解

    转载请注明出处: 1.最大可以创建多少个tcp连接 服务器最大可以创建多少个TCP连接取决于多个因素,例如服务器的硬件配置.网络带宽.操作系统设置等.一般来说,现代服务器的硬件资源和网络带宽都比较充足 ...

  6. [git] 规范Commit格式

    规范Commit格式 Jenkins根据对比当次构建和上次构建的Commit信息来生成ChangeLog,但因为我们目前的提交不够规范,经常有类似"#","update& ...

  7. 帝国cms sql检则标题重复

    <?php //检则标题重复 $sql=$empire->query("select id,filename from phome_ecms_news where classid ...

  8. Linux进程管理(命令)入门

    进程是一个运行中的程序 进程查看 ps 能够查看当前终端下运行的进程 $ ps PID TTY TIME CMD 26305 pts/0 00:00:00 bash 26312 pts/0 00:00 ...

  9. ShardingJDBC配置

    Sharding-JDBC定位为轻量级Java框架,在Java的JDBC层提供的额外服务. 它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容J ...

  10. 3520. 【NOIP2013模拟11.7B组】原根(math)

    题目: 考试想法: 考试的时候觉得这些数学公式太恶心了,所以就直接跳过了. 正解: 直接暴力模拟就可以了. 代码: #include<bits/stdc++.h> using namesp ...