Kali渗透测试技术实战

第一章 引言

EC-Council Certified Ethical Hacker (EC CEH,伦理黑客认证)。整个过程包含五个阶段:侦察、扫描、获取访问、维持访问以及清除痕迹

第二章 下载并安装Kali Linux

硬盘最小120G,尤其是在密码破解、取证和做渗透测试项目的情况下,要求获得控制权限,大量生成数据、收集证据、生成日志和报告。

第三章 软件、补丁和升级

apt-get update # 安装任何新软件包之前都要检查更新,每次要升级操作系统或者应用程序或软件包之前都进行检查。

版本升级

apt-get dist-upgrade

移除

apt-get remove [package_name]

试着移除并重新安装 leafpad

apt-get remove leafpad
apt-get install leafpad

自动移除

当操作系统使用一段时间之后,旧的应用程序软件包渐渐被新的软件包替代。可使用自动移除功能来移除那些系统不再需要的软件包。

apt-get autoremove

完全移除

移除功能并不会删除配置文件,而是把它们留在硬盘上以防止以后还会用到。使用完全移除功能用一行命令就可以清除所有的应用程序软件包和相关的配置文件。

apt-get purge [package_name]

清理

当安装软件包时,系统会从软件源下载软件包,解压并安装。安装过后下载的软件包文件默认会留在硬盘上。

apt-get clean

自动清理
自动清理可以自动在升级和发行版升级之后运行,删除所有已经被新版本替换掉的旧软件包文件。

apt-get autoclean

组合命令

apt-get update && apt-get upgrade && apt-get dist-upgrade
apt-get autoremove && apt-get autoclean

安装 .deb

dpkg -i [package_name.deb]

卸载

dpkg -r [package_name.deb]

完全移除,大写的P

dpkg -P [package_name.deb]

检查已安装的软件包leafpad

dpkg -l leafpad

查看已安装的软件包的详细信息,小写p

dpkg -p [package_name.deb]

第四章 配置 kali

4.4 查看计算机上所有的网卡和单个网卡的状态

ifconfig -a

启动接口和停止接口

ifconfig eth0 down # 停止第一个以太网适配器
ifconfig eth0 up   # 开启第一个以太网适配器 

更改适配器的IP地址从192.168.1.166到192.168.1.22

ifconfig eth0 192.168.1.22 

更改子网掩码

ifconfig eth0 192.168.1.22 netmask 255.255.255.0

将默认网关更改为 192.168.1.2

route add default gw 192.168.1.2

DNS服务器设置可通过修改 /etc/resolv.conf来实现

echo nameserver 4.4.4.4 > /etc/resolv.conf

上面的命令会删除已有的DNS服务器,并用4.4.4.4来替换。

增加新的DNS服务器,可使用下面命令,将新的域名服务器地址追加到resolv.conf中已有的服务器列表中。

echo nameserver 8.8.8.8 >> /etc/resolv.conf

4.7 FTP 服务器

文件传输协议FTP可以用来在计算机之间传输文件。需要注意的是,FTP并不会加密文件或计算机之间的通信信道,因此网络上的文件传输是可以被监控者获取的。

安装 Pure-FTPd

apt-get install pure-ftpd-common pure-ftpd

小配置

cd /etc/pure-ftpd/conf
echo no > Bind
echo no > PAMAuthentication
echo no > UnixAuthentication
ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/50pure

接下来需要创建FTP服务要用到的用户组和用户,首先创立一个系统组

groupadd ftpgroup

向创建的的组里面添加新用户

useradd -g ftpgroup -d /dev/null -s /bin/false ftpuser

为FTP文件新建一个目录

mkdir -p /home/pubftp

在FTP目录里面添加用户目录,本例中,即将创建额用户sam需要主页一个目录

mkdir /home/pubftp/sam

然后给FTP服务添加一个新的用户和密码,在本例中,新用户是sam

pure-pw useradd sam -u ftpuser -g ftpgroup -d /home/pubftp/sam

接下来会提示你需要创建一个密码。

更新Pure-FTPd的数据库

pure-pw mkdb

启动FTP服务

service pure-ftpd start

启动FTP后,测试该服务

ftp IP地址

4.8 SSH服务器

SSH在通信的计算机之间提供一个安全的加密信道。可防止数据在传输中被网络中的安全工具所检测到,比如入侵系统IDS和入侵防御系统IPS。

生成密钥

首先将原始的SSH密钥从默认目录中移走,但是不要删除它们

mkdir -p /etc/ssh/original_keys
mv /etc/ssh/ssh_host_* /etc/ssh/original_keys
cd /etc/ssh

生成新的SSH密钥

dpkg - reconfigure openssh-server

启动或者重启SSH守护进程

service ssh start
service ssh restart

使用命令行管理SSH服务

/etc/init.d/ssh start # 启动SSH服务
/etc/init.d/ssh stop # 停止SSH服务
/etc/init.d/ssh restart #重启SSH服务

远程访问系统

从其他的Linux系统中远程访问计算机(IP192.168.1.66)

ssh sam@192.168.1.66

同样windows客户端也可以访问SSH需要使用SSH客户端,,常用的putty。

第五章 渗透测试实验环境

5.2 搭建一个免费的实验环境
搭建一个实验环境原因:因为没有人想进监狱。攻击政府或金融系统(如银行)可能会判20年有期徒刑甚至更长,对相关法律不了解是无法为网络犯罪进行辩护的。

1.VMware Player

2.VirtualBox

第六章 渗透测试生命周期

渗透测试的四个阶段:侦察、扫描、渗透、维持访问。

第七章 侦察

7.2 目标网站

目标自身的网站提供了大量信息用于完善约定的描述。

7.3 网站镜像

wget -m -p -E -k -K -np -v http://foo.com

7.4 Google搜索

查看google的高级功能

7.5 Google Hacking

7.6 社交媒体
创建一个虚拟身份

7.7 招聘网站

7.8DNS和DNS攻击
域名解析系统,简称DNS,提供互联网上的地址解析服务。
7.9查询域名服务器

向本地域名服务器查询google网站页面的IP地址

nslookup
> www.google.com

查看使用的域名服务器

nslookup
server

搜索素有邮件类服务器

nslookup
set type =MX
google.com

这将会返回Google域中所有已知的邮件服务器。

本地域名服务器

cat /etc/resolv.conf

将本地域名服务器可以更改为目标域的域名服务器

nslookup
>set type = ns
>google.com

目标域名服务器一旦被识别,nslookup命令使用的域名服务器就可以用如下命令变更为目标域名服务器其中之一。下面例子将域名服务器设置为Google域名服务器其中之一

nslookup
> server 216.239.32.10

7.10区域传输
Domain Internet Gopher(DIG) 程序可用于区域传输。

dig@[name server][domain]axfr

第八章 扫描

“挂得很低的水果”(意指容易实现的目标)

8.2理解网络流量

网络流量是通过各种方式连接在一起的计算机系统质检的电子通信,现今最常见的连接方式就是有线和无限以太网。

理解端口和防火墙

防火墙可以理解为一个具有计算能力的网络设备,有两个或者多个网卡,在网络中扮演一个守门人的角色,按照访问控制列表来严格监控出站和入站流量。只有符合访问控制列表的流量才会允许通过,其他的就会被防火墙拒绝。防火墙是通过开放或者关闭端口来允许或拒绝网络流量的。

端口是计算机之间通信的不同信道。一共有65535个TCP端口和65535个UDP端口用于通信。其中的一小部分端口用于指定的用途,但是并没有完全限制它们的用途。例如TCP的80端口通常被用于HTTP协议。但是其他的通信可以使用80端口,HTTP的通信也可以使用其他端口。

一个理解端口的形象方式是将计算机想象成一幢大楼,有许多门通向不同的办公室,每个办公室里都有一个职员在做一项工作。只有知道正确的办公室地址的人才能从8080端口获得网页内容。

理解IP协议

TCP协议

SYN                 接送   ------------------------->  受SYN/ACK              计算   <-------------------------  算ACK------------------------->

所有的TCP 都要经过三次握手,它可以确保通信信道两端的计算机是同步的。TCP通信过程的应用包括文件传输(FTP)、Web流量(HTTP)和Email(SMTP、POP和IMAP)

UDP协议

UDP是一个开销比TCP要小的协议。如果TCP通信过程类似于电话,当通信信道的双方在发送信息时通信的双方都确认发出的信息已经被收到,那么UDP通信就类似于广播,信息发出之后发送方和接收方都不会进行确认。

ICMP

ICMP在设计中是一个网络的健康及维护协议,这个协议用来确定一个设备在网络上是否正常运行和通信。ICMP的通信方式在设计中不携带用户数据的,它只会将系统信息在网络设备、计算机和应用服务之间传递

PING
Ping会发出一个类型为8,编码为0的ICMP数据包,表明这个数据包是一个Echo请求。
在Windows平台发出的Ping请求默认会发四次,在Linux平台发出的Ping请求会持续发送直到会用取消。

traceroute

在Windows平台上,默认的TTL是128;在Linux平台上,默认的TTL是64;在思科的网络设备上,TTL高达255.

tracert www.google.com # Windows
traceroute  www.google.com # Kali Linux

8.3扫描神器 Nmap

扫描选项

-sS隐蔽扫描
当未指定扫描选项时,隐蔽扫描是Nmap的默认扫描选项,但也可以在命令行使用-sS选项显式指定。隐蔽扫描会发起一个与目标的TCP连接,但是却永远不会完成三次握手。

-sT TCP连接扫描

TCP连接扫描通常用于收集有关目标的更多信息,因为它会对目标主机建立一个完整的TCP连接。与隐蔽扫描不同的是,这种扫描会通过发送ACK包来建立连接。这种扫描会被大多数系统记录下来。但是也可以提供比隐蔽扫描更多的信息。

-sU UDP 扫描

UDP扫描会评估目标系统上的UDP端口。

-sA ACK 扫描

ACK扫描(-sA),可以确定TCP端口是否被过滤。这种扫描会对目标主机发起一个标记为ACK的通信,这种扫描有时可以绕过防火墙,因为它假装是内网机器发起的TCP请求的响应。如果收到一二RST响应,说明该端口没有被过滤掉。如果没有收到响应,或者收到一个类型为3,编码为1,2,3,9,10,13的ICMP响应,说明该端口被过滤了。

timing 模板

-T0 Paranoid

-T0也即Paranoid模板被用于慢速的网络连接,或者是必须最小化被发现的风险的环境。串行扫描

nmap -sU --timing paranoid -p 1-500 10.0.2.100

-sU UDP扫描,-p 1-500,来指定1至500的端口将要被扫描。

-T1 Sneaky

-T1也即Sneaky模板比Paranoid稍快,减少了扫描需要的时间同时,也保持了慢速扫描固有的隐蔽性。串行扫描。

nmap -sU -T1 -p 1-500 10.0.2.100

-T2 Polite

-T2也即Polite模板与-T0和-T1相比继续增加了扫描速度,也是最后一个使用串行扫描技术的 模板。

nmap -sU --timing polite -p 1-500 10.0.2.100

-T3 Normal

-T3 也即Normal模板是Nmap**默认的扫描方式。这是第一个使用并行处理技术**的模板,同时发出多个探测,以此增加总速度。

nmap -sU -T3 -p 1-500 10.0.2.100

-T4 Aggressive

-T4也即Aggressive模板同样使用并行扫描来增加速度。

nmap -sU -T4 -p 1-500 10.0.2.100

-T5 Insane

-T5 也即Insane模板是最快的内置模板。并行扫描技术。

nmap -sU --timing insane -p 1-500 10.0.2.100

IP地址段

本例中地址范围是10.0.2.x的C类地址段,这意味着本次扫描的最大主机数是254,要扫描这些主机,使用如下命令

nmap 10.0.2.1-255

CIDR寻址

nmap 10.0.2.1/24

如果要扫描一个较小的IP地址集,可以使用更小的IP段,例如扫描前100个IP地址

nmap 10.0.2.1-100

CIDR表示

nmap 10.0.2.0/25

扫描列表
假设下面的IP地址被存放在一个targets.txt文件中

10.0.2.1
10.0.2.15
10.0.2.55
10.0.2.100

用下面的命令来使用这个文件

nmap -iL targets.txt

8.4选择端口

选择端口在扫描命令中通过-p参数实现,选择的端口可以是连续的,使用短横线指定范围,也可以逐个指定,使用逗号分开。

nmap -sS -p 1-100
nmap -sU -p 53,137,138,161,162

或者同时使用

nmap -sS -p 1-100,445,8000-9000

输出选项
Nmap输出选项包括普通模式、XML文件和GREPable

-oN 普通输出
普通输出选项会创建一个文本文件

nmap -oN metascan.txt 10.0.2.100

-oX XML文件输出

nmap -oX metascan.xml 10.0.2.100

-oG GREPable 输出
GREPable 输出通常用于类似于GREP的工具进行进一步研究的渗透测试人员,该格式也可以用于AWK、SED、DIFF等工具

nmap -oG metascan.txt 10.0.2.100

-oS脚本小子输出

nmap -oS metascan.txt 10.0.2.100

Nmap脚本引擎
告诉Nmap扫描引擎你要使用一个脚本

namp --script nbstat.nse 10.0.2.100

更新Nmap数据库

nmap --script -updatedb

8.5Hping3

手动制作类似于Nmap引擎自动生成的数据包

hping3 -S 10.0.2.100

8.6Nessus

启动Nessus扫描器

/etc/init.d/nessusd start

第九章 渗透

漏洞:存在于信息系统、系统安全规程、内部控制和实现中,并可能被外部威胁源所利用的弱点。
漏洞等同于弱点。渗透就是利用弱点越权访问信息系统或者造成拒绝服务。

本地渗透

将木马后门隐藏在看似无害的PDF文档或微软Excel的宏代码中。
一个含有自动运行代码的USB 设备。

搜索本地渗透模块 Searchsploit查找渗透模块

searchsploit local windows iis

远程渗透

Metasploit

1. 渗透模块
2. 辅助模块
3. 攻击载荷
4. 监听模块
5. Shellcode 模块

启动/关闭服务

service metasploit status#检查Metasploit服务状态
service metasploit restart#重启服务
service metasploit stop #停止服务

更新数据库

msfupdate

P126-p145

9.4Web渗透重点内容

Web应用程序测试

1.手动检查

2.指纹采集
NetCat即能作为指纹采集工具也能作为监听设备用于监听发来的连接。

nc [host] [port]
nc 192.168.56.102 80
Press Enter
HEAD/HTTP/1.0
Press the Enter key twice

Telnet

telnet [ipaddress]:[port]
telnet 192.168.56.102:80

SSLScan(sslscan)

sslscan [ipaddress]:[port]
sslscan 192.168.56.102:8080

第三步 扫描

确保运行至少2到3个应用程序以建立对系统漏洞的更好的基线。
Arachni Web

W3af

Nikto

Websploit

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246910.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于slot、slot-scope的指令的一些操作记录

关于slot、slot-scope的指令的一些操作记录&#xff1a; 从vue2.6.0开始&#xff0c;slot、slot-scope已经被废弃&#xff0c;推荐使用v-slot&#xff1b; slot-scope是作用域插槽, 父组件中不能直接用子组件中定义的data数据。 而slot-scope的出现就是解决了这样的问题 子组…

关于前端Vue的webpack的基本只用总结心得

1.先说一下vue webpack 的配置的问题 "scripts": {"dev": "node build/dev-server.js","build": "node build/build.js","lint": "eslint --ext .js,.vue src" }我们 npm run dev 便是运行的 第一条命…

五种方法提高你的智力

五种方法提高你的智力 智力是天生的&#xff0c;一成不变的吗&#xff1f;教你五种方法提高智力&#xff1a;1体验新鲜事物 2挑战自己3有创造力的思考4生活中&#xff0c;多玩“hard”模式5多与他人进行交流 弯兔123 2011-04-04 14:53经验说&#xff1a;智力是天生的&#xff0…

vue-cli中的webpack的config配置详细说明

vue-cli中的webpack的config配置详细说明打开我们的vue项目文件夹我们可以清楚的看到文件夹下的三个文件&#xff0c; “dev.env.js”&#xff0c;“index.js”&#xff0c;“prod.env.js”&#xff0c; 我们先打开prod.env.js的文件&#xff0c;看里面的内容&#xff1a;‘use…

matlab中 text 使用画图示例

% Plot the image of the Sensitivity and False Positive per image clear; close all; clc; I1 [0.5 75]; I2 [1 54.5];msize 19; %设定字体的大小hold on plot(I1(1),I1(2),ko-,MarkerFaceColor,r) % 红色实心圆点text(I1(1)0.1,I1(2),Wei 2002) hold on plot(I2(1),I2(2)…

计算机视觉界CV牛人牛事

CV人物1&#xff1a;Jianbo Shi史建波毕业于UC Berkeley&#xff0c;导师是Jitendra Malik。其最有影响力的研究成果&#xff1a;图像分割。其于2000年在PAMI上多人合作发表”Noramlized cuts and image segmentation”。这是图像分割领域内最经典的算法。主页&#xff1a;www.…

vscode编辑器,自己喜欢的颜色

"workbench.colorCustomizations": { //覆盖当前所选颜色主题的颜色"editor.background": "#1b1b19", //编辑器背景色"editor.selectionBackground": "#3514c554", //用户选中代码段的颜色 "editor.findMatchBackgroun…

Ubuntu中python切换及pip 安装相应python库

更改python默认版本 只需在终端里面执行 sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150 sudo update-alternatives --install /usr/bin/python python …

js消息任务队列

JS单线程、异步、同步概念 多次出现“事件循环”这个名词&#xff0c;简单说明了事件循环的步骤&#xff0c;以便理解nextTick的运行时机&#xff0c;这篇文章将更为详细的分析下事件循环。在此之前需要了解JS单线程&#xff0c;及由此产生的同步执行环境和异步执行环境。 众所…

Ubuntu下安装cmake,配置ITK 和 SimpleITK, VTK(已测试可执行)

curses库 在安装cmake之前应该先安装一下curses库。如果系统中有curses库的话&#xff0c;cmake将生成一个可执行文件ccmake&#xff0c;它是一个基于文本程序的终端&#xff0c;有点类似windows GUI。 sudo apt-get install libncurses5-dev 备注&#xff1a;若无curses库…

定义[nextTick、事件循环]

详情清查收&#xff1a;---》 实例理解nextTick的使用&#xff0c;并给出在页面渲染上的优化巧用 https://www.cnblogs.com/hity-tt/p/6729118.html

世界坐标与图像坐标

1. 右手坐标系 2. 左手坐标系 伸出左手&#xff0c;让拇指和食指成“L”形&#xff0c;大拇指向右&#xff0c;食指向上。其余的手指指向前方。这样就建立了一个左手坐标系。拇指、食指和其余手指分别代表x&#xff0c;y&#xff0c;z轴的正方向。判断方法&#xff1a;在空间直…

module.exports与exports,export与export default之间的关系和区别

CommonJS模块规范和ES6模块规范完全是两种不同的概念。 CommonJS模块规范: 根据这个规范&#xff0c;每个文件就是一个模块&#xff0c;有自己的作用域。在一个文件里面定义的变量、函数、类&#xff0c;都是私有的&#xff0c;对其他文件不可见。 CommonJS规范规定&#xff0…

Ubuntu下安装 imagej 和 Fiji

安装ImageJ 方法一 sudo apt-get install imagej whereis imagej imagej -version 方法二 下载 Linux版本的 imagej 安装 Instructions cd /home mkdir imagej cp ij150-linux64-java8.zip /home/imagej unzip ij150-linux64-java8.zip 建立软连接&#xff0c;可以在终端…

vue的diff 算法

1. 当数据发生变化时&#xff0c;vue是怎么更新节点的&#xff1f; 要知道渲染真实DOM的开销是很大的&#xff0c;比如有时候我们修改了某个数据&#xff0c;如果直接渲染到真实dom上会引起整个dom树的重绘和重排&#xff0c;有没有可能我们只更新我们修改的那一小块dom而不要…

Ubuntu中python调用SimpleITK来显示图像

misc.imshow ipython import os from scipy import misc dataDir os.environ["HOME"] "/Downloads/SimpleITK-MICCAI-2001-Tutorial-master/Data" print dataDir image misc.imread(dataDir "FA.png") misc.imshow(image) 或者 ipython i…

Websocket--- long loop--ajax轮询

Websocket--- long loop--ajax轮询,long poll 和 ajax轮询 的原理。 1&#xff0c;首先是 ajax轮询 &#xff0c;ajax轮询 的原理非常简单&#xff0c;让浏览器隔个几秒就发送一次请求&#xff0c;询问服务器是否有新信息。 2&#xff0c;long poll 其实原理跟 ajax轮询 差不多…

Linux下设置环境变量

单独查看PATH环境变量&#xff0c;可用&#xff1a; echo $PATH11 方法一&#xff1a;在用户主目录下的 profile或 bashrc文件 sudo gedit ~/.profile 或者 sudo gedit ~/.bashrc123123 可以在此文件末尾加入PATH的设置如下&#xff1a; export PATH”$PATH:your path1:you…

前端解决一像素问题

一、transform:scale 使用伪类 :after 或者 :before 创建 1px 的边框&#xff0c;然后通过 media 适配不同的设备像素比&#xff0c;然后调整缩放比例&#xff0c;从而实现一像素边框 首先用伪类创建边框 .border-bottom{position: relative;border-top: none !important; }.…

Python缩进问题

Python缩进问题 Python中&#xff0c;是通过代码的缩进&#xff0c;来决定代码的逻辑的。通俗的说&#xff0c;Python中的代码的缩进&#xff0c;不是为了好看&#xff0c;而是觉得代码的含义&#xff0c;上下行代码之间的关系。缩进弄错了&#xff0c;就会导致程序出错&#…