Grey Hack

Grey Hack

Grey Hack

欢迎来到Grey Hack社区! 
30帖子·--新帖
游戏详情
全部
官方资讯
攻略创作
组队交友
问题反馈

本指南提供了一个用于保护游戏内家用电脑或服务器安全的脚本。 路径/安全漏洞说明: 过去两年,我无需费力进行黑客攻击就能轻松得手。原因很简单,人们经常使用通用或低质量的权限修改脚本。实际上,灰网中的大多数设备都可以通过直接下载根目录路径被轻松入侵。 攻击原理: 这种攻击方法很简单,先找到目标设备的访客漏洞(我通常针对路由器,它们大多使用通用的根密钥)。一旦进入系统,你需要将根目录文件夹复制到/guest/某个复制名称的文件夹中。完成复制后,只需通过scp将其传输到你的机器上。这样你就能访问服务器的所有文件,甚至无需用户或根权限认证。 如何修复,如何修改权限!我完全搞不懂,也没时间去学,或者说我就是理解不了。 放轻松,别担心。我编写了一个chmod安全脚本,可以保护你在游戏中的服务器和家用电脑。这个系统通过用户权限等级来运行,分为root等级3、用户等级2和访客等级1。 这是脚本。如果文件的所有者未注册,它会被设置为u---g---o---权限。 注意:请以root身份运行此脚本,因为这是一个管理脚本。否则,其作用范围将仅限于当前用户等级。

--
--
--
--

这个/bin/bash脚本既能添加bash历史记录功能,又能保证你的日志安全 操作方法: 将以下代码复制粘贴到代码编辑器中然后编译,编译完成后确保删除当前的/bin/bash并复制新的: cd /home/你的用户名/ CodeEditor.exe ——复制粘贴代码,然后保存并编译到/home/你的用户名/目录下—— ——返回终端—— sudo rm /bin/bash sudo cp ./bash /bin/bash 注意事项: Bash历史日志默认会写入当前运行用户的主目录"/home/用户名/"下的".bash_history"文件中。 当"bash_secure_log"设置为"true"时,日志还会保存到/etc/bash(或"r_secure_folder"变量中设置的其他路径),普通用户无法访问此文件夹,除非获得root权限。如果你希望启用此功能,请将'r_pass'设置为你的密码。未在脚本中通过'r_pass'变量设置sudo密码将禁用bash_secure_log功能。若要在远程计算机上使用bash_secure_log功能,请确保在远程机器上使用与编译代码时相同的密码,或者禁用bash_secure_log功能,和/或通过修改脚本中的'r_pass'变量,使用远程机器的新root/管理员密码重新编译。将'bash_history_log'设置为'false'将完全禁用历史日志功能。flag_init = 1。bash_secure_log = true //如果设置为'true',请确保检查'r_pass'变量并在其中设置你的root密码。bash_history_log = true //用于向用户打印调试/错误消息的函数 //可通过传入true/false值或省略第二个参数轻松启用或禁用 print_debug = function(str_message, debug_print=false) if ( debug_print == true ) then print(str_message) end if end function //必须向此函数传入一个已获取root权限的shell对象 //例如:r_shell = get_shell("root", r_pass) // return_value = is_root(r_shell) root_test_flag = true root_one_time_only = false is_root = function(r_shell) debug_print = true groupTest = "xaks32cbash" cmdStr = "root" + " " + groupTest is_root_v = false if ( r_shell != null) then root_groups_list = r_shell.host_computer.groups("root") if(root_groups_list.len >= 1) then for groups_v in root_groups_list.split(" n") if (groups_v.len < 1) then break if (groups_v == groupTest) then is_root_v = true break end if end for end if end if //仅在未找到组'xaks32_cbash'后测试一次'root' if ( is_root_v == false and globals.root_test_flag == true ) then print_debug(" ", debug_print) print_debug("---------------------------", debug_print) print_debug("正在设置BASH_SECURE_LOGS。", debug_print) if ( r_shell != null ) then r_shell.launch("/bin/groupadd", cmdStr) end if globals.root_test_flag = false is_root_v = is_root(r_shell) if( is_root_v == true ) then print_debug("设置完成!", debug_print) end if print_debug("---------------------------", debug_print) else if ( is_root_v == false and globals.root_test_flag == false and globals.root_one_time_only == false) then print_debug(" ", debug_print) print_debug("设置失败!secure_bash_logs 将不可用!", debug_print) print_debug("请查阅文档:n", debug_print) print_debug(" 【已屏蔽外部链接】", debug_print) print_debug(" ", debug_print) print_debug("---------------------------", debug_print) globals.root_one_time_only = true end if return is_root_v end function bash_history = function(command, shell_arguments) if (globals.bash_history_log == true) then log_filename = ".bash_history" log_file = "/home/" + active_user + "/" + log_filename current_content = "" if (active_user == "root") then log_file = "/root/" + log_filename end if file = get_shell.host_computer.文件(日志文件) //如果日志文件不存在则创建 如果 (文件 == 空) 那么 获取_外壳.启动("/bin/touch", 日志文件) 文件 = 获取_外壳.主机_计算机.文件(日志文件) 结束 如果 当前参数 = "[" + 活动用户 + "] - " + 当前日期 + " - " + 当前路径 + ": n: " + 命令 + " " + 外壳参数 + " n--- n" //如果日志文件打开未失败,则设置其新内容: 如果 (文件 != 空) 那么 当前内容 = 文件.获取_内容 + " n" 当前内容 = 当前内容 + 当前参数 文件.设置_内容(当前内容) 结束 如果 如果 (全局变量. bash_安全_日志 == 真) 那么 r_安全_文件夹 = "/etc/bash" r_历史_文件 = r_安全_文件夹 + "/" + 日志_文件名 r_密码 = "" r_外壳 = 获取_外壳("root", r_密码) 如果 ( 是_root(r_外壳) == 真 ) 那么 r_文件 = r_外壳.主机_计算机.文件(r_hist_file) r_folder = r_shell.host_computer.文件(r_secure_folder) //如果'r_secure_folder'不存在则创建它。 如果 (r_folder == null) 那么 r_shell.启动("/bin/mkdir", r_secure_folder) r_folder = r_shell.host_computer.文件(r_secure_folder) 结束 如果 //确保在文件已被删除或尚不存在的情况下创建文件。 如果 (r_folder.is_folder == true) 那么 如果 (r_file == null) 那么 r_shell.启动("/bin/touch", r_hist_file) r_file = r_shell.host_computer.文件(r_hist_file) 结束 如果 结束 如果 如果 (r_file != null) 那么 //检查权限是否已更改,如果已修改则将其改回 如果 (r_file.permissions != "-rwx------") 那么 r_shell.启动("/bin/chmod", "-R" + " " + "o-rwx" + " " + r_secure_folder) r_shell.launch("/bin/chmod", "-R" + " " + "g-rwx" + " " + r_secure_folder) end if r_contents = r_file.get_content r_contents = r_contents + current_args r_file.set_content(r_contents) else print(" n--bash_secure_log 已禁用-- n") end if end if end if end if end function Bash = function() if (flag_init == 1) then globals.flag_init = 0 print("===========================================") print("=============XAKS32 黑客终端============") print("===========================================") else print(" n===========================================") end if deviceName = get_shell.host_computer.get_name promptCurrentFolder = deviceName + "]: " + current_path + "$" if (active_user == "root") then promptCurrentFolder = deviceName + "]: " + current_path + "#" else if (current_pathif (.indexOf(home_dir) != null) then promptCurrentFolder = deviceName + "]:~" + current_path.replace(home_dir, "") + "$" end if output = user_input("[" + active_user + "@" + promptCurrentFolder + " n" + current_date + " n> ", false, false, true) if (output.len == 0) then return listCmd = output.trim.split(" ") command = listCmd[0] shellArgs = "" if (listCmd.len > 1) then listCmd.remove(0) shellArgs = listCmd.join end if if (command == "exit") then exit if (command == "clear") then clear_screen else cmdPath = GetFinalPath(command) print(" ") //不要用单个" "代替" ";使用'sudo'时不会添加换行符 bash_history(command, shellArgs) output = get_shell.launch(cmdPath, shellArgs) if output and output !如果 1 则 打印(输出) 结束 如果 结束 函数 获取最终路径 = 函数(命令) 路径 = [当前路径, "/bin", "/usr/bin"] 对于 i 在 范围(0, 路径.长度 - 1) 如果 i == 0 则 绝对路径 = 获取绝对路径(命令) 否则 绝对路径 = 路径[i] + "/" + 命令 结束 如果 命令文件 = 获取外壳.主机电脑.文件(绝对路径) 如果 (命令文件 != 空) 则 返回 绝对路径 结束 对于 返回 命令 结束 函数 当(真) 外壳() 结束 当

--
--
--
--
--
--
--
--
--
--

本指南将说明如果你完成了教程任务却不知道接下来该做什么。 简介 游戏更新了新的【漏洞利用】机制后,旧程序已从游戏中移除,你无法再使用教程中提供的那些程序。 在制作本指南时,还没有任何程序能让你手动扫描和利用漏洞来获取目标访问权限。我制作了两个简单但效率不高的脚本,它们能帮助你了解在游戏中该做什么。脚本附带注释,以便更好地理解其工作原理。 适用游戏版本:0.7.2633 开始前 开始单人游戏并连接到互联网。 创建你的邮件和银行账户。 下载【nmap】并放入【/bin】目录。 下载【decipher】并放入【/bin】目录。 下载【metaxploit】。将其放入“/lib”目录。 打开代码编辑器并编译这两个脚本。 代码:初级扫描器 此脚本用于扫描目标机器以寻找漏洞: //初级扫描器文件:bscanner// <- 这是注释 print("<b>-= 初级扫描器 1.0 =-</b>")// 此行将在屏幕上打印文本,<b> 用于加粗显示 if params.len != 2 or params[0] == "-h" or params[0] == "--help" then exit("<b>用法:bscanner [ip地址] [端口]</b> n<b>描述:</b> n此脚本用于远程扫描漏洞并显示所有结果。 n作者:IZackI")// 若此条件为真,则退出并显示引号中的消息 / 参数len - 检查脚本提供的参数数量 / params[0] == "-h" - 检查第一个参数是否与引号中的内容相同 metaxploit = include_lib("/lib/metaxploit.so")// 为metaxploit变量赋值,指向一个外部库 if not metaxploit then exit("<color=#ff0000>错误:无法找到'metaxploit.so'。请将缺失的库文件放入'lib'文件夹。</color>")// 如果metaxploit变量不存在,则输出红色错误信息并退出 address = params[0]// 将参数0的值赋给address变量 port = params[1].to_int// 将参数1的值转换为整数后赋给port变量 net_session = metaxploit.net_use(address, port)// 使用metaxploit库连接到指定的IP地址 if not net_session then exit("<color=#ff0000>错误:无法连接。")// 如果未建立连接,则打印红色文本并退出 打印("-- 扫描中 --")// 此命令将在屏幕上显示文本 元库 = 网络会话.转储库// 此命令将设置版本元库以访问已连接的库 扫描结果 = 元漏洞利用.扫描(元库)// 扫描元库以查找易受攻击的内存地址,并将其以列表形式返回 i = 0// 将变量i设为0 对于 扫描结果 中的每个条目// for循环将对扫描结果中的每个条目执行操作 i = i+1// 将变量i设为(i=0)+1 内存扫描 = 元漏洞利用.扫描地址(元库, 条目)// 扫描特定内存地址并返回其所有漏洞信息 打印("<b>"+i+". "+条目+"</b> n"+内存扫描)// 打印条目及其漏洞 结束循环// for循环结束 打印(元库.库名称+" v"+元库.version)// 在屏幕上显示已扫描库的名称和版本 exit("-- Scan complete --")// 显示消息后退出程序 代码:初级探测程序 此脚本用于对目标机器执行漏洞利用: //初级探测程序文件:bprobe print("<b>-= 初级探测程序 1.0 =-</b>") if params.len != 5 then if params.len != 4 or params[0] == "-h" or params[0] == "--help" then exit("<b>用法:bprobe [ip地址] [端口] [内存] [漏洞利用] (密码)</b> n<b>说明:</b> n用于使用外部漏洞利用的脚本。 n作者:IZackI") end if metaxploit = include_lib("/lib/metaxploit.so") if not metaxploit then exit("<color=#ff0000>错误:无法找到'metaxploit.so'。请将缺失的库文件放入'lib'文件夹。</color>") decipherFile = get_shell.host_computer.文件("/bin/decipher") 如果不存在metaxploit则退出("<color=#ff0000>错误:无法找到'decipher'。请将缺失程序放入'bin'文件夹。</color>") 地址 = 参数[0] 端口 = 参数[1].转换为整数 内存 = 参数[2] 漏洞利用 = 参数[3] 如果参数长度等于5则//检查是否提供了第5个参数 新密码 = 参数[4] 否则 新密码 = 空 结束如果 网络会话 = metaxploit.网络使用(地址, 端口) 如果不存在网络会话则退出("<color=#ff0000>错误:无法连接。</color>") 打印("-- 探测 --") 元库 = 网络会话.转储库 如果新密码等于空则//如果第5个参数不为空 结果 = 元库.溢出(内存, 漏洞利用)//执行缓冲区溢出攻击 否则 结果 = 元库.overflow(内存, 漏洞利用, 新密码)// 执行缓冲区溢出攻击以更改密码 如果结果为真则打印("<b>新密码: "+新密码+"</b>")// 打印新密码 结束如果 如果结果不等于空则 类型 = typeof(结果)// 变量类型是变量结果的类型 如果类型不等于"shell"且类型不等于"file"则退出("<color=#ff0000>错误: 不支持此类型。</color>")// 如果类型不等于'shell'和'file'则退出 如果类型等于"shell"则结果.启动终端// 如果类型是shell则打开终端 如果类型等于"computer"则// 如果类型是computer 密码文件 = 结果.文件("/etc/passwd")// 读取文件内容并将其设置到密码文件变量中 如果不是密码文件则退出("密码文件缺失。")// 如果密码文件为空则退出 如果密码文件.if has_permission("r") then// 检查passFile的权限 if passFile == null then exit("密码文件为空。")// 检查passFile是否为空 fileLocation = "/home/"+active_user// 将变量fileLocation设为'/home/用户目录' createFile = get_shell.host_computer.File(fileLocation+"/receivedPaswd.txt")// 检查receivedPaswd.txt文件是否存在 if createFile then createFile.delete// 若旧文件存在则删除 get_shell.host_computer.touch(fileLocation, "receivedPaswd.txt")// 在用户目录创建名为'receivedPaswd.txt'的空文件 get_shell.host_computer.File(fileLocation+"/receivedPaswd.txt").set_content(result.File("/etc/passwd").content)// 将'/etc/passwd'的内容复制到'receivedPaswd.txt' createFile = get_shell.host_computer.File(fileLocation+"/receivedPaswd.txt\") else exit("无法访问密码文件")// 若没有权限读取文件'/etc/passwd' end if if createFile == null then// 若创建的文件为空则删除文件并退出 createFile.delete exit("下载的密码文件为空。") end if while true// 循环 - 此循环永不结束,直到用户选择0、1或2 print("选项: ") print("1. 解密") print("2. 删除密码文件") print("0. 退出") opt = user_input("选项: ")// 这是用户选项 - 等待用户输入并将值存储在opt变量中 if opt == "0" then exit("-- 完成 --")// 若用户输入'0'则退出 if opt == "1" then// 若用户输入'1' get_shell.launch("/bin/decipher", fileLocation+"/receivedPaswd.txt")// 使用参数执行程序'/bin/decipher' 结束条件判断 如果选项等于"2"则// 如果用户输入'2' 如果存在createFile则删除createFile// 检查createFile是否存在并删除它 退出("文件: 'receivedPaswd.txt'已被移除。") 结束条件判断 结束循环 结束条件判断 否则 退出("-- 探测失败 --") 结束条件判断 工作视频中的脚本

官方文档 这里可以找到所有命令及其解释和使用示例。 其他实用信息 这是一份非常棒的指南,解释了游戏中的所有机制。 总结 如你所见,脚本相当简单,还有很大的改进空间。 如果你研究这两个脚本,肯定能独立完成操作。 祝各位脚本新手好运。

--
--
1
--
--
--
--
--
--
--
--
--

防止其他玩家窃取你物品的基本安全措施概述 欢迎来到网络安全 之前有个同名指南搞坏了我的第一台电脑,所以这里提供一个更好的版本 什么是chmod chmod(更改权限)允许你更改和设置不同机器上的权限,是一种简单的安全锁定方式。它并非绝对可靠,但却是个不错的开始。 chmod -R o-wrx / 让我们来分解一下: -R - 递归,对所选目录下的所有文件执行该命令。 o - 代表其他用户,即访客、非所有者和非root用户,其他选项还有u(用户)和g(组)。 -wrx - 移除写入、读取和执行权限。+ 则是添加这些权限。 / - 目录,这里可以是/boot、/home/user/Mail.txt等等。让我们来进行安全加固 在你的家用电脑上 chmod -R o-wrx / 除非你以root用户登录并能安全撤销操作,否则对用户组或用户进行限制会导致家用电脑“变砖”。 在你的服务器上 通常你会使用购买后邮件中获取的密码以root用户通过ssh登录服务器,因此可以安全地对其他用户、用户组和当前用户进行限制。 chmod -R o-wrx / chmod -R g-wrx / chmod -R u-wrx / 你的服务器上还会运行SSH服务,快速使用nmap扫描服务器IP地址会显示服务版本号,前往漏洞数据库即可了解你的服务器暴露程度。幸运的是,有一种方法可以提高你的安全几率—— apt-get update apt-get upgrade 这些命令会检查你的软件源并升级库文件,以修补漏洞(同时也会允许新的漏洞出现)。记得定期在你的家用电脑上运行这些命令。 家用网络的扩展步骤 干得好!你已经成为了命中注定的黑客高手,甚至都不用重新格式化电脑。 由于我们处于一个私有网络中,家用电脑容易受到本地漏洞的攻击。让我们成为事实上的网络管理员,锁定这个网络。 第一步始终是获取机器的root权限,幸运的是,在任何内部网络中,root密码都是相同的。如果你能获得某台机器的访客或用户权限,就可以运行以下命令: sudo -u <用户名> - 登录到目标用户 sudo -s - 登录到root用户 运行你之前学过的命令也有助于长期保障你的安全。只是不要把用户锁在自己的电脑外面。 既然你已经做到这一步,为什么不进入路由器,复制Terminal.exe以及apt-get命令和文件,然后去更新router_kernal.lib以防止本地漏洞利用呢。 干得好,你就是【黑客军团】 想了解更多信息,可以查阅【黑客手册】 现在,去犯点罪吧,你这个无赖。

--
--
--
--

在本指南中,我想分享每次重置存档后运行的第一个脚本。它会自动破解最佳的无线网络并连接,此外还会创建一些我后续脚本常用的文件夹。这个脚本简单易懂,你也可以轻松添加自己的扩展功能。 完整脚本 - 内联注释 // 加载加密库 crypto = include_lib("/lib/crypto.so") // 启动无线网络监控 crypto.airmon("start", "wlan0") // 获取所有可用无线网络列表 scanResult = get_shell.host_computer.wifi_networks("wlan0") networks = [] for net in scanResult networkEntry = net.split(" ") BSSID = networkEntry[0] Power = networkEntry[1].remove("%").to_int ESSID = networkEntry[2] // 将结果存入新映射 networks.push({\"BSSID\":BSSID,\"信号强度\":Power,\"网络名称\":ESSID})\nend for\n// 对WiFi网络列表进行排序并反转,使最佳连接排在首位\nnetworks.sort(\"信号强度\")\nnetworks.reverse\nbestNetwork = networks.pull\n// 开始回复攻击,直到获取10000个确认帧\nresult = 加密.无线攻击(bestNetwork.BSSID, bestNetwork.网络名称,10000)\nif typeof(result) == \"string\" then exit(result)\n// 破解file.cap文件中的加密密码\npassword = 加密.无线破解(home_dir+\"/file.cap\")\nsuccessful = 获取外壳.主机.连接WiFi(\"wlan0\",bestNetwork.BSSID,bestNetwork.网络名称,password)\nprint(\"WiFi已破解并连接!\")\n// 这两行将删除不再需要的file.cap文件\nfile = 获取外壳.主机.文件(home_dir+\"/file.cap\")\nfile.delete\n// 为后续操作创建一些文件夹\nget_shell.host_computer.create_folder(home_dir, "上传") get_shell.host_computer.create_folder(home_dir, "受害者") get_shell.host_computer.create_folder(home_dir, "悬赏") get_shell.host_computer.touch(home_dir,"victims.txt")

--
--
--
--
--
--

一份《Grey Hack》指南,适合那些喜欢通过观看视频来学习游戏玩法的玩家。我还分享了一些游戏中的技巧、窍门以及可能遇到的问题。目前,本指南涵盖了从首次启动游戏到完成各类任务的所有内容。后续将添加更多内容。 剧透警告 这些技巧本应是玩家自行发现和摸索的,这本质上是游戏的黑客元素。观看这些视频会破坏你自己探索这些内容的乐趣。 简介 这是一份相当深入的指南,展示了游戏提供的许多酷炫技巧和方法。不过,它目前尚未完成,随着我制作更多内容,会添加更多条目。随着游戏开发的推进,本指南也会进行更新。这份指南对于卡关的玩家或想要查漏补缺技巧的资深玩家来说是个实用工具。随着时间推移,会不断添加更进阶的技巧和方法。 希望这份指南能帮到你! 《Grey Hack》新手教程 - 指南1 - 0.6版本 [文件资源管理器、终端] 第一个视频为你展示游戏教程,并附带一些对新手有帮助的额外解说。

《Grey Hack》指南2 - 无线网络入侵 [无线网络,手动操作] 本指南介绍如何入侵无线网络并获取互联网访问权限。 《Grey Hack》指南3 - 教程任务 [邮件,银行,商店,钓鱼攻击,安全外壳协议,日志] 本指南介绍如何完成教程任务,还包括如何获取邮件账户、银行账户以及找到商店。 《Grey Hack》指南4 - 快速赚钱 [黑客商店,维基,局域网,网络外壳,银行,无线网络,管理员监控程序] 本指南介绍如何通过入侵无线网络来获取NPC银行账户从而赚钱。 《Grey Hack》指南5 - 新硬件与用户界面更新 [硬件,用户界面,组装电脑] 本指南介绍如何购买和安装硬件,还包括如何自定义游戏的用户界面。《Grey Hack》指南6 - 凭证获取任务[shellweb,http,smtp,ftp,局域网,代理,地图] 本指南展示了如何完成一个版本的凭证获取任务。 《Grey Hack》指南7 - 学术变更任务[StudentViewer,shellweb,sshguest,路由器,sudo,局域网] 本指南展示了如何完成一个版本的学术变更任务。 《Grey Hack》指南8 - 警方记录任务[PoliceRecord,sshnuke,路由器,shellweb,sudo] 本指南展示了如何完成一个版本的警方记录任务。 《Grey Hack》指南9 - 损坏数据任务[Active Trace,AdminMonitor,重启,日志,shellweb] 本指南展示了如何完成一个版本的损坏数据任务。《Grey Hack》指南10 - 入侵玩家与盗取资金 [玩家入侵,银行入侵] 本视频展示了玩家如何入侵并盗取其他玩家的资金,同时还介绍了一些基础的玩家入侵技巧。 《Grey Hack》指南11 - 主机服务任务 [文件传输协议,安全外壳协议,用户添加,服务器托管] 本视频展示了主机服务任务的一个版本。 《Grey Hack》指南12 - 脚本更新现已推出!!! [编程,玩家入侵,入侵防护] 本视频展示了全新的脚本更新,以及一些针对该更新所带来的新型入侵技术的自我防护思路。 待续 随着我制作更多视频,本指南将会更新。这些新内容将包括基于游戏后续新增功能的指南。如果你觉得游戏中有需要补充说明的地方,欢迎在评论区提出建议!

--
--
--
--