Web安全——渗透测试基础知识下

news2024/11/15 17:56:37

渗透测试基础

  • Web安全
  • 一、VMware虚拟机学习使用
    • 1、虚拟机简单介绍
    • 2、网络模式
      • 2.1 桥接网络(Bridged Networking)
      • 2.2 NAT模式
      • 2.3 Host-Only模式
    • 3、通俗理解
  • 二、Kali的2021安装与配置
    • 1、简单介绍
    • 2、Kali的版本
    • 3、配置
      • 3.1 安装虚拟机open-vm-tools-desktop模块
      • 3.2 设置中文
      • 3.3 安装python3的pip
      • 3.4 更新源
  • 三、Kali基础知识
    • Linux文件属性和权限设置
      • 文件解释
      • 用户权限
      • 权限设置
  • 四、渗透测试常用编码
    • 1、页面编码
    • 2、ascii编码
    • 3、HTML编码
    • 4、URL编码
    • 5、js编码
    • 6、hex编码
    • 7、base64编码
    • 8、json编码0
    • 9、序列化
    • 10、utf7编码
  • 五、搭建博客系统
    • 1、注册域名
    • 2、域名的访问
    • 3、服务器
    • 4、环境安装
    • 5、域名的指向
  • 六、端口协议
    • 1、端口的作用
    • 2、端口的类型
    • 3、常见的端口
    • 4、TCP协议三次握手
    • 5、查看端口
    • 6、如何查看端口被占用?
    • 7、TCP状态转移要点
    • 8、常见的端口
  • 七、渗透测试中常见windows命令

Web安全

1、Web安全——HTML基础
2、Web安全——DIV CSS基础
3、Web安全——JavaScript基础
4、Web安全——PHP基础
5、Web安全——JavaScript基础(加入案例)
6、靶场搭建——搭建pikachu靶场
7、Web安全——数据库mysql学习

一、VMware虚拟机学习使用

1、虚拟机简单介绍

虚拟机软件可让你在不重启电脑的情况下,在一个操作系统上同时运行多个不同的系统,譬如在Win10 上同时运行 UbuntuWin7,用户可用于各种开发、测试或运行不同平台的软件。

VMware Workstation Pro 17 中文专业版功能相对免费的 VMWare Player 要丰富强大得多!新版本支持 Windows 10,支持 USB 3.1、蓝牙、4K,支持容器、兼容 Hyper-V,支持 DirectX 11OpenGL 4.1 加速,3D 游戏性能大幅提高!另外还可共享或远程控制虚拟机等……

2、网络模式

我们知道VMware也分几种版本,普通用户最常用的就是Workstation,但是不管使用哪种版本,我们都能发现在安装过程中让我们选择网络模式。在默认情况下会选中桥接模式,但有用户会问其他模式是干什么用的?
VMware 3种网络模式的功能和通信规则。

我们首先说一下VMware的几个虚拟设备
VMnet0:用于虚拟桥接网络下的虚拟交换机
VMnet1:用于虚拟Host-Only网络下的虚拟交换机
VMnet8:用于虚拟NAT网络下的虚拟交换机
VMware Network Adepter VMnet1Host用于Host-Only虚拟网络进行通信的虚拟网卡
VMware Network Adepter VMnet8Host用于NAT虚拟网络进行通信的虚拟网卡
安装了VMware虚拟机后,会在网络连接对话框中多出两个虚拟网卡。

2.1 桥接网络(Bridged Networking)

桥接网络是本地物理网卡和虚拟网卡通过VMnet0虚拟交换机进行桥接,物理网卡和虚拟网卡在拓扑图上处于同等地位(虚拟网卡既不是Adepter VMnet1也不是Adepter VMnet8)。
那么物理网卡和虚拟网卡就相当于处于同一个网段,虚拟交换机就相当于一台现实网络中的交换机。所以两个网卡的IP地址也要设置为同一网段。

虚拟网卡IP地址
我们看到,物理网卡和虚拟网卡的IP地址处于同一个网段,子网掩码、网关、DNS等参数都相同。两个网卡在拓扑结构中是相对独立的。
我们在192.168.15.111ping192.168.15.96,结果显示两个网卡能够互相通信。如果在网络中存在DHCP服务器, 那么虚拟网卡同样可以从DHCP服务器上获取IP地址。所以桥接网络模式是VMware虚拟机中最简单直接的模式。安装虚拟机时它为默认选项。

2.2 NAT模式

NAT网络中,会用到VMware Network Adepter VMnet8虚拟网卡,主机上的VMware Network Adepter VMnet8虚拟网卡被直接连接到VMnet8虚拟交换机上与虚拟网卡进行通信

NAT网络模式
VMware Network Adepter VMnet8虚拟网卡的作用仅限于和VMnet8网段进行通信,它不给VMnet8网段提供路由功能,所以虚拟机虚拟一个NAT服务器,使虚拟网卡可以连接到Internet。在这种情况下,我们就可以使用端口映射功能,让访问主机80端口的请求映射到虚拟机的80端口上。
VMware Network Adepter VMnet8虚拟网卡的IP地址是在安装VMware时由系统指定生成的,我们不要修改这个数值,否则会使主机和虚拟机无法通信。
虚拟出来的网段和NAT模式虚拟网卡的网段是一样的,都为192.168.111.X,包括NAT服务器的IP地址也是这个网段。在安装VMware之后同样会生成一个虚拟DHCP服务器,为NAT服务器分配IP地址。
当主机和虚拟机进行通信的时候就会调用VMware Network Adepter VMnet8虚拟网卡,因为他们都在一个网段,所以通信就不成问题了。
实际上,VMware Network Adepter VMnet8虚拟网卡的作用就是为主机和虚拟机的通信提供一个接口,即使主机的物理网卡被关闭,虚拟机仍然可以连接到Internet,但是主机和虚拟机之间就不能互访了

2.3 Host-Only模式

Host-Only模式下,虚拟网络是一个全封闭的网络,它唯一能够访问的就是主机。其实Host-Only网络和NAT网络很相似,不同的地方就是Host-Only网络没有NAT服务,所以虚拟网络不能连接到Internet。主机和虚拟机之间的通信是通过VMware Network Adepter VMnet1虚拟网卡来实现的。

NAT一样,VMware Network Adepter VMnet1虚拟网卡的IP地址也是VMware系统指定的,同时生成的虚拟DHCP服务器和虚拟网卡的IP地址位于同一网段,但和物理网卡的IP地址不在同一网段。

Host-Only的宗旨就是建立一个与外界隔绝的内部网络,来提高内网的安全性。这个功能或许对普通用户来说没有多大意义,但大型服务商会常利用这个功能。如果你想为VMnet1网段提供路由功能,那就需要使用RRAS,而不能使用XP2000ICS,因为ICS会把内网的IP地址改为192.168.0.1,但虚拟机是不会给VMnet1虚拟网卡分配这个地址的,那么主机和虚拟机之间就不能通信了。
综述
VMware3中网络模式中,NAT模式是最简单的,基本不需要手动配置IP地址等相关参数。至于桥接模式则需要额外的IP地址,如果是在内网环境中还很容易,如果是ADSL宽带就比较麻烦了,ISP一般是不会大方的多提供一个公网IP的。

3、通俗理解

模式解释
桥接模式同一网段内访问能访问互联网
NAT模式不在一个网段内 能上网 也能访问内网其他机器,但是其他机子访问不了。
Host模式物理机能访问。不能不上网 不能访问局域网其他机子。

二、Kali的2021安装与配置

1、简单介绍

Kali Linux是基于DebianLinux发行版, 设计用于数字取证操作系统。每一季度更新一次。由Offensive Security Ltd维护和资助。最先由Offensive SecurityMati AharoniDevon Kearns通过重写BackTrack来完成,BackTrack是他们之前写的用于取证的Linux发行版 。

Kali Linux预装了许多渗透测试软件,包括nmap 、Wireshark 、John the Ripper,以及Aircrack-ng.[2] 用户可通过硬盘、live CDlive USB运行Kali LinuxKali Linux既有32位和64位的镜像。可用于x86 指令集。同时还有基于ARM架构的镜像,可用于树莓派和三星的ARM Chromebook

2、Kali的版本

根据系统的不同选择不同的版本。主要分为32/64版本 通常用64居多
同时也提供多个安装版本 直接安装的版本、虚拟机版本 (wmare /vbox

3、配置

3.1 安装虚拟机open-vm-tools-desktop模块

sudo apt-get install open-vm-tools-desktop

3.2 设置中文

sudo apt-get install ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy
sudo dpkg-reconfigure locales

选择字符 zh_CN.UTF-8
重启 reboot

3.3 安装python3的pip

sudo apt-get install python3-pip
解决pip3超时下载
python3pip3默认源太慢,所以我们为了提升使用效果,通常选择国内源。
其实方法很简单,脚本如下:

mkdir -p ~/.pip
vim ~/.pip/pip.conf

然后将下列的内容写入~/.pip/pip.conf即可。

[global]
index-url = http://pypi.douban.com/simple
[install]
trusted-host=pypi.douban.com

我这里使用了豆瓣的源,只是使用习惯问题,当然我们也可以使用清华等其他国内源。

国内其他pip
清华:https://pypi.tuna.tsinghua.edu.cn/simple
中国科技大学:https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/

3.4 更新源

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vim /etc/apt/sources.list

#阿里云

deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib

#清华大学

deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free

#浙大

deb http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free
deb-src http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free

apt-get update 更新系统
apt-get upgrade 升级已安装的所有软件包
apt-get dist-upgrade 升级软件 会自动处理依赖包

vim 编辑器
sudo 使用特权 root权限
:wq 保存

三、Kali基础知识

Linux文件属性和权限设置

文件解释

使用 ls -al 命令后会列出如下图所示的文件详细信息:
d 是目录 directory
- ==普通文件 二进制文件 ==
l 软连接

用户权限

文件中r w x -的含义,r只读权限,w写的权限x可执行权限,-没有任何权限
目录中 r w x的含义,r具有ls权限,w是在目录上可以增加、删除、创建权限,x是具有ls –l权限。

权限设置

chmod 777 +文件名 (给单独文件赋所有权限
chmod -R 777 /home/user 注: 表示将整个/home/user目录与其中的文件和子目录的权限都设置为rwxrwxrwx

更改文件权限
chmod 654 /test
对用户可读可写: 4(读取)+ 2(写入)= 6
对用户组可读可执行: 4(读取)+ 1(执行)= 5
对其他用户仅可读: 4(读取)

常用权限
-rw------- (600) 只有所有者才有读和写的权限
-rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
-rwx------ (700) 只有所有者才有读,写,执行的权限
-rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限

-rwx--x--x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限
-rw-rw-rw- (666) 每个人都有读写的权限
-rwxrwxrwx (777) 每个人都有读写和执行的权限

也可以使用字母模式
chmod +x chmod a+x 是一样的,一般没有明确要求,可以就用chmod +x

创建一个文件只有用户具有完全控制的权限
touch moonsec
设置它用具有完全控制的权限 rwx 用户组没有任何权限 其他用户也没有任何权限
chmod u+rwx moonsec 当前用户加全部的权限
chmod g-r moonsec 群组把读取权限去掉
chmod o-r moonsec 其他用户读取权限去掉

四、渗透测试常用编码

1、页面编码

在网页设置网页编码 在<head></head>中加入设置特定html标签
<meta charset="utf-8" /> 这样页面的编码就会变成utf-8 ,如果没有设置编码就会使用默认的编码,而浏览器默认编码与之不同就会出现乱码。
常用的有三种格式分别是 utf-8、gbk、gbk2312

2、ascii编码

百度百科 详细介绍
https://baike.baidu.com/item/ASCII/309296fr=aladdin&fromid=3712529&fromtitle=ASCII%E7%BC%96%E7%A0%81
在渗透测试中常用的标准表 十进制0-127128个字符

3、HTML编码

实体
HTML 中的预留字符必须被替换为字符实体。

1、在 HTML 中,某些字符是预留的。
2、在 HTML 中不能使用小于号(<)和大于号(>),这是因为浏览器会误认为它们是标签。
3、如果希望正确地显示预留字符,我们必须在 HTML 源代码中使用字符实体(character entities)。

字符实体类似这样:

&entity_name;
或者
&#entity_number;

如需显示小于号,我们必须这样写:&lt; &#60;
不间断空格(non-breaking space
HTML 中的常用字符实体是不间断空格(&nbsp;)。

浏览器总是会截短 HTML 页面中的空格。如果您在文本中写 10 个空格,在显示该页面之前,浏览器会删除它们中的9个。如需在页面中增加空格的数量,您需要使用 &nbsp; 字符实体。
提示: 使用实体名而不是数字的好处是,名称易于记忆。不过坏处是,浏览器也许并不支持所有实体名称(对实体数字的支持却很好)。

HTML 中有用的字符实体
注释: 实体名称对大小写敏感!

显示结果描述实体名称实体编号
空格&nbsp;&#160;
<小于号&lt;&#60;
>大于号&gt;&#62;
&和号&amp;&#38;
"引号&quot;&#34;
撇号&apos; (IE不支持)&#39;
分(cent)&cent;&#162;
£镑(pound)&pound;&#163;
¥元(yen)&yen;&#165;
欧元(euro)&euro;&#8364;
§小节&sect;&#167;
©版权(copyright)&copy;&#169;
®注册商标&reg;&#174;
商标&trade;&#8482;
×乘号&times;&#215;
÷除号&divide;&#247;

HTML编码的存在就是让他在代码中和显示中分开, 避免错误。
命名实体: 构造是&加上希腊字母,
字符编码: 构造是&#加十进制

十六进制 ASCII码或unicode字符编码,浏览器解析的时候会先把html编码解析再进行渲染。但是有个前提就是必须要在“值”里,比如属性src里,但却不能对src进行html编码。不然浏览器无法正常的渲染。
http://www.qqxiuzi.cn/bianma/zifushiti.php
十六进制

<img src=&#x68;&#x74;&#x74;&#x70;&#x73;&#x3a;&#x2f;&#x2f;&#x77;&#x77;&#x77;&#x2e;&#x62;&#x61;&#x69;&#x64;&#x75;&#x2e;&#x63;&#x6f;&#x6d;&#x2f;&#x69;&#x6d;&#x67;&#x2f;&#x62;&#x64;&#x5f;&#x6c;&#x6f;&#x67;&#x6f;&#x31;&#x2e;&#x70;&#x6e;&#x67;>

十进制

<img src=&#104;&#116;&#116;&#112;&#115;&#58;&#47;&#47;&#119;&#119;&#119;&#46;&#98;&#97;&#105;&#100;&#117;&#46;&#99;&#111;&#109;&#47;&#105;&#109;&#103;&#47;&#98;&#100;&#95;&#108;&#111;&#103;&#111;&#49;&#46;&#112;&#110;&#103;>

xss
<img src="x" onerror="&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;" />

4、URL编码

URL编码是一种多功能技术,可以通过它来战胜多种类型的输入过滤器
URL编码的最基本表示方式是使用问题字符的十六进制ASCII编码来替换它们,并在ASCII编码前加%
例如,单引号字符的ASCII码为0x27,其URL编码的表示方式为%27

5、js编码

<script>alert("Hello world!");</script>
javascript十六进制编码
\x3C\x73\x63\x72\x69\x70\x74\x3E\x61\x6C\x65\x72\x74\x28\x22\x48\x65\x6C\x6C\x6F\x20\x77\x6F\x72\x6C\x64\x21\x22\x29\x3B\x3C\x2F\x73\x63\x72\x69\x70\x74\x3E
javascript的**八进制编码 **
\74\163\143\162\151\160\164\76\141\154\145\162\164\50\42\110\145\154\154\157\40\167\157\162\154\144\41\42\51\73\74\57\163\143\162\151\160\164\76
http://www.jb51.net/tools/zhuanhuan.htm
javascript unicode编码

<img src="1.jpg" />
<script src=http://xsst.sinaapp.com/m.js></script>
<embed src=http://1.com/1.swf  allowscriptaccess=always></embed>

\u003c\u0073\u0063\u0072\u0069\u0070\u0074\u003e\u0061\u006c\u0065\u0072\u0074\u0028\u0022\u0048\u0065\u006c\u006c\u006f\u0020\u0077\u006f\u0072\u006c\u0064\u0021\u0022\u0029\u003b\u003c\u002f\u0073\u0063\u0072\u0069\u0070\u0074\u003e\u0020
http://www.msxindl.com/tools/unicode16.asp
https://www.toolmao.com/xsstranser

6、hex编码

这种编码常用于数据库中 转码过后要加上0x
例如 ahex码是61 如果在数据库使用要加上0x61

7、base64编码

BASE64 编码是一种常用的字符编码,在很多地方都会用到。但base64不是安全领域下的加密解密算法。能起到安全作用的效果很差,而且很容易破解,他核心作用应该是传输数据的正确性,有些网关或系统只能使用ASCII字符Base64就是用来将非ASCII字符的数据转换成ASCII字符的一种方法,而且base64特别适合在httpmime协议下快速传输数据。
<iframe src='data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg=='>

8、json编码0

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。它基于ECMA262语言规范(1999-12第三版)中JavaScript编程语言的一个子集。JSON采用与编程语言无关的文本格式,但是也使用了类C语言(包括C, C++, C#, Java, JavaScript, Perl, Python等)的习惯,这些特性使JSON成为理想的数据交换格式。

[
    {
        "Name": "a1",
        "Number": "123",
        "Contno": "000",
        "QQNo": ""
    },
    {
        "Name": "a1",
        "Number": "123",
        "Contno": "000",
        "QQNo": ""
    },
    {
        "Name": "a1",
        "Number": "123",
        "Contno": "000",
        "QQNo": ""
    }
]
<?php
$data='[{"Name":"a1","Number":"123","Contno":"000","QQNo":""},{"Name":"a1","Number":"123","Contno":"000","QQNo":""},{"Name":"a1","Number":"123","Contno":"000","QQNo":""}]'; 
$json=json_decode($data); 
print_r($json);
?>

9、序列化

序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
百度百科详细
https://baike.baidu.com/item/%E5%BA%8F%E5%88%97%E5%8C%96/2890184?fr=aladdin

a:3:{i:0;s:3:"Moe";i:1;s:5:"Larry";i:2;s:5:"Curly";}
<?php 
$stooges = array('Moe','Larry','Curly');
$new = serialize($stooges);
print_r($new);
echo "<br />";
print_r(unserialize($new));
?>

10、utf7编码

UTF-7 (7-位元Unicode 转换格式(Unicode Transformation Format,简写成 UTF))是一种可变长度字符编码方式用以将 Unicode 字符以 ASCII 编码的字符串来呈现,可以应用在电子邮件传输之类的应用。
https://web2hack.org/xssee/

五、搭建博客系统

1、注册域名

注册域名可以到国外注册或者在国内阿里云 腾讯云 或者是其他IDC注册域名。
域名的作用是:让域名能够访问到那个ip 服务器中间件根据这个域名查找对应的目录,返回网站给浏览器。

2、域名的访问

域名访问国内的服务器域名需要备案。不备案都不允许访问国内的服务器。
域名能够指向香港、台湾以及国外的服务器。所以一般购买国外的服务器。

3、服务器

根据需要挑选适合的服务器,一般博客系统并不需要性能很好的服务器。
服务器分为独立服务器vps,独立服务器可以虚拟化很多的vpsVPS在各大IDC都有的卖淘宝也有。

4、环境安装

选择好适合的博客系统,再安装博客系统支持的环境,这里我就以phpstudy这样套件演示,一键傻瓜式安装即可。
Wordpress
https://cn.wordpress.org/latest-zh_CN.zip

5、域名的指向

a记录指向

六、端口协议

1、端口的作用

一台拥有IP地址的主机可以提供许多服务,比如Web服务、FTP服务、SMTP服务等,这些服务完全可以通过1IP地址来实现。 那么,主机是怎样区分不同的网络服务呢?显然不能只靠IP地址,因为IP 地址与网络服务的关系是一对多的关系。实际上是通过“IP地址+端口号”来区分不同的服务的。
web 80
ftp 21
http//:ip80
ftp
本地 通信端口 访问 服务器 80 通信是这样的

2、端口的类型

TCP端口和UDP端口。由于TCPUDP两个协议是独立的,因此各自的端口号也相互独立,比如TCP235端口,UDP也可以有235端口,两者并不冲突。

  • (1)TCP端口
    TCP端口,即传输控制协议端口,需要在客户端和服务器之间建立连接,这样可以提供可靠的数据传输。常见的包括FTP服务的21端口,Telnet服务的23端口,SMTP服务的25端口,以及HTTP服务的80端口等等。
  • (2)UDP端口
    UDP端口,即用户数据包协议端口,无需在客户端和服务器之间建立连接,安全性得不到保障。常见的有DNS服务的53端口,SNMP(简单网络管理协议)服务的161端口,QQ使用的8000400

3、常见的端口

范围0-65535

  • a.服务端使用的端口号
    • 预留端口号
      取值范围0-1023,这些端口我们编程的时候不能使用,是那些vip应用程序使用的,只有超级用户特权的应用才允许被分配一个预留端口号
    • 登记端口号
      取值范围1024-49151,就是我们平时编写服务器使用的端口号范围
  • b.客户端使用的端口号
    取值范围49152-65535这部分是客户端进程运行时动态选择的范围,又叫临时端口号

4、TCP协议三次握手

在这里插入图片描述
三次握手(Three-way Handshake),是指建立一个 TCP 连接时,需要客户端和服务器总共发送3个包。

  • 第一次握手([SYN], Seq = x)
    客户端发送一个SYN标记的包,Seq初始序列号x,发送完成后客户端进入SYN_SEND状态。

  • 第二次握手([SYN,ACK], Seq = y, ACK = x + 1)
    服务器返回确认包(ACK)应答,同时还要发送一个SYN包回去。ACK = x + 1,表示确认收到(客户端发来的Seq值 + 1),Seq = y, 表示让客户端确认是否能收到。发送完成后服务端进入SYN_RCVD状态。

  • 第三次握手([ACK], ACK = y + 1)
    客户端再次发送确认包(ACK),ACK = y + 1, 表示确认收到服务器的包(服务端发来的Seq值 + 1)。客户端发送完毕后,进入ESTABLISHED状态,服务端接收到这个包,也进入ESTABLISHED状态, TCP握手结束。

5、查看端口

netstat –ano

6、如何查看端口被占用?

netstat -ano|findstr "80"
显示协议统计和当前 TCP/IP 网络连接。
NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-t] [interval]

参数功能
-a显示所有连接和侦听端口。
-b显示在创建每个连接或侦听端口时涉及的可执行程序。在某些情况下,已知可执行程序承载多个独立的组件,这些情况下,显示创建连接或侦听端口时涉及的组件序列。此情况下,可执行程序的名称位于底部[]中,它调用的组件位于顶部,直至达到 TCP/IP。注意,此选项可能很耗时,并且在您没有足够权限时可能失败。
-e显示以太网统计。此选项可以与 -s 选项结合使用。
-f显示外部地址的完全限定域名(FQDN)。
-n以数字形式显示地址和端口号。
-o显示拥有的与每个连接关联的进程 ID。
-p proto显示 proto 指定的协议的连接;proto 可以是下列任何一个: TCP、UDP、TCPv6 或 UDPv6。如果与 -s 选项一起用来显示每个协议的统计,proto 可以是下列任何一个: IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP或 UDPv6。
-r显示路由表。
-s显示每个协议的统计。默认情况下,显示IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计;-p 选项可用于指定默认的子网。
-t显示当前连接卸载状态。
interval重新显示选定的统计,各个显示间暂停的间隔秒数。按 CTRL+C 停止重新显示统计。如果省略,则 netstat将打印当前的配置信息一次。

7、TCP状态转移要点

TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不会被释放。网络服务器程序要同时管理大量连接,所以很有必要保证无用连接完全断开,否则大量僵死的连接会浪费许多服务器资源。在众多TCP状态中,最值得注意的状态有两个:CLOSE_WAIT和TIME_WAIT

  • 1、LISTENING状态
      FTP服务启动后首先处于侦听(LISTENING)状态。
  • 2、ESTABLISHED状态
      ESTABLISHED的意思是建立连接。表示两台机器正在通信。
  • 3、CLOSE_WAIT
    对方主动关闭连接或者网络异常导致连接中断,这时我方的状态会变成CLOSE_WAIT 此时我方要调用close()来使得连接正确关闭
  • 4、TIME_WAIT
    我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAITTCP协议规定TIME_WAIT状态会一直持续2MSL(即两倍的分段最大生存期),以此来确保旧的连接状态不会对新连接产生影响。处于TIME_WAIT状态的连接占用的资源不会被内核释放,所以作为服务器,在可能的情况下,尽量不要主动断开连接,以减少TIME_WAIT状态造成的资源浪费。

8、常见的端口

在渗透中端口扫描的收集主机那些服务很重要,这里收集到一些常见的的服务端口
1,web类(web漏洞/敏感目录)
第三方通用组件漏洞struts thinkphp jboss ganglia zabbix

端口号名称
80web
80-89web
8000-9090web

2,数据库类(扫描弱口令)

端口号名称
1433MSSQL
1521Oracle
3306MySQL
5432PostgreSQL

3,特殊服务类(未授权/命令执行类/漏洞)

端口号名称
443SSL心脏滴血
873Rsync未授权
5984CouchDB http://xxx:5984/_utils/
6379redis未授权
7001,7002WebLogic默认弱口令,反序列
9200,9300elasticsearch 参考WooYun: 多玩某服务器ElasticSearch命令执行漏洞
11211memcache未授权访问
27017,27018Mongodb未授权访问
50000SAP命令执行
50070,50030hadoop默认端口未授权访问

4,常用端口类(扫描弱口令/端口爆破)

端口号名称
21ftp
22SSH
23Telnet
2601,2604zebra路由,默认密码zebra
3389远程桌面

端口合计详情

端口号名称
21ftp
22SSH
23Telnet
80web
80-89web
161SNMP
389LDAP
443SSL心脏滴血以及一些web漏洞测试
445SMB
512,513,514Rexec
873Rsync未授权
1025,111NFS
1433MSSQL
1521Oracle:(iSqlPlus Port:5560,7778)
2082/2083cpanel主机管理系统登陆 (国外用较多)
2222DA虚拟主机管理系统登陆 (国外用较多)
2601,2604zebra路由,默认密码zebra
3128squid代理默认端口,如果没设置口令很可能就直接漫游内网了
3306MySQL
3312/3311kangle主机管理系统登陆
3389远程桌面
4440rundeck 参考WooYun: 借用新浪某服务成功漫游新浪内网
5432PostgreSQL
5900vnc
5984CouchDB http://xxx:5984/_utils/
6082varnish 参考WooYun: Varnish HTTP accelerator CLI未授权访问易导致网站被直接篡改或者作为代理进入内网
6379redis未授权
7001,7002WebLogic默认弱口令,反序列
7778Kloxo主机控制面板登录
8000-9090都是一些常见的web端口,有些运维喜欢把管理后台开在这些非80的端口上
8080tomcat/WDCP主机管理系统,默认弱口令
8080,8089,9090JBOSS
8083Vestacp主机管理系统 (国外用较多)
8649ganglia
8888amh/LuManager 主机管理系统默认端口
9200,9300elasticsearch 参考WooYun: 多玩某服务器ElasticSearch命令执行漏洞
10000Virtualmin/Webmin 服务器虚拟主机管理系统
11211memcache未授权访问
27017,27018Mongodb未授权访问
28017mongodb统计页面
50000SAP命令执行
50070,50030hadoop默认端口未授权访问

七、渗透测试中常见windows命令

命令功能
ifconfig /all获取获取域名、IP地址、DHCP服务器、网关、MAC地址、主机名
net time /domain查看域名、时间
net view /domain查看域内所有共享
net view ip查看对方局域网内开启了哪些共享
net config workstation查看域名、机器名等
net user 用户名 密码 /add建立用户
net user 用户名 /del删除用户
net user guest /active:yes激活guest账户
net user查看账户
net user账户名 查看指定账户信息
net user /domain查看域内有哪些用户,Windows NT Workstation 计算机上可用,由此可以此判断用户是否是域成员。
net user 用户名 /domain查看账户信息
net group /domain查看域中的组
net group “domain admins” /domain查看当前域的管理用户
query user查看当前在线的用户
net localgroup查看所有的本地组
net localgroup administrators查看administrators组中有哪些用户
net localgroup administrators 用户名 /add把用户添加到管理员组中
net start查看开启服务
net start 服务名开启某服务
net stop 服务名停止某服务
net share查看本地开启的共享
net share ipc$开启ipc$共享
net share ipc$ /del删除ipc$共享
net share c$ /del删除C:共享
\192.168.0.108\c访问默认共享c盘
dsquery server查看所有域控制器
dsquery subnet查看域内内子网
dsquery group查看域内工作组
dsquery site查看域内站点
netstat -a查看开启了哪些端口,常用netstat -an
netstat -n查看端口的网络连接情况,常用netstat -an
netstat -v查看正在进行的工作
netstat -p 协议名例:netstat -p tcq/ip 查看某协议使用情况(查看tcp/ip协议使用情况)
netstat -s查看正在使用的所有协议使用情况
nbtstat -A ip对方136到139其中一个端口开了的话,就可查看对方最近登陆的用户名(03前的为用户名)-注意:参数-A要大写
reg save hklm\sam sam.hive导出用户组信息、权限配置
reg save hklm\system system.hive导出SYSKEY
net use \目标IP\ipc$ 密码 /u:用户名连接目标机器
at \目标IP 21:31 c:\server.exe在某个时间启动某个应用
wmic /node:“目标IP” /password:“123456” /user:“admin”连接目标机器
psexec.exe \目标IP -u username -p password -s cmd在目标机器上执行cmd
finger username @host查看最近有哪些用户登陆
route print显示出IP路由,将主要显示网络地址Network addres,子网掩码Netmask,网关地址Gateway addres,接口地址Interface
arp查看和处理ARP缓存,ARP是名字解析的意思,负责把一个IP解析成一个物理性的MAC地址。
arp -a将显示出全部信息
nslookupIP地址侦测器
tasklist查看当前进程
taskkill /pid PID数终止指定PID进程
whoami查看当前用户及权限
systeminfo查看计算机信息(版本,位数,补丁情况)
ver查看计算机操作系统版本
tasklist /svc查看当前计算机进程情况
netstat -ano查看当前计算机进程情况
wmic product > ins.txt查看安装软件以及版本路径等信息,重定向到ins.txt

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

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

相关文章

基于matlab从ROI和蒙版在图像中创建标记(附源码)

一、前言 此示例演示如何从一组 ROI 创建标记的阻止映像。 在此示例中&#xff0c;您使用两种方法来获取和显示标记的数据。一种方法使用多边形ROI对象来存储肿瘤和正常组织区域边界的坐标。该函数将ROI坐标转换为标记的块图像。第二种方法使用掩码来指示图像的二进制分割为组…

能不能推荐个 vue 后台管理系统模板?

前言 下面是我整理的vue2和vue3的一些后台管理系统模板&#xff0c;希望对你有帮助~ Vue2 1、iview-admin Star: 16.4k 基于 iview组件库开发的一款后台管理系统框架&#xff0c;提供了一系列的强大组件和基础模板&#xff0c;方便开发人员快速搭建一套功能丰富、界面美观、…

web入门案例-部门篇

开发流程 完成对应部门管理和员工管理的需求 准备工作 注意&#xff1a;service还要写接口实体类&#xff0c;mapper只写接口即可&#xff0c;controller是实体类 对应的三个注解 RestController&#xff08;方法返回值作为响应值&#xff09; Mapper(控制反转IOC&#xff0c…

漏洞深度分析 | CVE-2023-36053-Django 表达式拒绝服务

​ 项目介绍 Django 是一个高级 Python Web 框架&#xff0c;鼓励快速开发和简洁、务实的设计。它由经验丰富的开发人员构建&#xff0c;解决了 Web 开发的大部分麻烦&#xff0c;因此您可以专注于编写应用程序&#xff0c;而无需重新发明轮子。它是免费且开源的。 项目地址…

CodeTop整理-树篇

目录 103. 二叉树的锯齿形层次遍历 236. 二叉树的最近公共祖先 124. 二叉树中的最大路径和 102. 二叉树的层序遍历 94. 二叉树的中序遍历 110. 平衡二叉树 572. 另一个树的子树 96. 不同的二叉搜索树 543. 二叉树的直径 297. 二叉树的序列化与反序列化 199. 二叉树的…

eNSP-VRRP虚拟路由器冗余技术

VRRP-虚拟路由器冗余技术 文章目录 VRRP-虚拟路由器冗余技术一、拓扑结构二、基本配置三、测试验证四、知识点详解1.VRRP路由器2.报文格式3.工作过程 一、拓扑结构 二、基本配置 R1: #配置ip <Huawei>sys [Huawei]sys r1 [r1]int g0/0/0 [r1-GigabitEthernet0/0/0]ip a…

快速排序算法!

快速排序 什么是快速排序&#xff08;quickSort&#xff09;&#xff1f; 主要分成两部分实现&#xff0c;分区、递归操作。 分区 从数组中任意选择一个 “基准”&#xff0c;所有比基准小的元素放在基准前面&#xff0c;比基准大的元素放在基本后面。 递归 递归地对基准…

Todo-List案例版本四

全局事件总线 使用步骤 1.定义全局事件总线 new Vue({...beforeCreated(){Vue.prototype.$busthis //安装全局事件总线&#xff0c;$bus就是当前应用的vm}... }) 2.使用事件总线 a.接收数据&#xff1a;A组件想接收数据&#xff0c;则在A组件中给$bus绑定自定义事件&…

Outlook---撤回(或替换)已发出的邮件

0 Preface/Foreword 发送邮件时&#xff0c;发现邮件发错了&#xff0c;或者忘了添加附件&#xff0c;那么就需要用到撤回或者替换功能。 1 撤回/替换邮件方法 步骤如下&#xff1a; 第一步&#xff1a;双击打开邮件&#xff1b; 第二步&#xff1a;找到撤回按键

自锁电路分析与应用

原理图分享 今天工作中遇到一个设计很妙的电路&#xff0c;请教了一下硬件的工程师。 大家自己直接看图可以分享出这个电路的作用吗&#xff0c;可以在评论区告诉我哦&#xff01; 自锁电路 如上图就是一个自锁电路&#xff0c;和下面的电路一样&#xff1a; 电路现象描述&a…

23.RTC实时时钟

1.STM32 RTC介绍&#xff1a; &#xff08;1&#xff09;RTC简介&#xff1a; STM32的实时时钟(RTC)是一个独立的定时器。STM32的RTC模块拥有一组连续计数的计数器&#xff0c;在相应软件配置下&#xff0c;可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和…

虚幻5-could not find root physics body 布料系统问题解决方法

不做不知道自己身体好&#xff0c;又碰到问题了&#xff1a; could not find root physics body 1.据说是Skeleton 和SkeletaMesh傻傻分不清楚 &#xff08;但就是排查后&#xff0c;就不是这个问题&#xff09; 2.重新创造一个Physic Asset吧 Creating a New Physics Asse…

【C语言初阶(13)】三子棋游戏(优化:多子棋实现)

文章目录 一、游戏的实现思路二、游戏的实现步骤1. 菜单函数2. 设置棋盘3. 初始化棋盘4. 打印棋盘5. 玩家下棋6. 电脑下棋7. 多子棋判断输赢8. 判断棋盘是否已满 三、模块化代码实现1. test.c2. game.h3. game.c 四、结果演示 由于模块化编程的需要&#xff0c;我们需要把整个游…

解决Bridge材质导入到Blender为白色的问题

文章目录 前言一、复现问题二、解决方案总结 前言 一、复现问题 在Bridge上看到一块不错的草皮, 导入成功后是白色材质: 二、解决方案 以前用这个方法导入过模型, 那时候还没启用汉化, 也没什么材质问题. 这次操作之前刚启用了汉化, 我猜是汉化导致: 取消勾选’新建数据’, 重…

【Java】-初识java

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树&#x1f388; &#x1f389;作者宣言&#xff1a;认真写好每一篇博客&#x1f4a4; &#x1f38a;作者gitee:gitee✨ 如 果 你 喜 欢 作 者 的 文 章 &#xff0c;就 给 作 者 点 点 关 注 吧&#xff01; 文章目录 前言…

Linux 基础之 TOP 命令详解

文章目录 一、前言二、Top说明 一、前言 TOP 命令是 Linux 常用的性能分析工具&#xff0c;能够实时显示系统中各个进程资源占用状况&#xff0c;类似于 Windows 的任务管理器。 二、Top说明 当使用一个工具时&#xff0c;对此最快的了解方式就是查看说明&#xff0c;那就是…

6.任务调度:保存和还原现场,时间片轮转

实现任务调度&#xff0c;模拟时间片 1.任务调度 在进行上下文切换时&#xff0c;需要保存和切换以下内容&#xff1a; 寄存器&#xff1a;包括通用寄存器&#xff08;如 EAX、EBX、ECX等&#xff09;和特殊寄存器&#xff08;如程序计数器 PC、堆栈指针 SP、基址指针 BP等&a…

LeetCode | C++ 动态规划——完全背包、518. 零钱兑换 II、377. 组合总和 Ⅳ

目录 完全背包518. 零钱兑换 II377. 组合总和 Ⅳ参考 完全背包 有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品都有无限个&#xff08;也就是可以放入背包多次&#xff09;&#xff0c;求解将哪些物品装入背包…

【数据挖掘】时间序列教程【九】

第5章 状态空间模型和卡尔曼滤波 状态空间模型通常试图描述具有两个特征的现象 有一个底层系统具有时变的动态关系,因此系统在时间上的“状态”t 与系统在时间的状态t−1有关 .如果我们知道系统在时间上的状态t−1 ,那么我们就有了我们需要知道的一切,以便对当时的状态进行推…

12-ATF架构下的启动流程

快速链接: . 👉👉👉 个人博客笔记导读目录(全部) 👈👈👈 付费专栏-付费课程 【购买须知】:Secureboot从入门到精通-[目录] 👈👈👈目录 1、Boot模型2、Boot示例3、Runtime模型4、异常跳转模型5、启动跳转模型