HTB靶机-codify
连接并检查稳定性
信息收集
tcp端口扫描
22 80 3000 8080开放,进行详细扫描
udp扫描
没有有用价值的内容
web网页尝试
首先我们需要在hosts文件中添加一行记录
访问查看网页
发现是个nodejs代码沙盒测试环境。点开about us页面
我们发现是基于vm2的库搭建的沙盒,并且超链接给出了我们vm2的版本信息
对于沙盒类的代码执行,我们很容易想到的是沙盒逃逸类的漏洞,我们可以去检索一下vm2相关的沙盒逃逸类的漏洞,以"vm2 sandbox escape vulnerability"类似的关键词在搜索引擎检索
检索到一个漏洞,并且版本符合3.9.16。打开利用的pocSandbox Escape in [email protected] (github.com)
1234567891011121314151617181920212223const {VM} = require("vm2");const vm = new VM();const code = `err = {};c ...
HTB靶机-APT
todo
Windows内核提权-JuicyPotato
JuicyPotato简介
JuciyPotato俗称烂土豆,是一个基于MS16-075漏洞利用工具RottenPotatoN上改进的内核提权工具。ohpe/juicy-potato: A sugared version of RottenPotatoNG, with a bit of juice, i.e. another Local Privilege Escalation tool, from a Windows Service Accounts to NT AUTHORITY\SYSTEM. (github.com)
功能简介
据页面的介绍,烂土豆可以让你做下面这些事情
Target CLISID 选择任何你想要的CLISID。在这里有一个列表可以找到
COM Listening port 设置DOM监听端口
COM Listening IP address 设置DOM监听的IP地址
Process creation mode 进程创建的模式。可以选择下面几种模式:
CreateProcessWithToken (需要 SeImpersonate 权限)
CreatePro ...
Powershell渗透测试工具-Nishang
Nishang是一个针对Powershell的渗透测试工具,集成了框架、脚本和各种Payload,包括了下载和执行、键盘记录、DNS、延时命令等脚本。
Nishang安装
首先我们需要去到Github上下载Nishang,直接从Releases下载即可。下载下来后解压我们得到一个文件夹。
目录
这文件夹代表了Nishang的不同模块
在渗透测试中,这些工具往往我们需要提取出来使用,而不是一整个贴到被渗透服务器中,因此需要我们对Nishang的目录结构有所了解。
Bypass执行策略
Powershell的默认执行策略是Restricted的,而Restricted是不允许任何脚本运行的。因此我们需要一些手段去Bypass执行策略。Bypass执行策略的十五种方法可以参考这篇https://blog.netspi.com/15-ways-to-bypass-the-powershell-execution-policy/。
从别人那参考来的三个常用的方式:
1230. Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Un ...
HTB靶机-Bastard
连接到HackTheBox
在HTB网站下载vpn文件,使用openvpn进行连接
1sudo openvpn lab_dguthacker.ovpn
连接成功后启动靶机,对靶机进行ping测试,测试连接稳定性,并查看本机在虚拟网络中的地址
可以看到本机ip为10.10.16.3,与靶机10.10.10.9连接延迟110+ms,无丢包,连接较稳定。
nmap信息收集
TCP端口信息收集
1sudo nmap -sT --min-rate 10000 -p- 10.10.10.9 -oA nmapscan/ports
解析:
-sT:TCP扫描
–min-rate 10000:最小速率10000
-p-:全端口扫描
-oA:结果全格式输出保存到nmapscan/ports
从结果上看,有三个端口是开放的。
进行UDP端口信息收集
1sudo nmap -sU --top-ports 20 10.10.10.9 -oA nmapscan/UDP
解析:
-sU:UDP扫描
–top-ports 20:最常用的20个端口
可以看到扫描结果都是open|filtered的状态,没 ...
信息收集(3):DNS
NSLOOKUP
nslookup具有两种模式,交互和非交互
非交互模式
交互模式
进入交互模式后不需要输入nslookup,即可重复查询DNS解析
输出结果解析
最上面的是Server和Address是查询的DNS服务器。可自行指定
#53 代表的是模式情况下DNS服务器端口为53
Non-authoritative answer非权威应答,answer来自于其他服务器的缓存,而不是权威的DNS服务器。
domain name system - DNS - NSLOOKUP what is the meaning of the non-authoritative answer? - Server Fault
"Non-authoritative answer"意味着响应来自于非授权服务器,它可能是一个经过缓存的响应或者来自中间服务器。在大多数情况下,这种响应是可靠和有效的,但也有可能存在更新延迟或不准确的情况。
指定特定类型的查询
在默认情况下,nslookup会解析A类型,我们可以使用type来指定类型
12nslookup -type=mx ...
网络工具瑞士军刀-NETCAT
NETCAT是什么
netcat被称为网络工具中的瑞士军刀,体积小功能多
侦听模式 / 传输模式
telnet / 获取banner信息
传输文本信息
传输文件/目录,作为一个文件服务器或是说FTP服务器
加密传输文件
远程控制/木马,有个很理想的特性是杀毒软件几乎不会把NC当作病毒
加密所有流量
流媒体服务器
远程克隆硬盘(电子取证相关)
telnet / banner
nc -nv 192.168.31.1 80
-n: 直接使用IP地址,不使用dns
-v: 展示详细信息
连接后可以使用HTML相关的一些指令,例如head /等
传输文本信息
A:nc -l -p 4444
B:nc -nv 对方的IP 4444
这个功能可以在数字取证中使用,例如我们需要将ls -l的结果输出到另外一台机子上,并将结果输出到一个文本文件中,我们就可以用到这个功能
传输文件/目录
传输文件
A: nc -lp 4444 > 保存的名称
B: nc -nv 目标ip 4444 < 要传递文件
或
A:nc -lp 4444 < 要传输的名称
B: nc ...
SQL注入(11):注释符号过滤
在我们注入的过程中,会遇到一些措施或者WAF对我们的注入进行拦截或者是使其失效。因此我们还需要了解如何绕过一些对我们SQL注入进行拦截的方法。
注释符号过滤
对于靶机less-23,它对我们的注释符号进行了过滤,使得我们没法通过一般手段注释掉后面的查询语句
我们先来看源代码部分,源代码实现这个效果的方式非常简单
简单来说,就是一旦在id中匹配到#或者--,就会替换成空。
方法一
添加多一个闭合符,使其后面单引号完成闭合。此方法不一定能够成功,可以尝试一下
方法二
使用or/and进行绕过,通过or/and后面追加的语句实现闭合。
此方法通过留出一个闭合符与源代码中的闭合符进行闭合,使得注入语句可以正常执行。
接下来我们只需要在能正常回显的2处,修改成我们的注入语句即可。
and和or过滤
SQL注入(10):POST注入
POST提交注入
POST提交注入有别于我们之前的注入方式,我们之前的注入方式都采用了GET请求的方式,而POST提交注入是使用POST请求的方式进行尝试注入。
POST提交、GET提交对比
get提交可以被缓存,post提交不会
在浏览器地址栏、历史记录、书签都可以保存GET提交
get提交有长度限制,最长2048个字符;
post提交没有长度要求,不是只允许使用ASCII字符,还可以使用二进制数据
POST提交演示
这里我们使用less-11进行演示,并使用burpsuite进行抓包演示
我们可以发现,在内容区存在三个参数uname、passwd和submit。这三个参数就是我们刚刚提交的登录操作,我们可以选择放行Forward或丢弃Drop,这里我们选择放行。发现出现登录失败的提示。
一般来说,登陆的场景都是通过POST的方式提交的。
联合注入
我们在前面抓包分析后,发现提交的参数有三个,我们可以在hackbar添加Post data尝试我们之前GET提交熟悉的的流程,对网站注入点进行测试
判断注入点闭合,并注释后面语句
group by二分法判断查询列 ...
SQL注入(9):DNSlog注入
DNSlog注入
DNSlog注入实际上是属于盲注的一种,但是比盲注效率高一点。
在一定的情况下,如果我们想对一个网站使用布尔或时间盲注,手动注入会对WAF的绕过会非常有帮助,但是效率不高,因此我们往往会使用SQLmap等工具注入,但是这种工具对很多网站都有限制。这时候就该尝试DNSlog注入。
这种注入方式,相较于布尔或时间盲注而言,好处在于可以一组一组进行测试,不用再一个一个字符进行逐以测试,比其他两个盲注效率要高,但是要求服务器的读写权限都要对MySQL开启,如果没有开启的话,是不能使用这种注入方式的。
关键函数
load_file("[路径]"):用于读取某个文件
1select load_file("C:\\test.txt");
可以读取出文件,并且获取到一共多少个字节。
除了可以读取本机路径以外还可以读取到网络上的路径,即可以使用UNC路径。
UNC路径
格式:\servername\sharename,其中
servername是服务器名,可以是域名或者是IP地址
sharename是共享资源的名称
利用UNC路径能解 ...