kali linux学习day4

本文介绍了在NAT模式下,如何通过调整Windows防火墙设置实现主机与KaliLinux虚拟机之间的通信,以及利用Meterpreter进行永恒之蓝渗透测试的步骤,包括设置入站/出站规则、运行msfconsole、选择攻击模块、设置RHOSTS、运行命令,以及利用Meterpreter进行后续攻击操作和监听木马文件执行的情况。

如果你的kaliping 不同靶机(我的靶机是win7的),主机ping不通虚拟机或者虚拟机ping不同主机主要讲nat模式_虚拟接nat模式ping不同主机_WELCOME HELLO的博客-优快云博客(这个连接是一位大神的,他讲的方法多一些,我就讲讲我自己的方法)

可以这样设置:

打开靶机的控制面板,点击系统和安全如下:

打开windows防火墙如下:

 

 点击高级设置:

 点击windows防火墙属性

 将入站连接设置成“允许”

回到kali linux测试一下(ping通了,连接成功,可以进行渗透测试了):

 

 如果是windows虚拟机无法连接kali,则将出站连接设置为允许即可。

如果还没解决,则可以看看虚拟机的网络适配器的连接方式是否需要调整。

接着在kali中输入msfconsole打开渗透工具,再输入search+攻击名称,并以use+攻击模块的形式以选择攻击模块,再输入set RHOSTS+靶机ip,以将该地址作为攻击目标,然后运行命令run,就可以进行永恒之蓝渗透,获取目标靶机的权限。(注:建议以管理员身份执行命令)

跳出这个,说明渗透成功,获取了永恒之蓝漏洞的权限。

 

 Meterpreter是Metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个Meterpreter shell的链接。Meterpreter shell作为渗透模块有很多有用的功能,比如添加一个用户、隐藏一些东西、打开shell、得到用户密码、上传下载远程主机的文件、运行cmd.exe、捕捉屏幕、得到远程控制权、捕获按键信息、清除应用程序、显示远程主机的系统信息、显示远程机器的网络接口和IP地址等信息。可以输入options查看使用永恒之蓝漏洞的方法。详情摘自Meterpreter命令详解_欧晨eli的博客-优快云博客

这是我看了大神的ppt永恒之蓝攻击步骤的截图:

 

 下面可以使用meterpreter指令来攻击。攻击命令格式为: 

其中连接方式有;两种,一种为reverse_tcp(反连接,即让靶机连接本kali,比较安全,不容易被防火墙发现),一种为build_tcp(主动建立连接,容易被发现)。上图中的-f表示format(格式为exe文件,若攻击的是安卓系统,则攻击的格式为apk)。这种攻击可以在靶机上生成运行文件,也就是木马:

 上图可见新建了木马文件demo666.exe。

之后设置监听,监听靶机是否点击了这个木马软件,设置监听的时候要注意监听ip和监听端口都要和生成木马程序时使用的端口和ip一样。然后再运行run:

若鱼儿上钩,则可监听到靶机用户打开了这个木马文件:

### Java中的OverrideOverwriteOverload #### Override方法 在面向对象编程中,`override`是指子类重新定义父类的方法。这允许子类提供特定实现来替代继承自父类的行为。为了成功覆盖一个方法,在子类中声明的方法签名(包括名称、参数列表以及返回类型)应当与父类中的被重写方法相匹配。 ```java class Animal { public void makeSound() { System.out.println("Some sound"); } } class Dog extends Animal { @Override public void makeSound() { System.out.println("Bark bark!"); } } ``` 上述例子展示了如何通过使用`@Override`注解来指示编译器该方法意在覆盖超类中的同名方法[^1]。 #### Overload方法 不同于`override`,`overload`发生在同一个类内部,当多个具有相同名字但是不同参数列表的方法存在时即发生过载。这意味着这些方法可以有不同的数量或类型的输入参数,甚至它们的顺序也可以不一样;然而,返回值类型并不影响是否构成重载的一部分条件之一。 ```java public class Calculator { int add(int a, int b){ return a+b; } double add(double a,double b){ return a+b; } float add(float a,float b,int c){ return a+b+c; } } ``` 此代码片段说明了一个名为`add()`函数的不同版本是如何在同一类内共存并根据调用时传递给它的实参自动选择最合适的那个版本执行[^2]。 #### 关于Overwrite概念 值得注意的是,“overwrite”并不是Java官方术语,通常指的是文件操作里的一种行为——新数据会替换旧有位置上的内容而不增加额外存储空间。但在讨论OOP特性时不常用到这个词。如果提到它,则可能指代错误地隐藏了基类成员变量或方法而不是正式意义上的多态机制下的合法覆写过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值