【测试】Kali Linux 渗透安全学习笔记(4) - 单一服务器扫描

距离上次做 Kali Linux 分享已经相隔半年之久了,刚好需要主导公司每半年一次的本地安全加固工作,这次将简单分享自己是如何做单一服务器的扫描。

声明:

  1. 本文测试的站点为自家站点仅做学习使用,不存在侵犯网络信息安全问题;
  2. 本文只介绍工具的使用并不鼓吹任何非法活动,请各位看官三思而后行一切后果自负;
  3. 本文涉及敏感信息将会进行脱敏处理;

1. 端口扫描

在正式进入系统扫描前先进行网络端口扫描(由外到内)。由于本次是做已知的单一服务器扫描,因此已经获取到目标服务器 ip 直接对目标服务器扫描即可。

# 创建目录存储扫描内容
┌──(root💀b8ef6c2abc47)-[~]
└─# mkdir /home/standalone/nmap

┌──(root💀b8ef6c2abc47)-[~]
└─# cd /home/standalone/nmap

┌──(root💀b8ef6c2abc47)-[/home/standalone/nmap]
└─# nmap -sV -sS -O -p- -oA scan_all 192.168.xxx.xxx
Starting Nmap 7.94 ( https://nmap.org ) at 2024-04-19 03:41 UTC
Nmap scan report for 192.168.xxx.xxx
Host is up (0.0027s latency).
Not shown: 65533 closed tcp ports (reset)
PORT     STATE SERVICE    VERSION
22/tcp   open  ssh        OpenSSH 7.4 (protocol 2.0)
2377/tcp open  ssl/swarm?
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port2377-TCP:V=7.94%T=SSL%I=7%D=4/19%Time=6621E7FC%P=x86_64-pc-linux-gn
SF:u%r(NULL,F,"\0\0\x06\x04\0\0\0\0\0\0\x05\0\0@\0")%r(GenericLines,F,"\0\
SF:0\x06\x04\0\0\0\0\0\0\x05\0\0@\0")%r(GetRequest,F,"\0\0\x06\x04\0\0\0\0
SF:\0\0\x05\0\0@\0")%r(HTTPOptions,F,"\0\0\x06\x04\0\0\0\0\0\0\x05\0\0@\0"
SF:)%r(RTSPRequest,F,"\0\0\x06\x04\0\0\0\0\0\0\x05\0\0@\0")%r(RPCCheck,F,"
SF:\0\0\x06\x04\0\0\0\0\0\0\x05\0\0@\0")%r(DNSVersionBindReqTCP,F,"\0\0\x0
SF:6\x04\0\0\0\0\0\0\x05\0\0@\0")%r(DNSStatusRequestTCP,F,"\0\0\x06\x04\0\
SF:0\0\0\0\0\x05\0\0@\0")%r(Help,F,"\0\0\x06\x04\0\0\0\0\0\0\x05\0\0@\0")%
SF:r(SSLSessionReq,F,"\0\0\x06\x04\0\0\0\0\0\0\x05\0\0@\0")%r(TerminalServ
SF:erCookie,F,"\0\0\x06\x04\0\0\0\0\0\0\x05\0\0@\0")%r(TLSSessionReq,F,"\0
SF:\0\x06\x04\0\0\0\0\0\0\x05\0\0@\0")%r(Kerberos,F,"\0\0\x06\x04\0\0\0\0\
SF:0\0\x05\0\0@\0")%r(SMBProgNeg,F,"\0\0\x06\x04\0\0\0\0\0\0\x05\0\0@\0")%
SF:r(X11Probe,F,"\0\0\x06\x04\0\0\0\0\0\0\x05\0\0@\0")%r(FourOhFourRequest
SF:,F,"\0\0\x06\x04\0\0\0\0\0\0\x05\0\0@\0")%r(LPDString,F,"\0\0\x06\x04\0
SF:\0\0\0\0\0\x05\0\0@\0")%r(LDAPSearchReq,F,"\0\0\x06\x04\0\0\0\0\0\0\x05
SF:\0\0@\0")%r(LDAPBindReq,F,"\0\0\x06\x04\0\0\0\0\0\0\x05\0\0@\0")%r(SIPO
SF:ptions,F,"\0\0\x06\x04\0\0\0\0\0\0\x05\0\0@\0")%r(LANDesk-RC,F,"\0\0\x0
SF:6\x04\0\0\0\0\0\0\x05\0\0@\0")%r(TerminalServer,F,"\0\0\x06\x04\0\0\0\0
SF:\0\0\x05\0\0@\0")%r(NCP,F,"\0\0\x06\x04\0\0\0\0\0\0\x05\0\0@\0")%r(Note
SF:sRPC,F,"\0\0\x06\x04\0\0\0\0\0\0\x05\0\0@\0")%r(JavaRMI,F,"\0\0\x06\x04
SF:\0\0\0\0\0\0\x05\0\0@\0")%r(WMSRequest,F,"\0\0\x06\x04\0\0\0\0\0\0\x05\
SF:0\0@\0")%r(oracle-tns,F,"\0\0\x06\x04\0\0\0\0\0\0\x05\0\0@\0")%r(ms-sql
SF:-s,F,"\0\0\x06\x04\0\0\0\0\0\0\x05\0\0@\0")%r(afp,F,"\0\0\x06\x04\0\0\0
SF:\0\0\0\x05\0\0@\0")%r(giop,F,"\0\0\x06\x04\0\0\0\0\0\0\x05\0\0@\0");
Device type: printer|WAP
Running (JUST GUESSING): HP embedded (86%), Netgear embedded (85%)
OS CPE: cpe:/h:hp:officejet_pro_8500 cpe:/h:netgear:wgr614v7
Aggressive OS guesses: HP Officejet Pro 8500 printer (86%), HP PSC 2400-series Photosmart printer (85%), Netgear WGR614v7 wireless broadband router (85%)
No exact OS matches for host (test conditions non-ideal).

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 106.11 seconds

关于扫描命令中的参数如下:

  • -sV:探测开放端口的服务版本信息
  • -sS:使用SYN半开式扫描,速度快且相对隐蔽
  • -O:启用操作系统指纹识别
  • -p-:扫描目标 IP 的全部 65535 个端口
  • -oA scan_all:将扫描结果以标准格式、XML 格式和 Grepable 格式存储为 scan_all 开头的三个文件

接着,我们可以粗略分析一下返回的信息:

PORT     STATE SERVICE    VERSION
22/tcp   open  ssh        OpenSSH 7.4 (protocol 2.0)
2377/tcp open  ssl/swarm?
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
...
Device type: printer|WAP
Running (JUST GUESSING): HP embedded (86%), Netgear embedded (85%)
OS CPE: cpe:/h:hp:officejet_pro_8500 cpe:/h:netgear:wgr614v7
Aggressive OS guesses: HP Officejet Pro 8500 printer (86%), HP PSC 2400-series Photosmart printer (85%), Netgear WGR614v7 wireless broadband router (85%)
No exact OS matches for host (test conditions non-ideal).

通过返回得知,这台服务器开放了 2 个 TCP 端口,一个是 22 端口它运行着 OpenSSH 7.4 服务,另一个是 2377 端口运行着未知服务,但可能是 SSL/swarm。此外 2377 端口返回了一些数据,但 Nmap 无法识别服务,虽然 Nmap 提供了一些服务指纹但内容是经过加密的,因此无法窥探一二。

根据 Nmap 推测,该设备可能是一台打印机或无线接入点(WAP)。其中,86%可能性是 HP Officejet Pro 8500 打印机,85%可能性是 HP PSC 2400 系列 Photosmart 打印机,85%可能性是 Netgear WGR614v7 无线宽带路由器。并且没有找到完全匹配的操作系统。

其实根据我们过往的经验可以知道 22 端口一般都是 ssh 远程连接端口,而 2377 很熟但一时间想不起来,需要进一步排查。此外,如果想以 Html 方式查看结果可以通过 xsltproc 工具进行转换:

┌──(root💀b8ef6c2abc47)-[/home/standalone/nmap]
└─# xsltproc scan_all.xml -o scan_all.html

┌──(root💀b8ef6c2abc47)-[/home/standalone/nmap]
└─# ls
scan_all.gnmap  scan_all.html  scan_all.nmap  scan_all.xml

结果如下图:
image.png

2. 系统漏洞扫描

在系统漏洞扫描方面,这次我选用了 Nessus 进行全面扫描。关于 Nessus 的安装可以参考以下的文章,我就不再详述了。

Kali Linux Nessus详细安装步骤!!!

但不知为何,有可能是我用 Docker Kali 的缘故 Kali 死活装不了 Nessus,于是采用第二种解决方案:Docker 部署。通过 tenable 官网得知只需几个参数就可以部署并使用 Nessus 非常方便,如下图:
image.png
于是直接下载镜像并且运行(用户信息的哪些启动了容器再说)

(base) yuanzhenhui@MacBook-Pro ~ % docker pull tenable/nessus:latest-ubuntu
latest-ubuntu: Pulling from tenable/nessus
7f8e4ec648be: Pull complete 
Digest: sha256:169fa12a6b297638737b777bea60e3a5fbdbea9b679f3a813eddcace22940849
Status: Downloaded newer image for tenable/nessus:latest-ubuntu
docker.io/tenable/nessus:latest-ubuntu

What's Next?
  View summary of image vulnerabilities and recommendations → docker scout quickview tenable/nessus:latest-ubuntu
(base) yuanzhenhui@MacBook-Pro ~ % docker run -d --name nessus -p 8834:8834 tenable/nessus:latest-ubuntu
c3c58732640a6503a5e3b9900d1b135dfcd2f9f1d3901d6a75be85f5fc2a2a7a

容器启动后就可以使用 https://localhost:8834 进行访问了。(如果用新版 Chrome 浏览器这里一定要用 https)

第一次访问时会要求注册,这个不难一步一步跟着做就可以了。如果像我一样想快速体验一下可以选择“Register for Nessus Essentials” 用邮箱注册即可获取激活码(有 7 天试用)。

image.png

PS:之前并不是使用 Nessus 进行系统扫描的,只不过我们的运维小哥力荐这次就尝试一下吧。

在安装的收尾阶段 Nessus 会自动下载插件,并且需要一些时间进行编译。在编译结束后会要求重新登录。登录成功后就可以创建扫描任务了。点击右上方“New Scan”按钮后就跳转到 Scan Templates 页面,这里选择“Basic Network Scan”。

image.png

接下来就可以进行扫描配置了(这里图例我做最基础配置)

image.png
虽然已经用 Nmap 做了端口扫描,但是既然提供了这种服务那选择就选择全端口扫描吧。
image.png
值得一提的是,Nessus 也有提供 Web 漏洞扫描方案,在这里也选择了混合扫描方式。
image.png

输出的报告不让修改,因此做了反选处理

image.png

在点击“Save”保存配置后就可以开始扫描了

image.png

最后扫描出来的结果如下:

image.png

由扫描结果可知,当前服务器大部分问题都是 info 级别,但也有零星几个是中等级和低等级的。

image.png
这里就是展示具体问题的地方了,点击后可以展开来看。里面含有有修复建议,提示还算清晰。
image.png
最后点击右上角的“Report” 按钮即可导出 pdf 报告。

3. Web应用漏洞扫描

接下来本应进行 Web 应用的漏洞扫描的,但通过端口扫描得知目前开放的端口只有 22 和 2377 端口。经查明 22 为 ssh 远程端口,2377 为 Docker 通讯端口。两者皆不是 Web 应用因此无需进行 Web 应用扫描了。
PS:如果要进行 Web 应用扫描可以使用之前介绍过的 Nikto

【测试】Kali Linux 渗透安全学习笔记(3) - Nikto 简单应用

或者 Burp suite 来做。后者 Burp suite 是 Kali 自带的并且提供了图形化界面,用起来更加直观是个不错的选择(后面有机会会说说)。

4. 密码检测

网络、系统、应用都基本扫过一遍了,剩下的就是对弱密码方面进行扫描检测了。由端口扫描得知这台服务器存在 ssh 远程服务,那么可以通过工具验证一下这个 ssh 的密码强度,若发现存在弱密码的情况必须立刻修复。

这里我选择 Ncrack 来实施这项工作( Hydra、Ncrack、Medusa、Patator 这 4 个主流工具都可以做密码检测的事情,功能也都大同小异。Ncrack 相对而言比较简单一点)。

接着就可以准备用户名清单(username.txt)和密码字典(password.txt)文件了。在这里将使用 rockyou.txt 作为密码字典,因为 Kali 里面本来就预安装了 rockyou.txt.gz ,在/usr/share/wordlists 路径底下,如下图:

┌──(root💀b8ef6c2abc47)-[/usr/share/wordlists]
└─# ls
amass       dirb       dnsmap.txt     fern-wifi  legion      nmap.lst        seclists    wfuzz
brutespray  dirbuster  fasttrack.txt  john.lst   metasploit  rockyou.txt.gz  sqlmap.txt  wifite.txt

┌──(root💀b8ef6c2abc47)-[/usr/share/wordlists]
└─# gzip -d rockyou.txt.gz 

┌──(root💀b8ef6c2abc47)-[/usr/share/wordlists]
└─# ls
amass       dirb       dnsmap.txt     fern-wifi  legion      nmap.lst     seclists    wfuzz
brutespray  dirbuster  fasttrack.txt  john.lst   metasploit  rockyou.txt  sqlmap.txt  wifite.txt

接下来创建文件夹并将 rockyou.txt 拷贝到这个目录下备用,如下图:

┌──(root💀b8ef6c2abc47)-[/usr/share/wordlists]
└─# mkdir /home/ncrack

┌──(root💀b8ef6c2abc47)-[/usr/share/wordlists]
└─# cd /home/ncrack

┌──(root💀b8ef6c2abc47)-[/home/ncrack]
└─# cp /usr/share/wordlists/rockyou.txt .

就在同样的文件夹下创建 username.txt(内容比较敏感就不展示了,反正每个用户名一行就可以了)。之后就可以执行命令进行检测了,如下图:

┌──(root💀b8ef6c2abc47)-[/home/ncrack]
└─# ncrack -p 22 --user username.txt -P rockyou.txt 192.168.xxx.xxx

Starting Ncrack 0.7 ( http://ncrack.org ) at 2024-04-19 11:22 UTC


Ncrack done: 1 service scanned in 326.03 seconds.

Ncrack finished.

此外,通过网上搜索得知,CrackStation 网站也有提供数据字典下载:

CrackStation’s Password Cracking Dictionary (Pay what you want!)

密码本大小解压后足足有15GB,对于 txt 文件来说这个量足够庞大。
image.png

5. 总结

在完成了以上的一系列操作后,剩下的还会有渗透测试与验证以及安全加固和复测两项任务。

这里的渗透测试与验证主要是针对上面扫描的结果去进行漏洞的验证并试图获取系统控制权。但本次任务主要是对自家本地服务器的进行加固,因此没有这番操作的必要。

而安全加固和复测任务可以依据上述扫描结果按需进行漏洞修复即可,该打补丁打补丁,该配置安全策略配策略。所有工作加固动作完成后按照上述办法进行重测就能够验证效果并更新安全配置基线,留存到 CMDB 里面。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Kotlin语法快速入门--条件控制和循环语句(2)

Kotlin语法入门–条件控制和循环语句(2) 文章目录 Kotlin语法入门--条件控制和循环语句(2)二、条件控制和循环语句1、if...else2、when2.1、常规用法2.2、特殊用法--并列:2.3、特殊用法--类型判断:2.4、特殊…

Ubuntu 自己写的程序如何创建快捷方式

在Ubuntu中创建程序的快捷方式通常是通过将一个指向程序可执行文件的.desktop文件放入/usr/share/applications/或用户的~/.local/share/applications/目录来实现的。以下是创建快捷方式的基本步骤和示例: 创建一个新的.desktop文件。 在文件中填写必要的信息&…

【MySQL】Linux环境下MySQL基本操作

目录 一、登录进入MySQL 二、MySQL数据库的查看、创建、删除、重命名、拷贝操作 三、数据库下表的创建、删除、查看、修改(增加、删除、更新字段/列,修改字段/列名) 四、表中数据的插入、删除、查找、更新 一、登录进入MySQL mysql -u u…

如何登陆远程桌面?

远程桌面登录是一种在不同网络环境下实现电脑之间远程连接的常见技术手段。本文将介绍一种名为【天联】的组网产品,它是一款由北京金万维科技有限公司自主研发的连接产品,可帮助用户在异地组网环境中构建局域网,解决电脑与电脑、设备与设备、…

入坑 Node.js 1

原文:https://blog.iyatt.com/?p14717 前言 前面刚刚对 Spring Boot 有了个概念,再来学学 Node.js,顺便当学 JavaScript,为后面入前端做准备。 环境 Node.js 20.12.2 官方 API 文档:https://nodejs.org/docs/lat…

使用 ArcGIS 对洪水预测进行建模

第一步 — 下载数据 所有数据均已包含在 Esri 提供的项目压缩文件中。我将创建一个名为“Stowe_Hydrology.gdb”的新地理数据库,在其中保存这些数据以及创建的所有后续图层。 1-0。斯托市边界 斯托城市边界是佛蒙特州地理信息中心提供的矢量要素类面。我将这一层称为“Stow…

C#语法基础知识之环境搭建

C#基础语法知识 环境搭建 、变量、运算符、条件分支语句、循环语句 目录 C#基础语法知识环境搭建1、程序语言是什么2、常用的主流语言3、为何要学习C#语言4、IDE是什么5、下载安装Visual Studio6、新建项目进行基础设置7、基础设置8、理解写代码9、注释的三种方式10、控制台…

面试集中营—mysql架构相关

一、Mysql基本架构 这个问题没太有人问,笔者也是浅尝辄止,但是了解一个中间件一定要从架构开始,上来就背八股文那就没意思了。 从下图可以看到Mysql的包括网络连接、服务、数据存储和系统文件(日志)四大部分。 数据连接…

【python项目推荐】键盘监控--统计打字频率

原文:https://greptime.com/blogs/2024-03-19-keyboard-monitoring 代码:https://github.com/GreptimeTeam/demo-scene/tree/main/keyboard-monitor 项目简介 该项目实现了打字频率统计及可视化功能。 主要使用的库 pynput:允许您控制和监…

免费https证书申请及部署教程

目前随着https访问的普及度逐渐提高,https证书的使用率也与日俱增,多数网站都会通过实现https来保障自身网站的数据传输安全,这时候就离不开SSL证书了,如何获取SSL证书,又如何将SSL证书部署在域名上,今天为…

Hadoop——Yarn 调度器和调度算法

Yarn 调度器和调度算法 YARN调度器(Scheduler)是负责将集群资源分配给不同应用程序的组件。它根据应用程序的资源需求和优先级,以及集群的资源供给情况,决定如何分配资源。YARN提供了多种调度器实现,每种调度器都有不…

RT-Thread电源管理组件

电源管理组件 嵌入式系统低功耗管理的目的在于满足用户对性能需求的前提下,尽可能降低系统能耗以延长设备待机时间。 高性能与有限的电池能量在嵌入式系统中矛盾最为突出,硬件低功耗设计与软件低功耗管理的联合应用成为解决矛盾的有效手段。 现在的各种…

设计模式之观察者模式(下)

3)JDK对观察者模式的支持 1.概述 在JDK的java.util包中,提供了Observable类以及Observer接口,它们构成了JDK对观察者模式的支持。 2.Observer接口 在java.util.Observer接口中只声明一个方法,它充当抽象观察者。 void update…

Matlab软件使用教学

1. Matlab简介 Matlab(Matrix Laboratory的缩写)是一种由MathWorks公司开发的数值计算和可视化编程环境。它广泛应用于工程、科学研究、数学和教育等领域,因其强大的计算能力和丰富的工具箱而受到青睐。 2. 安装与启动 安装:从M…

05_Qt资源文件添加

Qt资源文件添加 Qt 资源系统是一个跨平台的资源机制,用于将程序运行时所需要的资源以二进制的形式存储于可执行文件内部。如果你的程序需要加载特定的资源(图标、文本翻译等),那么,将其放置在资源文件中,就…

【电控笔记5.7】Notch-Filter滤波器

Notch-Filter滤波器 通过阻尼比,限制陡峭程度 阻尼比小,比较陡峭,对周围信号干扰比较小,衰减度小 总结 实现:转换成Z转换进行伯德图验证

5款小伙伴们私信推荐免费软件

​ 最近后台收到好多小伙伴的私信,今天继续推荐五款小工具,都是免费使用的,大家可以去试试看。 1. 数据恢复工具——EaseUS Data ​ EaseUS Data是一款高效的数据恢复软件,能够恢复因各种原因丢失的文件,如误删除、格…

成都多家终端门店反馈:飞天茅台价格已回升至良性稳定区间

成都多家终端门店反馈:飞天茅台价格已回升至良性稳定区间 原创 尼 奥 长江酒道 2024-04-20 16:36 四川 执笔 | 尼 奥 编辑 | 古利特 “价值决定价格,价格围绕价值上下波动。” 进入4月份白酒传统销售淡季,飞天茅台的价格波动成为行业关注…

IOTOS物联中台衔接通信连接驱动和协议报文驱动,实现多个设备实例复用同一个TCP端口,以modbus rtu协议tcp透传方式采集数据

网站:UIOTOS前端零代码 原型即应用!支持页面嵌套、属性继承、节点编辑,真正实现页面即组件,支持无代码开发复杂的前端界面应用。 从前面驱动实例可以看出,设备连接通信和报文解析通常是在一个驱动里,这种方…

gitee / github 配置git, 实现免密码登录

文章目录 怎么配置公钥和私钥验证配置成功问题 怎么配置公钥和私钥 以下内容参考自 github ssh 配置,gitee的配置也是一样的; 粘贴以下文本,将示例中使用的电子邮件替换为 GitHub 电子邮件地址。 ssh-keygen -t ed25519 -C "your_emai…