渗透工具

一、nmp

1.nmap是什么

是一款检测目标机是否在线、端口开放情况、侦测运行的服务类型及版本信息、侦测操作系统与设备类型等信息的专业工具

2.运行环境

kali

3.功能

  1. 主机发现功能:向目标计算机发送特制的数据包组合,然后根据目标的反应来确定它是否处于开机并连接到网络的状态。

  2. 端口扫描:向目标计算机的指定端口发送特制的数据包组合,然后根据目标端口的反应来判断它是否开放。

  3. 服务及版本检测:向目标计算机的目标端口发送特制的数据包组合,然后根据目标的反应来检测它运行服务的服务类型和版本。

  4. 操作系统检测:向目标计算机发送特制的数据包组合,然后根据目标的反应来检测它的操作系统类型和版本。

3.简单用法

参数为:

-sS:syn半开扫描,隐蔽性强
-sY:全开扫描,比较准确
-sT:会大量记录日志,慎用
-sP:主机存活才会扫描的ping扫描
-sA:高级扫描,穿透防火墙规则过滤
-sV:版本探针扫描
-Pn:被禁ping扫描方法
-A:全面扫描

-exclude 除了

-sO:使用IP protocol扫描确定目标机支持的协议类型。

nmap ip确定目标主机在线情况及端口基本状况

扫描单个地址,多个地址,一个范围的地址

namp xxx

nmap xxx yyy

nmap xxx-zzz

扫描目标地址所在网段

nmap 192.168.1.17/24

目标地址的操作系统指纹识别

nmap –O 192.168.0.105

目标地址开放的端口对应的服务版本信息

map-sV 192.168.0.105

探测防火墙状态

在实战中,可以利用FIN扫描的方式探测防火墙的状态。FIN扫描用于识别端口是否关闭,收到RST回复说明该端口关闭,否则就是open或filtered状态,

nmap-sF –T4 192.168.0.105

4.状态识别

Nmap输出的是扫描列表,包括端口号、端口状态、服务名称、服务版本及协议。

5.进阶使用

Nmap的脚本主要分为以下几类。

● Auth:负责处理鉴权证书(绕过鉴权)的脚本。

● Broadcast:在局域网内探查更多服务的开启情况,如DHCP/DNS/SQLServer等。

● Brute:针对常见的应用提供暴力破解方式,如HTTP/SMTP等。

● Default:使用-sC或-A选项扫描时默认的脚本,提供基本的脚本扫描能力。

● Discovery:对网络进行更多信息的搜集,如SMB枚举、SNMP查询等。

● Dos:用于进行拒绝服务攻击。

● Exploit:利用已知的漏洞入侵系统。

● External:利用第三方的数据库或资源。例如,进行Whois解析。

● Fuzzer:模糊测试脚本,发送异常的包到目标机,探测出潜在漏洞。

● Intrusive:入侵性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽。

● Malware:探测目标机是否感染了病毒、开启后门等信息。

● Safe:此类与Intrusive相反,属于安全性脚本。

● Version:负责增强服务与版本扫描功能的脚本。

● Vuln:负责检查目标机是否有常见漏洞,如MS08-067。

常用脚本

用户还可根据需要设置–script=类别进行扫描,常用参数如下所示。

●-sC/–script=default:使用默认的脚本进行扫描。

●–script=<Lua scripts>:使用某个脚本进行扫描。

●–script-args=key1=value1,key2=value2······:该参数用于传递脚本里的参数,key1是参数名,该参数对应value1这个值。如有更多的参数,使用逗号连接。

● –script-args-file=filename:使用文件为脚本提供参数。

●–script-trace:如果设置该参数,则显示脚本执行过程中发送与接收的数据。

●–script-updatedb:在Nmap的scripts目录里有一个script.db文件,该文件保存了当前Nmap可用的脚本,类似于一个小型数据库,如果我们开启Nmap并调用了此参数,则Nmap会自行扫描scripts目录中的扩展脚本,进行数据库更新。

●–script-help:调用该参数后,Nmap会输出该脚本对应的脚本使用参数,以及详细的介绍信息。

弱口令检测

使用–script=auth可以对目标主机或目标主机所在的网段进行应用弱口令检测,

nmap--script=auth 192.168.0.105

暴力破解攻击

nmap--script=brute 192.168.0.105

常见漏洞扫描

nmap--script=vuln 192.168.0.105

应用服务扫描

如VNC服务

nmap--script=realvnc-auth-bypass 192.168.0.105

探测局域网内更多服务开启情况

nmap –n –p 445--script=broadcast 192.168.0.105

whois解析

补充

0x01.为什么nmap可以扫到端口,比如一个简单的命令如

nmap -sS -p- -Pn ip

回显的结果可能是 443 tcp/open https,即端口号,协议,服务名

那我很好奇,它是怎样如此准确地就显示出来的呢?

首先,它针对每个可能的端口,发送一个数据包,噢,既然是牵扯到数据包的部分,那我就可以动手操作一下,wireshark抓包监听一下即可(注:这里要监听vmet8网卡)

1
2
3
4
5
6
nmap -sS -p- --min-rate 10000 -Pn 192.168.1.142

#80/tcp open http
#135/tcp open msrpc
#139/tcp open netbios-ssn
#445/tcp open microsoft-ds

syn连接

也就是去尝试对目的端口进行SYN数据包请求,没有特别设置的情况下,都会进行一个回应,收到回应,那就证明该端口存在

1
nmap -p135 -sCV 192.168.1.142

tcp通信

可以看出该条命令使得建立tcp连接,建立完成后开始进行数据交换,如图是询问版本情况

但是第一条命令,回显的协议和服务名我感觉是根据扫出来的端口,nmap自己(可能是字典/映射)输出的,因为它只是尝试发出了连接,没有数据交换,不可能是对方给的信息,nmap问都没问

二、msf(Metasploit)

1.msf是什么

msf是一个框架,附带数百个已知软件漏洞,是一款专业级漏洞攻击工具。

kali已经自带了。

2.运行环境

kali

3.功能模块

  1. Auxiliary(辅助模块):**(扫描、嗅探、指纹识别)**

  2. Exploits(攻击模块):利用发现的安全漏洞或配置弱点对远程目标系统 进行攻击,从而获得对远程目标系统访问权的代码组件。**(Poc验证)**

  3. Payload(攻击载荷模块):攻击成功后促使靶机运行的一段植入代码

  4. Post (后渗透攻击模块):获取远程控制权后,收集更多信息或进一步访问被利用的目标系统

  5. Encoders(编码模块):负责免杀,将攻击载荷进行编码,来绕过防护软件拦截

    ● 扫描目标机系统,寻找可用漏洞。

    ● 选择并配置一个漏洞利用模块。

    ● 选择并配置一个攻击载荷模块。

    ● 选择一个编码技术,用来绕过杀毒软件的查杀。

    ● 渗透攻击。

4.简单使用(蓝屏攻击)

靶机可作为winxp,kali作为攻击机,两者同一局域网下。

winxp需要:

-开启3389端口(系统远程桌面服务)

-未安装蓝屏攻击补丁

-关闭防火墙

a)先端口探测

nmap -sS -Pn -A 目标ip

确认开放了3389端口。

b)进入msf,serch ms12_020

出现两个模块,第一个为漏洞利用模块,第二个为漏洞验证模块

1)验证

use auxiliary/scanner/rdp/ms12_020_check进入漏洞验证模块

输入show options查看相关参数配置

一般需要配置rhosts,set rhosts 目标ip

输入run运行即可

会显示The target is vulnerable,证明该主机漏洞存在

2)攻击

serch ms12_020->use 0->show options->set rhosts 目标ip->run

msf输入shell可进入靶机机器,可以添加用户,并将其设为管理员组

net user test 123 /add

net localgroup administrators test /add

三、cobalt strike

1.cs是什么

渗透测试神器,拥有多种协议主机上线方式,集成了提权,凭据导出,端口转发,socket代理,office攻击,文件捆绑,钓鱼等功能。理解为可视化的msf

本质是c2(command&control),类似于teamserver发布命令,client执行命令,远控

2.运行环境

一般是kali启动teamserver服务(有java的linux平台),主机运行客户端(java环境)。客户端所填的ip地址就是kali的地址。正常实战时,cs隐藏特征和流量混淆一下,免杀。

3.利用方式

将木马放到目标机:

先将木马放到本地,做好免杀后,传到getshell的目标服务器上中去。(一般将木马与正常软件捆绑成一个压缩包,发给受害者,受害者在不知情的情况下打开)。当目标机运行后,本地就可以监听到,进行提权操作后,可执行其他命令。

参考:[内网渗透工具CobaltStrike使用教程详解_cobaltstrike教程_归去来兮-zangcc的博客-CSDN博客](https://blog.csdn.net/weixin_43847838/article/details/125069147?ops_request_misc=%7B%22request%5Fid%22%3A%22168437783916800211513558%22%2C%22scm%22%3A%2220140713.130102334..%22%7D&request_id=168437783916800211513558&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-125069147-null-null.142^v87^control_2,239^v2^insert_chatgpt&utm_term=cobalt strike&spm=1018.2226.3001.4187)

[ Cobalt Strike使用教程——基础篇_Captain_RB的博客-CSDN博客](https://blog.csdn.net/Captain_RB/article/details/116843274?ops_request_misc=&request_id=&biz_id=102&utm_term=cobalt strike&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-3-116843274.142^v87^control_2,239^v2^insert_chatgpt&spm=1018.2226.3001.4187)

四、burpsuite

这个原理都熟悉,我主要是有一些其他问题

0x01.burpsuite可以拦截数据包的原理是?

​ A:不同于proxifier底部的劫持,burpsuite当做一个代理服务器就好一点,所以拦截显得不奇怪;主要是像用vpn一样,流量经过vpn没有任何拦截和处理,而bp就额外添加了这两个功能而已,至于为什么可以这样?我目前不想关心

0x02.burpsuite运行越久,占内存?

参考我的虚拟机kali,每次打开burpsuite,运行一会儿就卡死,内存占满;抛开我虚拟机本身内存小不谈,burpsuite为什么会占内存?

可能是因为本身包含一些爬虫的被动功能,爬取呢,速度快,也许是并发方式,导致资源抢占?

首先,它会默认一个东西在C盘,这个东西,每次打开bp的时候,会提醒说要不要加载burp.temp文件,嗯,如果C盘本来就空间紧张,可以删除

其次,bp是什么,我们一般称之为代理,它起到一个代理服务器的作用,所以它本身一定要占有一定内存,用来处理流量请求,它不仅要接收浏览器的请求,还要接收目标机的响应

最后我测试了一下,是有一个浏览数据的功能,关掉它之后,内存减少很多!时常清理所有数据,有效果;此外关闭一些被动的插件也可以

0x03.

五、Nessus

漏扫工具、我用过AWVS,就是传统的扫描+现有poc进行一系列尝试;

类似的有goby、xray

六、proxifier

参考来源:https://blog.zgsec.cn/archives/278.html

关于代理,一般是通过浏览器,进行一些http(s)代理

但是,如何让一些不经过http连接的客户端如游戏软件、jar工具等也走代理呢?

proxifier的原理应该是在更底层“劫持”了数据包的发送,可能更偏向于驱动层,有机会再深入一下,现在只是使用

使用

两个目的:

1.配代理服务器

添加代理的ip和端口,检测代理即可

2.配代理规则

默认规则不要动,添加新规则即可

默认的那个Localhost规则是用来避免抓系统进程的

a.先来一个优先级,配置回环地址

这是为了避免需要本地通信的进程崩溃,本地流量就好好走本地即可

b.如果是让jar工具走代理,配置如下:

c.配置vmware,这里注意一点,虚拟机需要NAT模式

应用程序填写:

1
vmware.exe; vmnetcfg.exe; vmnat.exe; vmrun.exe; vmware-vmx.exe; mkssandbox.exe; vmware-hostd.exe; vmnat.exe; vmnetdhcp.exe

动作设置为代理

诚然proxychains也可实现同样效果,但这样直接在主机上配置了,无需其他配置

之后 curl http://www.google.com也是有回显的,确实方便

d.小程序抓包

应用程序填:

1
WeChatApp.exe;WechatBrowser.exe;WeChatAppEx.exe

这里如果是搭配burpsuite,那动作就要更改为burpsuite的代理,但是这里要注意,代理服务器请用HTTPS,而不是socks5了

而burpsuite是java启动,所以上面的java要直连,不然就冲突

总结

这里对比很明显,以往连代理软件时,需要首先(它会自动)更改浏览器的代理设置,但是现在即使将浏览器的代理关闭,也可以正常连接

这里补充一下,小程序的那个抓包,上面应该仅适用于http的链接

但是https,可能就无能为力,出现情况包括但不限于:抓不到包、包请求时间短、断网

首先了解一下https,即http+ssl(tls),一般来讲,是一个单向认证的问题,这个靠证书去实现,只需要知道https通信的两端数据是加密的了,那么既然是加密,肯定有解密的方法。

为什么burpsuite使用前需要往浏览器去导入一个证书就是这个例子,这样的话双方进行https通信的内容就可以通过证书解密。

所以这里需要用一个Fiddle工具进行中转,那么流量路径变为:

微信小程序->Fiddle->(proxifier)->burp

Fiddle会下载一个证书,要导入到burp去,这样微信小程序和Fiddle之间的https流量可以被bp解密

——————2024.5.17——————

我之后试了试,貌似也不需要fiddle

我之前试了一下fiddle+yakit,抓小程序包都爆502,主要是yakit还额外有一个vpn代理

但是fiddle+bp+vpn代理,正常

之后fiddle+yakit的组合貌似又好了,不理解

最后还是proxifer+bp+vpn代理,抓小程序https包貌似是可以的,只不过有点慢

而且此时抓web浏览器显示的本地ip就是外网ip,这个正常

但是proxier+yakit+vpn代理,显示的ip要么是真实ip,要么就502了

这种情况的话,还得待查

注意

0x01.代理检查时测试失败

A:看一下右上角的 测试设置,把那个“从主机载入一个默认网页(必须在主机开启web服务器)” 勾掉即可

0x02.如果虚拟机是NAT模式,好像不走proxifier?

你像burpsuite抓虚拟机包,也必须代理设置为vmet8的网关;但这种只是http层面上的

A:配置文件->高级->服务和其它用户->两个都勾选即可

桥接模式走不了

补充

桥接模式抓包

Q:kali与靶机都是桥接模式的情况下,使用宿主机抓包kali流量

A:这里用了yakit的远程拦截模式

kali安装:bash <(curl -sS -L http://oss.yaklang.io/install-latest-yak.sh)

1
2
3
4
5
6
7
8
kali:
yak grpc --host 0.0.0.0 --tls --secret 1234
火狐代理为 127.0.0.1:8080

主机:
填入目标ip,默认端口8087,和tls密钥、密码即可
yakit代理:127.0.0.1 8080

这个过程和建立个专用隧道差不多

https://yaklang.io/products/connection/

这里还想试试burpsuite,桥接模式下,我之前试过几次,因为监听不到而放弃,但这里再次分析并重新记录

(以往我都是NAT的,因为可以抓到vmet8这个网卡ip)

kali和burpsuite共用同一个网关,相当于同一局域网下的两个独立物理机,那这个就变成A远程抓包B的流量了。

所以为什么yakit的远程劫持功能那么香。

那么这样分析的话,如果可以抓到网关的ip不就可以了?192.168.1.1,这个有难度嘞,什么水平能监听到路由器的网关的?

现在问题演变成了同局域网下的中间人攻击了。那么这里还不如干脆让A主机当热点,让B去连接A的热点,这样wireshark(只能监听本地)都可以监听到所有流量了。

或者说是嗅探(ARP欺骗),那像burpsuite这种本地监听的就没什么意义了

还有的说是网卡的混杂模式,没有怎么了解过

总结:桥接模式burpsuite抓不了,要抓也要配合其它方法,但没去了解;所以最好改NAT模式

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2023-2025 是羽泪云诶
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信