hackNos-Os-ByteSec打靶日记
1. nmap扫描
1.1 确认目标ip地址
通过反复开启靶机并扫描相应网段中存活的主机即可确定靶机的ip地址
1 |
|
确定靶机的ip地址:192.168.2.9
1.2 目标开放TCP端口
1 |
|
靶机开放的tcp端口有:80,139,445,2525
1.3 目标开放UDP端口
1 |
|
保留备用,常规扫描一下
1.4 开放TCP端口详细信息
1 |
|
可以确定的信息有:
操作系统:Linux
还有一些额外的信息内容:
暂时不清楚这些是啥玩意儿,后续没有思路的时候查查看
1.5 nmap漏洞扫描
1 |
|
可以获得的信息不太多,找到的sql注入也不太可靠,Dos攻击没什么用
最下面那里似乎找到了smb,但是其说明的似乎是关于Windows的内容
2. 信息检索
2.1 目录爆破
- dirsearch目录爆破
1 |
|
- gobuster目录爆破
1 |
|
可以得到的目录有:
/news
/img
/html
/gallery
/css
/js
/server-status
2.2 信息收集
通过遍历已经爆破出来的目录发现在/img
和/gallery
目录下存在网页构建的相应图片,但是图片并没有什么相应的隐藏信息或其他的元数据隐藏信息(使用exiftool工具查看原数据)。
至此,已经基本可以确定从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 |
|
通过工具的测试可以发现其存在三个linux用户:sagar、blackjax、smb;可惜没有检测出用户的密码;
但是通过上述的文章可知,工具medusa
能够实现smb用户密码的爆破,那么我们就用我们常用的密码字典进行简单的爆破;构建三个用户的用户名字典;
1 |
|
1 |
|
可以确定用户
blackjax
和sagar
用户的密码均为空格
密码,原来上面不是没有检测出密码,而是密码是空格(最后测试的时候,发现smb用户也是空密码)
尝试使用工具smbclient
连接一下目标,通过检测共享文件夹,发现并没有共享的文件夹
1 |
|
根据返回结果可以猜测共享的文件夹应该是被隐藏了,所以我们假设共享的文件夹名称就是对应的用户名称进行访问;
1 |
|
最后,在smb用户共享的smb文件夹中终于进入了相应的文件夹
将文件夹中的文件下载到本地
1 |
|
回到本地发现,main.txt文件没有什么有用的信息,且safe.zip文件处于加密状态
通过搜索zip文件密码爆破工具可以知道fcrackzip
能够对zip文件进行密码爆破,那么我们直接使用工具进行密码爆破;
1 |
|
成功爆破出压缩文件的压缩密码:hacker1
1 |
|
解压文件后得到一张图片和一个流量监听文件,查看一下图片内容
似乎不是什么非常有用的信息,将注意力放在流量监听的文件上吧。
使用wireshark
工具打开该流量监听的文件发现其协议均为802.11
,即无线连接数据。
对于无线网络流量数据包常用工具Aircrack-ng
进行分析破解获取有用的信息;
1 |
|
爆破一个用户名和相应的密码
username:blackjax password:snowflake
想想之前使用到用户名和密码的地方,也就只有ssh没有用到了,尝试使用ssh连接靶机,注意ssh服务的端口是2525
1 |
|
1 |
|
至此,我们就已经获得了简单的基本权限啦!
查看user.txt
获得flag提示
提示我们去获得Root权限,MD5-HASH解密得到内容
abhishek
3. 提权
3.1 命令提权
照常惯例,寻找一下是否存在可以提权的命令
1 |
|
有许多没有见过的命令,可以去查查看是否存在可以提权的命令:
/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命令相似
通过chatgpt搜索可以知道netscan
命令并不是一个标准的命令,因此可以猜测是网站构建者自己构建的命令,其底层是调用netstat命令来实现的,所以其本质调用了netstat命令
因此,我们到/tmp
目录下创建一个netstat
来来替代原本系统的netstat
(通过添加系统环境变量到/tmp目录,使系统调用netstat时,定位到/tmp目录下的netstat),然后用户以系统权限调用netscan命令时,就会以系统权限执行我们构建的netstat
从而获取系统权限
1 |
|
最后也是成功的拿下了flag。完工!下班!
4. 总结
- 靶场不再从最基本的网页管理系统获取系统普通权限,而是通过协议漏洞搜索获取ssh密码破解获得基本权限
- 提权不在拘泥与漏洞和命令两方面提权,要从更多方面考虑,是不是用户自定义的命令且调用了系统命令,那么就可以修改环境变量来实现提权
- 无线数据流量监听数据包的破解,本次采用工具破解,若下次无法用工具破解又该如何下手?
smbclient
、enum4linux
、medusa
、aircrack-ng
等工具的使用方法,多搜索,多查资料,能够查到相应的工具利用。- 实在无法找到相应的信息资料,考虑自行分析。