毕业设计[项目一]Python程序设计开发
完整程序压缩包
完整程序(涵盖往期版本):毕业设计-社工模拟项目.zip
项目方案(基本都是废话可以跳过)
《社工模拟器》毕业设计项目方案
一、项目背景
在当今数字化时代,网络安全已成为全球关注的焦点。随着网络技术的迅猛发展,人们在享受网络带来的便利的同时,也面临着日益严峻的安全威胁。社工攻击(Social Engineering Attacks)作为一种常见的网络攻击手段,利用人性的弱点和社会关系,通过欺骗、诱导等手段获取目标对象的敏感信息,给个人和组织带来了巨大的损失。为了提高公众对网络安全的认识,增强个人信息保护能力,我们计划开发一款名为《社工模拟器》的游戏。该游戏旨在通过模拟社工攻击的场景,让玩家在游戏过程中体验信息泄露的严重后果,从而在现实生活中更加注重个人信息的保护。
二、项目目标
提高玩家对个人信息保护的意识:通过游戏中的各种社工攻击场景,让玩家认识到个人信息泄露的危害,从而在日常生活中更加谨慎地对待个人信息的保护。
教育玩家识别和防范社工攻击:游戏将展示多种社工攻击手法,如钓鱼邮件、假冒身份等,玩家在应对这些攻击的过程中,将学会如何识别潜在的威胁并采取有效的防范措施。
通过游戏互动,让玩家了解网络安全的重要性:通过游戏的互动性和趣味性,使玩家在轻松愉快的氛围中学习网络安全知识,增强对网络安全重要性的认识。
三、项目内容
《社工模拟器》游戏包含五个主要章节,每个章节都围绕一个中心任务展开,逐步引导玩家了解社工攻击的手法并采取防范措施。
序章:接触、信息收集
任务目标:玩家下载一些工具,接受委托,模拟社交添加受害人好友,并通过模拟社交互动,收集目标人物的基本信息。
核心玩法:玩家需要利用各种社交工具和平台,通过添加好友、发送消息等方式与目标对象建立联系,并在交流过程中巧妙地获取对方的姓名、生日、籍贯等基本信息。同时,学习如何通过公开信息推断个人身份信息,如通过户籍所在地获取身份证号等。
教育意义:让玩家意识到在社交过程中,个人信息的泄露可能就在不经意间发生,提醒玩家在社交互动中要提高警惕,谨慎分享个人信息。
第一章:识图寻地
任务目标:玩家利用网络资源,如Google地图,对目标地点进行定位,并通过图片和视频信息进行地理位置判断。
核心玩法:玩家需要分析目标对象分享的图片和视频,从中寻找线索,如建筑物特征、街道标志等,并利用网络地图工具进行定位,找到图片和视频的拍摄地点。例如,通过识别图片中的某个标志性建筑,结合地图信息,推断出目标对象所在的城市或街道。
教育意义:教会玩家如何利用网络资源进行信息搜集和分析,提高玩家对网络信息的敏感度和分析能力,同时也让玩家认识到在分享图片和视频时,可能无意中泄露了自己的地理位置信息。
第二章:网络追踪
任务目标:玩家搭建钓鱼网站和邮件,模拟网络攻击者的行为,并通过IP地址追踪,学习如何定位目标的大致位置。
核心玩法:玩家需要搭建一个钓鱼网站,并通过发送钓鱼邮件等方式诱导目标对象访问该网站。当目标对象访问网站时,玩家可以获取到对方的IP地址,然后利用IP地址查询工具,追踪到目标对象的大致地理位置,如国家、城市等。
教育意义:让玩家了解钓鱼网站和钓鱼邮件的工作原理,认识到这些攻击手段的危害性,从而在日常生活中提高对这类攻击的防范意识,避免点击不明链接或随意填写个人信息。
第三章:失踪的科长
任务目标:玩家接受委托,调查一位研究科科长的失踪事件,查清楚其去向、个人信息以及背后的原因等。
核心玩法:玩家需要通过访问数据库、破解密码、查看聊天记录等多种方式,收集与失踪科长相关的信息。例如,登录医院的数据库查询科长的个人信息,破解其邮箱密码查看邮件往来,分析聊天软件中的对话内容等。同时,还需要结合收集到的信息,推理出科长失踪的真相。
教育意义:让玩家了解数据库安全、密码保护的重要性,以及在面对复杂的信息时如何进行分析和推理。同时,也提醒玩家在日常生活中要注意保护自己的隐私信息,避免被不法分子利用。
终章:反击!
任务目标:玩家的计算机被入侵,需要采取措施反击入侵者,保护自己的系统安全。
核心玩法:玩家需要建立隔离区加固防火墙,抵御入侵者的攻击;扫描对方的IP地址,寻找漏洞进行反击;登录对方的系统,上传后门文件,最终清除对方的系统,使其瘫痪。
教育意义:让玩家了解防火墙、漏洞扫描等网络安全技术,提高应对网络攻击的能力。同时,也提醒玩家在日常生活中要定期检查系统的安全性,及时修补漏洞,防止被入侵。
四、项目实施计划
组建开发团队:组建一个由程序员、设计师和测试人员组成的开发团队,明确各自的职责和任务。
设计游戏框架和故事情节:设计游戏的整体框架,包括游戏的章节划分、任务设置、角色设定等,并创作吸引人的故事情节,使玩家在游戏过程中能够沉浸在故事中。
开发游戏第一章:根据设计的游戏框架和故事情节,开发游戏的第一章,并进行内部测试,收集反馈意见。
优化游戏,开发后续章节:根据第一章的测试反馈,优化游戏的玩法和设计,然后继续开发第二章、第三章和终章。
公开测试:完成游戏的全部开发后,进行公开测试,邀请玩家参与测试并收集他们的反馈意见。
正式发布和市场推广:根据公开测试的反馈,进一步优化游戏,然后正式发布游戏,并进行市场推广,吸引更多的玩家下载和体验游戏。
五、项目预期成果
完成游戏开发和发布:成功开发并发布《社工模拟器》游戏,使其能够在各大平台上线,供玩家下载和体验。
教育玩家网络安全知识:通过游戏的互动和趣味性,让玩家在游戏过程中学习到网络安全知识,提高他们的网络安全意识和防范能力。
收集玩家反馈,持续优化:在游戏发布后,持续收集玩家的反馈意见,并根据反馈对游戏进行优化和更新,不断提升游戏的质量和用户体验。
六、项目风险及应对措施
技术风险:开发过程中可能遇到技术难题,如程序bug、系统兼容性问题等。应对措施是组建经验丰富的开发团队,并定期进行技术培训和交流,及时解决技术问题。
市场风险:游戏可能无法吸引足够多的玩家,导致市场反响不佳。应对措施是进行市场调研,根据目标玩家群体的喜好调整游戏设计,并制定有效的市场推广策略,提高游戏的知名度和影响力。
法律风险:游戏中的内容可能涉及法律问题,如侵犯他人隐私、版权等。应对措施是在游戏设计阶段就咨询法律专家,确保游戏内容合法合规,避免法律纠纷。
七、项目团队
设计、开发员(陆炳阳vincent):负责游戏故事设计和用户体验、编程和技术开发。
设计师(储):负责游戏概念的构思、故事情节的创作、角色设定。
测试员(胥):负责游戏的测试和质量保证。
通过《社工模拟器》游戏的开发和推广,我们希望能够提高公众对网络安全的认识,为构建更加安全的网络环境贡献一份力量。
项目代码
项目所需的库
import os
import time
from PIL import Image
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.alert import Alert
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import py7zr
import subprocess
from tqdm import tqdm
import platform
import sys
import winreg
import pyperclip
import socket
import random
import string
import tkinter as tk
from tkinter import ttk
from tkinter import PhotoImage
from datetime import datetime
import pytz
#下载
#################################
"""
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple selenium
pip install Pillow smtplib py7zr subprocess tqdm pyperclip socket pytz tkinter
"""
#################################函数部分
#函数工具部分
#获取本机ip函数
def get_local_ip():
try:
# 创建一个 socket 对象
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 连接到一个公共 DNS 服务器以获取 IP 地址
s.connect(("8.8.8.8", 80)) # Google Public DNS
local_ip = s.getsockname()[0] # 获取本机 IP 地址
finally:
s.close() # 关闭 socket 连接
return local_ip
#安装进度条
def fake_progress_bar(total_steps,chuan_ru_ruan_jian): #进度条步长,软件名称
for step in range(total_steps + 1):
# 计算进度
percent = (step / total_steps) * 100
bar_length = 40 # 进度条长度
filled_length = int(bar_length * step // total_steps) # 已填充长度
bar = '█' * filled_length + '-' * (bar_length - filled_length) # 创建进度条
install = "install"
ruan_jian = chuan_ru_ruan_jian
# 打印进度条
sys.stdout.write(f'\r|{bar}| {percent:.2f}% {install} {ruan_jian}') # 覆盖打印
sys.stdout.flush() # 刷新输出
time.sleep(0.1) # 模拟任务处理时间
print() # 换行
#自动配置进度条
def fake_progress_bar_config(total_steps,chuan_ru_ruan_jian): #进度条步长,软件名称
for step in range(total_steps + 1):
# 计算进度
percent = (step / total_steps) * 100
bar_length = 40 # 进度条长度
filled_length = int(bar_length * step // total_steps) # 已填充长度
bar = '█' * filled_length + '-' * (bar_length - filled_length) # 创建进度条
ruan_jian = chuan_ru_ruan_jian
# 打印进度条
sys.stdout.write(f'\r|{bar}| {percent:.2f}% {ruan_jian}') # 覆盖打印
sys.stdout.flush() # 刷新输出
time.sleep(0.1) # 模拟任务处理时间
print() # 换行
#定位进度条
def fake_progress_bar_ding_wei(total_steps,chuan_ru_ruan_jian): #进度条步长,软件名称
for step in range(total_steps + 1):
# 计算进度
percent = (step / total_steps) * 100
bar_length = 40 # 进度条长度ding_wei
filled_length = int(bar_length * step // total_steps) # 已填充长度
bar = '█' * filled_length + '-' * (bar_length - filled_length) # 创建进度条
ruan_jian = chuan_ru_ruan_jian
# 打印进度条
sys.stdout.write(f'\r|{bar}| {percent:.2f}% {ruan_jian}') # 覆盖打印
sys.stdout.flush() # 刷新输出
time.sleep(0.1) # 模拟任务处理时间
print() # 换行
#倒计时
def countdown(t):
while t:
mins, secs = divmod(t, 60)
timeformat = '{:02d}:{:02d}'.format(mins, secs)
print(timeformat, end='\r')
time.sleep(1)
t -= 1
print("时间到!")
#DNS解析
def resolve_dns(domain):
try:
dns_ip_address = socket.gethostbyname(domain)
return dns_ip_address
except socket.gaierror:
return "Unable to resolve the domain name"
#炮弹
def print_animated_shell():
# 炮弹的初始位置
shell_position = 0
# 每次移动的步长
step = 1
# 总宽度,确保炮弹能在范围内移动
total_width = 50
# 清屏函数,用于清除当前行
def clear_line():
sys.stdout.write('\033[2K') # 清除当前行
sys.stdout.write('\r')
# 打印炮弹动画
for _ in range(total_width + 1):
clear_line()
# 打印炮弹和空格
sys.stdout.write(' ' * shell_position + '=###>')
sys.stdout.flush() # 确保立即打印
time.sleep(0.1) # 等待0.1秒
shell_position += step # 移动炮弹
# 炮弹到达目标
clear_line()
sys.stdout.write(' ' * (total_width) + '=###>')
sys.stdout.write(' 打穿对方!')
sys.stdout.write('\n') # 换行
#密码破解
def print_animated_password(correct_password_input):
# 正确的密码
correct_password = correct_password_input
# 乱码字符集
char_set = string.ascii_letters + string.digits + string.punctuation
# 密码长度
password_length = len(correct_password)
# 乱码滚动的最大长度
max_scroll_length = 10
# 清屏函数,用于清除当前行
def clear_line():
sys.stdout.write('\033[2K') # 清除当前行
sys.stdout.write('\r')
# 打印乱码滚动动画
for i in range(password_length * 2): # 循环次数是密码长度的两倍
clear_line()
# 生成乱码
scroll_password = ''.join(random.choice(char_set) for _ in range(max_scroll_length))
# 打印乱码和正确的密码(正确的密码在最后显示)
sys.stdout.write(f'密码: {scroll_password[:password_length]}')
sys.stdout.flush() # 确保立即打印
time.sleep(0.1) # 等待0.05秒
# 每次循环将乱码向右移动一位
scroll_password = scroll_password[1:] + random.choice(char_set)
# 显示正确的密码
clear_line()
sys.stdout.write(f'密码: {correct_password}')
sys.stdout.write('\n') # 换行
def main():
"""
主程序逻辑,通过命令行输入命令连接主机
"""
print("请输入命令以连接主机B:")
while True:
command = input("> ").strip()
if command == "ssh uvu@116.47.82.19 -p 65533":
print("尝试连接主机B...")
time.sleep(4)
break
else:
print("命令无效,请重新输入!")
print("\n连接主机B失败! 连接被恶意阻断!")游戏主程序代码部分
#游戏主体!!!
########################################################################################################################
md5_key = "Admin1986"
# 获取当前工作目录
current_directory = os.getcwd()
converted_path = current_directory.replace("\\", "/")
# 打印当前工作目录
print("当前工作目录是:", converted_path)
print("\n\n")
print("游戏开始!\n")
time.sleep(2)
while 1:
xuanze = input("请选择关卡(1-5):")
if xuanze in ["1","2","3","4","5"]:
break
else:
print("上来就搞事情是吧!?")
print()
while 1:
if xuanze == "1":
##############################################################################
#序章
#用户输入邮箱,给对方发送委托,接受委托后开始游戏
#通过合适的理由添加对方好友,与对方成为朋友
#通过户籍所在地获取身份证号,通过长期监视获取对方生日及年龄,通过获取对方性别,通过实名认证漏洞获取对方完整身份证号
##############################################################################
print("----------------------------")
print("序章:认识-基础信息收集")
print("接收委托,完成委托")
print("你的任务是:与对方成为朋友")
print("----------------------------\n\n")
print("----------------------------")
print("账户名称:van 密码:a1b2c33.")
print("----------------------------\n")
print("VirtuaCoreOS Linux 8 Por\n")
while 1:
OS_username = input("van login:")
if OS_username == "van":
OS_password = input("password:")
if OS_password == "a1b2c33.":
current_time = time.localtime()
ip_address = get_local_ip()
print(f"Last Login: Sat Dec 23 {current_time.tm_hour}:{current_time.tm_min}:{current_time.tm_sec} from ::ffff:{ip_address}")
break
else:
print("Login incorrect")
continue
elif OS_username == "root":
OS_password = input("password:")
if OS_password == "toor":
current_time = time.localtime()
ip_address = get_local_ip()
print(f"Last Login: Sat Dec 23 {current_time.tm_hour}:{current_time.tm_min}:{current_time.tm_sec} from ::ffff:{ip_address}")
break
else:
print("Login incorrect")
continue
else:
OS_password = input("password:")
print("Login incorrect")
continue
time.sleep(2)
print("安装任务接收工具 [yum install TaskReceive]")
while 1:
open_ren_wu = input(f"[{OS_username}@van ~]# ")
if open_ren_wu == "yum install TaskReceive":
fake_progress_bar(50,"TaskReceive") # 创建一个进度条
break
else:
print(f"-bash: {open_ren_wu}: command not found")
continue
taskr = """
________________ _ _________
|_______ _______| | | | ____ \
| | | | | | \ \
| | | | __ | |____/ /
| | ______ ______ | | / / | ___/
| | |____ | | ____| | |/ / | |\ \
| | ____| | | |____ | < | | \ \
| | | __ | |____ | | |\ \ | | \ \
| | | |__| | ____| | | | \ \ | | \ \
|__| |______| |______| |_| \_\ |__| \__\
"""
time.sleep(2)
print("打开软件 [TaskR -o]\n")
while 1:
open_ren_wu = input(f"[{OS_username}@van ~]# ")
if open_ren_wu == "TaskR -o":
print("\n---------------------------------")
print(taskr)
print("---------------------------------")
break
else:
print(f"-bash: {open_ren_wu}: command not found")
continue
time.sleep(2)
print("Welcome to use TaskReceive, and we wish you a pleasant experience!")
print("欢迎使用TaskReceive,祝您使用愉快!")
time.sleep(2)
print("---------------------------------")
while 1:
you_xiang = input("请输入你的邮箱号(仅支持qq邮箱): ")
# 发件人和收件人信息
sender_email = "2909073948@qq.com" #发送邮箱
receiver_email = you_xiang #目标邮箱
password = "kjbzndypkwladdcd" # 使用授权码
# 创建邮件
message = MIMEMultipart()
message["From"] = sender_email
message["To"] = receiver_email
message["Subject"] = "委托事项" # 邮箱标题
# 添加邮件正文
body = """
你好Van,
我知道你跟着Vincenzo Cassano学了一些皮毛,这算是一次试炼,我想委托您调查一个人。考虑到您是大佬的徒弟,我相信您能够顺利完成这项工作。以下是具体的要求和细节:
- 任务描述:想办法加上对方好友,与对方成为朋友,通过社交或其他手段获取对方姓名,籍贯地,生日。
- 截止日期:3天后。
- 对方资料:手机号“357-6765-4129”
如果您在处理过程中有任何问题或需要进一步的信息,请随时与我联系。我将为您提供除帮助以外的一切支持。
期待您的回复。
祝好!
bit
你爹
2022年9月30日
"""
message.attach(MIMEText(body, "plain")) # 邮箱正文
try:
# 连接到QQ SMTP服务器
with smtplib.SMTP("smtp.qq.com", 587) as server: # 使用587端口和STARTTLS
server.starttls() # 启动TLS加密
server.login(sender_email, password) # 使用邮箱和授权码登录
server.sendmail(sender_email, receiver_email, message.as_string())
print("邮件已发送成功!")
except smtplib.SMTPException as e:
pass
print("\n请注意查收邮箱!\n")
while 1:
shi_fou_jie_shou = input("是否接收到委托邮件?(Y/N)")
if shi_fou_jie_shou == "Y":
break
elif shi_fou_jie_shou == "N":
print()
break
else:
print("游戏还没正式开始你就找骂是吧? 眼睛不要可以捐了!")
if shi_fou_jie_shou == "Y":
break
elif shi_fou_jie_shou == "N":
continue
time.sleep(2)
print("---------------------------------")
while 1:
shi_fou_jie_shou_wei_tuo = input("是否接受此委托(是/否):")
if shi_fou_jie_shou_wei_tuo == "是":
print("----------------------------")
print("委托开始!!!")
print("----------------------------")
break
elif shi_fou_jie_shou_wei_tuo == "否":
print("----------------------------")
print("退出游戏!!!")
print("----------------------------")
exit(0)
else:
print("SB玩意儿! 他妈的看清楚了! (是/否)")
time.sleep(2)
print("安装工具Hitalk [yum install Hitalk]")
while 1:
open_ren_wu = input(f"[{OS_username}@van ~]# ")
if open_ren_wu == "yum install Hitalk":
fake_progress_bar(50,"Hitalk") # 创建一个进度条
break
else:
print(f"-bash: {open_ren_wu}: command not found")
continue
hitalk = """
__ __
/ / / /
/ / / /
/ /______/ / __ __ ______ __ __
/ _______ / /_/ __/ /_ /___ / / / / /
/ / / / __ /_ __/ ____/ / / / / /____
/ / / / / / / / / __ / / / / 、——/
/ / / / / / / /__ / /_/ / / / / /\ \
/_/ /_/ /_/ /____/ /_____/ /_/ /_/ \_\
"""
time.sleep(2)
print("打开工具 [Hitalk -o]\n")
while 1:
open_hitalk = input(f"[{OS_username}@van TaskR]# ")
if open_hitalk == "Hitalk -o":
print("---------------------------------")
print(hitalk)
print("---------------------------------")
break
else:
print(f"-bash: {open_hitalk}: command not found")
continue
hitalk_help = """
Hitalk -add [必填:Hitalk号/电话] #添加联系人
Hitalk -rem [必填:Hitalk号/电话] #删除联系人
Hitalk -sel [必填:Hitalk名称/备注/Hitalk号/电话] #选择聊天联系人
exit/quit #退出软件
"""
time.sleep(2)
print("查看工具Hitalk相关参数 [Hitalk --help]\n")
while 1:
open_hitalk = input(f"[{OS_username}@van Hitalk]# ")
if open_hitalk == "Hitalk --help":
print(hitalk_help)
break
else:
print(f"-bash: {open_hitalk}: command not found")
continue
print("现在开始添加对方好友吧,需要适当的理由哦!\n")
while 1:
open_hitalk = input(f"[{OS_username}@van Hitalk]# ")
if open_hitalk == "Hitalk -add 35767654129":
print("已发送申请!")
break
elif open_hitalk[7:11] == "-rem":
print("联系人列表为空!")
elif open_hitalk[7:11] == "-sel":
print("联系人列表为空!")
elif open_hitalk[12:] == "357-6765-4129":
print("已发送申请!")
break
else:
print(f"-bash: {open_hitalk}: command not found")
time.sleep(2)
print("""---------------------------------
用户名称:庆余
Hitalk号:35767654129acc
个性签名:时代少年团!
---------------------------------""")
time.sleep(2)
while 1:
print()
print("----------------------------")
add_xuan_xiang = input("A. 你好,我是通过朋友介绍认识你的,想和你交个朋友!\nB. 你好,我是你的同学,想和你认识一下!\nC. 你好学姐!我是22级的学弟,想和你认识一下!\n\n请选择:")
print("----------------------------")
if add_xuan_xiang == "A":
time.sleep(2)
print("Li:朋友?哪个朋友介绍的?")
time.sleep(2)
print("van:你的闺蜜小张告诉我的。")
time.sleep(3)
print("Li:你是骗子吧?我刚刚问过她,她根本不知道这回事!")
time.sleep(2)
print("Li:而且你怎么会有我的联系方式?")
time.sleep(2)
print("----------------------------")
print("任务失败!目标已将你拉黑!!!")
print("----------------------------")
print()
driver = webdriver.Edge()
driver.get('https://www.bing.com/?mkt=zh-CN')
# 等待页面加载完成,直到输入框可见
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '/html/body/div[1]/div/div[3]/div[2]/form/div[1]/input')))
# 填写
sou_suo_input = driver.find_element(By.XPATH, '/html/body/div[1]/div/div[3]/div[2]/form/div[1]/input')
sou_suo_input.send_keys('你这种人治好了也是流口水')
time.sleep(2)
sou_suo_ck = driver.find_element(By.ID, 'search_icon')
sou_suo_ck.click()
time.sleep(12)
# 主动关闭浏览器
driver.quit()
continue
elif add_xuan_xiang == "B":
time.sleep(2)
print("Li:哦?那你是谁呢?")
time.sleep(2)
print("van:我是和你一个专业的同学。")
time.sleep(2)
print("Li:哪个专业?")
time.sleep(2)
print("van:就是计算机专业的,今天上课看到你,觉得你很有趣,想认识你。")
time.sleep(3)
print("Li:你哪来的我的联系方式?")
time.sleep(2)
print("van:学生会的朋友给的。")
time.sleep(3)
print("Li:那你叫什么名字?")
time.sleep(2)
input("van:(请输入你的名字):")
time.sleep(2)
print("Li:我问了学生会的同学,他们都说不认识你。")
time.sleep(2)
print("----------------------------")
print("任务失败!目标已将你拉黑!!!在社工中在没有充分把握时不要将人设定为与对方能够接触或被打探的身份。")
print("----------------------------")
print()
continue
elif add_xuan_xiang == "C":
print("")
time.sleep(2)
print("Li:22级学弟?你是怎么知道我的联系方式的?")
time.sleep(2)
while 1:
print("A. 校园墙上看到的联系方式 B. 从学生会朋友那里要来的")
add_xuan_xiang1 = input("van:(A/B)")
if add_xuan_xiang1 == "A":
time.sleep(4)
print("Li:哦哦,我想起来了,我之前确实挂过联系方式。不过,那是很久以前的事了。")
time.sleep(3)
print("没想到还有学弟会记得。")
time.sleep(2)
print("van:听说你很喜欢时代少年团,是这样吗?")
time.sleep(3)
print("Li:对呀,怎么了?")
time.sleep(2)
print("van:你最喜欢哪个成员呢?")
time.sleep(3)
print("Li:......")
time.sleep(2)
print("----------------------------")
print("任务成功!你以获取对方基本的信任!!!")
print("----------------------------")
print()
break
elif add_xuan_xiang1 == "B":
time.sleep(2)
print("Li:那你叫什么名字?")
time.sleep(2)
input("van:(请输入你的名字):")
time.sleep(2)
print("Li:我问了学生会的同学,他们都说不认识你。")
time.sleep(2)
print("----------------------------")
print("任务失败!目标已将你拉黑!!!在社工中在没有充分把握时不要将人设定为与对方能够接触或被打探的身份。")
print("----------------------------")
print()
continue
else:
print("若只!请你输入A/B !")
continue
else:
print(f"???闹鬼了?哪来的{add_xuan_xiang}选项")
continue
break
chengshi = {
"上海市":"3101","杭州市":"3301","南京市":"3201","合肥市":"3401"
}
l = "3401"
hefei_xiaqu = {
"蜀山区":"04","瑶海区":"02","庐阳区":"03","包河区":"11",#"巢湖市":"02",
"长丰县":"21","肥东县":"22","肥西县":"23",#"庐江县":"21",
}
u = l
print("----------------------------")
print("经过4天的接触,你得知她叫李静,你与对方成为了网友\n后续通过朋友圈你得到了一些信息。")
print("她的老家在安徽合肥市明光路和平路的和平广场附近,今年19岁。\n为降低游玩中等待爆破的时间,提示:出生时身份登记时间在下午。")
print("你的任务是:获取对方身份证号")
print("----------------------------\n")
time.sleep(5)
browser = webdriver.Edge()
browser.get('https://cn.bing.com/maps')
time.sleep(5)
print("----------------------------")
while 1:
Yong_Hu_Shu_Ru__Shiji = input("请输入你要查询的城市:")
Yong_Hu_Shu_Ru__QuJi = input("请输入你要查询的辖区或县城:")
if Yong_Hu_Shu_Ru__Shiji == "合肥市":
if Yong_Hu_Shu_Ru__QuJi == "瑶海区":
sfiddq = chengshi[f'{Yong_Hu_Shu_Ru__Shiji}'] + hefei_xiaqu[f'{Yong_Hu_Shu_Ru__QuJi}']
break
else:
print("眼睛睁大点!什么区!!!")
else:
print("眼睛睁大点!什么市!!!")
print("----------------------------")
print(f"前六位地区码:{sfiddq}")
print("----------------------------")
print("对方在3月11日晚上发了一条朋友圈")
print("----------------------------")
# 使用系统默认程序打开图片
os.startfile(r"wyy1.png")
while 1:
duifangshengri = input("判断对方生日(2000/01/26):")
if duifangshengri == "2005/03/11":
print("判断正确")
sfidsr = duifangshengri[0:4] + duifangshengri[5:7] + duifangshengri[8:10]
break
else:
print("好好想想")
continue
print("----------------------------")
p = "117028"
print(f"生日码:{sfidsr}")
while 1:
duifangxingbie = input("对方性别:")
if duifangxingbie == "男":
print("身份证号第十七位是奇数")
break
elif duifangxingbie == "女":
print("身份证号第十七位是偶数")
break
else:
print("请不要学习美国人!")
female = []
male = []
k = "0220"
for x in range(0,10,2):
female.append(str(x))
for y in range(1,10,2):
male.append(str(y))
print("----------------------------")
di_qu_shun_xu = input("目标登记时间(上午、中午、下午):")
if di_qu_shun_xu == "上午":
qishi = 0
jieshu = 35
print(f"地区顺序码范围:{qishi}至{jieshu}")
elif di_qu_shun_xu == "中午":
qishi = 35
jieshu = 65
print(f"地区顺序码范围:{qishi}至{jieshu}")
elif di_qu_shun_xu == "下午":
qishi = 65
jieshu = 100
print(f"地区顺序码范围:{qishi}至{jieshu}")
print("----------------------------")
print("账号:初始")
print("密码:Abc123123")
print(f"身份证号可能性:")
jiao_yan = [1,2,3,4,5,6,7,8,9,"x"]
time.sleep(3)
i = k
j = "0503"
sfzh = []
for shun_xu in range(qishi,jieshu):
for xin_bie_list in range(5):
for jiao_yan_list in range(9):
if len(str(shun_xu)) == 1:
shun_xu = "0"+ str(shun_xu)
else:
shun_xu = str(shun_xu)
sfzh.append(f"{sfiddq}{sfidsr}{shun_xu}{female[xin_bie_list]}{jiao_yan[jiao_yan_list]}")
print()
print()
o = j
print(sfzh)
print("----------------------------")
driver = webdriver.Edge()
driver.get(f'file:///{converted_path}/shenfenyanzheng.html')
# 等待页面加载完成,直到姓名输入框可见
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.ID, 'name')))
# 填写姓名
name_input = driver.find_element(By.ID, 'name')
name_input.send_keys('李静')
for id_number in sfzh:
# 清空身份证输入框并输入新的身份证号
id_number_input = driver.find_element(By.ID, 'idNumber')
id_number_input.clear() # 清空输入框
id_number_input.send_keys(id_number) # 输入身份证号
# 提交表单
submit_button = driver.find_element(By.XPATH, '//button[text()="提交"]')
submit_button.click()
# 等待弹窗出现
WebDriverWait(driver, 6).until(EC.alert_is_present()) # 等待弹窗出现
# 处理弹窗
try:
alert = Alert(driver)
alert_text = alert.text
print("弹窗内容:", alert_text)
# 判断认证是否成功
if '认证成功' in alert_text:
print(f"认证成功! 身份证号: {id_number}")
alert.accept() # 接受弹窗
break # 认证成功,退出循环
else:
print(f"认证失败: {alert_text}")
alert.accept() # 接受弹窗,继续下一个身份证号
except Exception as e:
print("未找到弹窗:", str(e))
time.sleep(8)
# 关闭浏览器
driver.quit()
print("\n\n----------------------------")
answer = u + i + o + p
while 1:
user_answer = input("请输入你的答案:")
if user_answer == answer:
print("判断正确,你已完成第一章\n\n\n")
xuanze = "2"
break
else:
print("判断错误!")
continue
elif xuanze == "2":
##############################################################################
#第一章
#学会翻墙
#打开图片教学用户识图利用网络资源进行大致位置判断
#任务一:找到图片中所在的拍摄位置
#任务二:找到图片中所在的拍摄位置
#打开图片教学用户识图利用网络资源进行位置判断
#任务三:找到视频中的学校
##############################################################################
print("----------------------------")
print("第一章:识图寻地")
print("安装翻墙软件,使用翻墙软件")
print("通过Google的识图功能对目标图片进行扫描,并在地图上找到拍摄地点所在位置。")
print("任务一:找到图片中所在的拍摄位置")
print("任务二:找到图片中所在的拍摄位置")
print("任务三:找到视频中的学校")
print("----------------------------\n")
current_directory = os.getcwd()
converted_path = current_directory.replace("\\", "/")
print("当前工作目录是:", converted_path)
#判断用户是否有VPN
while 1:
shi_fou_you_VPN = input("电脑上是否有VPN?(能否访问外网?例如Google)【有/没有】:")
if shi_fou_you_VPN in ["有","没有"]:
break
else:
print("【有/没有】")
if shi_fou_you_VPN == "没有":
os_name = platform.system()
os_version = platform.version()
processor_architecture = platform.architecture()
print(f'操作系统名称: {os_name}')
print(f'操作系统版本: {os_version}')
print(f'处理器架构: {processor_architecture}')
def is_dotnet_installed(version=528040): # 528040 是 .NET Framework 4.8 的 Release 值
try:
registry_key = r'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full'
key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, registry_key, 0, winreg.KEY_READ | winreg.KEY_WOW64_64KEY)
value, regtype = winreg.QueryValueEx(key, 'Release')
return value >= version
except FileNotFoundError:
return False
if is_dotnet_installed():
print(".NET Framework 4.8 或更高版本已安装。")
else:
print(".NET Framework 4.8 未安装。")
while 1:
shi_fou_zi_dong = input("是否自动安装VPN(由于windows系统的诸多不确定性,以及系统版本的不同,建议手动安装和注册!)【是\否】:")
if shi_fou_zi_dong == "是":
OSban_ben = input("请选择你电脑的版本:( A.Windows11 B.Windows10 )")
############################################################################################################################################################################
if OSban_ben == "A":
# 需要解压的7z文件的路径
archive_path = f"{converted_path}/v2rayN-Core.7z"
# 指定解压后的目标文件夹路径
extract_to = f"{converted_path}"
extract_to = extract_to.replace("\\", "/")
# 确保解压路径存在
if not os.path.exists(extract_to):
os.makedirs(extract_to)
# 打开并解压文件
with py7zr.SevenZipFile(archive_path, mode='r') as z:
file_list = z.getnames()
with tqdm(total=len(file_list), desc="解压进度", unit="file") as pbar:
z.extractall(extract_to)
for _ in file_list:
pbar.update(1)
print(f"文件已解压到: {extract_to}")
# 列出解压后的文件
directory = extract_to
print(f"{directory} 下的文件:")
for root, dirs, files in os.walk(directory):
for file in files:
print(os.path.join(root, file))
# 执行安装程序
installer_path = os.path.join(f"{extract_to}/v2rayN-Core/v2rayN.exe")
if os.path.exists(installer_path):
print(f"正在执行安装程序: {installer_path}")
subprocess.Popen([installer_path], shell=True)
else:
print("未找到安装程序!")
print("已完成安装")
break
############################################################################################################################################################################
elif OSban_ben == "B":
# 需要解压的7z文件的路径
archive_path = f"{converted_path}/v2rayN.7z"
# 指定解压后的目标文件夹路径
extract_to = f"{converted_path}"
extract_to = extract_to.replace("\\", "/")
# 确保解压路径存在
if not os.path.exists(extract_to):
os.makedirs(extract_to)
# 打开并解压文件
with py7zr.SevenZipFile(archive_path, mode='r') as z:
file_list = z.getnames()
with tqdm(total=len(file_list), desc="解压进度", unit="file") as pbar:
z.extractall(extract_to)
for _ in file_list:
pbar.update(1)
print(f"文件已解压到: {extract_to}")
# 列出解压后的文件
directory = extract_to
print(f"{directory} 下的文件:")
for root, dirs, files in os.walk(directory):
for file in files:
print(os.path.join(root, file))
# 执行安装程序
installer_path = os.path.join(f"{extract_to}/windowsdesktop-runtime-6.0.33-win-x64.exe")
if os.path.exists(installer_path):
print(f"正在执行安装程序: {installer_path}")
subprocess.run([installer_path], shell=True)
time.sleep(8)
print("已完成安装")
else:
print("未找到安装程序!")
# 执行安装程序
installer_path = os.path.join(f"{extract_to}/v2rayN/v2rayN.exe")
if os.path.exists(installer_path):
print(f"正在执行安装程序: {installer_path}")
subprocess.Popen([installer_path], shell=True)
time.sleep(3)
print("已完成安装")
else:
print("未找到安装程序!")
break
############################################################################################################################################################################
elif shi_fou_zi_dong == "否":
print("很好,手动的成功率是90%")
time.sleep(1)
print(f"打开游戏目录:{converted_path}")
os.startfile(converted_path)
time.sleep(4)
print("在目录下找到v2rayN-Core.7z进行解压!")
time.sleep(4)
print("在解压后的目录下找到v2rayN.exe双击进行安装!")
time.sleep(4)
print("请看右下角任务栏是否有软件图标!")
break
print("进行注册")
time.sleep(2)
driver = webdriver.Edge()
driver.get('https://x5.yynet.store/auth/register?code=txfj')
input("注册完成后! 按下回车将关闭浏览器!")
driver.quit()
print("注意!!!如果曾经使用过云翼网络则不会有A套餐,所以选了也不会有反应!")
print("----------------------------")
print("A套餐一:试用 费用:1¥ 发放3GB流量")
print("B套餐二:每月 费用:22.8¥ 发放108GB流量")
print("C套餐三:每月 费用:32.8¥ 发放198GB流量")
print("D套餐四:每月 费用:89.8¥ 发放520GB流量")
print("E套餐五(推荐):每年 费用:188.8¥ 一次性发放648GB流量")
print("F套餐六(推荐):每年 费用:328.8¥ 一次性发放1398GB流量")
print("----------------------------")
print("注意!!!最低充值金额为5元!!!")
print("----------------------------")
time.sleep(2)
driver = webdriver.Edge()
driver.get('https://x5.yynet.store/auth/login')
print("等待响应...")
print("点击我的钱包,选择充值,输入充值金额!")
time.sleep(3)
print("充值完成后点击商店!选择你需要的套餐!")
while 1:
zhi_fu_wan_cheng = input("是否完成套餐购买?(是/否)")
if zhi_fu_wan_cheng in ["是","否"]:
break
else:
print("(是/否)")
if zhi_fu_wan_cheng == "是":
print("等待响应...")
time.sleep(2)
print("剩下的请查看操作手册完成VPN的配置")
bangzhuwendan = webdriver.Edge()
bangzhuwendan.get(f'file:///{converted_path}/v2rayN-Core使用操作手册.pdf')
elif zhi_fu_wan_cheng == "否":
print("若是有其他想法请自行查看操作手册")
bangzhuwendang = webdriver.Edge()
bangzhuwendang.get(f'file:///{converted_path}/v2rayN-Core使用操作手册.pdf')
# 获取剪贴板的内容
try:
content = pyperclip.paste()
print("订阅链接:", content)
except pyperclip.PyperclipException as e:
print("无法访问剪贴板:", e)
input("完成VPN配置工作后请按回车!")
bangzhuwendang.quit()
input("按下回车将关闭浏览购买套餐的浏览器!")
driver.quit()
###################################################################################################
#跳过安装
else:
print("那么好!既然你已经有了VPN,那么接下来开始你的任务吧!")
print("请打开VPN!")
countdown(15)
input("按下回车代表您确认打开VPN了!")
time.sleep(2)
Google = webdriver.Edge()
Google.get('https://www.google.com/maps/?hl=zh-cn')
time.sleep(2)
Google.execute_script("window.open('https://www.google.com');")
time.sleep(2)
print("使用试图功能可以识别出一些有辨识度的建筑或当地标志性建筑!\n通过Google地图可以找到建筑所在位置以及街道全景用于确认位置!")
# 获取当前工作目录
current_directory = os.getcwd()
converted_path = current_directory.replace("\\", "/")
def open_file_explorer(path):
try:
#使用 os.startfile()
os.startfile(path)
print("已使用 os.startfile 打开资源管理器")
except Exception as e:
print(f"无法打开资源管理器: {e}")
# 指定要打开的文件夹路径
folder_path = f'{converted_path}/第二章'
# 打开资源管理器
open_file_explorer(folder_path)
countdown(60)
print("----------------------------")
print("请提交你的答案!")
print("----------------------------\n")
print(f"请截图并画出拍摄位置! 保存在{folder_path}下")
ren_wu_yi = input("任务一答案:(大楼名称 提示:其中有 “S P E C” 字母)")
print("\n")
print(f"请截图并画出拍摄位置! 保存在{folder_path}下")
ren_wu_er = input("任务二答案:(大楼名称 提示:其中有 “I T” 字母)")
print("\n")
print(f"请截图并画出位置! 保存在{folder_path}下")
ren_wu_san = input("任务三答案:(学校的英文名称)")
print("\n")
di_er_zhang_da_an = f"任务一1:{ren_wu_yi}\n任务一2:{ren_wu_er}\n任务二:{ren_wu_san}"
file_name = f"{folder_path}/第二章提交的答案.txt"
# 使用'with'语句打开文件,确保文件在写入后正确关闭
with open(file_name, "w", encoding="utf-8") as file:
file.write(di_er_zhang_da_an)
Google.quit()
print("----------------------------")
print("第一章已完成! 答案已保存!")
print("----------------------------\n\n\n")
xuanze = "3"
elif xuanze == "3":
##############################################################################
#第二章
#学会搭建钓鱼网站和钓鱼邮件
#用户上钩后通过IP地址锁定对方大致位置
##############################################################################
print("----------------------------")
print("第二章:网络追踪")
print("搭建钓鱼网站和钓鱼邮件")
print("在用户上钩后通过IP地址锁定对方大致位置")
print("任务一:使对方访问钓鱼网站和钓鱼链接")
print("任务二:找到IP信息,搜索IP范围")
print("----------------------------")
print("\n用户:root 密码:toor\n")
print("\nKali Linux\n")
# 登录系统部分
while 1:
OS_username = input("kali login:")
if OS_username == "van": # 普通用户 van 登录
OS_password = input("password:")
if OS_password == "a1b2c33.":
current_time = time.localtime()
ip_address = get_local_ip()
print(f"Last Login: Sat Dec 23 {current_time.tm_hour}:{current_time.tm_min}:{current_time.tm_sec} from ::ffff:{ip_address}")
user_type = "van" # 标记用户类型
break
else:
print("Login incorrect")
continue
elif OS_username == "root": # root 用户登录
OS_password = input("password:")
if OS_password == "toor":
current_time = time.localtime()
ip_address = get_local_ip()
print(f"Last Login: Sat Dec 23 {current_time.tm_hour}:{current_time.tm_min}:{current_time.tm_sec} from ::ffff:{ip_address}")
user_type = "root" # 标记用户类型
break
else:
print("Login incorrect")
continue
else:
OS_password = input("password:")
print("Login incorrect")
continue
apache2 = "NO"
dns_HJ = "NO"
AdminLAN = "NO"
AdminLAN_zt_config = "NO"
# 命令行部分
print("现在需要捕获经过我们网卡的所有来自80端口的 TCP 数据包。 [tcpdump -i eth0 port 80]")
while 1:
user_command = input(f"┌──({OS_username}㉿kali)-[~]\n└─$ ")
# 定义允许的命令
van_commands = ["su", "ip add", f"sudo {user_command[5:]}", "ifconfig"]
root_commands = ["systemctl start apache2", "systemctl status apache2", "systemctl restart apache2", "systemctl stop apache2", "tcpdump -i eth0 port 80"]
#如果是van权限受限制
if user_type == "van":
#su
if user_command == "su":
# 切换到 root 用户,输入 root 密码
OS_password = input("password:")
if OS_password == "toor":
print(f"Switching to root user")
user_type = "root" # 切换到 root 用户
OS_username = "root"
else:
print("Login incorrect")
#sudo
elif user_command == f"sudo {user_command[5:]}":
# sudo 切换到 root 用户,输入 van 密码
if user_command[5:] == "su":
OS_password = input("password:")
if OS_password == "a1b2c33.":
print(f"Switching to root user")
user_type = "root" # 切换到 root 用户
OS_username = "root"
else:
print("Login incorrect")
elif user_command[5:] == "root":
OS_password = input("password:")
if OS_password == "toor":
print(f"Switching to root user")
user_type = "root" # 切换到 root 用户
OS_username = "root"
else:
print("Login incorrect")
elif user_command[5:] == "van":
print(f"Switching to root user")
user_type = "van" # 切换到 root 用户
OS_username = "van"
else:
print(f"There is no user {user_command[5:]}")
#ip add
elif user_command == "ip add":
print(f"1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000\n\tlink/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\n\tinet 127.0.0.1/8 scope host lo\n\t\tvalid_lft forever preferred_lft forever\n\tinet6 ::1/128 scope host noprefixroute\n\t\tvalid_lft forever preferred_lft forever\n2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000\n\tlink/ether 00:0c:29:8d:c8:c7 brd ff:ff:ff:ff:ff:ff\n\tinet {ip_address}/24 brd 192.168.10.255 scope global dynamic noprefixroute eth0\n\t\tvalid_lft 1352sec preferred_lft 1352sec\n\tinet6 fe80::ddee:b0b1:4eba:a325/64 scope link noprefixroute\n\t\tvalid_lft forever preferred_lft forever\n")
#ifconfig
elif user_command == "ifconfig":
print(f"eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500\n\t\tinet {ip_address} netmask 255.255.255.0 broadcast {ip_address[11]}255\n\t\tinet6 fe80::ddee:b0b1:4eba:a325 prefixlen 64 scopeid 0x20<link>\n\t\tether 00:0c:29:8d:c8:c7 txqueuelen 1000 (Ethernet)\n\t\tRX packets 15365 bytes 11656761 (11.1 MiB)\n\t\tRX errors 0 dropped 0 overruns 0 frame 0\n\t\tTX packets 6755 bytes 774844 (756.6 KiB)\n\t\tTX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\nlo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536\n\t\tinet 127.0.0.1 netmask 255.0.0.0\n\t\tinet6 ::1 prefixlen 128 scopeid 0x10<host>\n\t\tloop txqueuelen 1000 (Local Loopback)\n\t\tRX packets 71 bytes 30169 (29.4 KiB)\n\t\tRX errors 0 dropped 0 overruns 0 frame 0\n\t\tTX packets 71 bytes 30169 (29.4 KiB)\n\t\tTX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n")
elif user_command == "":
print()
#没有权限!
else:
print(f"{user_command}: permission denied")
#如果是root权限无限制
elif user_type == "root":
#su
if user_command == "su":
# 切换到 root 用户,输入 root 密码
OS_password = input("password:")
if OS_password == "toor":
print(f"Switching to root user")
user_type = "root" # 切换到 root 用户
OS_username = "root"
else:
print("Login incorrect")
#sudo
elif user_command == f"sudo {user_command[5:]}":
# sudo 切换到 root 用户,输入 van 密码
if user_command[5:] == "su":
OS_password = input("password:")
if OS_password == "a1b2c33.":
print(f"Switching to root user")
user_type = "root" # 切换到 root 用户
OS_username = "root"
else:
print("Login incorrect")
elif user_command[5:] == "root":
OS_password = input("password:")
if OS_password == "toor":
print(f"Switching to root user")
user_type = "root" # 切换到 root 用户
OS_username = "root"
else:
print("Login incorrect")
elif user_command[5:] == "van":
print(f"Switching to root user")
user_type = "van" # 切换到 root 用户
OS_username = "van"
else:
print(f"There is no user {user_command[5:]}")
#ip add
elif user_command == "ip add":
print(f"1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000\n\tlink/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\n\tinet 127.0.0.1/8 scope host lo\n\t\tvalid_lft forever preferred_lft forever\n\tinet6 ::1/128 scope host noprefixroute\n\t\tvalid_lft forever preferred_lft forever\n2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000\n\tlink/ether 00:0c:29:8d:c8:c7 brd ff:ff:ff:ff:ff:ff\n\tinet {ip_address}/24 brd 192.168.10.255 scope global dynamic noprefixroute eth0\n\t\tvalid_lft 1352sec preferred_lft 1352sec\n\tinet6 fe80::ddee:b0b1:4eba:a325/64 scope link noprefixroute\n\t\tvalid_lft forever preferred_lft forever\n")
#ifconfig
elif user_command == "ifconfig":
print(f"eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500\n\t\tinet {ip_address} netmask 255.255.255.0 broadcast {ip_address[11]}255\n\t\tinet6 fe80::ddee:b0b1:4eba:a325 prefixlen 64 scopeid 0x20<link>\n\t\tether 00:0c:29:8d:c8:c7 txqueuelen 1000 (Ethernet)\n\t\tRX packets 15365 bytes 11656761 (11.1 MiB)\n\t\tRX errors 0 dropped 0 overruns 0 frame 0\n\t\tTX packets 6755 bytes 774844 (756.6 KiB)\n\t\tTX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\nlo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536\n\t\tinet 127.0.0.1 netmask 255.0.0.0\n\t\tinet6 ::1 prefixlen 128 scopeid 0x10<host>\n\t\tloop txqueuelen 1000 (Local Loopback)\n\t\tRX packets 71 bytes 30169 (29.4 KiB)\n\t\tRX errors 0 dropped 0 overruns 0 frame 0\n\t\tTX packets 71 bytes 30169 (29.4 KiB)\n\t\tTX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\n")
#监听
elif user_command == f"tcpdump -i eth0 port {user_command[21:]}":
duankou = user_command[21:]
print("tcpdump将在后台继续运行!")
print("接下来请安装内网穿透软件和DNS劫持软件")
print("思路:网站启动后只能在内网访问(局域网),需要进行内网穿透,将网站IP地址穿透至外网,使对方能够访问,\n\t随后使用DNS劫持某网站的域名,绑定至内网穿透后的IP地址,用合适的理由让目标访问域名即可监听到对方IP。\n")
print("打开网站(打开apache2服务) 下载内网穿透(下载AdminLAN) 下载DNS劫持(下载DNS-HJ)\n")
#启动apache2
elif user_command == "systemctl start apache2":
apache2 = "YES"
print()
#查看apache2
elif user_command == "systemctl status apache2":
if apache2 == "YES":
print("● apache2.service - The Apache HTTP Server\n\t Loaded: loaded (/lib/systemd/system/apache2.service; disabled; preset: disabled)\n\t Active: active (running) since Sat 2024-10-05 12:54:12 EDT; 1s ago\n\t Docs: https://httpd.apache.org/docs/2.4/\n\tProcess: 218682 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)\n Main PID: 218686 (apache2)\n\t Tasks: 6 (limit: 2255)\n\t Memory: 13.2M\n\t\tCPU: 60ms\n\t CGroup: /system.slice/apache2.service\n\t\t ├─218686 /usr/sbin/apache2 -k start\n\t\t ├─218697 /usr/sbin/apache2 -k start\n\t\t ├─218698 /usr/sbin/apache2 -k start\n\t\t ├─218699 /usr/sbin/apache2 -k start\n\t\t ├─218700 /usr/sbin/apache2 -k start\n\t\t └─218701 /usr/sbin/apache2 -k start\n\nOct 05 12:54:12 kali systemd[1]: Starting apache2.service - The Apache HTTP Server...\nOct 05 12:54:12 kali apachectl[218685]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the >\nOct 05 12:54:12 kali systemd[1]: Started apache2.service - The Apache HTTP Server.\n")
print()
else:
print("○ apache2.service - The Apache HTTP Server\n\t Loaded: loaded (/lib/systemd/system/apache2.service; disabled; preset: disabled)\n\t Active: inactive (dead)\n\t Docs: https://httpd.apache.org/docs/2.4/\n\nOct 05 06:55:26 kali systemd[1]: Starting apache2.service - The Apache HTTP Server...\nOct 05 06:55:26 kali apachectl[42171]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the '>\nOct 05 06:55:26 kali systemd[1]: Started apache2.service - The Apache HTTP Server.\nOct 05 12:35:42 kali systemd[1]: Stopping apache2.service - The Apache HTTP Server...\nOct 05 12:35:42 kali apachectl[209492]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the >\nOct 05 12:35:42 kali systemd[1]: apache2.service: Deactivated successfully.\nOct 05 12:35:42 kali systemd[1]: Stopped apache2.service - The Apache HTTP Server.\nOct 05 12:35:42 kali systemd[1]: apache2.service: Consumed 1.087s CPU time.\n")
print()
#重启apache2
elif user_command == "systemctl restart apache2":
apache2 = "YES"
print()
#关闭apache2
elif user_command == "systemctl stop apache2":
apache2 = "NO"
print()
#安装DNS劫持工具
elif user_command == "yum install DNS-HJ":
if dns_HJ == "NO":
print()
fake_progress_bar(50,"DNS-HJ") # 创建一个进度条
print()
time.sleep(3)
print("打开内网穿透工具 [ALAN -o]\n")
dns_HJ = "YES"
else:
print("Reading package lists... Done\nBuilding dependency tree... Done\nReading state information... Done\nDNS-HJ is already the newest version (2:10.3.1672-1).\nDNS-HJ set to manually installed.\n0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.\n")
#安装内网穿透工具
elif user_command == "yum install AdminLAN":
if AdminLAN == "NO":
print()
fake_progress_bar(50,"AdminLAN") # 创建一个进度条
print()
time.sleep(3)
print("接着下载DNS劫持工具 DNS-HJ\n")
AdminLAN = "YES"
else:
print("Reading package lists... Done\nBuilding dependency tree... Done\nReading state information... Done\nAdminLAN is already the newest version (2:3.9.126-3).\nAdminLAN set to manually installed.\n0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.\n")
#打开内网穿透
elif user_command == "ALAN -o":
if AdminLAN == "YES":
print("AdminLAN 3.9.126-3")
print()
AdminLAN_zt = "启动"
while 1:
moren = input("是否采用默认配置?(Y/N)")
if moren == "Y":
print()
fake_progress_bar_config(25,"配置中...") # 创建一个进度条
print()
print(f"局域网IP:{ip_address} 穿透后IP:19.48.227.57")
ip_cth = "19.48.227.57"
print("自动配置完成, 正在退出...")
print()
print("打开DNS-HJ工具!")
AdminLAN_zt_config = "已配置完成"
break
elif moren == "N":
print("版本落后不支持自定义!")
print()
else:
print("(Y/N)")
print()
else:
print(f"{user_command}: command not found")
print()
#打开DNS劫持
elif user_command == "DNS-HJ -o":
if AdminLAN_zt_config == "已配置完成":
if dns_HJ == "YES":
print("---------------------------------")
print("""
________ ___ _ __________ _ _ _______
| _____ \ | \ | | / ________/ | | | | |_____ |
| | \ \ | |\ \ | | / / | | | | | |
| | | | | | \ \ | | \ \_______ _________ | |______| | | |
| | | | | | \ \ | | \_______ \ |_________| | ______ | | |
| | | | | | \ \ | | \ \ | | | | _ | |
| |_____/ / | | \ \| | ________/ / | | | | \ \___/ |
|________/ |_| \___| /_________/ |_| |_| \_____/
""")
print("---------------------------------")
print("DNS-HJ 10.3.1672-1")
print()
dns_HJ_zt = "启动"
while 1:
dns_HJ_command1 = input("请填写你要劫持的网站域名(www.xinhuanet.com):")
domain_name = dns_HJ_command1
dns_ip_address = resolve_dns(domain_name)
if dns_ip_address == "Unable to resolve the domain name":
print(f"The domain name {domain_name} cannot be resolved. Please try again.")
print()
continue # 如果解析失败,提示用户并继续循环
print(f"The IP address of {domain_name} is {dns_ip_address} (域名解析完成)")
print()
dns_HJ_command2 = input("请填写域名解析后的IP地址:")
if dns_HJ_command2 == dns_ip_address:
print()
else:
print("IP error")
print()
continue
dns_HJ_command3 = input("请填写伪装网站的IP地址(穿透后IP):")
if dns_HJ_command3 == ip_cth:
print(f"{domain_name} & {dns_ip_address} & {ip_cth} Domain name binding [success]")
print()
break # 如果IP地址匹配,跳出循环
else:
print("IP error")
print()
continue
input("回车退出")
print()
break
elif user_command == "":
print()
else:
print(f"{user_command}: command not found")
print()
else:
print("请先完成内网穿透配置!")
elif user_command == "":
print()
#没有命令
else:
print(f"{user_command}: command not found\n")
print("接下来开始钓鱼!")
while 1:
print()
print("----------------------------")
add_xuan_xiang = input(f"\nA.日常妆容的大师级技巧\n[https://{domain_name}/secrets]\n\nB.旋律魔法:揭秘音乐背后的奇妙世界!\n[https://{domain_name}/secrets]\n\nC.简单步骤打造立体五官\n[https://{domain_name}/secrets]\n\n请选择(A/B/C):")
print("\n----------------------------\n")
if add_xuan_xiang == "A":
time.sleep(8)
print("任务失败!目标不感兴趣!!!\n")
continue
elif add_xuan_xiang == "B":
time.sleep(4)
print("任务成功!目标已访问网页!!!\n")
break
elif add_xuan_xiang == "C":
time.sleep(8)
print("任务失败!目标不感兴趣!!!\n")
continue
print("很好! 我们看看之前的监听窗口")
print(f"┌──(root㉿kali)-[/home/kali]\n└─# tcpdump -i eth0 port {user_command[21:]}")
print("tcpdump: verbose output suppressed, use -v[v]... for full protocol decode")
print("listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes")
time.sleep(3)
print(f"06:57:26.112894 IP {ip_cth}.50556 > 13.104.211.190.http: Flags [S], seq 3853149759, win 64240, options [mss 1460,sackOK,TS val 849568677 ecr 0,nop,wscale 7], length 0")
time.sleep(4)
print(f"06:57:26.112973 IP {ip_cth}.50564 > 13.104.211.190.http: Flags [S], seq 2260737922, win 64240, options [mss 1460,sackOK,TS val 849568678 ecr 0,nop,wscale 7], length 0")
time.sleep(2)
print("06:57:26.211915 IP 13.104.211.190.50105 > a23-10-9-122.deploy.static.akamaitechnologies.com.http: Flags [S], seq 143740127, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0")
time.sleep(5)
print("06:57:26.212042 IP 13.104.211.190.50106 > a23-10-9-122.deploy.static.akamaitechnologies.com.http: Flags [S], seq 265446936, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0")
time.sleep(2)
print("06:57:26.212043 IP 13.104.211.190.50104 > a23-10-9-122.deploy.static.akamaitechnologies.com.http: Flags [S], seq 915765932, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0")
time.sleep(3)
print("06:57:26.212899 IP 13.104.211.190.50107 > a184-26-244-129.deploy.static.akamaitechnologies.com.http: Flags [S], seq 2251805380, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0")
time.sleep(4)
print("06:57:26.309834 IP a23-10-9-122.deploy.static.akamaitechnologies.com.http > 13.104.211.190.50105: Flags [S.], seq 2074029265, ack 143740128, win 64240, options [mss 1460], length 0")
time.sleep(3)
print("06:57:26.309995 IP 13.104.211.190.50105 > a23-10-9-122.deploy.static.akamaitechnologies.com.http: Flags [.], ack 1, win 64240, length 0")
time.sleep(4)
print("06:57:26.310129 IP 13.104.211.190.50105 > a23-10-9-122.deploy.static.akamaitechnologies.com.http: Flags [P.], seq 1:196, ack 1, win 64240, length 195: HTTP: GET /singletile/summary/alias/experiencebyname/today?market=zh-CN&tenant=amp&vertical=news HTTP/1.1")
time.sleep(2)
print("06:57:26.310245 IP a23-10-9-122.deploy.static.akamaitechnologies.com.http > 13.104.211.190.50105: Flags [.], ack 196, win 64240, length 0")
time.sleep(3)
print(f"06:57:26.362450 IP 13.104.211.190.http > {ip_cth}.50564: Flags [S.], seq 207578784, ack 2260737923, win 64240, options [mss 1460], length 0")
time.sleep(5)
print(f"06:57:26.362488 IP {ip_cth}.50564 > 13.104.211.190.http: Flags [.], ack 1, win 64240, length 0")
time.sleep(2)
print(f"06:57:26.362802 IP {ip_cth}.50564 > 13.104.211.190.http: Flags [P.], seq 1:417, ack 1, win 64240, length 416: HTTP: POST / HTTP/1.1")
time.sleep(3)
print(f"06:57:26.363094 IP 13.104.211.190.http > {ip_cth}.50564: Flags [.], ack 417, win 64240, length 0")
time.sleep(3)
print("...\n")
print("监听到访问者IP地址,开始定位吧!\n")
print("正在打开IP定位...")
driver = webdriver.Edge()
driver.get("https://ip.zxinc.org/ipquery/")
time.sleep(3)
print("在网页中输入IP地址!")
print("13.104.211.190")
while 1:
da_zhi_wei_zhi = input("进一步高精度定位(国家-省份-城市)")
if da_zhi_wei_zhi == "澳大利亚-新南威尔士州-悉尼":
print(f"13.104.211.190 & {da_zhi_wei_zhi}")
break
else:
print("眼睛不用可以捐了!")
print()
fake_progress_bar_ding_wei(50,"正在定位中...")
print()
print("谷歌地址如下")
print("500 Pacific Hwy, St Leonards NSW 2065 澳大利亚")
time.sleep(2)
driver.quit()
print("----------------------------")
print("第二章已完成! ")
print("----------------------------\n\n\n")
xuanze = "4"
elif xuanze == "4":
##############################################################################
#第三章:失踪的科长
#接受委托,查询目标失踪事件
##############################################################################
print("----------------------------")
print("第三章:失踪的科长 ")
print("查清楚新闻中失踪人员的去向和他的个人信息,以及背后的原因等等")
print("----------------------------")
time.sleep(5)
print(
"""\n
《高球市陆军总医院研究科科长离奇失踪,竟惊动高球市公安高层》\n
近日,高球市举办了一场科技研讨会,陆军总医院研究科科长汪金生作为代表出席会议,可是在研讨会结束后,汪金生离奇失踪,引起了北京各方的广泛关注。\n据悉,汪金生在失踪前曾前往会场街对面的一个小巷子,之后再也没出现过,附近监控也都因过于老旧导致无法使用,无从查起。
据知情人士透露,该负责人在医疗科技领域享有盛誉,此次失踪可能与他即将公布的一项重大研究成果有关。目前,高球市警方已经介入调查,初步排除了与任\n何境外势力的直接关联。警方呼吁公众提供线索,协助寻找该负责人。
科技研讨会的组织者表示,他们对此次事件感到非常意外,并强调会全力配合警方的调查工作。同时,他们也对嘉宾的失踪表示深切的关切,并希望他能尽快安全归来。
""")
time.sleep(10)
os.startfile(r"wangjinsheng.png")
time.sleep(5)
#打开数据库查询此人信息
print("\n\n\n用户:root 密码:toor\n\n")
print("Orenke Linux\n")
# 登录系统部分
while 1:
OS_username = input("Orenke login:")
if OS_username == "root": # root 用户登录
OS_password = input("password:")
if OS_password == "toor":
current_time = time.localtime()
ip_address = get_local_ip()
print(f"Last Login: Sat Dec 23 {current_time.tm_hour}:{current_time.tm_min}:{current_time.tm_sec} from ::ffff:{ip_address}")
user_type = "root" # 标记用户类型
print("打开威尔斯数据库 [Wells-Database -o]")
break
else:
print("Login incorrect")
continue
else:
OS_password = input("password:")
print("Login incorrect")
continue
di_3_zhang = 1
# 命令行部分
while 1:
if di_3_zhang >= 2:
break
user_command = input(f"┌──({OS_username}㉿Orenke)-[~]\n└─$ ")
print()
#ip add
if user_command == "ip add":
print(f"1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000\n\tlink/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\n\tinet 127.0.0.1/8 scope host lo\n\t\tvalid_lft forever preferred_lft forever\n\tinet6 ::1/128 scope host noprefixroute\n\t\tvalid_lft forever preferred_lft forever\n2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000\n\tlink/ether 00:0c:29:8d:c8:c7 brd ff:ff:ff:ff:ff:ff\n\tinet {ip_address}/24 brd 192.168.10.255 scope global dynamic noprefixroute eth0\n\t\tvalid_lft 1352sec preferred_lft 1352sec\n\tinet6 fe80::ddee:b0b1:4eba:a325/64 scope link noprefixroute\n\t\tvalid_lft forever preferred_lft forever\n")
#查询数据库
elif user_command == f"Wells-Database -o":
print("威尔斯数据库 Wells-Database 2.1.4287-3")
print("--------------------------------------------------------------")
print("""
__ __ _ _ ____ _
\ \ / /___ | || | ___ | _ \ | |__
\ \ /\ / // _ \| || |/ __| _____ | | | || '_ \
\ V V /| __/| || |\__ \|_____|| |_| || |_) |
\_/\_/ \___||_||_||___/ |____/ |_.__/
""")
print("--------------------------------------------------------------")
time.sleep(1)
print("\n欢迎进入威尔斯数据库! 我们重视您的隐私和数据安全! 在使用本数据库之前,请仔细阅读并遵守以下条款:\n\n")
time.sleep(1)
print("""您必须通过身份验证才能访问数据库,且您的登录凭证是私人的,不得与他人分享。本数据库包含敏感的公民信息,必须严格保密,任何未经授权的信息披露都可能导致法律责任。\n您只能将数据库中的信息用于合法和授权的目的,禁止任何形式的滥用、出售或用于非法活动。\n
我们努力确保数据的准确性,但用户应自行验证信息的准确性。如发现错误或不准确的数据,请及时报告。数据库会定期更新,以保持信息的最新状态,用户应定期检查,以确保使\n用的是最新数据。\n
我们采取了多种技术措施来保护数据安全,包括防火墙、加密和访问控制。用户应遵守所有技术安全协议,并在发现任何安全漏洞时立即报告。我们保留监控数据库使用情况的权利,\n以确保合规性和安全性,所有用户活动都可能被记录和审计。\n
用户对其账户下的所有活动负责,任何违反本须知的行为都可能导致账户被暂停或终止。如有任何疑问或需要帮助,请及时联系我们的支持团队。\n
尽管我们努力提供高质量的服务,但不保证数据库的无误性和可用性,对于因使用数据库而产生的任何损失,我们不承担责任。\n
通过继续使用威尔斯数据库,您表示已阅读、理解并同意遵守上述所有条款。如有违反,您将承担相应的法律责任。\n
威尔斯数据库团队\n""")
while 1:
print()
print("用户:root 密码:toor")
print()
print()
OS_username = input("Wells-Db login:")
if OS_username == "root": # root 用户登录
OS_password = input("password:")
if OS_password == "toor":
break
else:
print("Login incorrect")
continue
else:
OS_password = input("password:")
print("Login incorrect")
continue
print("WARNING! 您已以root用户身份登录威尔斯数据库!\n")
print("""作为root用户,您拥有极大的权力,同时也承担着重大的责任。任何疏忽或不当行为都可能导致不可逆转的后果。谨慎行事,确保您的操作符合最高的道德和法律标准。
威尔斯数据库团队\n""")
while 1:
cha_xun_nameuser = input("请输入你要查询的姓名:")
cha_xun_dianhua_Email = input("请输入辅助信息方便查询(电话/邮箱):")
if cha_xun_nameuser == "汪金生":
if cha_xun_dianhua_Email in ["wangjinsheng@bager.gq","926-1169-7428","92611697428"]:
print("""
+---------------+-----------+-----+---------------+-------------------+-----------------------+-----------------+-----------+
| Name | Birth | Sex | Tel | Address | Email | IDnumber | HitalkID |
+---------------+-----------+-----+---------------+-------------------+-----------------------+-----------------+-----------+
| Wang Jinsheng | 1997.6.27 | M | 926-1169-7428 | 高球市国兵路317号 | wangjinsheng@bager.gq | GQ4719970627849 | 293857382 |
+---------------+-----------+-----+---------------+-------------------+-----------------------+-----------------+-----------+
""")
break
else:
print("查询不到!")
elif cha_xun_nameuser == "郭靖":
if cha_xun_dianhua_Email in ["guojing217@bager.gq","357-6499-7421","35764997421"]:
print("""
+----------+-----------+-----+---------------+-------------------+---------------------+-----------------+-----------+
| Name | Birth | Sex | Tel | Address | Email | IDnumber | HitalkID |
+----------+-----------+-----+---------------+-------------------+---------------------+-----------------+-----------+
| Guo Jing | 1986.2.17 | M | 357-6499-7421 | 高球市宝塔路631号 | guojing217@bager.gq | GQ2119860217527 | 897764102 |
+----------+-----------+-----+---------------+-------------------+---------------------+-----------------+-----------+
""")
break
else:
print("查询不到!")
else:
print("查询不到!")
continue
print("打开打穿防住 [LockBreake -o]")
print("您已退出数据库, 谢谢使用!")
print()
#破解密码
elif user_command == "LockBreake -o":
print("打穿防住 LockBreake 7.1-3")
print("--------------------------------------------------------------")
print("""
_ _ ____ _
| | ___ ___| | _| __ ) _ __ ___ __ _| | _____
| | / _ \ / __| |/ | _ \| '__/ _ \/ _` | |/ / _ \
| |__| (_) | (__| <| |_) | | | __| (_| | | __/
|_____\___/ \___|_|\_|____/|_| \___|\__,_|_|\_\___|
""")
print("--------------------------------------------------------------")
print()
#密码赋值,给破解动画!
pojiemubiao = input("目标姓名")
if pojiemubiao == "汪金生":
correct_password_input = "970627Wang317"
print("获取到剪贴板内容, 开始破解程序!")
time.sleep(1)
#进度条
print_animated_shell()
#显示密码
print_animated_password(correct_password_input)
print("打开GQ-Email [GQ-Email -o]")
elif pojiemubiao == "郭靖":
correct_password_input = "19860217GUOjing"
print("获取到剪贴板内容, 开始破解程序!")
time.sleep(1)
#进度条
print_animated_shell()
#显示密码
print_animated_password(correct_password_input)
print("打开locating [locating -o]")
else:
print("剪贴板没有目标信息!")
#登录对方邮箱
elif user_command == "GQ-Email -o":
print("用户:van 密码:a1b2c33.")
print("尊敬的用户您好! GQ-Email 9.35-5")
while 1:
OS_username = input("GQ-Email login:")
if OS_username == "van":
OS_password = input("password:")
if OS_password == "a1b2c33.":
print("登陆成功")
break
else:
print("Login incorrect")
continue
else:
OS_password = input("password:")
print("Login incorrect")
continue
while 1:
while 1:
you_xiang2 = input("请输入你的邮箱号(务必真是有效,确保自己能收到邮件,否则后果自负): ")
Email_user = input("请输入对方邮箱地址:")
Email_passwd = input("请输入对方邮箱密码:")
if Email_user == "wangjinsheng@bager.gq":
if Email_passwd == "970627Wang317":
print("连接成功\n")
fake_progress_bar(50,"正在设置转发!")
break
else:
print("没有此用户或密码不正确!")
else:
print("没有此用户或密码不正确!")
# 发件人和收件人信息
sender_email = "2909073948@qq.com" #发送邮箱
receiver_email = you_xiang2 #目标邮箱
password = "kjbzndypkwladdcd" # 使用授权码
# 添加邮件正文
body = ["""
发件人:guojing217@bager.gq
收件人:wangjinsheng@bager.gq [终端编码:1102ADd356@]
汪金生,
汪先生,我之前和你说的,你考虑的怎么样?只要这条线打通了,我们都可以步步高升。如果...我会让你知道权力有什么用。
Guo Jing
高球市公安局 局长郭靖
2024年7月26日
""",
"""
发件人:NSC001@bager.gq
收件人:wangjinsheng@bager.gq [终端编码:1102ADd356@]
汪金生
您好!汪先生,您的举报已经受理,我们会派调查组前往调查,请您务必保护好自身安全!有必要情况可向军区领导陈勇寻求帮助!
National Supervision Commission
国家监察委
2024年7月29日
""",
"""
发件人:wangjinsheng@bager.gq
收件人:guojing217@bager.gq [终端编码:1493IqE188&]
郭靖,
抱歉,我不会和你同流合污,我的信仰和党性不允许我做这件事!还有,请你不要再联系我了,早点收手吧!
Wang Jinsheng
汪金生
2024年7月30日
"""]
for youxuanshunxu in range(0,3):
message = MIMEMultipart()
message["From"] = sender_email
message["To"] = receiver_email
message["Subject"] = f"转发邮件 ({youxuanshunxu+1})" # 邮箱标题
message.attach(MIMEText(body[youxuanshunxu], "plain")) # 邮箱正文
try:
# 连接到QQ SMTP服务器
with smtplib.SMTP("smtp.qq.com", 587) as server: # 使用587端口和STARTTLS
server.starttls() # 启动TLS加密
server.login(sender_email, password) # 使用邮箱和授权码登录
server.sendmail(sender_email, receiver_email, message.as_string())
print(f"第{youxuanshunxu+1}封邮件已发送成功!")
except smtplib.SMTPException as e:
pass
user_name_email_TF_jieshou = input("是否接收到邮件!(是/否)")
if user_name_email_TF_jieshou == "否":
continue
elif user_name_email_TF_jieshou == "是":
print()
print("请注意查收邮箱!")
print()
print("打开Hitalk [Hitalk -o]")
break
else:
print()
print("找骂是吧?\n")
continue
#聊天软件
elif user_command == "Hitalk -o":
guojing_HK = """
Zhangsheng:上钩了没?\n
Guojing:没,他还说要举报\n
Zhangsheng:蠢货!都让你小心点,别那么冒进,现在研究成果拿不到,还被举报\n
Guojing:现在怎么办?把他办了?\n
Zhangsheng:我不管你怎么做,我只要结果!如果上面来人了,知道怎么办吧?\n
Guojing:行,我知道了。
"""
wangjiinsheng_HK = """
Guojing:现在你有两个选择,一、把研究成果给我;二、你的老婆和孩子从我这跳下去,摔得到处都是脑浆!\n
Wangjinsheng:有什么事冲我来!祸不及家人!\n
Guojing:把研究成果交出来!\n
Wangjinsheng:研究成果是国家的,我不可能给你!\n
Guojing:这不要那不要,你他妈怎么就这么烦呢!你没的选,我也没有!\n
(视频:汪金生的老婆和孩子被推到烂尾楼的边缘,距离地面非常高)\n
Wangjinsheng:行!我给你!\n
Guojing:蓝桥路117号,到了之后我会给你打电话。
"""
wangjiinsheng_HKdh = """
[电话记录]:
Guojing:到了之后往左边小卖部旁的小巷子里走,走到底\n
Wangjinsheng:然后呢\n
Guojing:把东西放在信箱上\n
Wangjinsheng:放完之后往左边走,你会看到你老婆和孩子的\n
【一阵嘈杂的声音,汪金生似乎被装进了麻袋中】\n
Guojing:老实点!别他妈瞎动,再动一下白刀子进红刀子出。快开车!他妈的等菜呢?\n
Guojing:手机呢!\n
Wangjinsheng:我老婆孩子呢?!\n
Guojing:过会儿你就能和他们团聚了!\n
【郭靖在汪金生身上一顿摸索,找出了手机】\n
Wangjinsheng:郭靖你个王八蛋!你不讲信用...【中断】
"""
print("""
Hitalk -log [必填:Hitalk号 密码] #登陆账号
""")
print()
print("登录对方账号!")
print()
#聊天记录剧情
while 1:
Hk_Log = input(f"[{OS_username}@van Hitalk]# ")
print()
#郭靖
if Hk_Log == "Hitalk -log 897764102 19860217GUOjing":
print("郭 靖,登陆成功\n")
time.sleep(1)
print(guojing_HK)
break
#汪金生
elif Hk_Log == "Hitalk -log 293857382 970627Wang317":
print("汪金生,登陆成功\n")
time.sleep(1)
print(wangjiinsheng_HK)
print()
print()
print("情况危急,赶快定位目标手机")
print()
time.sleep(4)
print(wangjiinsheng_HKdh)
print()
print()
print("再看看郭靖的聊天记录!")
print()
print("先用数据库查完郭靖的个人信息, 打开威尔斯数据库 [Wells-Database -o]")
break
else:
continue
#定位汪金生手机位置
elif user_command == "locating -o":
while 1:
if di_3_zhang == 1:
Dingwei_shoujihao = input("请输入手机号:")
Dingwei_shoujiID = input("请输入手机终端编码:")
time.sleep(1)
print()
if Dingwei_shoujihao in ["926-1169-7428","92611697428"]:
if Dingwei_shoujiID == "1102ADd356@":
print("对方手机已关机!无法查询!\n")
else:
print("没有此设备\n")
elif Dingwei_shoujihao in ["357-6499-7421","35764997421"]:
if Dingwei_shoujiID == "1493IqE188&":
print("对方手机已加密,请完成破解!\n")
#html解密
time.sleep(1)
driver = webdriver.Edge()
driver.get(f'file:///{converted_path}/2048/index.html')
time.sleep(15)
tishi = 0
while 1:
pojie_key = input("输入破解密钥:")
if pojie_key == md5_key:
time.sleep(1)
print("高球市麻痹路高桥邦路415号") #打印地点
di_3_zhang = 2
driver.quit()
break
elif tishi >= 4:
print("蠢货!试试MD5解密")
print("https://www.somd5.com/")
else:
print(f"密钥不对!({tishi})")
tishi += 1
else:
print("没有此设备\n")
else:
print()
continue
else:
break
elif user_command == "":
print()
#没有命令
else:
print(f"{user_command}: command not found")
print()
time.sleep(1)
print("很好!现在上报地点,剩下的交给警察处理!")
while 1:
time.sleep(2)
user_daan3_1 = input("请输入地点:")
print()
if user_daan3_1 == "高球市麻痹路高桥邦路415号":
time.sleep(1)
user_daan3_2 = input("是谁绑走了汪金生:")
print()
if user_daan3_2 == "郭靖":
time.sleep(1)
user_daan3_3 = input("A.为了钱 B.为了研究成果 C.为了灭口 \n郭靖为什么要绑走汪金生:")
print()
if user_daan3_3 == "B":
break
else:
print("答案不对!!!\n")
else:
print("答案不对!!!\n")
else:
print("答案不对!!!\n")
#########################################################################################################################
body = f"""
发件人:[############]
收件人:{you_xiang2} [终端编码:###########]
Vincenzo Cassano,
这事和你有什么关系?非要搅和进来?一出好戏被你给搅黄了!你要付出应有代价的!
#### #######
Van
2024年8月10日
"""
message = MIMEMultipart()
message["From"] = sender_email
message["To"] = receiver_email
message["Subject"] = f"你这该死的虫子!" # 邮箱标题
message.attach(MIMEText(body, "plain")) # 邮箱正文
try:
# 连接到QQ SMTP服务器
with smtplib.SMTP("smtp.qq.com", 587) as server: # 使用587端口和STARTTLS
server.starttls() # 启动TLS加密
server.login(sender_email, password) # 使用邮箱和授权码登录
server.sendmail(sender_email, receiver_email, message.as_string())
except smtplib.SMTPException as e:
pass
time.sleep(5)
print("\n你收到一封新的邮件,请注意查收!\n")
#########################################################################################################################
time.sleep(10)
print("恭喜通关! 您已完成第三章内容!\n\n\n")
xuanze = "5"
elif xuanze == "5":
##############################################################################
#终章:反击!
#继上次的失踪事件后,那封邮件的发件人不知什么时候入侵了你的计算机,现在需要将他干掉
##############################################################################
# 获取当前工作目录
current_directory = os.getcwd()
converted_path = current_directory.replace("\\", "/")
ip_address = get_local_ip()
# 打印当前工作目录
print("当前工作目录是:", converted_path)
print("\n\n")
time.sleep(10)
print("----------------------------")
print("终章:反击!")
print("继上次的失踪事件后,那封邮件的发件人不知什么通过什么方式入侵了你的计算机,现在你需要将他干掉")
print("----------------------------\n")
print("现在建立隔离区加固防火墙!")
time.sleep(3)
print("""
游戏规则:
接下来游戏区域中会出现红色的攻击字样, 可以通过鼠标将其点掉。
一旦攻击到蓝色区域(隔离区)就会扣除防火墙防御值, 一次扣2防御值, 防御值过低时可以通过消耗8点内存加固防火墙, 加固值为100。
内存恢复速度为8~10秒1个, 上限为12。\n
坚持到倒计时结束即可胜利!\n\n""")
time.sleep(15)
#建立隔离区加固防火墙
zhuang_tai = 2
siwang_jishu = 0
while 1:
if siwang_jishu >= 5:
print("你太菜了,给你降低难度")
time.sleep(2)
driver = webdriver.Edge()
driver.get(f'file:///{converted_path}/firewalld2.html')
else:
time.sleep(1)
driver = webdriver.Edge()
driver.get(f'file:///{converted_path}/firewalld.html')
while 1:
time.sleep(6)
sou_suo_input = driver.find_element(By.XPATH, '//*[@id="status"]')
status_text = sou_suo_input.text
# 检查文本内容是否等于"防御加固失败"
if status_text == "状态:防御加固失败!":
print("防御加固失败!!!!")
time.sleep(2)
driver.quit()
print("废物! 给你机会你也不中用! ")
input("按下回车重来")
siwang_jishu += 1
zhuang_tai = 0
break
elif status_text == "状态:防御加固成功!":
print("\n很好!现在连接主机B试试看! [ssh uvu@116.47.82.19 -p 65533]")
print()
time.sleep(2)
driver.quit()
zhuang_tai = 1
break
if zhuang_tai == 1:
break
elif zhuang_tai == 0:
continue
driver.quit()
#连接主机B
main()
print("看来只能使用自己做的KiVPN了,B主机被对方盯上了,想连上是不太可能的了。")
time.sleep(2)
print("先扫描一下周围还有没有存活主机(不要使用ICMP协议进行扫描!!!)")
print("""
nmap [参数] [IP]
-Pn 跳过主机发现 直接扫描端口
-sS 进行SYN扫描,不使用ping扫描网络
-p- 指定端口扫描-p-指1-65535端口\n
IP:116.47.82.19/24\n""")
print("\n\n\n用户:root 密码:toor")
print("Orenke Linux\n")
# 登录系统部分
while 1:
OS_username = input("Orenke login:")
if OS_username == "root": # root 用户登录
OS_password = input("password:")
if OS_password == "toor":
break
else:
print("Login incorrect")
continue
else:
OS_password = input("password:")
print("Login incorrect")
continue
current_time = datetime.now() # 获取当前时间(默认为系统时区)
est_tz = pytz.timezone('America/New_York') # 设置时区为美国东部时间(EST)
current_time_est = current_time.astimezone(est_tz) # 将当前时间转换为EST时区
formatted_time = current_time_est.strftime('%Y-%m-%d %H:%M:%S'+' EST') # 格式化输出年月日和时间
Ki_break = 0
while 1:
if Ki_break == 1:
break
user_command = input(f"┌──({OS_username}㉿Orenke)-[~]\n└─$ ")
print()
#ip add
if user_command == "ip add":
print(f"1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000\n\tlink/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\n\tinet 127.0.0.1/8 scope host lo\n\t\tvalid_lft forever preferred_lft forever\n\tinet6 ::1/128 scope host noprefixroute\n\t\tvalid_lft forever preferred_lft forever\n2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000\n\tlink/ether 00:0c:29:8d:c8:c7 brd ff:ff:ff:ff:ff:ff\n\tinet {ip_address}/24 brd 192.168.10.255 scope global dynamic noprefixroute eth0\n\t\tvalid_lft 1352sec preferred_lft 1352sec\n\tinet6 fe80::ddee:b0b1:4eba:a325/64 scope link noprefixroute\n\t\tvalid_lft forever preferred_lft forever\n")
elif user_command in ["nmap -sS -p- 116.47.82.19/24","nmap -p- 116.47.82.19/24","nmap 116.47.82.19/24","nmap -sS 116.47.82.19/24"]:
print("都说了让你别用Ping包ICMP协议扫描!!!你是唐氏儿童吗?")
elif user_command in ["nmap -Pn -sS 116.47.82.19/24","nmap -Pn 116.47.82.19/24","nmap -sS -Pn 116.47.82.19/24"]:
print("不错,但是建议用 [nmap -Pn -sS -p- 116.47.82.19/24]")
elif user_command in ["nmap -Pn -sS -p- 116.47.82.19/24","nmap -sS -Pn -p- 116.47.82.19/24","nmap -Pn -p- -sS 116.47.82.19/24","nmap -p- -Pn -sS 116.47.82.19/24","nmap -sS -p- -Pn 116.47.82.19/24"]:
print(f"Starting Nmap 7.94 ( https://nmap.org ) at {formatted_time}")
time.sleep(8.43)
print("""
Nmap scan report for 116.47.82.240
Host is up (0.00058s latency).
Not shown: 65513 closed tcp ports (reset)
PORT STATE SERVICE
2024/tcp open Kivpn
MAC Address: 00:50:56:C0:00:08 (Orenke)\n
Nmap done: 256 IP addresses (4 hosts up) scanned in 8.43 seconds\n""")
print("打开KiVPN工具进行连接 [KiVPN -o]")
elif user_command == "KiVPN -o":
print("-----------------------------------------------")
print("""
_ __ ___ __ __ ____ _ _
| |/ /|_ _|\ \ / /| _ \ | \ | |
| ' / | | \ \ / / | |_) || \| |
| . \ | | \ V / | __/ | |\ |
|_|\_\|___| \_/ |_| |_| \_|
""")
print("-----------------------------------------------\n")
print("""
KI命令行软件帮助文档
概述:
KI是一款功能强大的命令行软件,旨在为用户提供快速、便捷的命令执行和管理。
命令格式:
KI [选项] [参数]
选项说明:
-p:指定端口号。
USER:指定用户名。
IP:指定用户IP地址。
参数说明:
2024:示例参数,代表特定的年份或标识符。
使用示例:
要使用KI软件连接到指定IP的用户,并指定端口号2024,可以使用以下命令:
KI -p 2024 USER@IP\n""")
print("用户:ucu 密码:a1b2c33.")
while 1:
KI_lianjie = input("> ")
if KI_lianjie == "KI -p 2024 ucu@116.47.82.240":
break
else:
print("命令错误或没有此目标!\n")
continue
while 1:
KI_passwd = input("password: ")
if KI_passwd == "a1b2c33.":
print("连接成功!!!\n")
Ki_break = 1
time.sleep(2)
print("很好!现在要做的就是加固傀儡机的防火墙和安全策略\n")
time.sleep(2)
print("我记得这台主机有自动化脚本,找到并运行就可以了!\n")
time.sleep(2)
print("容我想想...\n")
time.sleep(2)
print("好像叫什么 GreatWall 什么的...放在哪里我也忘了") #GreatWall-Safety
break
else:
print("密码错误!!!\n")
continue
else:
print("滚蛋")
ssh_break = 0
while 1:
if ssh_break == 1:
break
user_command = input(f"┌──({OS_username}㉿Orenke)-[~]\n└─$ ")
print()
if user_command == "ip add":
print(f"1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000\n\tlink/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\n\tinet 127.0.0.1/8 scope host lo\n\t\tvalid_lft forever preferred_lft forever\n\tinet6 ::1/128 scope host noprefixroute\n\t\tvalid_lft forever preferred_lft forever\n2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000\n\tlink/ether 00:0c:29:8d:c8:c7 brd ff:ff:ff:ff:ff:ff\n\tinet {ip_address}/24 brd 192.168.10.255 scope global dynamic noprefixroute eth0\n\t\tvalid_lft 1352sec preferred_lft 1352sec\n\tinet6 fe80::ddee:b0b1:4eba:a325/64 scope link noprefixroute\n\t\tvalid_lft forever preferred_lft forever\n")
elif user_command == 'find / -name "GreatWall*"':
print("""
/home/user/GreatWallu/
/home/user/GreatWallu/GreatWall-Safety.sh\n""")
print("快运行! [/home/user/GreatWallu/GreatWall-Safety.sh]\n")
elif user_command == "/home/user/GreatWallu/GreatWall-Safety.sh":
print("长城-安全:正在初始化", end='\r')
time.sleep(2) # 等待2秒
print("长城-安全:现在你的电脑处于最强防护状态,只出不进!\n")
print("现在往回连接,将计算机防火墙重新加固修补漏洞,有现成的工具!\n[ssh root@116.47.82.200] 密码:toor\n")
elif user_command == "ssh root@116.47.82.200":
while 1:
ssh_passwd = input("password: ")
if ssh_passwd == "toor":
ssh_break = 1
print("\n快运行! [Auto-security -urgent]")
break
else:
print("滚蛋")
auto = 0
diyici = 0
while 1:
if auto == 1:
break
user_command = input(f"┌──({OS_username}㉿Orenke)-[~]\n└─$ ")
print()
if user_command == "ip add":
print(f"1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000\n\tlink/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\n\tinet 127.0.0.1/8 scope host lo\n\t\tvalid_lft forever preferred_lft forever\n\tinet6 ::1/128 scope host noprefixroute\n\t\tvalid_lft forever preferred_lft forever\n2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000\n\tlink/ether 00:0c:29:8d:c8:c7 brd ff:ff:ff:ff:ff:ff\n\tinet {ip_address}/24 brd 192.168.10.255 scope global dynamic noprefixroute eth0\n\t\tvalid_lft 1352sec preferred_lft 1352sec\n\tinet6 fe80::ddee:b0b1:4eba:a325/64 scope link noprefixroute\n\t\tvalid_lft forever preferred_lft forever\n")
elif user_command == 'Auto-security -urgent':
while 1:
if diyici == 0:
print("请选择修复工具:\n1. 自动修复工具(成功率90%)\n2. 手动修复工具(成功率100%,但需输入多个命令)")
choice = input("输入选项(1或2):")
if choice == "1":
if random.randint(1, 10) > 4: # 60%成功率
print("防火墙加固完成!系统修复成功!")
auto = 1
break
else:
print("自动修复失败!请使用手动修复工具!")
diyici = 1
elif choice == "2":
print("手动修复开始,请输入以下命令:\n'fix-vulnerability'\n'patch-firewall'")
while True:
cmd = input("> ")
if cmd == "fix-vulnerability":
print("漏洞修复完成!请输入下一步命令:")
elif cmd == "patch-firewall":
print("防火墙加固完成!系统修复成功!")
auto = 1
break
else:
print("无效命令,请重试!")
else:
print("无效选项!")
else:
print("手动修复开始,请输入以下命令:\n'fix-vulnerability'\n'patch-firewall'")
while True:
cmd = input("> ")
if cmd == "fix-vulnerability":
print("漏洞修复完成!请输入下一步命令:")
elif cmd == "patch-firewall":
print("防火墙加固完成!系统修复成功!")
auto = 1
break
else:
print("无效命令,请重试!")
else:
print("滚蛋")
#################################################################################################
print("\n攻守易形了,打响反击!\n")
##################################################################################################
print("之前那封邮件的发件地址被特殊加密了,但是难不倒我,对方地址为: 174.208.92.74 终端编码[5160Vat776@]")
print("打开nmap扫描一下! [nmap -A -p- 174.208.92.74]")
tiaochu = 0
while 1:
if tiaochu == 1:
break
user_command = input(f"┌──({OS_username}㉿Orenke)-[~]\n└─$ ")
print()
if user_command == "nmap -A -p- 174.208.92.74":
print(f"Starting Nmap 7.94 ( https://nmap.org ) at {formatted_time}")
time.sleep(10.13)
#nmap -A -p- 174.208.92.74
print("""
Nmap scan report for 174.208.92.74
Host is up (0.00058s latency).
Not shown: 65532 closed ports
PORT STATE SERVICE VERSION
111/tcp open rpcbind 2-4 (RPC #100000)
| rpcinfo:
| program version port/proto service
| 100000 2,3,4 111/tcp rpcbind
| 100000 2,3,4 111/udp rpcbind
| 100000 3,4 111/tcp6 rpcbind
| 100000 3,4 111/udp6 rpcbind
| 100024 1 39081/udp status
| 100024 1 44151/udp6 status
| 100024 1 48748/tcp6 status
|_ 100024 1 49807/tcp status
49807/tcp open status 1 (RPC #100024)
65535/tcp open ssh OpenSSH 6.7p1 Debian 5+deb8u2 (protocol 2.0)
| ssh-hostkey:
| 1024 f3:53:9a:0b:40:76:b1:02:87:3e:a5:7a:ae:85:9d:26 (DSA)
| 2048 9a:a8:db:78:4b:44:4f:fb:e5:83:6b:67:e3:ac:fb:f5 (RSA)
| 256 c1:63:f1:dc:8f:24:81:82:35:fa:88:1a:68:73:40:24 (ECDSA)
|_ 256 3b:4d:56:37:5e:c3:45:75:15:cd:85:00:4f:8b:a8:5e (ED25519)
MAC Address: 00:50:56:C0:00:08 (Oracle NIC)
Device type: general purpose
Running: Linux 3.X|4.X
0S CPE: cpe:/o:linux:linux kernel:3 cpe:/o:linux:linux kernel:4
0S details: Linux 3.2 - 4.9
Network bistance: 1 hop
Service Info: os: Linux; CPE: cpe:/o:linux:linux kernel
TRACEROUTE
HOP RTT ADDRESS
1 1.63 ms 174.208.92.74
Nmap done: 256 IP addresses (4 hosts up) scanned in 10.13 seconds
\n\n""")
print("对方的ssh服务端口从默认的22更改为了65525,不要紧,咱们见缝插针!")
time.sleep(2)
print("连接这个端口看看! [ssh 174.208.92.74 -p 65535]")
#登录ssh,但是端口仅仅只是开放并不能登录进去
elif user_command == "ssh 174.208.92.74 -p 65535":
print("""
The authenticity of host"[174.208.92.74]:65535 ([174.208.92.74]:65535)' can't be established.
ECDSA key fingerprint is SHA256:r3uJxHJmvGvDbfVHOY90E05UAQNeokBIsxs6eDNpEdU.""")
input("Are you sure you want to continue connecting (yes/no/[fingerprint])? ")
print("Warning: Permanently added '[174.208.92.74]:65535' (ECDSA) to the list of known hosts.\n")
print("""
###########################################################################
# Welcome to Initech Cyber Consulting, LLC #
# All connections are monitored and recorded #
# Unauthorized access is encouraged#
# Peter, if that's you - the password is in the source. #
# Also, stop checking your blog all day and enjoy your vacation! #
###########################################################################\n""")
while 1:
ssh_user3 = input("username: ")
ssh_pass3 = input("password: ")
if ssh_user3 == "Peter":
if ssh_pass3 == "inthesource":
print("登录成功!")
time.sleep(1)
print("断开连接!")
time.sleep(2)
print("再次扫描对方IP [nmap 174.208.92.74]")
break
else:
print("密码错误!")
else:
print("用户名错误!")
#再次扫描发现对方打开了80端口
elif user_command == "nmap 174.208.92.74":
print(f"Starting Nmap 7.80 ( https://nmap.org ) at {formatted_time}")
time.sleep(0.71)
print("""
Nmap scan report for 174.208.92.74
Host is up (0.00058s latency).
Not shown: 998 closed ports
PORT STATE SERVICE
80/tcp open http
111/tcp open rpcbind
MAC Address: 00:50:56:C0:00:08 (Oracle NIC)\n
Nmap done: 1 IP addresses (1 hosts up) scanned in 0.71 seconds\n\n""")
print("对方打开了80端口?扫描对方网站目录看看! [dirb http://174.208.92.74/]")
#扫描网站更目录,发现对方后台管理页面,再次使用ssh用户和密码成功登录进入后台管理
elif user_command == "dirb http://174.208.92.74/":
lines = [
"-----------------",
"DIRB v2.22",
"By The Dark Raver",
"-----------------\n",
"START_TIME: Mon Dec 16 10:22:05 2024",
"URL_BASE: https://174.208.92.74/",
"WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt",
"\n-----------------\n",
"GENERATED WORDS: 4612\n",
"---- Scanning URL: https://174.208.92.74/ ----",
"+ https://174.208.92.74/.bash_history (CODE:412|SIZE:1886)",
"+ https://174.208.92.74/.svn/entries (CODE:412|SIZE:1886)",
"==> DIRECTORY: https://174.208.92.74/audio/",
"+ https://174.208.92.74/crossdomain.xml (CODE:200|SIZE:736)",
"+ https://174.208.92.74/favicon.ico (CODE:200|SIZE:4286)",
"+ https://174.208.92.74/history (CODE:200|SIZE:4457)",
"==> DIRECTORY: https://174.208.92.74/home/",
"==> DIRECTORY: https://174.208.92.74/html/",
"+ https://174.208.92.74/index.html (CODE:200|SIZE:10060)",
"+ https://174.208.92.74/index.php (CODE:200|SIZE:4828)",
"+ https://174.208.92.74/robots.txt (CODE:200|SIZE:559)",
"==> DIRECTORY: https://174.208.92.74/login/",
"+ https://174.208.92.74/login/.bash_log (CODE:412|SIZE:1886)",
"+ https://174.208.92.74/login/.svn/entries (CODE:412|SIZE:1886)",
"+ https://174.208.92.74/login/adminlogin.html (CODE:302|SIZE:169)",
"+ https://174.208.92.74/login/userlogin.html (CODE:302|SIZE:169)",
"==> DIRECTORY: https://174.208.92.74/video/",
"\n......\n",
"-----------------",
"END_TIME: Mon Dec 16 11:19:13 2024",
"DOWNLOADED: 96852 - FOUND: 74\n\n\n"]
delay = 0.25 # 0.25秒的时间间隔
for line in lines:
print(line)
time.sleep(delay)
print("这里可以发现“https://174.208.92.74/login/”有登录目录页\n")
time.sleep(1.2)
print("再往下看发现有“https://174.208.92.74/login/adminlogin.html”管理员登录页\n")
time.sleep(1.2)
print("登录进入后台管理看看 [lynx https://174.208.92.74/login/adminlogin.html]\n")
#发现网站目录有一个本用户可以读写执行的文件夹,随后上传提权脚本
elif user_command == "lynx https://174.208.92.74/login/adminlogin.html":
while 1:
time.sleep(1)
driver = webdriver.Edge()
driver.get(f'file:///{converted_path}/login/adminlogin.html')
print("用户:Peter 密码:inthesource")
print("登录后台管理系统")
time.sleep(2)
print("寻找能够读写执行的文件夹")
time.sleep(3)
print("太棒了,对方竟然有漏洞,进入文件夹上传我提前制作好的后门文件上传")
time.sleep(3)
input("是否上传文件?(回车下一步)")
time.sleep(3)
try:
sou_suo_input = driver.find_element(By.XPATH, '/html/body/table/tbody/tr[22]/td[1]')
status_text = sou_suo_input.text
# 检查文本内容是否等于"上传成功!"
if status_text == "shell.php":
print("上传成功!")
print("输入反弹shell [nc -lvvp 2024]")
break
else:
print("没有成功!")
continue
except:
continue
#获取对方的root权限,
elif user_command == "nc -lvvp 2024":
print("listening on [any] 2024 ...")
print("shell反弹成功了!查看一下当前账户权限! [id]")
ip_address = get_local_ip()
print(f'connect to [{ip_address}] from (UNKNOWN) [174.208.92.74] 38396')
while 1:
shell_id = input("> ")
if shell_id == "id":
print("uid=0(root) gid=0(root) groups=0(root)")
print("现在是时候给对方最后一击了! [rm -rf /*]")
#执行rm -rf / 清除了对方系统根目录,彻底瘫痪对方。
elif shell_id == "rm -rf /*":
print("警告:正在删除系统根目录...")
time.sleep(1)
files = ["/bin", "/etc", "/usr", "/var", "/home", "/dev", "/tmp", "/boot", "/lib", "/root"]
for file in files:
print(f"删除中... {file}")
time.sleep(0.5)
print("\n[错误] 系统文件已被删除,系统正在崩溃...")
time.sleep(2)
os.system('cls' if os.name == 'nt' else 'clear')
print("\033[31m系统已彻底瘫痪,无法继续操作。\033[0m")
tiaochu = 1
break # 退出循环,结束程序
else:
print("没有命令!")
else:
print("滚蛋!\n")
print("\n干的漂亮!对方系统彻底瘫痪!\n")
time.sleep(2)
print("恭喜通关! 您已完成终章内容!\n\n\n")
break
print()
time.sleep(2)
print()
time.sleep(2)
print()
time.sleep(2)
print()
time.sleep(2)
print()
time.sleep(2)
print("""
亲爱的玩家,
游戏的旅程已经画上句点。
我设计这款游戏的初衷,是为了提醒每位玩家认识到网络信息安全的重要性。在数字时代,我们的个人信息无时无刻不在\n被传播。这些信息,虽然在大多数人看来可能并不具有太大的价值,但对于诈骗分子来说,却是一种宝贵的资源。
请记住,虽然网络黑客可能对普通人的个人信息不感兴趣,但诈骗分子却视其为金矿。他们利用这些信息实施诈骗,窃取\n身份,甚至进行更严重的犯罪活动。
通过这次游戏的经历,我们希望您能够提高对个人信息保护的意识,并在未来的网络活动中采取更加谨慎和安全的措施。
感谢您的参与,愿您在游戏中有所启发。
此致,
Vincent Cassano""")
time.sleep(6)
print("\n你在期待什么? 这种花了160小时左右写出来的屎山代码构成的弱鸡游戏程序, 你指望着后面还有内容?\n")
time.sleep(2)
print("如有其他问题或关于游戏BUG反馈可以通过邮箱与我联系,再次感谢您的游玩!!!")